roi_align¶
- torchvision.ops.roi_align(input: Tensor, boxes: Union[Tensor, List[Tensor]], output_size: None, spatial_scale: float = 1.0, sampling_ratio: int = - 1, aligned: bool = False) Tensor [源代码]¶
执行区域感兴趣 (RoI) 对齐 (Align) 算子,使用平均池化,如 Mask R-CNN 中所述。
- 参数:
input (Tensor[N, C, H, W]) – 输入张量,即包含
N
个元素的批次。每个元素包含维度为H x W
的C
个特征图。如果张量是量化的,我们期望批次大小N == 1
。boxes (Tensor[K, 5] 或 List[Tensor[L, 4]]) – 边界框坐标,格式为 (x1, y1, x2, y2),表示要从中提取区域的位置。坐标必须满足
0 <= x1 < x2
和0 <= y1 < y2
。如果传入单个 Tensor,则第一列应包含批次中相应元素的索引,即介于[0, N - 1]
之间的数字。如果传入 Tensor 列表,则每个 Tensor 将对应批次中一个元素 i 的边界框。output_size (int 或 Tuple[int, int]) – 执行池化后输出的大小(以 bins 或像素为单位),格式为 (高度, 宽度)。
spatial_scale (float) – 一个缩放因子,用于将边界框坐标映射到输入坐标。例如,如果您的边界框是基于 224x224 图像的比例定义的,而您的输入是 112x112 的特征图(原始图像缩放 0.5 倍得到),您会希望将此值设置为 0.5。默认值: 1.0
sampling_ratio (int) – 用于计算每个池化输出 bin 的值的插值网格中的采样点数量。如果 > 0,则每个 bin 使用精确的
sampling_ratio x sampling_ratio
个采样点。如果 <= 0,则使用自适应数量的网格点(计算方法为ceil(roi_width / output_width)
,高度同理)。默认值: -1aligned (bool) – 如果为 False,则使用旧版实现。如果为 True,则将边界框坐标向左上移动 -0.5 像素,以便与相邻的两个像素索引更好地对齐。Detectron2 中使用了此版本。
- 返回值:
池化后的 RoIs。
- 返回类型:
Tensor[K, C, output_size[0], output_size[1]]