--- /dev/null
+# -*- coding: utf-8 -*-
+
+from __future__ import absolute_import, print_function, division
+
+import sys, os
+# sys.path.insert(0, os.path.abspath('.'))
+sys.path.insert(0, './PythonAPI/')
+# sys.path.insert(0, os.path.abspath('data'))
+for _ in sys.path:
+ print (_)
+from PythonAPI.pycocotools.coco import COCO
+import cv2
+import numpy as np
+import os
+from libs.label_name_dict import coco_dict
+
+
+annotation_path = '/home/yjr/DataSet/COCO/2017/annotations/instances_train2017.json'
+print ("load coco .... it will cost about 17s..")
+coco = COCO(annotation_path)
+
+imgId_list = coco.getImgIds()
+imgId_list = np.array(imgId_list)
+
+total_imgs = len(imgId_list)
+
+# print (NAME_LABEL_DICT)
+
+
+def next_img(step):
+
+ if step % total_imgs == 0:
+ np.random.shuffle(imgId_list)
+ imgid = imgId_list[step % total_imgs]
+
+ imgname = coco.loadImgs(ids=[imgid])[0]['file_name']
+ # print (type(imgname), imgname)
+ img = cv2.imread(os.path.join("/home/yjr/DataSet/COCO/2017/train2017", imgname))
+
+ annotation = coco.imgToAnns[imgid]
+ gtbox_and_label_list = []
+ for ann in annotation:
+ box = ann['bbox']
+
+ box = [box[0], box[1], box[0]+box[2], box[1]+box[3]] # [xmin, ymin, xmax, ymax]
+ cat_id = ann['category_id']
+ cat_name = coco_dict.originID_classes[cat_id] #ID_NAME_DICT[cat_id]
+ label = coco_dict.NAME_LABEL_MAP[cat_name]
+ gtbox_and_label_list.append(box + [label])
+ gtbox_and_label_list = np.array(gtbox_and_label_list, dtype=np.int32)
+ # print (img.shape, gtbox_and_label_list.shape)
+ if gtbox_and_label_list.shape[0] == 0:
+ return next_img(step+1)
+ else:
+ return imgid, img[:, :, ::-1], gtbox_and_label_list
+
+
+if __name__ == '__main__':
+
+ imgid, img, gtbox = next_img(3234)
+
+ print("::")
+ from libs.box_utils.draw_box_in_img import draw_boxes_with_label_and_scores
+
+ img = draw_boxes_with_label_and_scores(img_array=img, boxes=gtbox[:, :-1], labels=gtbox[:, -1],
+ scores=np.ones(shape=(len(gtbox), )))
+ print ("_----")
+
+
+ cv2.imshow("test", img)
+ cv2.waitKey(0)
+
+