Example #1
0
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()
Example #2
0
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)
Example #3
0
    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
Example #4
0
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