gluoncv.data.transforms¶
此文件包含对视觉任务至关重要的各种变换。
图像变换¶
使用 OpenCV 调整图像大小。 |
|
将长边调整为指定大小。 |
|
将短边调整为指定大小,但确保长边限制在最大尺寸。 |
|
对输入图像应用随机 PCA 光照噪声。 |
|
随机扩展原始图像并添加边界,这等同于将原始图像放置在更大的画布上。 |
|
按概率随机沿水平和垂直方向翻转图像。 |
|
调整图像大小以适应给定区域并保持宽高比。 |
|
从数组中裁剪 10 个区域。 |
实例分割掩码变换¶
|
根据图像翻转方向翻转多边形。 |
|
根据图像调整大小操作调整多边形的大小。 |
|
将多边形列表转换为全尺寸二值掩码 |
|
将掩码填充到完整图像大小 |
预设变换¶
我们包含了用于重现不同论文中描述的 SOTA 性能的预设。这是一个补充部分,API 可能会发生变化。
Single Shot Multibox 目标检测器¶
一个加载所有图像,并通过应用归一化将其转换为张量的实用函数。 |
|
一个将所有图像通过应用归一化转换为网络输入的张量的实用函数。 |
|
默认 SSD 训练变换,包含大量的图像增强。 |
|
默认 SSD 验证变换。 |
Faster RCNN¶
一个加载所有图像,并通过应用归一化将其转换为张量的实用函数。 |
|
一个将所有图像通过应用归一化转换为网络输入的张量的实用函数。 |
|
默认 Faster-RCNN 训练变换。 |
|
默认 Faster-RCNN 验证变换。 |
Mask RCNN¶
一个加载所有图像,并通过应用归一化将其转换为张量的实用函数。 |
|
一个将所有图像通过应用归一化转换为网络输入的张量的实用函数。 |
|
默认 Mask RCNN 训练变换。 |
|
默认 Mask RCNN 验证变换。 |
YOLO¶
一个加载所有图像,并通过应用归一化将其转换为张量的实用函数。 |
|
一个将所有图像通过应用归一化转换为网络输入的张量的实用函数。 |
|
默认 YOLO 训练变换,包含大量的图像增强。 |
|
默认 YOLO 验证变换。 |
API 参考¶
边界框变换函数。
-
gluoncv.data.transforms.bbox.
affine_transform
(pt, t)[source]¶ 对给定变换矩阵 t 的边界框应用仿射变换。
- 参数
pt (numpy.ndarray) – 形状为 (1, 2) 的边界框。
t (numpy.ndarray) – 形状为 (2, 3) 的变换矩阵。
- 返回值
形状为 (1, 2) 的新边界框。
- 返回类型
-
gluoncv.data.transforms.bbox.
crop
(bbox, crop_box=None, allow_outside_center=True)[source]¶ 根据切片区域裁剪边界框。
此方法主要与图像裁剪一起使用,以确保边界框适合裁剪后的图像。
- 参数
bbox (numpy.ndarray) – 形状为 (N, 4+) 的 Numpy.ndarray,其中 N 是边界框的数量。第二个轴表示边界框的属性。具体来说,这些是 \((x_{min}, y_{min}, x_{max}, y_{max})\),我们允许坐标之外的其他属性,这些属性在边界框变换期间保持不变。
crop_box (tuple) – 长度为 4 的元组。\((x_{min}, y_{min}, width, height)\)
allow_outside_center (bool) – 如果为 False,则移除中心位于裁剪区域之外的边界框。
- 返回值
形状为 (M, 4+) 的裁剪后的边界框,其中 M <= N。
- 返回类型
-
gluoncv.data.transforms.bbox.
flip
(bbox, size, flip_x=False, flip_y=False)[source]¶ 根据图像翻转方向翻转边界框。
- 参数
bbox (numpy.ndarray) – 形状为 (N, 4+) 的 Numpy.ndarray,其中 N 是边界框的数量。第二个轴表示边界框的属性。具体来说,这些是 \((x_{min}, y_{min}, x_{max}, y_{max})\),我们允许坐标之外的其他属性,这些属性在边界框变换期间保持不变。
size (tuple) – 长度为 2 的元组:(宽度, 高度)。
flip_x (bool) – 是否水平翻转。
flip_y (bool) – 是否垂直翻转。
- 返回值
翻转后的边界框(保持原始形状)。
- 返回类型
-
gluoncv.data.transforms.bbox.
get_affine_transform
(center, scale, rot, output_size, shift=array([0.0, 0.0], dtype=float32), inv=0)[source]¶ 根据中心点、缩放因子和旋转角度获取仿射变换矩阵。
- 参数
- 返回值
仿射矩阵。
- 返回类型
-
gluoncv.data.transforms.bbox.
resize
(bbox, in_size, out_size)[source]¶ 根据图像调整大小操作调整边界框的大小。
- 参数
bbox (numpy.ndarray) – 形状为 (N, 4+) 的 Numpy.ndarray,其中 N 是边界框的数量。第二个轴表示边界框的属性。具体来说,这些是 \((x_{min}, y_{min}, x_{max}, y_{max})\),我们允许坐标之外的其他属性,这些属性在边界框变换期间保持不变。
in_size (tuple) – 长度为2的元组:输入尺寸(宽度,高度)。
out_size (tuple) – 长度为2的元组:输出尺寸(宽度,高度)。
- 返回值
调整大小后的边界框,保持原始形状。
- 返回类型
-
gluoncv.data.transforms.bbox.
translate
(bbox, x_offset=0, y_offset=0)[source]¶ 按偏移量平移边界框。
- 参数
bbox (numpy.ndarray) – 形状为 (N, 4+) 的 Numpy.ndarray,其中 N 是边界框的数量。第二个轴表示边界框的属性。具体来说,这些是 \((x_{min}, y_{min}, x_{max}, y_{max})\),我们允许坐标之外的其他属性,这些属性在边界框变换期间保持不变。
- 返回值
平移后的边界框,保持原始形状。
- 返回类型
额外的图像变换。
-
class
gluoncv.data.transforms.block.
RandomCrop
(size, pad=None, interpolation=2)[source]¶ 随机裁剪 src 到 size (宽度, 高度)。填充是可选的。如果 src 小于 size,则对结果进行上采样。
- 参数
- 输入
data: 形状为 (Hi x Wi x C) 的输入张量。
- 输出
out: 形状为 (size[0] x size[1] x C) 或 (size x size x C) 的输出张量。
-
class
gluoncv.data.transforms.block.
RandomErasing
(probability=0.5, s_min=0.02, s_max=0.4, ratio=0.3, mean=(125.31, 122.96, 113.86))[source]¶ 以 probability 的概率,随机擦除 src 中面积在 s_min 和 s_max 之间的区域。ratio 控制宽度和高度的比例。mean 表示擦除区域的值。
- 参数
- 输入
data: 形状为 (Hi x Wi x C) 的输入张量。
- 输出
out: 形状为 (Hi x Wi x C) 的输出张量。
mxnet.image 的扩展图像变换。
-
gluoncv.data.transforms.image.
imresize
(src, w, h, interp=1)[source]¶ 使用 OpenCV 调整图像大小。
这是 mxnet.image.imresize 的重复函数,以保持命名空间一致性。
- 参数
- 返回值
out – 此函数的输出。
- 返回类型
NDArray 或 NDArray 列表
示例
>>> import mxnet as mx >>> from gluoncv import data as gdata >>> img = mx.random.uniform(0, 255, (300, 300, 3)).astype('uint8') >>> print(img.shape) (300, 300, 3) >>> img = gdata.transforms.image.imresize(img, 200, 200) >>> print(img.shape) (200, 200, 3)
-
gluoncv.data.transforms.image.
random_expand
(src, max_ratio=4, fill=0, keep_ratio=True)[source]¶ 随机扩展原始图像并添加边界,这等同于将原始图像放置在更大的画布上。
- 参数
- 返回值
mxnet.nd.NDArray – 增强后的图像。
tuple – 元组,包含 (offset_x, offset_y, new_width, new_height)
-
gluoncv.data.transforms.image.
random_pca_lighting
(src, alphastd, eigval=None, eigvec=None)[source]¶ 对输入图像应用随机 PCA 光照噪声。
- 参数
img (mxnet.nd.NDArray) – 输入图像,格式为 HWC。
alphastd (float) – 范围在 [0, 255] 的图像的噪声水平 [0, 1)。
eigval (list of floats.) – 特征值,默认为 [55.46, 4.794, 1.148]。
eigvec (nested lists of floats) –
形状为 (3, 3) 的特征向量,默认为 [[-0.5675, 0.7192, 0.4009],
[-0.5808, -0.0045, -0.8140], [-0.5836, -0.6948, 0.4203]].
- 返回值
增强后的图像。
- 返回类型
mxnet.nd.NDArray
-
gluoncv.data.transforms.image.
resize_contain
(src, size, fill=0)[source]¶ 调整图像大小以适应给定区域并保持宽高比。
如果 size 中的高度和宽度都大于输入图像的高度和宽度,则图像将居中放置并进行适当的填充以匹配 size。否则,输入图像将被缩放以适应大小为 size 的画布,同时保持宽高比。
-
gluoncv.data.transforms.image.
resize_long
(src, size, interp=2)[source]¶ 将较长边调整到指定大小。注意:resize_long 使用 OpenCV(非 CV2 Python 库)。必须使用 OpenCV 构建 MXNet 才能使 resize_long 工作。通过将原始图像的较长边设置为指定大小并相应地设置较短边来调整图像大小。这将确保新图像符合指定的 size。调整大小函数调用自 OpenCV。
- 参数
src (NDArray) – 原始图像。
size (int) – 较长边要设置的长度。
interp (int, optional, default=2) – 用于调整图像大小的插值方法。可能的值:0: 最近邻插值。1: 双线性插值。2: 基于区域的插值(使用像素区域关系进行重采样)。这可能是图像缩小的首选方法,因为它能获得无摩尔纹的结果。但在放大图像时,它类似于最近邻方法。(默认使用)。3: 4x4 像素邻域上的双三次插值。4: 8x8 像素邻域上的 Lanczos 插值。9: 放大使用三次插值,缩小使用区域插值,其他情况使用双线性插值 10: 从上面提到的插值方法中随机选择。注意:在缩小图像时,基于区域的插值通常效果最好;而在放大图像时,双三次插值(慢)或双线性插值(较快且效果尚可)通常效果最好。更多详情请参阅 OpenCV 文档,请参考 https://docs.opencv.ac.cn/master/da/d54/group__imgproc__transform.html。
- 返回值
包含调整大小后图像的 ‘NDArray’。
- 返回类型
NDArray
示例
>>> with open("flower.jpeg", 'rb') as fp: ... str_image = fp.read() ... >>> image = mx.img.imdecode(str_image) >>> image <NDArray 2321x3482x3 @cpu(0)> >>> size = 640 >>> new_image = mx.img.resize_long(image, size) >>> new_image <NDArray 386x640x3 @cpu(0)>
-
gluoncv.data.transforms.image.
resize_short_within
(src, short, max_size=1024, mult_base=1, interp=2)[source]¶ 将较短边调整到指定大小,但确保最长边不超过最大大小。注意:resize_short_within 使用 OpenCV(非 CV2 Python 库)。必须使用 OpenCV 构建 MXNet 才能使 resize_short_within 工作。通过将原始图像的较短边设置为指定大小并相应地设置较长边来调整图像大小。此函数还会确保新图像即使在较长边也不会超过
max_size
。调整大小函数调用自 OpenCV。- 参数
src (NDArray) – 原始图像。
short (int) – 将较短边调整到
short
。max_size (int) – 确保新图像的较长边小于
max_size
。mult_base (int, default is 1) – 宽度和高度将四舍五入到 mult_base 的倍数。
interp (int, optional, default=2) – 用于调整图像大小的插值方法。可能的值:0: 最近邻插值。1: 双线性插值。2: 基于区域的插值(使用像素区域关系进行重采样)。这可能是图像缩小的首选方法,因为它能获得无摩尔纹的结果。但在放大图像时,它类似于最近邻方法。(默认使用)。3: 4x4 像素邻域上的双三次插值。4: 8x8 像素邻域上的 Lanczos 插值。9: 放大使用三次插值,缩小使用区域插值,其他情况使用双线性插值 10: 从上面提到的插值方法中随机选择。注意:在缩小图像时,基于区域的插值通常效果最好;而在放大图像时,双三次插值(慢)或双线性插值(较快且效果尚可)通常效果最好。更多详情请参阅 OpenCV 文档,请参考 https://docs.opencv.ac.cn/master/da/d54/group__imgproc__transform.html。
- 返回值
包含调整大小后图像的 ‘NDArray’。
- 返回类型
NDArray
示例
>>> with open("flower.jpeg", 'rb') as fp: ... str_image = fp.read() ... >>> image = mx.img.imdecode(str_image) >>> image <NDArray 2321x3482x3 @cpu(0)> >>> new_image = resize_short_within(image, short=800, max_size=1000) >>> new_image <NDArray 667x1000x3 @cpu(0)> >>> new_image = resize_short_within(image, short=800, max_size=1200) >>> new_image <NDArray 800x1200x3 @cpu(0)> >>> new_image = resize_short_within(image, short=800, max_size=1200, mult_base=32) >>> new_image <NDArray 800x1184x3 @cpu(0)>
-
gluoncv.data.transforms.image.
ten_crop
(src, size)[source]¶ 从数组中裁剪 10 个区域。这与以下操作相同:http://chainercv.readthedocs.io/en/stable/reference/transforms.html#ten-crop
此方法裁剪 10 个区域。所有区域的形状都为 :obj`size`。这些区域包括 1 个中心裁剪、4 个角部裁剪及其水平翻转版本。裁剪的顺序如下:* 中心裁剪 * 左上角裁剪 * 左下角裁剪 * 右上角裁剪 * 右下角裁剪 * 中心裁剪(水平翻转) * 左上角裁剪(水平翻转) * 左下角裁剪(水平翻转) * 右上角裁剪(水平翻转) * 右下角裁剪(水平翻转)
- 参数
src (mxnet.nd.NDArray) – 输入图像。
size (tuple) – 长度为2的元组,表示裁剪区域的尺寸(宽度,高度)。
- 返回值
裁剪后的图像,形状为 (10, size[1], size[0], C)
- 返回类型
mxnet.nd.NDArray
实验性边界框变换。
-
gluoncv.data.transforms.experimental.bbox.
bbox_crop
(bbox, crop_box=None, allow_outside_center=True)¶ 根据切片区域裁剪边界框。
此方法主要与图像裁剪一起使用,以确保边界框适合裁剪后的图像。
- 参数
bbox (numpy.ndarray) – 形状为 (N, 4+) 的 Numpy.ndarray,其中 N 是边界框的数量。第二个轴表示边界框的属性。具体来说,这些是 \((x_{min}, y_{min}, x_{max}, y_{max})\),我们允许坐标之外的其他属性,这些属性在边界框变换期间保持不变。
crop_box (tuple) – 长度为 4 的元组。\((x_{min}, y_{min}, width, height)\)
allow_outside_center (bool) – 如果为 False,则移除中心位于裁剪区域之外的边界框。
- 返回值
形状为 (M, 4+) 的裁剪后的边界框,其中 M <= N。
- 返回类型
-
gluoncv.data.transforms.experimental.bbox.
bbox_iou
(bbox_a, bbox_b, offset=0)[source]¶ 计算两个边界框的交并比(IOU)。
- 参数
bbox_a (numpy.ndarray) – 形状为 \((N, 4)\) 的 ndarray。
bbox_b (numpy.ndarray) – 形状为 \((M, 4)\) 的 ndarray。
offset (float or int, default is 0) –
offset
用于控制宽度(或高度)是否计算为 (right - left +offset
)。注意,对于范围在[0, 1]
的归一化边界框,偏移量必须为 0。
- 返回值
形状为 \((N, M)\) 的 ndarray,表示 bbox_a 和 bbox_b 中每对边界框之间的 IOU。
- 返回类型
-
gluoncv.data.transforms.experimental.bbox.
random_crop_with_constraints
(bbox, size, min_scale=0.3, max_scale=1, max_aspect_ratio=2, constraints=None, max_trial=50)[source]¶ 在具有边界框约束的情况下随机裁剪图像。
此数据增强用于训练单次多框检测器 (Single Shot Multibox Detector) [#]_。更多详情请参阅原始论文的数据增强部分。.. [#] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy,
Scott Reed, Cheng-Yang Fu, Alexander C. Berg. SSD: Single Shot MultiBox Detector. ECCV 2016.
- 参数
bbox (numpy.ndarray) – 形状为 (N, 4+) 的 Numpy.ndarray,其中 N 是边界框的数量。第二个轴表示边界框的属性。具体来说,这些是 \((x_{min}, y_{min}, x_{max}, y_{max})\),我们允许坐标之外的其他属性,这些属性在边界框变换期间保持不变。
size (tuple) – 长度为2的元组,表示图像形状(宽度,高度)。
min_scale (float) – 裁剪区域与原始图像之间的最小比例。默认值为
0.3
。max_scale (float) – 裁剪区域与原始图像之间的最大比例。默认值为
1
。max_aspect_ratio (float) – 裁剪区域的最大宽高比。默认值为
2
。constraints (iterable of tuples) – 约束条件的迭代器。每个约束条件应为
(min_iou, max_iou)
格式。如果将min_iou
或max_iou
设置为None
,则表示没有该方向上的约束。如果此参数默认为None
,则将使用((0.1, None), (0.3, None), (0.5, None), (0.7, None), (0.9, None), (None, 1))
。max_trial (int) – 在无论如何退出之前,对每个约束条件进行的最大尝试次数。
- 返回值
numpy.ndarray – 裁剪后的边界框,形状为
(M, 4+)
,其中 M <= N。tuple – 长度为4的元组,表示 (x_offset, y_offset, new_width, new_height)。
实验性图像变换。
-
gluoncv.data.transforms.experimental.image.
np_random_color_distort
(image, data_rng=None, eig_val=None, eig_vec=None, var=0.4, alphastd=0.1)[source]¶ 随机颜色抖动的 Numpy 版本。
- 参数
image (numpy.ndarray) – 原始图像。
data_rng (numpy.random.rng) – Numpy 随机数生成器。
eig_val (numpy.ndarray) – 特征值。
eig_vec (numpy.ndarray) – 特征向量。
var (float) – 颜色抖动的方差。
alphastd (type) – 亮度的抖动程度。
- 返回值
抖动后的图像
- 返回类型
-
gluoncv.data.transforms.experimental.image.
random_color_distort
(src, brightness_delta=32, contrast_low=0.5, contrast_high=1.5, saturation_low=0.5, saturation_high=1.5, hue_delta=18)[source]¶ 随机扭曲图像颜色空间。注意输入图像应在原始范围 [0, 255] 内。
- 参数
- 返回值
扭曲后的图像,格式为 HWC。
- 返回类型
mxnet.nd.NDArray
https://arxiv.org/abs/1512.02325 中描述的变换。
-
class
gluoncv.data.transforms.presets.ssd.
SSDDALIPipeline
(num_workers, device_id, batch_size, data_shape, anchors, dataset_reader, seed=- 1)[source]¶ 带有 SSD 训练变换的 DALI Pipeline。
- 参数
device_id (int) – DALI pipeline 参数 - 设备 ID。
num_workers – DALI pipeline 参数 - CPU worker 数量。
batch_size – 批量大小。
data_shape (int) – 高度和宽度。(在 SSD 中高度等于宽度)
anchors (float list) – 从 SSD 网络生成的归一化 [ltrb] 锚框。形状长度为
N*4
,因为它是一个包含 N 个锚框的列表,每个锚框都有 4 个浮点元素。dataset_reader (float) – 部分 pipeline 对象,其 __call__ 函数必须返回 (images, bboxes, labels) DALI EdgeReference 元组。
seed (int) – 随机种子。默认值为 -1,表示不设置种子。
-
class
gluoncv.data.transforms.presets.ssd.
SSDDefaultTrainTransform
(width, height, anchors=None, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), iou_thresh=0.5, box_norm=(0.1, 0.1, 0.2, 0.2), **kwargs)[source]¶ 默认 SSD 训练变换,包含大量的图像增强。
- 参数
width (int) – 图像宽度。
height (int) – 图像高度。
anchors (mxnet.nd.NDArray, optional) –
从 SSD 网络生成的锚框,形状必须为
(1, N, 4)
。由于锚框在整个批次中共享,因此第一维为1
。N
是每张图像的锚框数量。提示
如果 anchors 为
None
,则变换不会生成训练目标。否则,它将生成训练目标以加速训练阶段,因为我们将一些工作负载推送到 CPU workers 而非 GPU。mean (array-like of size 3) – 要从图像张量中减去的平均像素值。默认为 [0.485, 0.456, 0.406]。
std (array-like of size 3) – 要从图像中除以的标准差。默认为 [0.229, 0.224, 0.225]。
iou_thresh (float) – 用于最大匹配的 IOU 重叠阈值,默认为 0.5。
box_norm (array-like of size 4, default is (0.1, 0.1, 0.2, 0.2)) – 要从编码值中除以的标准差值。
-
class
gluoncv.data.transforms.presets.ssd.
SSDDefaultValTransform
(width, height, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 默认 SSD 验证变换。
-
gluoncv.data.transforms.presets.ssd.
load_test
(filenames, short, max_size=1024, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 加载所有图像并应用归一化将其转换为张量的实用函数。此函数支持单个文件名或文件名迭代器。
- 参数
- 返回值
形状为 (1, 3, H, W) 的 mxnet NDArray 作为网络输入,以及一个 numpy ndarray 作为用于显示的原始未归一化彩色图像。如果提供了多个图像名称,则返回两个列表。您可以使用 zip()` 将其组合。
- 返回类型
(mxnet.NDArray, numpy.ndarray) 或此类元组的列表
-
gluoncv.data.transforms.presets.ssd.
transform_test
(imgs, short=416, max_size=1024, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 将所有图像转换为张量作为网络输入并应用归一化的实用函数。此函数支持单个 NDArray 或 NDArray 迭代器。
- 参数
- 返回值
形状为 (1, 3, H, W) 的 mxnet NDArray 作为网络输入,以及一个 numpy ndarray 作为用于显示的原始未归一化彩色图像。如果提供了多个图像名称,则返回两个列表。您可以使用 zip()` 将其组合。
- 返回类型
(mxnet.NDArray, numpy.ndarray) 或此类元组的列表
RCNN 系列的变换。
-
class
gluoncv.data.transforms.presets.rcnn.
FasterRCNNDefaultTrainTransform
(short=600, max_size=1000, net=None, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), box_norm=(1.0, 1.0, 1.0, 1.0), num_sample=256, pos_iou_thresh=0.7, neg_iou_thresh=0.3, pos_ratio=0.5, flip_p=0.5, ashape=128, multi_stage=False, **kwargs)[source]¶ 默认 Faster-RCNN 训练变换。
- 参数
short (int/tuple, default is 600) – 将图像的较短边调整到
short
。如果是一个元组,则在给定范围内随机调整图像的较短边。max_size (int, default is 1000) – 确保图像的较长边小于
max_size
。net (mxnet.gluon.HybridBlock, optional) –
faster-rcnn 网络。
提示
如果 net 为
None
,则变换不会生成训练目标。否则,它将生成训练目标以加速训练阶段,因为我们将一些工作负载推送到 CPU workers 而非 GPU。mean (array-like of size 3) – 要从图像张量中减去的平均像素值。默认为 [0.485, 0.456, 0.406]。
std (array-like of size 3) – 要从图像中除以的标准差。默认为 [0.229, 0.224, 0.225]。
box_norm (array-like of size 4, default is (1., 1., 1., 1.)) – 要从编码值中除以的标准差值。
num_sample (int, default is 256) – RPN 目标的样本数量。
pos_iou_thresh (float, default is 0.7) – 大于
pos_iou_thresh
的锚框被视为正样本。neg_iou_thresh (float, default is 0.3) – 小于
neg_iou_thresh
的锚框被视为负样本。IOU 在pos_iou_thresh
和neg_iou_thresh
之间的锚框被忽略。pos_ratio (float, default is 0.5) –
pos_ratio
定义了要采样的正样本数量(pos_ratio * num_sample
)。flip_p (float, default is 0.5) – 水平翻转的概率,默认为 0.5 表示随机水平翻转。您可以将其设置为 0 以禁用随机翻转,或设置为 1 以强制翻转。
ashape (int, default is 128) – 定义用于目标生成的预生成锚框的形状
multi_stage (boolean, default is False) – 网络是否输出多阶段特征。
-
class
gluoncv.data.transforms.presets.rcnn.
FasterRCNNDefaultValTransform
(short=600, max_size=1000, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 默认 Faster-RCNN 验证变换。
-
class
gluoncv.data.transforms.presets.rcnn.
MaskRCNNDefaultTrainTransform
(short=600, max_size=1000, net=None, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), box_norm=(1.0, 1.0, 1.0, 1.0), num_sample=256, pos_iou_thresh=0.7, neg_iou_thresh=0.3, pos_ratio=0.5, ashape=128, multi_stage=False, **kwargs)[source]¶ 默认 Mask RCNN 训练变换。
- 参数
short (int/tuple, default is 600) – 将图像的较短边调整到
short
。如果是一个元组,则在给定范围内随机调整图像的较短边。max_size (int, default is 1000) – 确保图像的较长边小于
max_size
。net (mxnet.gluon.HybridBlock, optional) –
Mask R-CNN 网络。
提示
如果 net 为
None
,则变换不会生成训练目标。否则,它将生成训练目标以加速训练阶段,因为我们将一些工作负载推送到 CPU workers 而非 GPU。mean (array-like of size 3) – 要从图像张量中减去的平均像素值。默认为 [0.485, 0.456, 0.406]。
std (array-like of size 3) – 要从图像中除以的标准差。默认为 [0.229, 0.224, 0.225]。
box_norm (array-like of size 4, default is (1., 1., 1., 1.)) – 要从编码值中除以的标准差值。
num_sample (int, default is 256) – RPN 目标的样本数量。
pos_iou_thresh (float, default is 0.7) – 大于
pos_iou_thresh
的锚框被视为正样本。neg_iou_thresh (float, default is 0.3) – 小于
neg_iou_thresh
的锚框被视为负样本。IOU 在pos_iou_thresh
和neg_iou_thresh
之间的锚框被忽略。pos_ratio (float, default is 0.5) –
pos_ratio
定义了要采样的正样本数量(pos_ratio * num_sample
)。ashape (int, default is 128) – 定义用于目标生成的预生成锚框的形状
multi_stage (boolean, default is False) – 网络是否输出多阶段特征。
-
class
gluoncv.data.transforms.presets.rcnn.
MaskRCNNDefaultValTransform
(short=600, max_size=1000, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 默认 Mask RCNN 验证变换。
-
gluoncv.data.transforms.presets.rcnn.
load_test
(filenames, short=600, max_size=1000, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 加载所有图像并应用归一化将其转换为张量的实用函数。此函数支持单个文件名或文件名列表。
- 参数
- 返回值
形状为 (1, 3, H, W) 的 mxnet NDArray 作为网络输入,以及一个 numpy ndarray 作为用于显示的原始未归一化彩色图像。如果提供了多个图像名称,则返回两个列表。您可以使用 zip()` 将其组合。
- 返回类型
(mxnet.NDArray, numpy.ndarray) 或此类元组的列表
-
gluoncv.data.transforms.presets.rcnn.
transform_test
(imgs, short=600, max_size=1000, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 将所有图像转换为张量作为网络输入并应用归一化的实用函数。此函数支持单个 NDArray 或 NDArray 迭代器。
- 参数
- 返回值
形状为 (1, 3, H, W) 的 mxnet NDArray 作为网络输入,以及一个 numpy ndarray 作为用于显示的原始未归一化彩色图像。如果提供了多个图像名称,则返回两个列表。您可以使用 zip()` 将其组合。
- 返回类型
(mxnet.NDArray, numpy.ndarray) 或此类元组的列表
YOLO 系列的变换。
-
class
gluoncv.data.transforms.presets.yolo.
YOLO3DefaultTrainTransform
(width, height, net=None, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), mixup=False, **kwargs)[source]¶ 默认 YOLO 训练变换,包含大量的图像增强。
- 参数
width (int) – 图像宽度。
height (int) – 图像高度。
net (mxnet.gluon.HybridBlock, optional) –
yolo 网络。
提示
如果 net 为
None
,则变换不会生成训练目标。否则,它将生成训练目标以加速训练阶段,因为我们将一些工作负载推送到 CPU workers 而非 GPU。mean (array-like of size 3) – 要从图像张量中减去的平均像素值。默认为 [0.485, 0.456, 0.406]。
std (array-like of size 3) – 要从图像中除以的标准差。默认为 [0.229, 0.224, 0.225]。
iou_thresh (float) – 用于最大匹配的 IOU 重叠阈值,默认为 0.5。
box_norm (array-like of size 4, default is (0.1, 0.1, 0.2, 0.2)) – 要从编码值中除以的标准差值。
-
class
gluoncv.data.transforms.presets.yolo.
YOLO3DefaultValTransform
(width, height, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 默认 YOLO 验证变换。
-
gluoncv.data.transforms.presets.yolo.
load_test
(filenames, short=416, max_size=1024, stride=1, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 加载所有图像并应用归一化将其转换为张量的实用函数。此函数支持单个文件名或文件名列表。
- 参数
filenames (str or list of str) – 要加载的图像文件名。
短边 (int, 默认值=416) – 将图像短边缩放到该 short 值并保持纵横比。注意 YOLO 网络
最大尺寸 (int, 可选) – 图像适配后的最大长边长度。用于限制输入图像的形状。由于我们的 YOLO 实现支持任意输入尺寸,因此纵横比保持不变。
步幅 (int, 可选, 默认值为 1) – 由于边界框预测模块的精确对齐而导致的步幅约束。图像的宽度和高度必须是 stride 的倍数。使用 stride = 1 可以放宽此约束。
mean (iterable of float) – 平均像素值。
std (iterable of float) – 像素值的标准差。
- 返回值
形状为 (1, 3, H, W) 的 mxnet NDArray 作为网络输入,以及一个 numpy ndarray 作为用于显示的原始未归一化彩色图像。如果提供了多个图像名称,则返回两个列表。您可以使用 zip()` 将其组合。
- 返回类型
(mxnet.NDArray, numpy.ndarray) 或此类元组的列表
-
gluoncv.data.transforms.presets.yolo.
transform_test
(imgs, short=416, max_size=1024, stride=1, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))[source]¶ 将所有图像转换为张量作为网络输入并应用归一化的实用函数。此函数支持单个 NDArray 或 NDArray 迭代器。
- 参数
imgs (NDArray or iterable of NDArray) – 要变换的图像。
短边 (int, 默认值=416) – 将图像短边缩放到该 short 值并保持纵横比。注意 YOLO 网络
最大尺寸 (int, 可选) – 图像适配后的最大长边长度。用于限制输入图像的形状。由于我们的 YOLO 实现支持任意输入尺寸,因此纵横比保持不变。
步幅 (int, 可选, 默认值为 1) – 由于边界框预测模块的精确对齐而导致的步幅约束。图像的宽度和高度必须是 stride 的倍数。使用 stride = 1 可以放宽此约束。
mean (iterable of float) – 平均像素值。
std (iterable of float) – 像素值的标准差。
- 返回值
形状为 (1, 3, H, W) 的 mxnet NDArray 作为网络输入,以及一个 numpy ndarray 作为用于显示的原始未归一化彩色图像。如果提供了多个图像名称,则返回两个列表。您可以使用 zip()` 将其组合。
- 返回类型
(mxnet.NDArray, numpy.ndarray) 或此类元组的列表