1.大体的认识、有用没用的bb
github:https://github.com/albumentations-team/albumentations
例子:https://github.com/albumentations-team/albumentations_examples
特点:分类、目标检测、分割等任务都支持增强,与pytorch等框架都兼容,是Pytorch生态的一部分。
1.1 为什么图像增强能提升深度学习的性能?
DNN需要大量数据避免过拟合,数据成本很高:1.训练数据要标注,昂贵;2.有的训练数据本身就很难收集,法律限制等。
图像增强是:根据已有数据,创造新的训练数据的方法。就是对原图进行调整,如裁剪,亮度变化等。例子:
1.2 为什么需要一个单独的图像增强的库?
图像增强看似简单,基本的转换有:mirroring,cropping,改变亮度、分辨率等。很多库都能实现,Pillow与cv2等,但是有很多限制.
1.可以改变label
如,在分割、目标检测与关键点检测的任务里,label需要同image一起进行相应的转化的。torchvision应该是没有现成的实现的,Pillow与cv2应该需要你自己实现,就很复杂的!
对分类任务你只要改变image即可,label是不变的。
但是对分割,旋转了之后,对应的mask的label也要对应改变!
目标检测也一样,框的位置,大小在image调整后,都要进行相应的进行调整。
2.可设置概率与强度(torchvision也可以)
通常数据集大,增强的概率10-30%,强度不需要太大;数据集小,概率40-50%,加大强度。
3.明确的增强进行的pipeline(torchvision也可以)
就是Compose
import albumentations as A
transform = A.Compose([
A.Ra