def _parse_function(imgId, is_train, ann): global TRAIN_ANNO global VALID_ANNO anno = ann img_meta = anno.loadImgs([imgId])[0] anno_ids = anno.getAnnIds(imgIds=imgId) img_anno = anno.loadAnns(anno_ids) idx = img_meta['id'] img_path = join(IMAGE_PATH, img_meta['file_name']) img_meta_data = CocoMetadata(idx, img_path, img_meta, img_anno, sigma=6.0) display_original_image(img_path, img_anno) heatmap = img_meta_data.get_heatmap( (img_meta_data.height, img_meta_data.width)) leng = len(img_meta_data.joint_list[0]) joint = img_meta_data.joint_list[0] plt.figure(1, figsize=(30, 30)) n_columns = 5 n_rows = math.ceil(leng / n_columns) b, g, r = cv2.split(img_meta_data.img) img_resize = cv2.merge((r, g, b)) i = 5 for i in range(leng): # img_resize = copy.copy(img_meta_data.img) if i > 4: #plt.subplot(n_rows, n_columns, i + 1) #plt.title('Joint Point' + str(i)) img_resize = cv2.circle(img_resize, joint[i], 5, (0, 255, 0), cv2.FILLED) #CV2.filled #채워진 점 plt.imshow(img_resize) #추가 coco api사용해서 점을 잇는 함수 anno.showAnns(img_anno) set_p = [point for point in img_meta_data.joint_list[0]] head_point = cv2.circle( img_resize, ((set_p[2][0] + set_p[1][0]) // 2, (set_p[2][1] + set_p[1][1]) * 3 // 2 - set_p[0][1] * 2), 5, (255, 0, 0), cv2.FILLED) neck_point = cv2.circle( img_resize, ((set_p[6][0] + set_p[5][0]) // 2, (set_p[6][1] + set_p[5][1]) // 3 + set_p[0][1] // 3), 5, (255, 0, 0), cv2.FILLED) plt.imshow(head_point) plt.imshow(neck_point) plt.show()
def _parse_function(imgId, is_train, ann=None): """ :param imgId: :return: """ global TRAIN_ANNO global VALID_ANNO if ann is not None: if is_train == True: TRAIN_ANNO = ann else: VALID_ANNO = ann else: if is_train == True: anno = TRAIN_ANNO else: anno = VALID_ANNO img_meta = anno.loadImgs([imgId])[0] anno_ids = anno.getAnnIds(imgIds=imgId) img_anno = anno.loadAnns(anno_ids) idx = img_meta['id'] img_path = join(BASE, img_meta['file_name']) img_meta_data = CocoMetadata(idx, img_path, img_meta, img_anno, sigma=6.0) img_meta_data = pose_random_scale(img_meta_data) img_meta_data = pose_rotation(img_meta_data) img_meta_data = pose_flip(img_meta_data) img_meta_data = pose_resize_shortestedge_random(img_meta_data) img_meta_data = pose_crop_random(img_meta_data) return pose_to_img(img_meta_data)
def _parse_function(self, imgId, ann=None): """ :param imgId: :return: """ global TRAIN_ANNO if ann is not None: TRAIN_ANNO = ann # print('imgId = %s' % imgId) img_meta = TRAIN_ANNO.loadImgs([imgId])[0] anno_ids = TRAIN_ANNO.getAnnIds(imgIds=imgId) img_anno = TRAIN_ANNO.loadAnns(anno_ids) idx = img_meta['id'] filename_item_list = img_meta['file_name'].split('/') filename = filename_item_list[1] + '/' + filename_item_list[2] img_path = join(DATASET_DIR, filename) img_meta_data = CocoMetadata(idx=idx, img_path=img_path, img_meta=img_meta, annotations=img_anno, sigma=preproc_config.heatmap_std) # print('joint_list = %s' % img_meta_data.joint_list) images, labels = self.image_preprocessing_fn( img_meta_data=img_meta_data, preproc_config=preproc_config) return images, labels
def _parse_function(imgId, is_train, ann=None): """ :param imgId: :return: """ global TRAIN_ANNO global VALID_ANNO if ann is not None: if is_train == True: TRAIN_ANNO = ann else: VALID_ANNO = ann else: if is_train == True: anno = TRAIN_ANNO else: anno = VALID_ANNO img_meta = anno.loadImgs([imgId])[0] anno_ids = anno.getAnnIds(imgIds=imgId) img_anno = anno.loadAnns(anno_ids) idx = img_meta['id'] img_path = join(BASE, img_meta['file_name']) if SEG_MASK: mask_path = join(BASE_MASK_PATH, img_meta['file_name']) else: mask_path = None # print('img_path==>', is_train, img_path) # exit() img_meta_data = CocoMetadata(idx, img_path, img_meta, img_anno, sigma=6.0, mask_path=mask_path) # 加载图像和kp标注 # 先数据增强,再把kp标注转换为heatmap img_meta_data = pose_random_scale(img_meta_data, SEG_MASK) img_meta_data = pose_rotation(img_meta_data, SEG_MASK) img_meta_data = pose_flip(img_meta_data, SEG_MASK) #todo:multi task1.22改到这里 img_meta_data = pose_resize_shortestedge_random(img_meta_data, SEG_MASK) img_meta_data = pose_crop_random(img_meta_data, SEG_MASK) return pose_to_img(img_meta_data, imgId)
def _parse_function(self, imgId, ann=None): """ :param imgId: :return: """ global TRAIN_ANNO if ann is not None: TRAIN_ANNO = ann img_meta = TRAIN_ANNO.loadImgs([imgId])[0] anno_ids = TRAIN_ANNO.getAnnIds(imgIds=imgId) img_anno = TRAIN_ANNO.loadAnns(anno_ids) idx = img_meta['id'] filename_item_list = img_meta['file_name'].split('/') filename = filename_item_list[1] + '/' + filename_item_list[2] if self.is_testcode: # for test_data_loader_coco.py ----------------------- img_path = join(self.data_dir, filename) else: # for actual training ----------------------- img_path = join(FLAGS.data_dir, filename) img_meta_data = CocoMetadata(idx=idx, img_path=img_path, img_meta=img_meta, annotations=img_anno, sigma=preproc_config.heatmap_std) # print('joint_list = %s' % img_meta_data.joint_list) images, labels = self.image_preprocessing_fn( img_meta_data=img_meta_data, preproc_config=preproc_config, is_training=self.is_training) return images, labels