1、方法简介
为了提高目标检测的实时性,本文提出了一种基于YOLOv4-tiny的快速目标检测方法。它首先使用ResNet-D网络中的两个ResBlock-D模块,而不是Yolov4-tiny中的两个CSPBlock模块,从而降低了计算复杂度。其次,设计了辅助残差网络块,以提取更多的物体特征信息,以减少检测误差。
在辅助网络的设计中,使用两个连续的3x3卷积获得5x5感受野以提取全局特征,并使用通道注意力和空间注意力来提取更有效的信息。
最后,它将辅助网络和Backbone网络合并,以构建改进的YOLOv4-tiny的整个网络结构。实验结果表明,该方法具有比YOLOv4-tiny和YOLOv3-tiny更快的目标检测速度,并且其平均精度的平均值与YOLOv4-tiny几乎相同。它更适合于实时目标检测。
2、YOLO V4 Tiny概要
2.1、模型结构
Yolov4-tiny使用特征金字塔网络提取不同尺度的特征图,进而提高目标检测速度,而不使用Yolov4方法中使用的空间金字塔池和路径聚合网络。同时,Yolov4-tiny使用和两种不同比例尺的feature map来预测检测结果。
2.2、损失函数
1、置信度损失函数
其中为第i个网格中第j个边界框的置信分数。只是用来判别是否为目标的函数(0/1)。
2、分类损失函数
其中,和分别为对象在第i个网格的第j个边界框中属于c类的预测概率和真概率。
3、边界框回归损失函数
4、总损失函数
3、改进YOLO Tiny算法
文章作者为了进一步提升速度,使用ResBlock-D模块代替了部分CSPBlock模块,降低了计算的复杂度,同时设计了Auxiliary残差模块,以便提取更多的物体特征信息,以降低检测的误差;所提backbone网络如下:
3.1、设计思路
FPS计算:
其中D为所有卷积层的和,为第个卷积层的输出特征映射大小,为核大小的个数,和分别为输入通道和输出通道的个数。
这里假设输入图像的大小为,通道数为64。
CSPBlock的FLOPs为:
ResBlock-D的FLOPs为:
通过以上计算可以得到CSPBlock和ResBlock-D的计算复杂度比率约为10:1。这意味着ResBlock-D的计算复杂度远小于CSPBlock。因此在设计模型的时候使用ResBlock-D代替了CSPBlock模块:
3.2、Auxiliary Network Block
论文中提到虽然使用ResBlock-D模块来代替CSPBlock模块能够一定层度上提高目标检测的速度,但是它降低了目标检测的准确性。因此为了保持精度和速度的平衡,作者设计了两个相同的Residual Network blocks作为Auxiliary Network Block,并将其添加到ResBlock-D模块中以提高精度。
这里Auxiliary Network Block利用两个卷积网络提取全局特征,同时使用通道注意力和空间注意力提取更有效的特征信息。采用级联操作将第1个卷积网络的输出特征与空间注意力机制的输出特征进行组合。组合后的特征作为Auxiliary Network Block的输出特征。
最后,将最终的Auxiliary Network输出特征与Backbone中Residual网络的输出特征相结合,作为下一个骨干网中Residual网络的输入特征。使改进后的骨干网能够提取出检测对象的全局和局部特征,进一步提高了检测的准确性。
4、实验结果
4.1、精度与速度
4.2、GPU占用率
4.3、实际检测结果
参考
[1] Real-time object detection method based on improved YOLOv4-tiny