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])
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])
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)
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])
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])
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')
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])
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])
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])
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])
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
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)
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])
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')
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)])
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)");
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]