计算机视觉技术-常用的图像增广方法图像翻转和裁剪

在对常用图像增广方法的探索时,我们将使用下面这个尺寸为400×500的图像作为示例。

python 复制代码
d2l.set_figsize()
img = image.imread('../img/cat1.jpg')
d2l.plt.imshow(img.asnumpy());

07:07:52 ../src/storage/storage.cc:196: Using Pooled (Naive) StorageManager for CPU

大多数图像增广方法都具有一定的随机性。为了便于观察图像增广的效果,我们下面定义辅助函数apply。 此函数在输入图像img上多次运行图像增广方法aug并显示所有结果。

python 复制代码
def apply(img, aug, num_rows=2, num_cols=4, scale=1.5):
    Y = [aug(img) for _ in range(num_rows * num_cols)]
    d2l.show_images(Y, num_rows, num_cols, scale=scale)

左右翻转图像通常不会改变对象的类别。这是最早且最广泛使用的图像增广方法之一。 接下来,我们使用transforms模块来创建RandomFlipLeftRight实例,这样就各有50%的几率使图像向左或向右翻转。

python 复制代码
apply(img, torchvision.transforms.RandomHorizontalFlip())

上下翻转图像不如左右图像翻转那样常用。但是,至少对于这个示例图像,上下翻转不会妨碍识别。接下来,我们创建一个RandomFlipTopBottom实例,使图像各有50%的几率向上或向下翻转。

pythyon 复制代码
apply(img, torchvision.transforms.RandomVerticalFlip())

我们可以通过对图像进行随机裁剪,使物体以不同的比例出现在图像的不同位置。 这也可以降低模型对目标位置的敏感性。

下面的代码将随机裁剪一个面积为原始面积10%到100%的区域,该区域的宽高比从0.5~2之间随机取值。 然后,区域的宽度和高度都被缩放到200像素。 在本节中(除非另有说明),a和b之间的随机数指的是在区间a,b中通过均匀采样获得的连续值。

python 复制代码
shape_aug = torchvision.transforms.RandomResizedCrop(
    (200, 200), scale=(0.1, 1), ratio=(0.5, 2))
apply(img, shape_aug)
相关推荐
zzm6282 分钟前
CVPR 2018 最佳论文精读:Taskonomy——计算机视觉任务之间的迁移学习
计算机视觉·迁移学习·cvpr·论文精读
Zentceh6 小时前
全彩夜视 vs 黑白夜视:信息密度、AI识别准确率对比
人工智能·科技·计算机视觉·车载系统·无人机·量子计算·视频
AI的探索之旅8 小时前
97 个 OpenCV 实例(十五):几何校正,透视变换 + ECC 对齐
人工智能·opencv·计算机视觉
qq_25294131688 小时前
牛目标检测数据集 | 牛只检测 智慧畜牧 动物识别 目标检测5017期
人工智能·深度学习·目标检测·计算机视觉·动物识别··牛识别
硅谷秋水9 小时前
Zero-WAM:基于人类视频的上下文世界-动作建模,用于开放式任务泛化
人工智能·深度学习·计算机视觉·语言模型·机器人·音视频
YOLO数据集集合9 小时前
珊瑚健康状态检测数据集 | 珊瑚检测 白化监测 海洋生态 水下目标检测9034期
人工智能·目标检测·计算机视觉·珊瑚健康·白化监测·水下目标
HYHYLLLL9 小时前
【2026年】多模态AI在水务场景的应用
人工智能·深度学习·计算机视觉·水务
欧特克_Glodon1 天前
OpenCV计算机视觉开发入门与实践<二十七>:图像分割概述
c++·人工智能·opencv·计算机视觉
hahaha60162 天前
HLS高层次综合设计技巧--C++类和模板
图像处理·人工智能·算法·计算机视觉
qq_25294131682 天前
航拍羊群目标检测数据集 | 航拍羊群 智慧畜牧业 动物检测 无人机巡检5010期
人工智能·yolo·目标检测·计算机视觉·无人机·羊群识别·羊群