本文整理匯總了Python中modeling.roi_xfrom.roi_align.functions.roi_align.RoIAlignFunction方法的典型用法代碼示例。如果您正苦於以下問題:Python roi_align.RoIAlignFunction方法的具體用法?Python roi_align.RoIAlignFunction怎麽用?Python roi_align.RoIAlignFunction使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類modeling.roi_xfrom.roi_align.functions.roi_align
的用法示例。
在下文中一共展示了roi_align.RoIAlignFunction方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: roi_feature_transform
# 需要導入模塊: from modeling.roi_xfrom.roi_align.functions import roi_align [as 別名]
# 或者: from modeling.roi_xfrom.roi_align.functions.roi_align import RoIAlignFunction [as 別名]
def roi_feature_transform(self, blobs_in, rois, method='RoIPoolF',
resolution=7, spatial_scale=1. / 16., sampling_ratio=0):
"""Add the specified RoI pooling method. The sampling_ratio argument
is supported for some, but not all, RoI transform methods.
RoIFeatureTransform abstracts away:
- Use of FPN or not
- Specifics of the transform method
"""
assert method in {'RoIPoolF', 'RoICrop', 'RoIAlign'}, \
'Unknown pooling method: {}'.format(method)
# Single feature level
# rois: holds R regions of interest, each is a 5-tuple
# (batch_idx, x1, y1, x2, y2) specifying an image batch index and a
# rectangle (x1, y1, x2, y2)
if method == 'RoIPoolF':
xform_out = RoIPoolFunction(resolution, resolution, spatial_scale)(blobs_in, rois)
elif method == 'RoICrop':
grid_xy = net_utils.affine_grid_gen(rois, blobs_in.size()[2:], self.grid_size)
grid_yx = torch.stack(
[grid_xy.data[:, :, :, 1], grid_xy.data[:, :, :, 0]], 3).contiguous()
xform_out = RoICropFunction()(blobs_in, Variable(grid_yx).detach())
if cfg.CROP_RESIZE_WITH_MAX_POOL:
xform_out = F.max_pool2d(xform_out, 2, 2)
elif method == 'RoIAlign':
xform_out = RoIAlignFunction(
resolution, resolution, spatial_scale, sampling_ratio)(blobs_in, rois)
return xform_out
示例2: crop_pose_map
# 需要導入模塊: from modeling.roi_xfrom.roi_align.functions import roi_align [as 別名]
# 或者: from modeling.roi_xfrom.roi_align.functions.roi_align import RoIAlignFunction [as 別名]
def crop_pose_map(self, union_feats, part_boxes, flag, crop_size):
triplets_num, part_num, _ = part_boxes.shape
ret = torch.zeros((triplets_num, part_num, union_feats.shape[1], crop_size, crop_size)).cuda(
union_feats.get_device())
part_feats = RoIAlignFunction(crop_size, crop_size, self.spatial_scale, cfg.FAST_RCNN.ROI_XFORM_SAMPLING_RATIO)(
union_feats, part_boxes.view(-1, part_boxes.shape[-1])).view(ret.shape)
valid_n, valid_p = np.where(flag > 0)
if len(valid_n) > 0:
ret[valid_n, valid_p] = part_feats[valid_n, valid_p]
return ret