YOLO V4 Tiny改进版来啦!速度294FPS精度不减YOLO V4 Tiny

2020-11-19 16:47:58 浏览数 (1)

此YOLO V4 Tiny改进在保证精度的同时帧率可以达到294FPS!具有比YOLOv4-tiny(270 FPS)和YOLOv3-tiny更快的目标检测速度(277 FPS),并且其平均精度的平均值与YOLOv4-tiny几乎相同; 作者单位:东北电力大学, 北华大学

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使用

13times13

26times26

两种不同比例尺的feature map来预测检测结果。

2.2、损失函数

1、置信度损失函数

其中

C_i^j

为第i个网格中第j个边界框的置信分数。

P_{i,j}

只是用来判别是否为目标的函数(0/1)。

2、分类损失函数

其中,

p_i^j(c)

hat p_i^j(c)

分别为对象在第i个网格的第j个边界框中属于c类的预测概率和真概率。

3、边界框回归损失函数

4、总损失函数

3、改进YOLO Tiny算法

文章作者为了进一步提升速度,使用ResBlock-D模块代替了部分CSPBlock模块,降低了计算的复杂度,同时设计了Auxiliary残差模块,以便提取更多的物体特征信息,以降低检测的误差;所提backbone网络如下:

3.1、设计思路

FPS计算:

其中D为所有卷积层的和,

M_l^2

为第

l

个卷积层的输出特征映射大小,

K_l^2

为核大小的个数,

C_{l-1}

C_l

分别为输入通道和输出通道的个数。

这里假设输入图像的大小为

104times104

,通道数为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利用两个

3times3

卷积网络提取全局特征,同时使用通道注意力和空间注意力提取更有效的特征信息。采用级联操作将第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

本文仅做学术分享,如有侵权,请联系删文。

0 人点赞