imgaug库:图像增强的新宠儿
创作时间:
作者:
@小白创作中心
imgaug库:图像增强的新宠儿
引用
CSDN
等
9
来源
1.
https://blog.csdn.net/zong596568821xp/article/details/83105700
2.
https://blog.csdn.net/ViatorSun/article/details/129553505
3.
https://wenku.csdn.net/column/2bwebh7o8j
4.
https://blog.csdn.net/LuohenYJ/article/details/109254943
5.
https://imgaug.readthedocs.io/en/latest/
6.
https://imgaug.readthedocs.io/en/latest/source/api_augmenters_convolutional.html
7.
https://imgaug.readthedocs.io/en/latest/source/api_random.html
8.
https://datawhalechina.github.io/thorough-pytorch/%E7%AC%AC%E5%85%AD%E7%AB%A0/6.5%20%E6%95%B0%E6%8D%AE%E5%A2%9E%E5%BC%BA-imgaug.html
9.
https://www.cnblogs.com/xxmmqg/p/13062556.html
在深度学习项目中,数据增强是提升模型性能的关键步骤之一。而imgaug作为一款功能强大的图像增强库,以其丰富的功能和灵活的配置,成为了数据科学家和机器学习工程师的得力助手。本文将详细介绍imgaug库的使用方法和应用场景,帮助读者快速掌握这一强大的工具。
01
imgaug库简介
imgaug是一个用于机器学习实验中图像增强的Python库,支持Python 2.7和3.4以上版本。它具有以下特点:
- 功能全面:支持多种图像增强技术,包括几何变换、颜色空间变换、模糊、锐化等
- 组合灵活:允许用户轻松组合不同的增强技术,创建复杂的增强序列
- 随机性支持:提供简单但功能强大的随机接口,可以为每次增强生成不同的参数
- 关键点支持:可以同时处理图像和关键点(如人脸关键点、物体边界框等),保持它们之间的对应关系
- 性能优化:支持在后台进程中进行增强,提高处理速度
02
安装方法
imgaug的安装非常简单,可以通过pip直接安装:
pip install imgaug
如果需要安装最新版本,可以从GitHub上直接安装:
pip install git+https://github.com/aleju/imgaug
或者克隆仓库后手动安装:
git clone https://github.com/aleju/imgaug
cd imgaug
python setup.py install
03
基本使用示例
imgaug的基本使用流程包括定义增强序列、读取图像、执行增强和保存结果。以下是一个简单的示例:
import cv2
from imgaug import augmenters as iaa
# 定义增强序列
seq = iaa.Sequential([
iaa.Crop(px=(0, 16)), # 随机裁剪0到16像素
iaa.Fliplr(0.5), # 50%概率水平翻转
iaa.GaussianBlur(sigma=(0, 3.0)) # 高斯模糊,sigma范围0到3.0
])
# 读取图像
img = cv2.imread('kobe.jpg')
imglist = [img]
# 执行增强
images_aug = seq.augment_images(imglist)
# 保存结果
cv2.imwrite("imgaug.jpg", images_aug[0])
04
主要功能与API
imgaug提供了丰富的图像增强功能,以下是一些常用的增强方法:
几何变换
仿射变换:支持缩放、平移、旋转和剪切
iaa.Affine( scale={"x": (0.6, 1.4), "y": (0.6, 1.4)}, translate_percent={"x": (-0.2, 0.2), "y": (-0.2, 0.2)}, rotate=(-20, 20), shear=(-16, 16) )
裁剪和填充
iaa.CropAndPad(px=(0, 150))
模糊与锐化
高斯模糊
iaa.GaussianBlur((2, 11))
均值模糊
iaa.AverageBlur(k=(2, 11))
中值模糊
iaa.MedianBlur(k=(11, 11))
锐化
iaa.Sharpen(alpha=(0, 1.0), lightness=(0.75, 1.5))
颜色空间变换
改变亮度
iaa.AddToBrightness((-100, 100))
调整对比度
iaa.contrast.LinearContrast((0.5, 3.0))
颜色空间转换
iaa.WithColorspace( to_colorspace="HSV", from_colorspace="RGB", children=iaa.WithChannels(0, iaa.Add((30, 100))) )
其他增强方法
添加噪声
iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.05*255))
剪切
iaa.Crop(px=(0, 150))
生成遮挡
iaa.Cutout(nb_iterations=(1, 11), size=0.1, squared=False)
05
与torchvision的比较
相比torchvision,imgaug具有以下优势:
- 功能更丰富:imgaug提供了更多样化的增强方法,如加雨、加雾等天气效果模拟
- 灵活性更高:imgaug支持更复杂的增强序列组合,可以轻松实现自定义的增强策略
- 关键点支持:imgaug可以同时处理图像和关键点,保持它们之间的对应关系
- 性能优化:imgaug支持多进程处理,可以显著提高数据增强的效率
06
实际应用案例
imgaug在实际项目中有着广泛的应用,特别是在图像分类和目标检测任务中。以下是一个使用imgaug进行数据增强的示例:
import imgaug.augmenters as iaa
# 定义增强序列
aug = iaa.Sequential([
iaa.Fliplr(0.5), # 水平翻转
iaa.Affine(rotate=(-20, 20)), # 随机旋转
iaa.AdditiveGaussianNoise(scale=(0, 0.1*255)), # 添加高斯噪声
iaa.Multiply((0.8, 1.2)), # 随机改变亮度
iaa.ContrastNormalization((0.75, 1.5)) # 调整对比度
])
# 读取图像和标签
images = [cv2.imread('image1.jpg'), cv2.imread('image2.jpg')]
bbs = [ia.BoundingBoxesOnImage([
ia.BoundingBox(x1=10, y1=20, x2=100, y2=200),
ia.BoundingBox(x1=50, y1=60, x2=150, y2=160)
], shape=image.shape) for image in images]
# 执行增强
images_aug, bbs_aug = aug(images=images, bounding_boxes=bbs)
# 保存结果
for i, (img, bb) in enumerate(zip(images_aug, bbs_aug)):
cv2.imwrite(f"augmented_{i}.jpg", img)
with open(f"augmented_{i}.txt", "w") as f:
for bbox in bb.bounding_boxes:
f.write(f"{bbox.x1} {bbox.y1} {bbox.x2} {bbox.y2}\n")
通过上述代码,我们可以同时对图像和边界框进行增强,保持它们之间的对应关系,这对于目标检测任务尤为重要。
imgaug作为一个功能强大且灵活的图像增强库,能够显著提升模型训练数据的质量和多样性,从而加速机器学习模型的性能。无论是模拟相机角度变化还是增加数据对称性,imgaug都能轻松应对,为你的项目带来意想不到的效果。
热门推荐
天津东疆亲海公园:最美海上日出打卡地
蜂蛹怎么吃最有营养?蜂蛹的功效与作用
奉化弥勒圣坛试运营攻略:一日游打卡圣地
2024雪窦山弥勒文化节:弥勒圣坛展现文化新魅力
清华设计院作品:弥勒圣坛建筑获国际大奖
《和平精英》地铁逃生:烈焰·特劳斯挑战攻略
和平精英地铁逃生:高能挑战等你来战!
维尼修斯领衔!巴西新星闪耀世预赛
达·伽马的探险之路:揭秘巴西历史文化
千湖沙漠:巴西东北部的自然奇观
巴西2025年GDP增速上调至2.02%,通胀压力加剧引发关注
"活珠子"到底是什么?关于鸡蛋食用的科学解读
活珠子对人体有害吗
小孩体温低于35度多久有危险
带宠物游张家界天门山全攻略
带孩子去体会“年味”!这份杭州春节游玩攻略请查收
北仑旅游攻略:热门景点、美食推荐与实用出行指南
警用摩托车有哪些智能化功能?
亚马逊雨林:巴西的绿色奇迹与全球责任
伊瓜苏瀑布:巴西最震撼的自然奇观
《和平精英》新手必学:UZI+M416+Mini组合攻略
和平精英新手必学:M416+AKM无敌组合攻略
Yuzu和龙神模拟器:解决《机器人大乱斗》武器显示问题
异地买车回老家上牌全过程
分床睡眠:帮孩子养成独立睡眠习惯
孕妇能吃鸡吗?孕期食用鸡肉的注意事项
从沟通误区到成功挽回:一个普通人的爱情救赎之路
恋爱沟通大揭秘:五大误区你踩雷了吗?
夫妻沟通五大误区,你踩雷了吗?
情侣吵架也能增进感情?9个有效沟通小妙招!