本文整理汇总了Python中rcnn.processing.nms.py_nms_wrapper方法的典型用法代码示例。如果您正苦于以下问题:Python nms.py_nms_wrapper方法的具体用法?Python nms.py_nms_wrapper怎么用?Python nms.py_nms_wrapper使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rcnn.processing.nms
的用法示例。
在下文中一共展示了nms.py_nms_wrapper方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: pred_demo_mask
# 需要导入模块: from rcnn.processing import nms [as 别名]
# 或者: from rcnn.processing.nms import py_nms_wrapper [as 别名]
def pred_demo_mask(predictor, test_data, imdb, roidb, result_path, vis=False, thresh=1e-1):
"""
wrapper for calculating offline validation for faster data analysis
in this example, all threshold are set by hand
:param predictor: Predictor
:param test_data: data iterator, must be non-shuffle
:param imdb: image database
:param vis: controls visualization
:param thresh: valid detection threshold
:return:
"""
assert vis or not test_data.shuffle
data_names = [k[0] for k in test_data.provide_data]
nms = py_nms_wrapper(config.TEST.NMS)
# limit detections to max_per_image over all classes
max_per_image = -1
num_images = imdb.num_images
# all detections are collected into:
# all_boxes[cls][image] = N x 5 array of detections in
# (x1, y1, x2, y2, score)
i = 0
for im_info, data_batch in test_data:
roi_rec = roidb[i]
scale = im_info[0, 2]
scores, boxes, data_dict, mask_output = im_detect_mask(predictor, data_batch, data_names)
CLASSES = imdb.classes
all_boxes = [[[] for _ in xrange(num_images)]
for _ in xrange(imdb.num_classes)]
all_masks = [[[] for _ in xrange(num_images)]
for _ in xrange(imdb.num_classes)]
label = np.argmax(scores, axis=1)
label = label[:, np.newaxis]
for cls in CLASSES:
cls_ind = CLASSES.index(cls)
cls_boxes = boxes[:, 4 * cls_ind:4 * (cls_ind + 1)]
cls_masks = mask_output[:, cls_ind, :, :]
cls_scores = scores[:, cls_ind, np.newaxis]
#print cls_scores.shape, label.shape
keep = np.where((cls_scores >= thresh) & (label == cls_ind))[0]
cls_masks = cls_masks[keep, :, :]
dets = np.hstack((cls_boxes, cls_scores)).astype(np.float32)[keep, :]
keep = nms(dets)
#print dets.shape, cls_masks.shape
all_boxes[cls_ind] = dets[keep, :]
all_masks[cls_ind] = cls_masks[keep, :, :]
boxes_this_image = [[]] + [all_boxes[j] for j in range(1, len(CLASSES))]
masks_this_image = [[]] + [all_masks[j] for j in range(1, len(CLASSES))]
filename = roi_rec['image'].split("/")[-1]
filename = result_path + '/' + filename.replace('.png', '') + '.jpg'
data_dict = dict(zip(data_names, data_batch.data))
draw_detection_mask(data_dict['data'], boxes_this_image, masks_this_image, scale, filename)
i += 1