本文整理匯總了Python中model.utils.cython_bbox.bbox_overlaps方法的典型用法代碼示例。如果您正苦於以下問題:Python cython_bbox.bbox_overlaps方法的具體用法?Python cython_bbox.bbox_overlaps怎麽用?Python cython_bbox.bbox_overlaps使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類model.utils.cython_bbox
的用法示例。
在下文中一共展示了cython_bbox.bbox_overlaps方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: create_roidb_from_box_list
# 需要導入模塊: from model.utils import cython_bbox [as 別名]
# 或者: from model.utils.cython_bbox import bbox_overlaps [as 別名]
def create_roidb_from_box_list(self, box_list, gt_roidb):
assert len(box_list) == self.num_images, \
'Number of boxes must match number of ground-truth images'
roidb = []
for i in range(self.num_images):
boxes = box_list[i]
num_boxes = boxes.shape[0]
overlaps = np.zeros((num_boxes, self.num_classes), dtype=np.float32)
if gt_roidb is not None and gt_roidb[i]['boxes'].size > 0:
gt_boxes = gt_roidb[i]['boxes']
gt_classes = gt_roidb[i]['gt_classes']
gt_overlaps = bbox_overlaps(boxes.astype(np.float),
gt_boxes.astype(np.float))
argmaxes = gt_overlaps.argmax(axis=1)
maxes = gt_overlaps.max(axis=1)
I = np.where(maxes > 0)[0]
overlaps[I, gt_classes[argmaxes[I]]] = maxes[I]
overlaps = scipy.sparse.csr_matrix(overlaps)
roidb.append({
'boxes': boxes,
'gt_classes': np.zeros((num_boxes,), dtype=np.int32),
'gt_overlaps': overlaps,
'flipped': False,
'seg_areas': np.zeros((num_boxes,), dtype=np.float32),
})
return roidb
示例2: create_roidb_from_box_list
# 需要導入模塊: from model.utils import cython_bbox [as 別名]
# 或者: from model.utils.cython_bbox import bbox_overlaps [as 別名]
def create_roidb_from_box_list(self, box_list, gt_roidb):
assert len(box_list) == self.num_images, \
'Number of boxes must match number of ground-truth images'
roidb = []
for i in range(self.num_images):
boxes = box_list[i]
num_boxes = boxes.shape[0]
overlaps = np.zeros((num_boxes, self.num_classes), dtype=np.float32)
if gt_roidb is not None and gt_roidb[i]['boxes'].size > 0:
gt_boxes = gt_roidb[i]['boxes']
gt_classes = gt_roidb[i]['gt_classes']
gt_overlaps = bbox_overlaps(boxes.astype(np.float),
gt_boxes.astype(np.float))
argmaxes = gt_overlaps.argmax(axis=1)
maxes = gt_overlaps.max(axis=1)
I = np.where(maxes > 0)[0]
overlaps[I, gt_classes[argmaxes[I]]] = maxes[I]
overlaps = scipy.sparse.csr_matrix(overlaps)
roidb.append({
'boxes': boxes,
'gt_classes': np.zeros((num_boxes,), dtype=np.int32),
'gt_overlaps': overlaps,
'flipped': False,
'seg_areas': np.zeros((num_boxes,), dtype=np.float32),
})
return roidb
示例3: _sample_rois
# 需要導入模塊: from model.utils import cython_bbox [as 別名]
# 或者: from model.utils.cython_bbox import bbox_overlaps [as 別名]
def _sample_rois(all_rois, proposals, num_classes):
"""Generate a random sample of RoIs comprising foreground and background
examples.
"""
# overlaps: (rois x gt_boxes)
gt_boxes = proposals['gt_boxes']
gt_labels = proposals['gt_classes']
gt_scores = proposals['gt_scores']
overlaps = bbox_overlaps(
np.ascontiguousarray(all_rois[0], dtype=np.float),
np.ascontiguousarray(gt_boxes, dtype=np.float))
try :
gt_assignment = overlaps.argmax(axis=1)
max_overlaps = overlaps.max(axis=1)
except :
pdb.set_trace()
labels = gt_labels[gt_assignment, 0]
cls_loss_weights = gt_scores[gt_assignment, 0]
# Select foreground RoIs as those with >= FG_THRESH overlap
fg_inds = np.where(max_overlaps >= 0.5)[0]
# Select background RoIs as those within [BG_THRESH_LO, BG_THRESH_HI)
bg_inds = np.where(max_overlaps < 0.5)[0]
labels[bg_inds] = 0
real_labels = np.zeros((labels.shape[0], 21))
for i in range(labels.shape[0]) :
real_labels[i, labels[i]] = 1
rois = all_rois
return real_labels, rois, cls_loss_weights