def __disp_image(self, img, classes, bboxes): bvalid = (classes !=0) classes = classes[bvalid] bboxes = bboxes[bvalid] scores =np.full(classes.shape, 1.0) visualization.plt_bboxes(img, classes, scores, bboxes,title='Ground Truth') return
def run(self): self.dataset_name = 'pascalvoc_2007' self.dataset_split_name = 'train' self.dataset_dir = '../../data/voc/tfrecords/' self.batch_size = 32 with tf.Graph().as_default(): tensors = self.__get_images_labels_bboxes() with tf.Session('') as sess: init = tf.global_variables_initializer() sess.run(init) with slim.queues.QueueRunners(sess): for i in range(5000): image, shape, format, filename, glabels, gbboxes,gdifficults = sess.run(list(tensors)) if str(filename,'utf-8') == "000394": print(str(filename,'utf-8')) scores = np.full(glabels.shape, 1.0) visualization.plt_bboxes(image, glabels, scores, gbboxes,title=filename) plt.show() break return
def __disp_matched_anchors(self, img, target_labels_data, target_localizations_data, target_scores_data): found_matched = False all_anchors = g_ssd_model.get_allanchors() for i, target_score_data in enumerate(target_scores_data): num_pos = (target_score_data > 0.5).sum() if (num_pos == 0): continue print('Found {} matched default boxes in layer {}'.format( num_pos, g_ssd_model.feat_layers[i])) pos_sample_inds = (target_score_data > 0.5).nonzero() pos_sample_inds = [ pos_sample_inds[0], pos_sample_inds[1], pos_sample_inds[2] ] classes = target_labels_data[i][pos_sample_inds] scores = target_scores_data[i][pos_sample_inds] bboxes_default = g_ssd_model.get_allanchors( minmaxformat=True)[i][pos_sample_inds] bboxes_gt = g_ssd_model.decode_bboxes_layer( target_localizations_data[i][pos_sample_inds], all_anchors[i][pos_sample_inds]) print("default box minimum, {} gt box minimum, {}".format( bboxes_default.min(), bboxes_gt.min())) marks_default = np.full(classes.shape, True) marks_gt = np.full(classes.shape, False) scores_gt = np.full(scores.shape, 1.0) bboxes = bboxes_default neg_marks = marks_default add_gt = True if add_gt: bboxes = np.vstack([bboxes_default, bboxes_gt]) neg_marks = np.hstack([marks_default, marks_gt]) classes = np.tile(classes, 2) scores = np.hstack([scores, scores_gt]) title = "Default boxes: Layer {}".format( g_ssd_model.feat_layers[i]) visualization.plt_bboxes(img, classes, scores, bboxes, neg_marks=neg_marks, title=title) found_matched = True return found_matched
image_name = 'Record_01147.bmp' image_name = 'Record_01147_90.jpg' # image_name = 'Record_01639.bmp' # image_name = 'Record_01639_180.jpg' image_name = 'Record_00690_180.jpg' image_name = 'Record_00001.bmp' image_name = 'scream.jpg' image_path = path + image_name # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/000593.jpg' #two cars # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/001086.jpg' #Two person and one bottle # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/009075.jpg'#many people, not very good # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/009957.jpg' #horse and person # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/005575.jpg' #plane # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/004865.jpg' #horse # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/003552.jpg' #car # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/003431.jpg' #one person and one bottle # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/002808.jpg' #motor and car # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/001672.jpg' #train # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/001195.jpg' #dog # image_name = '../../data/voc/2007_test/VOCdevkit/VOC2007/JPEGImages/000568.jpg' #eagle img = mpimg.imread(image_path) rclasses, rscores, rbboxes = process_image(img) # visualization.bboxes_draw_on_img(img, rclasses, rscores, rbboxes, visualization.colors_plasma) visualization.plt_bboxes(img, rclasses, rscores, rbboxes) plt.show()
rclasses, rscores, rbboxes, nms_threshold=nms_threshold) # Resize bboxes to original image shape. Note: useless for Resize.WARP! rbboxes = np_methods.bboxes_resize(rbbox_img, rbboxes) return rclasses, rscores, rbboxes # Test on some demo image and visualize output. path = '/home/yjin/data/demo/' while True: image_name = input('Enter image name: ') image_path = Path(path + image_name) if image_path.is_file(): img = mpimg.imread(image_path) rclasses, rscores, rbboxes = process_image(img) # visualization.bboxes_draw_on_img(img, rclasses, rscores, rbboxes, visualization.colors_plasma) visualization.plt_bboxes(img, rclasses, [1., 1.], rbboxes) plt.show() elif image_name == 'exit': break else: print('File does not exist.') """ files = os.listdir(path) for image_name in files: image_path = Path(path + image_name) img = mpimg.imread(image_path) rclasses, rscores, rbboxes = process_image(img) # visualization.bboxes_draw_on_img(img, rclasses, rscores, rbboxes, visualization.colors_plasma) visualization.plt_bboxes(img, rclasses, rscores, rbboxes) plt.show() """