示例#1
0
    def display(preds, imgs, imshow=True, imwrite=False, img_id=1):
        for i in range(len(imgs)):
            if len(preds[i]['rois']) == 0:
                continue

            imgs[i] = imgs[i].copy()
            imgs[i] = cv2.cvtColor(imgs[i], cv2.COLOR_BGR2RGB)

            for j in range(len(preds[i]['rois'])):
                x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
                obj = obj_list[preds[i]['class_ids'][j]]
                score = float(preds[i]['scores'][j])
                plot_one_box(imgs[i], [x1, y1, x2, y2],
                             label=obj,
                             score=score,
                             color=color_list[get_index_label(obj, obj_list)])

            if imshow:
                cv2.imshow('img', imgs[i])
                cv2.waitKey(0)

            if imwrite:

                str1 = 'test/' + str(img_id) + '.jpg'
                cv2.imwrite(str1, imgs[i])
示例#2
0
def display(preds, imgs, imshow=True, imwrite=False):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        imgs[i] = imgs[i].copy()

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            cv2.imshow('img', imgs[i])
            cv2.waitKey(0)

        if imwrite:
            # cv2.imwrite(f'test/img_inferred_d{compound_coef}_this_repo_{i}.jpg', imgs[i])
            cv2.imwrite(
                f'test_result/d0_epoch71_1031/img_inferred_d{compound_coef}_this_repo_{i}.jpg',
                imgs[i])
示例#3
0
def display(preds, imgs, imshow=True, imwrite=False, write_dir=None):
    # for i in range(len(imgs)):
    for i, (name, img) in enumerate(imgs.items()):
        if len(preds[i]['rois']) == 0:
            continue

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(
                img,  #imgs[i],
                [x1, y1, x2, y2],
                label=obj,
                score=score,
                color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            cv2.imshow('img', imgs[i])
            cv2.waitKey(0)

        if imwrite:
            os.makedirs(write_dir, exist_ok=True)
            write_path = os.path.join(write_dir, f'{name}.jpg')
            cv2.imwrite(write_path, img)
示例#4
0
    def display(preds, imgs, imshow=True, imwrite=False):
        for i in range(len(imgs)):
            if len(preds[i]['rois']) == 0:
                continue

            for j in range(len(preds[i]['rois'])):
                x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
                obj = obj_list[preds[i]['class_ids'][j]]
                score = float(preds[i]['scores'][j])
                plot_one_box(imgs[i], [x1, y1, x2, y2],
                             label=obj,
                             score=score,
                             color=color_list[get_index_label(obj, obj_list)])

            if imshow:
                cv2.imshow('img', imgs[i])
                cv2.waitKey(0)

            if imwrite:
                img = img_path.split('/')[-1].split('.')[0]
                #                 pdb.set_trace()
                img_name = f'{img}_img_inferred_d{compound_coef}_this_repo_{i}.jpg'
                img_save_path = os.path.join(img_save_folder, img_name)
                print(img_save_path)
                cv2.imwrite(img_save_path, imgs[i])
def display(preds, imgs, imshow=True, imwrite=False):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            #----------以下在Colab會crash, 必須改用plt-------------
            #cv2.imshow('img', imgs[i])
            #cv2.waitKey(0)
            #------------------------------------------------------
            plt.imshow(imgs[i])
            plt.show()

        if imwrite:
            cv2.imwrite(
                f'test/img_inferred_d{compound_coef}_this_repo_{i}.jpg',
                imgs[i])
示例#6
0
    def display(self, preds, imgs, imshow=True, imwrite=False):
        scores = []
        labels = []
        bboxes = []
        for i in range(len(imgs)):
            if len(preds[i]['rois']) == 0:
                continue
            for j in range(len(preds[i]['rois'])):
                x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
                obj = self.system_dict["params"]["obj_list"][preds[i]
                                                             ['class_ids'][j]]
                score = float(preds[i]['scores'][j])
                if (score > self.system_dict["params"]["threshold"]):
                    scores.append(score)
                    labels.append(obj)
                    bboxes.append([x1, y1, x2, y2])
                    plot_one_box(imgs[i], [x1, y1, x2, y2],
                                 label=obj,
                                 score=score,
                                 color=self.system_dict["local"]["color_list"]
                                 [get_index_label(
                                     obj,
                                     self.system_dict["params"]["obj_list"])])

            if imshow:
                cv2.imshow('img', imgs[i])
                cv2.waitKey(0)

            if imwrite:
                cv2.imwrite('output.jpg', imgs[i])

        return scores, labels, bboxes
def display(cur_frame, preds, imgs, imshow=True, imwrite=False):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        imgs[i] = imgs[i].copy()

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            cv2.imshow('img', imgs[i])
            #cv2.waitKey(0)

        if imwrite:
            if not os.path.exists(img_path):
                os.makedirs(img_path)
            cv2.imwrite(
                f'{img_path}/img_inferred_d{compound_coef}_this_repo_{cur_frame}.jpg',
                imgs[i])
示例#8
0
def display(preds, imgs, imshow=True, showtime=0, imwrite=False):
    for i, img_name in zip(range(len(imgs)), img_names):
        # if len(preds[i]['rois']) == 0:                    # if model dosen't detect object, not show image
        #     continue

        imgs[i] = imgs[i].copy()

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])
            print(obj)

        if imwrite:
            img = cv2.cvtColor(imgs[i], cv2.COLOR_BGR2RGB)
            cv2.imwrite(f'test/img_inferred_d{compound_coef}_{img_name}', img)

        if imshow:
            img = cv2.cvtColor(imgs[i], cv2.COLOR_BGR2RGB)
            cv2.namedWindow(f'{img_name}', cv2.WINDOW_NORMAL)
            cv2.imshow(f'{img_name}', img)
            cv2.waitKey(showtime)
            cv2.destroyAllWindows()
def display(preds,
            imgs,
            compound_coef,
            obj_list=None,
            imshow=True,
            imwrite=False,
            debug=False):
    if obj_list is None:
        obj_list = ['person']
    color_list = standard_to_bgr(STANDARD_COLORS)

    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            if debug:
                cv2.imshow('img', imgs[i])
                cv2.waitKey(0)
            continue

        imgs[i] = imgs[i].copy()

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            cv2.imshow('img', imgs[i])
            cv2.waitKey(0)

        if imwrite:
            os.system("mkdir -p ./assets/predictions")
            cv2.imwrite(
                f'./assets/predictions/img_inferred_d{compound_coef}_this_repo_{i}.jpg',
                imgs[i])

    if imwrite:
        image_folder = './assets/predictions'
        image_files = [
            image_folder + '/' + img for img in os.listdir(image_folder)
            if img.endswith(".jpg")
        ]
        clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(
            image_files, fps=1)
        clip.write_videofile('./assets/predictions_testset.mp4')
示例#10
0
def display(preds, imgs, imwrite=True):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imwrite:
            cv2.imwrite(
                f'test/img_inferred_d{compound_coef}_this_repo_{i}.jpg',
                imgs[i])
示例#11
0
def display(preds, imgs, imshow=True, imwrite=False):
    for i, img_name in zip(range(len(imgs)), img_names):

        imgs[i] = imgs[i].copy()

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2], label=obj, score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            img = cv2.cvtColor(imgs[i], cv2.COLOR_BGR2RGB)
            cv2.imshow('video', img)
            cv2.waitKey(1)

        if imwrite:
            cv2.imwrite(f'test/img_inferred_d{compound_coef}_{img_name}', imgs[i])
示例#12
0
 def __save_image(self, preds, imgs, imwrite=True):
     color_list = standard_to_bgr(STANDARD_COLORS)
     for i in range(len(imgs)):
         if len(preds[i]['rois']) == 0:
             continue
         imgs[i] = imgs[i].copy()
         for j in range(len(preds[i]['rois'])):
             x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
             obj = self.obj_list[preds[i]['class_ids'][j]]
             score = float(preds[i]['scores'][j])
             plot_one_box(imgs[i], [x1, y1, x2, y2],
                          label=obj,
                          score=score,
                          color=color_list[get_index_label(
                              obj, self.obj_list)])
         if imwrite:
             cv2.imwrite(
                 f'test/img_inferred_d{self.compound_coef}_this_repo_{i}.jpg',
                 imgs[i])
示例#13
0
def display(preds, imgs, imshow=True, imwrite=False):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            cv2.imshow('img', imgs[i])
            cv2.waitKey(0)

        if imwrite:
            cv2.imwrite(f'test/out.jpg', imgs[i])
示例#14
0
def display(preds, imgs, imshow=True, imwrite=False):
    x = []
    y = []
    result_1 = []
    result_2 = []
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            x, y = plot_one_box(imgs[i], [x1, y1, x2, y2],
                                label=obj,
                                score=score,
                                color=color_list[get_index_label(
                                    obj, obj_list)])
            result_1.append(x)
            result_2.append(y)

    return result_1, result_2
示例#15
0
def display(out_1, out_2, imgs, imshow=True, showtime=0, imwrite=False):
    # if len(preds[i]['rois']) == 0:                    # if model dosen't detect object, not show image
    #     continue

    for img, out_1 in zip(imgs, out_1):
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        for i in range(len(out_1['rois'])):
            ox1, oy1, ox2, oy2 = out_1['rois'][i].astype(np.int)
            obj_1 = obj_list_1[out_1['class_ids'][i]]
            score = float(out_1['scores'][i])
            color = color_list[get_index_label(obj_1, obj_list_1)]
            plot_one_box(img, [ox1, oy1, ox2, oy2],
                         label=obj_1,
                         score=score,
                         color=color)
            print(obj_1)
            print(f'obj {i}:', ox1, oy1, ox2, oy2)
            for j in range(len(out_2[i]['rois'])):
                dx1, dy1, dx2, dy2 = out_2[i]['rois'][j].astype(np.int)
                obj_2 = obj_list_2[out_2[i]['class_ids'][j]].split('_')[-1]
                score = float(out_2[i]['scores'][j])
                plot_one_box(img, [dx1 + ox1, dy1 + oy1, dx2 + ox1, dy2 + oy1],
                             label=obj_2,
                             score=score,
                             color=color)
                print(obj_2)
                print('damage :', dx1, dy1, dx2, dy2)
                print('change :', dx1 + ox1, dy1 + oy1, dx2 + ox1, dy2 + oy1)

        if imshow:
            # print(f'{img_name}')
            cv2.namedWindow('__', cv2.WINDOW_NORMAL)
            cv2.resizeWindow('__', 1500, 1000)
            cv2.imshow('__', img)
            # cv2.waitKey(0)
            key = cv2.waitKey(showtime)
            if key == ord('p'):
                cv2.waitKey(-1)
示例#16
0
def display(names, preds, imgs, imshow=True, imwrite=False, save_bbox=True):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue
        f = open('test/' + names[i] + '.txt', "w")
        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])
            if save_bbox and obj == 'cell phone':
                f.write(
                    str(67) + ' ' + str(score) + ' ' + str(x1) + ' ' +
                    str(y1) + ' ' + str(x2) + ' ' + str(y2) + '\n')

        if imshow:
            cv2.imshow(names[i], imgs[i])
            cv2.waitKey(0)
        if imwrite:
            cv2.imwrite('test/' + names[i] + '.jpg', imgs[i])
示例#17
0
def display(preds, imgs, imshow=True, imwrite=True):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        imgs[i] = imgs[i].copy()

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])

            plot_one_box(imgs[i], [x1, y1, x2, y2], label=obj, score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            imgs[i] = cv2.cvtColor(imgs[i], cv2.COLOR_BGR2RGB)
            cv2.imshow('img', imgs[i])
            cv2.waitKey(0)

        if imwrite:
            cv2.imwrite(f'test/d{compound_coef}_{haha}', imgs[i])
            print('nmsl')
示例#18
0
    def display(preds, imgs, imshow=True, imwrite=False):
        for i in range(len(imgs)):
            if len(preds[i]['rois']) == 0:
                continue

            imgs[i] = imgs[i].copy()

            for j in range(len(preds[i]['rois'])):
                x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
                obj = obj_list[preds[i]['class_ids'][j]]
                score = float(preds[i]['scores'][j])

                list_image_id.append(img_path.split('/')[-1])
                list_class.append(obj)
                list_score.append(score)
                list_xmin.append(x1)
                list_ymin.append(y1)
                list_xmax.append(x2)
                list_ymax.append(y2)

                plot_one_box(imgs[i], [x1, y1, x2, y2],
                             label=obj,
                             score=score,
                             color=color_list[get_index_label(obj, obj_list)])
示例#19
0
def display(preds, imgs, imshow=True, imwrite=False):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            print(x1, y1, x2, y2, obj, score)
            plot_one_box(imgs[i], [x1, y1, x2, y2],
                         label=obj,
                         score=score,
                         color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            cv2.imshow('img', imgs[i])
            cv2.waitKey(0)

        if imwrite:
            predicated_path = 'demo_jpg/{0}_infer.jpg'.format(
                config.dataset_name)
            cv2.imwrite(predicated_path, imgs[i])
            print("write predicated result in:{0}".format(predicated_path))
def display(preds, imgs, imshow=True, imwrite=False, start=0):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            if obj in obj_interest:
                plot_one_box(imgs[i], [x1, y1, x2, y2],
                             label=obj,
                             score=score,
                             color=color_list[get_index_label(obj, obj_list)])

        if imshow:
            cv2.imshow('img', imgs[i])
            cv2.waitKey(0)

        if imwrite:
            cv2.imwrite(
                img_root + 'Result' +
                f'/img_inferred_d{compound_coef}_this_repo_{i+start}.jpg',
                imgs[i])
                      anchors, regression, classification,
                      regressBoxes, clipBoxes,
                      threshold, iou_threshold)


preds = invert_affine(framed_metas, out)

if(savefig):
    imgs = ori_imgs;
    i = 0;
    for j in range(len(preds[i]['rois'])):
        x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
        obj = obj_list[preds[i]['class_ids'][j]]
        score = float(preds[i]['scores'][j])
        if(score >= threshold and obj in classes):
            plot_one_box(imgs[i], [x1, y1, x2, y2], label=obj,score=score,color=color_list[get_index_label(obj, obj_list)])


    cv2.imwrite(output_name, imgs[i])



if(write_monk_format):
    print("Saving Annotations to monk format");
    df = preds_to_monk_format(img_path, preds, classes, class_names=obj_list, thresh=thresh);
    out_file_name = output_name.split(".")[0] + ".csv";
    df.to_csv(out_file_name, index=False);


if(write_coco_format):
    print("Saving Annotations to coco format (individual files)");
示例#22
0
                              iou_threshold)

        preds = invert_affine(framed_metas, out)

        imgs = ori_imgs
        i = 0
        if (savefig):
            for j in range(len(preds[i]['rois'])):
                x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
                obj = obj_list[preds[i]['class_ids'][j]]
                score = float(preds[i]['scores'][j])
                if (score >= threshold and obj in classes):
                    plot_one_box(imgs[i], [x1, y1, x2, y2],
                                 label=obj,
                                 score=score,
                                 color=color_list[get_index_label(
                                     obj, obj_list)])

            cv2.imwrite(output_name, imgs[i])

        if (write_monk_format):
            print("Saving Annotations to monk format")
            df = preds_to_monk_format(img_path,
                                      preds,
                                      classes,
                                      class_names=obj_list,
                                      thresh=thresh)
            out_file_name = output_name.split(".")[0] + ".csv"
            df.to_csv(out_file_name, index=False)

        if (write_coco_format):
            print("Saving Annotations to coco format (individual files)")
def box(preds, imgs, color_list, obj_list, imshow=False, imwrite=False):
    for i in range(len(imgs)):
        if len(preds[i]['rois']) == 0:
            continue

        imgs[i] = imgs[i].copy()

        for j in range(len(preds[i]['rois'])):
            x1, y1, x2, y2 = preds[i]['rois'][j].astype(np.int)
            obj = obj_list[preds[i]['class_ids'][j]]
            score = float(preds[i]['scores'][j])
            plot_one_box(imgs[i], [x1, y1, x2, y2], label=obj,score=score,color=color_list[get_index_label(obj, obj_list)])


    return imgs[0]