一文总结YOLOv4所列的Bag of freebies
YOLOv4
YOLOv4其实是一个结合了大量前人研究技术,加以组合并进行适当创新的高水平论文,实现了速度和精度的完美平衡。
论文总结了大量的目标检测提点技巧(tricks),分为Bag of Freebies和Bag of Specials,本人在阅读该论文时就想着把这些技巧全部总结起来,以便日后所需。
yolov4论文:YOLOv4: Optimal Speed and Accuracy of Object Detection
arxiv:https://arxiv.org/abs/2004.10934
github源码:https://github.com/AlexeyAB/darknet
目标检测架构
论文把当前目标检测架构分为了四部分:
- 输入(Input): 图像、图像金字塔等;
- 骨干网络(Backbone):用于提取图片的特征图,常用的有VGG16、ResNet-50、SpineNet、EfficientNet-B0/B7、CSPResNetXt50、CSPDarknet53等;
- 颈部网络(Neck):
- 额外模块:SPP、ASPP、RFB、SAM
- 融合模块:FPN、PAN、NAS-FPN、Full-connected FPN、BiFPN、ASFF、SFAM
- 头部网络(Head):
- Dense Prediction(one-stage)
- RPN、SSD、YOLO、RetinaNet(anchor based)
- CornerNet、CenterNet、MatrixNet、FCOS(anchor free)
- Sparse Prediction(two-stage)
- Faster R-CNN、R-FCN、Mask R-CNN(anchor based)
- RepPoints(anchor free)
- Dense Prediction(one-stage)
Bag of freebies
Bag of freebies是指只增加训练成本而不增加推理成本来提高检测精度的方法,通常指的是数据增强。
像素级调整
几何畸变
- Random Scaling(随机缩放)
- Random Cropping(随机裁剪)
- Random Flipping(随机翻转)
- Random Rotating(随机旋转)
随机翻转和随机旋转的区别在于,随机翻转是通常对输入图片以某个轴进行翻转,随机旋转是随输入图片进行顺时针角度旋转。
光照变化
- Brightness(亮度)
- Contrast(对比度)
- Hue(色调)
- Saturation(饱和度)
- Noise(噪声)
通过调整输入图片的亮度、对比度、色调、饱和度和添加噪声来进行数据增强。
遮挡
遮挡操作是对输入图片进行遮挡来进行数据增强。
Random Erase
论文:Random Erasing Data Augmentation
arxiv:https://arxiv.org/pdf/1708.04896v2.pdf
github源码:https://github.com/zhunzhong07/Random-Erasing
Random Erase称为随机擦除,随机选择一个区域,采用随机值进行覆盖,所选区域一定在图像内。把物体遮挡一部分也能被正确识别分类,这样就迫使网络利用局部数据进行训练识别,增大了训练难度,一定程度提高模型的泛化能力。
CutOut
论文:Improved Regularization of Convolutional Neural Networks with Cutout
arxi