16.YOLOv1
2015年Redmon等提出了基于回归的目标检测算法YOLO(You Only Look Once)
,其直接使用一个卷积神经网络来实现整个检测过程,创造性的将候选区和对象识别两个阶段合二为一,采用了预定义的候选区(并不是Faster R-CNN所采用的Anchor),将图片划分为S×S个网格,每个网格允许预测出2个边框.对于每个网格,YOLO都会预测出B个边界框,而每个边界框YOLO都会预测出5个值,其中4个代表边界框的位置,还有一个代表框的置信值.YOLO的网络结构示意图如图10所示,其中,卷积层用来提取特征,全连接层用来进行分类和预测.网络结构是受GoogLeNet的启发,把GoogLeNet的inception层替换成1×1和3×3的卷积.最终,整个网络包括24个卷积层和2个全连接层,其中卷积层的前20层是修改后的GoogLeNet.网络经过最后一个FC层得到一个1470×1的输出,7×7×30的一个张量,即最终每个网格都有一个30维的输出,代表预测结果.
YOLO优点:
(1)将目标检测问题转化为一个回归问题求解.结构非常简单,直接使用一个卷积神经网络实现同时预测边界框的位置和类别;
(2)速度非常快,可以实现视频的实时检测;
(3)泛化能力强,能学习到高度泛化的特征,可以迁移到其他领域.
17.YOLOv2
Redmon等对YOLO网络结构做修改提出了YOLOv2方法,YOLOv2用DarkNet-19用做基础网络,包含19个卷积层、5个最大值池化层.YOLOv2网络通过在每一个卷积层后添加批量归一化层(batch normalization),同时不再使用dropout.YOLOv2引入了锚框(anchor boxes)概念,提高了网络召回率,YOLOv1只有98个边界框,YOLOv2可以达到1000多个.网络中去除了全连接层,网络仅由卷积层和池化层构成,保留一定空间结构信息.结果mAP由69.5%下降到69.2%,下降了0.3%,召回率由81%提升到88%,提升7%.尽管mAP略微下降,但召回率的上升意味着模型有更大的提升空间.同时利用K-means聚类,解决了anchor boxes的尺寸选择问题.
18.YOLO9000
YOLO9000是基于YOLO的改进版本,YOLO的不足是:
a)利用全连接层的数据对边框进行预测会丢空间信息,导致定位不准,并且设定一个网格只检测两个边界框,合理性不足;
b)相对于two-stage检测,召回率较低.YOLO9000解决了这两个主要问题,去掉全连接层,目的是引入anchor框的思想,在每一个网格中设定九个anchor框,并对anchor框使用了K-means聚类,使其自动地找到更合适的anchor框,提高了召回率,从81%提高到88%.网格分辨率也从YOLO的7×7改为了13×13,增加特征图的细粒度,可以更好地检测小目标.
YOLO9000中尝试加入了批量规范化层(batch-normalization,BN),对数据进行规范化处理.对于神经网络,每层的分布都有变化,通过对上一层的输出进行均衡规范数据分布,就可以起到加速训练的效果.并且通过规范化输入,降低激活函数在输入区间上达到饱和的概率,来规避梯度消失现象.YOLO9000采用的网络是DarkNet-19,卷积操作比YOLO的inception更少,减少计算量.该算法mAP达到76.8%,并且速度达到40fps.
19.YOLOv3
YOLOv3借鉴了ResNet的残差结构,使主干网络变得更深(从v2的DarkNet-19上升到v3的DarkNet-53).整个YOLOv3结构里面,没有池化层和全连接层,在前向传播过程中,张量的尺寸变换是通过改变卷积核的步长来实现.相应改进使YOLOv3与SSD相当的精确度下达到50fps的检测速度,并在COCO测试数据上mAP的最佳效果达到33.0%,与RetinaNet的结果相近,速度快了3倍,但整体模型变得更加复杂,速度和精度相互制衡.
YOLOv3改进之处:
(1)多尺度预测,借鉴FPN,采用多尺度来对不同大小的目标进行检测.
(2)更好的分类网络,从DarkNet-19到DarkNet-53.
(3)采用Logistic对目标进行分类,替换之前用Softmax的分类方法,且Softmax可被独立的多个Logistic分类器替代,准确率不会下降.
20.YOLOv4
YOLO v4的创新主要有四点:
1)输入端:这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强、cmBN、SAT自对抗训练
2)BackBone主干网络:将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock
3)Neck:目标检测网络在BackBone和最后的输出层之间往往会插入一些层,比如Yolov4中的SPP模块、FPN+PAN结构
4)Prediction:输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms
仅对比Yolov3和Yolov4,在COCO数据集上,同样的FPS等于83左右时,Yolov4的AP是43,而Yolov3是33,直接上涨了10个百分点。
21.YOLOv5
与YOLO v4相比,YOLO v5的主要改进如下:
(1)输入端:Mosaic数据增强、自适应锚框计算、自适应图片缩放
(2)Backbone:Focus结构,CSP结构
(3)Neck:FPN+PAN结构
(4)Prediction:GIOU_Loss
22.SSD
Liu等提出的SSD(Single Shotmultibox Detector)方法是对YOLO算法的改进,其网络结构如图所示.SSD与YOLO主要不同在于以下几个方面:
(1)采用多尺度特征图用于检测.SSD使用VGG16作为主干网络,并在VGG16的基础上添加了新的卷积层以获得不同大小的特征图,较大的特征图用来检测小目标,较小的特征图用来检测大目标.
(2)采用卷积进行检测.YOLO最后采用全连接,而SSD直接采用卷积对不同的特征图进行提取特征.对于形状为m×n×p特征图,只需要采用3×3×p这样较小的卷积核得到检测值.
(3)设置先验框.YOLO中每个单元预测多个边界SSD算法检测速度较快,整个过程只需要一步.首先在图片不同位置按照不同尺度和宽高比进行密集抽样,然后利用CNN提取特征后直接进行分类与回归,速度较快,但均匀密集采样会造成正负样本不均衡使得训练比较困难,导致模型准确度有所降低.SSD对小目标的检测没有大目标好,因为随着网络的加深,在高层特征图中小目标的信息丢失掉,适当增大输入图片的尺寸可以提升小目标的检测效果.为了提高SSD对小目标的检测能力,Fu等提出了DSSD(De-convolutional Single Shot Detector)方法DSSD的核心思想:提高浅层的表征能力.首先将主干网络由VGG替换成更深的ResNet-101,增强了网络提取的能力,其次修改了预测模块,添加了类似于ResNet的shortcuts通道,将各层次之间特征相结合.DSSD的主要特点是增加了反卷积DM(Deconvolution
Module),DM模块与SSD中的卷积层网络构成了不对称的“沙漏”结构.DM模块与整个沙漏结构,更充分利用了上下文信息和浅层的特征,从而与SSD相比在小目标和密集目标的检测率上有很大的提高.但是由于ResNet-101网络层数太深,网络结构过于复杂,导致检测速度大幅度降低,DSSD检测513×513图像时速度只有6fps.
23.RetinaNet
Lin等认为基于回归的目标检测方法精度不及基于候选区域的目标检测方法的根本原因在于“类别不平衡”,基于候选区域的目标检测算法由于RPN网络的存在,过滤掉了大部分背景框,从而缓解了“类别不平衡”的问题.而one-stage算法直接在生成的“类别框,但是都是相对于这个单元本身,YOLO需要在训练过程中自适应目标的形状.SSD借鉴了Faster-RCNN的anchor理念,每个单元设置尺度或者长宽比不同的先验框,减小了训练的难度,对重叠或近邻的物体有更好的预测效果.极不平衡”的边框中进行难度极大的细分类,意图直接输出边框和标签.而原有交叉熵损失作为分类任务的损失函数,无法抗衡“类别极不平衡”,容易导致分类器训练失败.因此,one-stage目标检测算法虽然保住了检测速度,却丧失了检测精度.RetinaNet采用FocalLoss损失函数代替交叉熵误差,来抑制量大的类别所贡献的损失值.通过此种方法,使得训练过程中量少的类别的权重更大,从而缓解了“类别不平衡”的问题.RetinaNet的网络结构如图所示,采用ResNet+FPN网络提取图像的多尺度信息,再利用one-stage目标识别法+FocalLoss,这个结构在COCO数据集上的mAP达到了39.1%,速
24.CornerNet
目前大部分常用目标检测算法(比如RCNN系列,SSD,YOLO系列等)都是基于锚框(即anchor boxes)进行目标检测,引入锚框的缺点在于:
(1)正负样本不均衡.大部分检测算法的锚框数量成千上万,而目标数量相对少很多,导致正样本数量会远远小于负样本.
(2)引入更多的超参数,比如anchor的数量、大小和宽高比等.Law等舍弃了传统的锚框思路,提出了一种无锚框的目标检测新算法,即CornerNet算法,该算法使用单个卷积神经网络将目标边界框检测为一对关键点(即边界框的左上角和右下角),也就是使用单一卷积模型生成热点图和嵌入式向量.CornerNet算法架构包含3部分:环面网络、右下角和左上角的热图、预测模块,如图所示.
(1)环面网络(即Hourglass网络)是人体姿态估计的典型架构,堆叠两个环面网络生成两组热力特征图来预测不同分类下的角点,其中一组负责预测左上角点,另一组负责预测右下角点,每一个角都包括角合并、对应的热图、嵌入式向量和偏移;
(2)环面网络同时包含多个从下往上(从高分辨率到低分辨率)和从上往下(从低分辨率到高分辨率)过程,目的是在各个尺度下抓取信息;
(3)嵌入式向量使相同目标的两个顶点(左上角和右下角)距离最短,偏移用于调整生成更加紧密的边界定位框.
CornerNet算法消除了现有one-stage检测算法中对锚框的需要,整个检测网络的训练从头开始并不基于预训练的分类模型,用户能够自由设计特征提取网络,不用受预训练模型的限制.同时该算法提出了一种新的池化方法(即cornerpooling),能够帮助网络更好地定位边界框的角点,提高算法的检测精度.
25.CenterNet
CornerNet算法在生成边界框的时候在生成边界框的时候受限于检测的角点对,即如果生成角点对的质量够高,则对应的边界框的质量也高;反之,则会产生错误的边界框.在生成边界框是不能仅依靠角点对的信息,还需要角点对生成的区域内部信息.Duan等在CornerNet算法基础上改进并提出的CenterNet算法,使模型能够自行判断生成边界框的正确性.CenterNet算法将左上角、右下角和中心点结合成为三元组进行物体框的判断,不仅预测角点,也预测中心点,如果角点对所定义的预测框的中心区域包含中心点,则保留此预测框,否则弃掉.同时如果预测的边界框与标注框有很大的交并比,即该预测框的质量较高,该预测框的中心区域应该
包含中心关键点.为了提高检测角点对和中心点的质量,提出具有创新性的级联角点池化(cascadecornerpooling)和中心池化(centerpooling)改善上述关键点的生成.
(1)级联角点池化:针对角点对的预测,级联角点池化首先提取物体边界最大值(cornerpooling),然后在边界最大值处继续向内部提取最大值,并与边界最大.
(2)值相加,以结合更多内部信息,使其具有感知内部信息的能力.
(3)中心池化:针对中心点的预测,中心池化提取中心点水平方向和垂直方向的最大值并相加,以此给中心点提供所处位置以外的信息,将有助于中心关键点获取目标的更多信息、感知边界框的中心区域.CornerNet算法引入了目标内的信息,同时通过级联角点池化和中心池化两种策略来改善了各关键点的生成,利用生成边界框内部的信息来筛选出高质量的边界框,从而显著提升检测效果.
26.D2Det
2020年Cao等提出了一种新颖的二阶段目标检测方法D2Det,它可以同时解决精确定位和精确分类的问题.模型引入了密集局部回归,该回归可以预测对象提议的多个密集框偏移,密集局部回归不限于固定区域内的一组量化的关键点,并且具有回归位置敏感实数密集偏移的能力,从而可以实现更精确的定位.为了进行准确的分类,引入了DRP(DiscriminativeRoIPooling),分别从第一阶段和第二阶段提取准确的目标特征区域,进而提升性能.
27.M2Det
2019年Zhao等提出了M2Det.由于之前特征金字塔仅根据固有的特征来构建,因此它们具有一些局限性.在M2Det中提出了更有效的特征金字塔,多层特征金字塔.该结构首先利用FFMv1将骨干提取的特征图进行融合得到基本特征,再利用TUM和FFMv2模块交替生成一系列的特征金字塔,最后利用SFAM模块将特征金字塔中尺度相同的特征层聚合起来.
28.EfficienDet
2019年Tan等为了寻找一个兼顾检测速度和精度的模型,在EfficienNet的基础上提出了Effi⁃cienDet.该模型以EfficienNet为主干网络,双向特征金字塔网络(BiFPN)为特征网络,同时引入了联合尺度缩放的方法.BiFPN可以快速地进行多尺度特征融合,其中应用了加权的思想.联合尺度缩放可以将主干网络、特征网络和框-类预测网络的深度、宽度和分辨率进行统一缩放,以达到最优效果.结合这些方法的EfficienDet模型参数比当时最先进的模型减少了4倍,并且检测速度提升了3倍.
29.CentripetaNet
为了解决基于关键点的探测器容易匹配错误的问题,Dong等提出了CentripetalNet.该模型可以预测目标的角点位置和向心位移,并匹配其对应的角,这种方法比传统的嵌入方法更准确地匹配角点.同时为了充分利用角池化层后形成的部分特征图中的十字星特征,提出十字星形可变性卷积,可以增强对该特征的学习.经试验该模型在COCO数据集上性能表现超越了当前所有无锚框的目标检测器.
30.FPN
FPN特征金字塔是对目标检测方法的一种改进,它借鉴了多尺度的思想,用卷积网络得到不同的特征层,然后将低分辨率的高级特征和高分辨率的低级特征进行自顶向下的侧边链接度信息都可以很好地利用,提高准确度.FPN包含自底而上的特征层、自顶而下的特征采样、和特征之间的连接.自底而上的特征层是卷积网络前向传播所得.自顶而下的部分进行上采样处理,上采样用插值方法,在原像素基础上用某种算法插入新像素,达到扩大特征层尺寸的效果.对上一层的特征图上采样,使得它与下一层的特征图具有相同尺寸.特征之间的侧边横向连接是将上采样得到的特征图与自底而上的特征图进行融合.将特征图用1×1卷积网络卷积,目的是改变特征层的通道数,可以与上采样的特征图融合.3×3卷积网络是为了消除采样的混叠效果.FPN算法很大程度上提高了小目标的检测性能.
31.RefineDet
2018年研究人员将Faster R-CNN与SSD两种思路融合产生了RefineDet,框架上是通过两个不同的模块来仿照two-stage的检测模式,但算one-stage检测.在保证速度的前提下,提高检测效果.图为RefineDet的模型框架结构.上端模块ARM用于初步生成候选框.ARM只做二分类,判断是否存在目标并删除一些无目标候选框.下端模块OBD,作用是对上端模块结果进行更精确的多分类以及框回归.中间模块TCB,作用是将不同特征层的特征图进行融合.速度比“两步法”检测器快的原因是没有做如Faster R-CNN步骤将ROI提取出来再做池化,而是将特征图直接用TCB模块进行传递,实现了加速.在VOC2012数据集上的mAP达到83.5%.
32.SqueezeNet SqueezeNext
2016年,Iandola等提出了SqueezeNet轻量化网络,该网络借鉴了Inception网络的设计思想,通过Firemodule基本模块实现SqueezeNet网络的构建,其Firemodule结构如图(a)所示.Firemod⁃ule中主要包含了Squeeze层和Expand层,其中Squeeze层采用1´1的卷积核来减少参数量,Ex⁃pand层则采用1´1和3´3卷积核分别得到对应特征图后进行拼接,由此得到Firemodule的输出.利用卷积层、Firemodule和池化层构建的SqueezeNet模型大小只有4.8MB,却在ImageNet上达到了相比AlexNet略优的57.5%的TOP-1分类精度.2018年,Gholami等基于SqueezeNet提出了改进版的SqueezeNext轻量化网络,其主要采用了如图1(b)所示的模块结构.该结构中采用通道数减半的两层Squeeze层对输入进行处理,然后通过3´1和1´3搭配的低秩卷积核进行卷积,之后利用一个卷积层实现数据维度匹配.此外,SqueezeNext借鉴ResNet网络结构思想实现了shortcut连接,并通过硬件实验指导网络设计,其参数量相比SqueezeNet有了明显降低,但却实现了高达69.8%的TOP-1分类精度.
33.MobileNetv1v2
2017年,Howard等提出了MobileNetv1轻量化网络,该网络使用了深度可分离卷积(Depthwise Separable Convolution,DSC)结构代替传统卷积结构,将传统卷积结构中N个DK´DK´C卷积核分解为C个DK´DK´1和N个1´1´C卷积核叠加的形式,其结构图如图(a)所示,通过该方法可使卷积操作运算量降低为原有的1/8~1/9.于此同时,通过引入时间因子α和分辨率因子ρ进一步降低模型参数量,最终MobileNetv1参数量约为4.2M,且在ImageNet数据集上实现了70.6%的TOP-1分类精度.2018年,Mark等在Mobilenetv1的基础上提出了Mobilenetv2轻量化网络,该网络最大的特点是引入了反向残差和线性瓶颈结构,反向残差结构如图(b)所示,其不同于常规残差结构“压缩—卷积—扩张”过程,而是采用“扩张—卷积—压缩”的反向式操作,充分利用深度可分离卷积可有效降低中间卷积运算计算量的优势来保证算法性能,且通过去掉ReLU来避免信息损失.
34.ShuffleNet v1 v2
2017年,Zhang等提出了ShuffleNet v1轻量化网络,其基本模块结构如图(a)所示.ShuffleNet v1对常规残差结构进行了改进,将与输入特征图相连的第一个1´1卷积层替换为分组卷积,并利用Channel shuffle操作对分组卷积各组输出结果进行信息交互,以此实现在降低运算量的情况下保证网络性能,ShuffleNet v1最终在ImageNet数据集上实现了73.7%的TOP-1分类精度.2018年,Ma等在ShuffleNet v1的基础上又提出了ShuffleNetv2轻量化网络,该网络的基本模块结构如图(b)所示,其在对输入特征图进行处理时首先进行了通道划分,其中一个分支不采取任何操作,另一个分支经过卷积处理后,与前一个分支拼接后再进行Channel Shuffle操作,以此实现信息交互,最终ShuffleNet v2在ImageNet数据集上实现了74.9%的TOP-1分类精度.
*感谢 同济子豪兄 知乎江大白 杨玉敏 廖育荣 林存宝 倪淑燕 吴止锾 王灿 卜乐平 陆峰 刘华海 黄长缨 杨艳 谢禹 刘财喜 南晓虎 丁雷
为本文提供支持!