一、引言
随着深度学习的快速发展,目标检测技术在人脸识别、自动驾驶、机器人视觉和视频监控等领域取得了显著突破。然而,传统的目标检测模型(如Faster R-CNN和YOLO)由于网络结构复杂,参数量和计算量巨大,难以在资源受限的嵌入式移动设备上部署。为了解决这一问题,我们提出了一种轻量级的目标检测模型——Micro-YOLO,它基于YOLOv3-Tiny架构,通过一系列优化方法显著减少了模型参数和计算量,同时保持了良好的检测性能。
二、模型轻量化方法
2.1 替换卷积层
在Micro-YOLO中,我们替换了YOLOv3-Tiny网络中的标准卷积层(Conv),采用了两种轻量级卷积块:深度可分离卷积(DSConv)和带压缩激励模块的倒瓶颈卷积(MBConv)。
2.1.1 深度可分离卷积(DSConv)
深度可分离卷积由两部分组成:深度卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolution)。深度卷积对每个输入通道单独应用卷积操作,而逐点卷积则通过1x1卷积将深度卷积的输出通道进行线性组合。这种结构显著减少了模型的参数量和计算量。
2.1.2 带压缩激励模块的倒瓶颈卷积(MBConv)
MBConv是MobileNetv3中采用的一种卷积结构,它首先通过1x1卷积进行通道扩展,然后应用深度卷积,最后通过1x1卷积进行通道压缩。此外,MBConv还引入了压缩激励模块(SE Block),通过全局平均池化和两个全连接层来重新校准通道特征,增强了模型的表达能力。
2.2 卷积核大小探索
为了进一步减少模型参数而不影响检测精度,我们探索了MBConv层中卷积核大小的最优选择。传统的卷积神经网络设计大多采用3x3卷积核,但最近的网络架构搜索算法表明,不同深度的卷积层偏好不同的卷积核大小。因此,我们在Micro-YOLO中对MBConv层的卷积核大小进行了优化,通过实验找到了最优的卷积核组合。
2.3 渐进式通道剪枝
在确定了Micro-YOLO的网络结构后,我们采用渐进式通道剪枝算法进一步减少模型参数。由于DSConv和MBConv层大多由1x1卷积核组成,因此适合采用粗粒度剪枝。我们的渐进式剪枝算法逐步减少卷积层的输出通道数,每次剪枝后重新训练模型并评估检测精度,直到检测精度下降超过设定的阈值(如0.5%)时停止剪枝。这种方法能够在保持检测精度的同时,最大限度地减少模型参数。
2.3.1 Micro-YOLO模型结构
Micro-YOLO的网络架构如图1所示。它主要由以下几个部分组成:
- 输入层:接收输入图像,并进行预处理(如调整大小、归一化等)。
- 特征提取层:采用DSConv和MBConv层进行特征提取,这些层被交替排列以平衡模型大小和检测精度。
- 检测层:在特征提取层的末端,通过一系列卷积层输出检测结果,包括目标的位置和类别信息。
2.3.2 具体层配置
Micro-YOLO的具体层配置如表1所示。其中,MBConvkxk表示卷积核大小为kxk的带压缩激励模块的倒瓶颈卷积,DSConvkxk表示卷积核大小为kxk的深度可分离卷积。
与原始的YOLOv3-Tiny相比,Micro-YOLO通过采用轻量级卷积块和渐进式通道剪枝算法,显著减少了模型参数和计算量。具体来说,Micro-YOLO的模型参数减少了3.46倍,乘加运算量(MAC)减少了2.55倍,同时在COCO数据集上的平均精度(mAP)仅下降了0.7%。
三、实验结果
我们在实验中评估了Micro-YOLO的性能,并与其他轻量级目标检测模型进行了比较。实验结果表明,Micro-YOLO在保持较高检测精度的同时,具有更低的模型大小和计算量。具体来说,Micro-YOLO的模型大小仅为2.56M参数,计算量为1.10GMAC,在COCO数据集上的mAP为32.4%,帧率(FPS)达到328。经过渐进式通道剪枝后,Micro-YOLO的模型大小进一步减少到1.92M参数,计算量减少到0.87GMAC,mAP略有下降至29.3%,但帧率提升至357。
四、小结
本文提出了一种轻量级的目标检测模型——Micro-YOLO,它基于YOLOv3-Tiny架构,通过替换卷积层、探索卷积核大小和采用渐进式通道剪枝算法等方法,显著减少了模型参数和计算量,同时保持了良好的检测性能。实验结果表明,Micro-YOLO在多个评价指标上均优于其他轻量级目标检测模型,具有广泛的应用前景。