个人笔记在另外一个平台:YOLOv4所以研究人员的作品
*
#PS:推荐使用连接阅读
*
以下是笔记内容的直接复制粘贴内容,没有排版:
04.YOLO-V4
📄论文题目
YOLOv4: Optimal Speed and Accuracy of Object Detection
👨💻作者
Alexey Bochkovskiy and Chien-Yao Wang
❓四个问题
❔要解决什么问题?
在YOLOV3现有的基础上提高在方面的总体性能(主要是在维持较高检测速度的情况下提高检测精度)。
让YOLO模型能够在更加简单的环境(单GPU)下有较好的性能。
❔使用什么方法解决问题?
YOLOv4其实是一个结合了大量前人研究技术,加以组合并进行适当创新的高水平论文,实现了速度和精度的完美平衡,论文总结了大量的目标检测提点技巧(tricks)。总体上是使用Bag of freebies和Bag of specials中所列举的方法进行大量实验得出最优解。
Mosaic数据增强是YOLOv4的创新点
Modified SAM是YOLOv4的一个创新点,称为像素注意力机制
❔实际效果如何?
❔还存在什么问题?
不可否认YOLOV4的优秀,它是总结了目标检测的Trick并且通过大量的实验得出的结构。如果一定要说yolov4的问题,那就是当有了更好的BOF和BOS后,YOLOV4就有其他的改进空间了(当有新的方法出来,就可以在YOLOv4上尝试并且进行组合实验)
✨论文概述
🔸1.Abstract
使用大量的特征一般有利于提高卷积网络(CNN)的精度。
从加权残差连接(WRC)、跨阶段部分连接(CSP)、交叉小批量归一化(CMBN)、自对抗训练(SAT)和误激活。我们使用了WRC、CSP、CMBN、SAT、MISH激活、马赛克数据增强、CMBN、Dropblock正则化和Ciou Lost等新功能中结合一些功能实现YOLOV4
🔹2.Introduction
YOLOV4是一个高效而强大的目标检测模型,使用一个1080TI或2080TI就能够实现快速而精准的检测。
验证了最新的Bag-of-Freebies和Bag-of-Specials目标检测方法的影响。
对现有的训练方法进行了改进,使其更加高效并且适合单个GPU(包括:CBN、PAN及SAM等)
Bag of freebies是指只增加训练成本而不增加推理成本来提高检测精度的方法,通常指的是数据增强。
Bag of specials,顾名思义,就是“一堆特价包”的意思,在作者看来,就是一些通过增加推理成本,改变网络结构,来提高目标检测精度的方法。
🔸3.Related work
3.1 Object detection models
目前目标检测通用检测器分为两部分:
一个是经过ImageNet预训练主干(Backbone)
另一个是用来预测物体类别与包围框的头部(Predict classes and Bounding boxes )
头部大致分为两类:
One-Stage-Detection (yolo,ssd,RetinaNET)
无锚框检测器(FCOS, Centernet,CornerNET)
Tow-Stage-Detection (Faster-rcnn)
在主干与头部网络添加颈部网络(Neck)
具体如下图所示:
3.2 Bag of freebies
开发更好的训练方法(在不增加推理成本的情况下),使得目标检测器获得更高的精度。称这些只改变培训策略或只增加培训成本的方法为“免费赠品袋”。一般来说是数据增强,用来增加输入图像的可变性。
像素级调整
几何畸形
Random Scaling(随机缩放)
Random Cropping(随机裁剪)
Random Flipping(随机翻转)
Random Rotating(随机旋转
随机翻转和随机旋转的区别在于,随机翻转是通常对输入图片以某个轴进行翻转,随机旋转是随输入图片进行顺时针角度旋转。
光照变化
Brightness(亮度)
Contrast(对比度)
Hue(色调)
Saturation(饱和度)
Noise(噪声)
通过调整输入图片的亮度、对比度、色调、饱和度和添加噪声来进行数据增强
遮挡
遮挡就是对输入图片进行遮挡来实现数据增强
Random Erase
Random Erase称为随机擦除,随机选择一个区域,采用随机值进行覆盖,所选区域一定在图像内。把物体遮挡一部分也能被正确识别分类,这样就迫使网络利用局部数据进行训练识别,增大了训练难度,一定程度提高模型的泛化能力
CutOut
随机选择一个固定大小的正方形区域,像素值全部用0填充即可,但为了避免0填充对训练数据有影响,需要对训练数据进行归一化处理,norm到0,但需要注意的是,随机选择的区域可能不在图像内,也就是说正方形区域可能只有部分处理图像内,因而模拟了任意形状的擦除操作
Hide-and-Seek
将图像切分成S*S网络,每个网络使用一定概率进行遮挡,从而模拟出Random Erase和CutOut的效果。但是遮挡值设置为何值比较关键,采用整个数据集的均值影响最小.
GridMASK
结构化drop操作,例如均匀分布地删除正方形区域,并且通过控制密度和size参数,来达到平衡,密度就是正方形个数,size就是正方形大小。
正则化
在特征图上丢弃某些信息的方法常叫做正则化,最终是为了防止模型过拟合。
Dropout
在训练过程中随机丢弃一些神经元,丢弃的神经元输出变为0
DropConnect
在训练过程中吧神经元的输入权值按照概率变为0
Dropblock
单单对某一个像素进行dropout并不能降低特征图学习的特征范围,DropBlock的做法就是一块一块的像素地随意丢弃,迫使网络去学习到更加鲁棒的特征。
多图像增强
将多张图片融合到一起的数据增强操作
Mixup
Mixup就是将两张图片采用比例混合,label也按照比例混合。
CutMix
CutMix是CutOut和Mixup的结合,将图片的一部分区域擦除并随机填充训练集中的其他数据区域像素值
Mosaic
Mosaic数据增强是YOLOv4的创新点,也是CutMix的拓展,CutMix是混合两张图,Mosaic数据增强是混合了四张具有不同语义信息的图片,可以让检测器检测出超乎常规语境的目标,增强鲁棒性,并减少对大的mini-batch的依赖
Style Transfer GAN
CNN训练学习到的实际是纹理特征(texture bias)而不是形状特征,这与人类的认知相反,因而通过gan引入风格化的ImageNet数据集,平衡纹理和形状偏置,提高模型的泛化能力。
数据分布不均衡
Two-Stage
Hard Negative Example Mining
Online Hard Example Mining
核心思想都是将误分类的图片再次输入网络进行训练。
One-Stage
Focal loss
核心思想是降低易分类样本的下降的损失,让网络关注困难的、错分的样本。
类别之间无关联
Label smoothing
对one-hot的label进行soft操作,相当于对label也添加了噪声,如[0 1]的one-hot编码,经过label smooth变成[0.05 0.95],常用于防止模型过拟合,让模型也能关注概率较低的类别
知识蒸馏
用于获得更好的SOft Label
BBOX回归
IOU LOSS
DIOU loss
GIOU LOSS
Ciou loss
3.3 Bag of specials
增加感受野
SSPNet
SSPNet称为空间金字塔池化网络,为了让网络适应不同尺度的图像输入,避免对图像进行裁剪和缩放,导致位置信息的丢失。由于卷积层在面对不同尺度的输入图像时,会生成大小不一样的特征图,会对网络的训练带来较大的麻烦,因而SPPNet就通过将卷积层最后一层的池化层替换为金字塔池化层,固定输入的特征向量的大小。
ASPP
ASPP称为空洞空间金字塔池化网络,其实就是把特征图通过以不同采样率的空洞卷积并行采样,对每个采样率提取到的特征在不同的分支中进一步处理后融合从而产生最后的结果
RFB
RFB的每个分支上使用不同尺度的常规卷积 + 虫洞卷积,通过常规卷积的不同卷积核尺度来模拟pRFs中的不同感受野,各个分支上通过各自dilated conv所得到的离心率,来模拟pRF的尺度与离心率的比例,其实就是为了模拟人类的视觉感知模式。
注意力机制
特征图的每个位置以及每张不同的特征图,对检测结果的重要程度可能都不同,特征图上包含猫的轮廓形状纹理信息的位置,肯定比背景信息重要,因而怎么在特征图中添加权重信息,让网络能自动学习调整权重信息,就是注意力机制所需要解决的问题。
SE
SENet的思路就是想对每张特征图添加权重,并让网络自动学习调整权重信息.
具体操作:其实就是对C张大小为H × W的特征图(总维度就是 C × H × W)进行全局平均池化,也就是上图的Global pooling操作,然后输出就是C张大小为1 × 1的特征图(总维度是C × 1 × 1),跟着全连接层,全连接层主要是为了减少通道数量,r的大小关系到通道压缩比例,文中r取了16,就是把通道数缩小到原来的1/16,然后进行ReLU激活,再通过全连接层将通道数恢复到C,经过Sigmoid激活后(维度为C × 1 × 1)直接与C张大小为H×W的特征图相乘,这样就可以理解为每张特征图都被添加了权重信息。
SAM
CBAM就是为了解决在特征图内部空间位置添加权重问题提出来的注意力机制模型,它分成了两部分,一个是CAM(Channel Attention Module,通道注意力模块),另一个是SAM(Spatial Attention Module,空间注意力模块)
Modified SAM(point-wise attention)
Modified SAM是YOLOv4的一个创新点,称为像素注意力机制,它的思路也非常简单,就是把SAM模块的池化层全部去除,对C×H×W的特征图进行1×1卷积(既没有降通道也没有升通道),得到C×H×W的输出特征图,然后使用Sigmoid激活,再与原来的C×H×W进行像素点相乘
特征融合
因而如何把低层的特征图和高层的特征图信息相互融合,就是特征融合所需要解决的问题
卷积神经网络特点:高层的特征图包含丰富的语义信息,但位置信息由于卷积和池化的操作会有较大的损失,而低层的特征图虽然语义信息较少,但是由于卷积和池化的操作次数较少,保留了较为完整的位置信息,目标检测既需要丰富的语义信息来判别物体的类别,也需要精确的位置信息来定位物体的位置
Skip Connection
Hyper Column
超列的计算,是取得一个检测框(可能是正方形),resize到分类网络的固定输入大小(分类网络使用了全连接层),resized图像分块进入分类网络,把各个层的特征图进行bilinear插值,恢复到图像分块大小,取得各个层的对应位置的超列(级联多通道激活值)
FPN
FPN就是特征金字塔网络,将低分辨率、强语义特征与高分辨率、弱语义特征通过自顶向下的路径和横向连接相结合,从而进行特征融合。
SFAM
ASFF
BiFPN
🔹4.Methodology
针对不同的运行环境采样两种不同的神经网络选择:
GPU:CSPResNeXt50/CSPDarKnet53
VPU:EfficientNet-lite / MixNet/GhostNet/MobileNetV3
4.1 slesction of architecture
YOLOv4的目标是在输入网络分辨率、卷积层数、参数数(滤波器大小2滤波器通道/组)和层输出(滤波器)数之间找到最佳平衡
经过比较后选择:CSPDarknet53主干、SPP附加模块、PANET路径聚合Neck和YOLOv3(基于锚点的)头部作为YOLOv4的体系结构。
4.2 Selsect of Bof and Bos
选择DropBlock作为正则化方法
归一化方法不考虑SyncBN
激活函数排除 PReLU、SELU和ReLU6
4.3 Additional improvements
一种新的数据增强镶嵌和自对抗训练(SAT)方法
应用遗传算法时选择了最优的超参数
修改了现有的一些方法,使得适合于有效的训练和检测-改进的SAM,改进的PAN和交叉小批量归一化(CMBN)
4.4 YOLOV4
构成:CSPDarknet53(Backbone) +SPP 和 PAN(Neck)+ YOLOv3(Head)]
使用的BOF和BOS:
Backbone
BOF: CutMix and
Mosaic data augmentation, DropBlock regularization,
Class label smoothing
BOG:Mish activa-
tion, Cross-stage partial connections (CSP), Multi-
input weighted residual connections (MiWRC)
Detector
BOF:CIoU-loss,
CmBN, DropBlock regularization, Mosaic data aug-
mentation, Self-Adversarial Training, Eliminate grid
sensitivity, Using multiple anchors for a single ground
truth, Cosine annealing scheduler , Optimal hyper-
parameters, Random training shapes
BOG:Mish activation,
SPP-block, SAM-block, PAN path-aggregation block,
DIoU-NMS
🔸5.Experiment
5.1 Experimental setup
如果不将本文作为Baseline:实验分BOS和BOF两部分,分别按照一定的规律进行实验。
如果作为Baseline:详细阅读原文
5.2 不同特征对分类的影响
5.3 不同特征对检测器的影响
S: 将Sigmoid乘以一个大于1.0的因子
M: 镶嵌数据增强(Mosaic data augmentation)
IT: IOU阈值 GA:遗传算法
LS:类别标签平滑
CBN:CmBN–使用交叉小批次归一化来收集整个批次内的统计数据
CA:Cosine annealing scheduler–正弦训练过程中学习速率的变化
DM:动态小批量—利用随机训练形状在小分辨率训练过程中自动增加小批量大小
OA:优化的锚点-使用优化的锚点进行512x512网络分辨率的训练
LOSS:GIoU、Ciou、DIoU、MSE-使用不同的损失算法进行有界盒回归
5.4 不同骨干网络及预训练权重对训练器的影响
5.5 不同正则化对检测器的影响
🔹6. Result
YOLOv4在精度和速度上的表现都非常好
🔸7. Conclusions
YOLOV4 提供一种最先进的检测器,它比所有可用的替代检测器更快(FPS)和更准确(MS Coco AP50…95和AP50)。
👀补充
附录