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) 对齐运算符,使用平均池化,如 Mask R-CNN 中所述。
- 参数:
input (Tensor[N, C, H, W]) – 输入张量,即具有
N
个元素的批次。每个元素包含C
个维度为H x W
的特征图。如果张量已量化,我们期望批次大小为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]) – 池化后输出的大小(以 bin 或像素为单位),格式为 (高度, 宽度)。
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 中使用
- 返回:
池化的 RoI。
- 返回类型:
Tensor[K, C, output_size[0], output_size[1]]