论文笔记:《基于YOLOv5和DeepSort的多目标跟踪算法研究与应用》-1
YOLO系列基础知识
- 作为一阶段经典算法,YOLO系列的算法由于省略了粗定位的过程,通过调整骨干网络可以实现速度比二阶段算法Faster-RCNN更快的性能。YOLO之前的检测算法都是基于分类器实现,例如滑动窗口在图片上滑动评估物体的存在。YOLO—次性计算包含边界框及每个边界框所属类别概率的输出,这个过程是一阶段、端到端实现的。本论文的研究内容主要基于YOLOv3和不同量级的YOLOv5展开。
- YOLO模型将原图分割成SxS个方块,分割方法为设计一个网络使其输出特征图的尺寸为SxS,特征图上的每一个点对应到原图上就是SxS个区域,每个单元命名为Cell。Cell在YOLO中用来检测。每个Cell负责检测一个物体,根据标签真实值,当且仅当Cell中有物体的中心落下时才参与检测,没有物体中心的Cell不参与检测过程。YOLO中规定每个负责检测的Cell生成B个目标框,每个目标框包含定位信息、分类信息以及置信度[x,y,w,h,c,class]。对于N个类别的数据集,每个Cell的输出量级为(5xB+N)xSxS。YOLO中,B=2,S=7。以20类分类为例,每个参与检测的Cell输出两个30维的目标框,取得分最高的目标框参与计算损失函数LOSS。式(3-1)为损失函数计算公式,包含回归损失、置信度损失和分类损失。式中x,y表示预测目标框的中心坐标,w,h为目标框的宽和高,x,y,h,w是目标真实标签的中心坐标和尺寸。I用来判断第i个Cell中的第j个检测框是否负责这个目标,即目标中心是否落在网格i中。由于属于回归问题,因此所有的损失函数都采用了平方根误差。为了减少数值量级的影响,不同的损失函数被分配了不同的权重。
YOLOv3
- 在YOLO中规定一个Cell负责检测一个目标,最终只输出一个目标框,当一个Cell中有多个目标时就会产生漏检现象,YOLOv2对其进行了改进降低了Cell中包含多个目标时的漏检频率。
- YOLOv3进一步改进了YOLOv2的骨干网络架构,采用提出的Darkne-53。在卷积网络基础层的搭建过程中,池化层实现特征图下采样的效果。Darkne-53用步长为2的卷积替代YOLOv2中的池化层进行下采样,减少了信息损失同时保留了尺度不变性。同时,YOLOv3在基础层卷积层的搭建上采用75个卷积层组成卷积网络,众多的卷积层有利于对物体特征的分析。此外,由于网络层数较多,YOLOv3还使用残差结构搭建部分卷积层,图3-3(a)为Resnet的残差模块结构,图3-3(b)为Y0L0v3中使用的残差模块。残差结构的设计可以克服网络层数加深时Relu激活函数导致的梯度消失的现象,使模型的特征提取效果尽可能的不随网络深度的加深而受到限制,从而获得更丰富的特征信息。使用了残差模块的Darkne-53在分类精度上可以达到与Resnet-152和Resnet-101差不多的效果,但是参数比他们少,计算速度更快。
- 搭建YOLOv3的功能层时则舍弃使用全连接层,使网络可以接受不同大小的输入图像。使用全连接层会导致网络层无法进行专门特征提取,需要固定输入特征的大小(术业有专攻)。YOLOv3除可以接受任意大小的图片作为输入图像外,在输出上也利用Anchor思想实现多尺度的输出。YOLOv3借用了Faster-RCNN生成锚点的思想,但区别于Faster-RCNN的生成锚点策略,采用K均值聚类(K-means Clustering Algorithm,KMeans)聚类算法生成3种尺度的锚点,以应对不同大小的目标物体的输出。3中尺度的锚点,每种尺度三个先验框,yolov3中每个cell会生成9个先验框。
- 此外,YOLOv3还优化了小目标检测机制。通常一张图片包含大小不一的多种不同物体,网络必须具备检测不同大小的物体的能力。随着网络深度的增加,小目标的特征会伴随上采样的过程越来越抽象,相对于大目标,经过相同层数的卷积操作后生成的小目标的特征图会严重缺乏低级信息,导致小目标检测不佳。Singgle Short Multi-BoxDetetor(SSD)中为了检测多尺度特征图中检测出来,大的物体在相对较小的特征图中检测出来。由于浅层特征图往往包含更多的低级信息(边缘,颜色,位置),深层特征图包含更多的高级信息(物体的语义),所以在不同层级的特征图上直接进行检测的精度并不理想,因为特征信息具有片面性而不具有全局性。
- YOLOv3采用特征金字塔(Feature Pyramid Networks,FPN)FPN解决多尺度检测问题,图3-4为FPN的网络结构。
- FPN采用侧向链接的自上而下的网络结构构建不同尺寸的具有高级语义信息的特征图。由于高层特征更聚焦于语义信息,底层特征更聚焦于像素级信息,下采样的过程是获取语义信息的过程,而上采样则是获取像素信息的过程。这样对于每层特征图,通过最近邻插值法对其进行自顶向下的上采样,将其尺寸放大到上一个阶段的特征图大小,通过一个横向连接实现多层特征的信息融合,将上采样的特征图和上一个阶段的特征图相加得到一个新的特征图。新特征图既保留了高级语义又含有低层信息。