1简介
最新的基于CNN的目标检测模型相当精确,但需要高性能GPU实时运行。对于内存空间有限的嵌入式系统来说,它们在内存大小和速度方面依旧不是很好。
由于目标检测是在嵌入式处理器上进行的,因此在保证检测精度的同时,最好尽可能地压缩检测网络。有几个流行的轻量级检测模型,但它们的准确性太低。因此,本文提出了一种新的目标检测模型 YOffleNet,该模型在压缩率高的同时,将精度损失降到最小,可用于自动驾驶系统上的实时安全驾驶应用。该模型的Backbone架构是基于YOLOv4实现,但是可以用ShuffleNet的轻量级模块代替CSP的高计算负荷的DenseNet,从而大大压缩网络。
在KITTI数据集上的实验表明,提出的YOffleNet比YOLOv4-s压缩了4.7倍,在嵌入式GPU系统(NVIDIA Jetson AGX Xavier)上可以达到46FPS的速度。与高压缩比相比,精度略有降低,为85.8% mAP,仅比YOLOv4-s低2.6%。因此,提出的网络具有很高的潜力部署在嵌入式系统。
2 YOLO V4简述
在YOLOv4的主干网络CSPDarknet-53中,CSP将特征卷积一定次数后复制使用与前一层特征cat起来,然后利用DenseNet模块。
在Neck中,输入特征图有3种大小。SPP最大池化后concat技术提高了各种尺寸输入的准确性。此外,它通过自底向上的路径增强技术平滑特征。
YOLOv4引入PANet以促进信息流和它弥补了权重带来的精度损失问题。
YOLO v4的Head依旧采用YOLOv3的物体检测方法。
3 YOLO V4轻量化设计
YOffleNet
YOLOv4中使用的主要模块是下图中的CSP DenseNet;此外为了防止初始特征图中的信息丢失的问题,作者还设计了PANet结构,其是通过自下而上的路径增强特征表达的。它促进信息的流动的同时也增加了特征图中的通道数、增加参数的数量,这也是YOffleNet模型为它改进了上述YOLOv4模型的缺点。
CSP DenseNet
改进点 1
主干层CSP DenseNet是一种随着深度增加而不可避免地增加计算量的结构。在本研究中,主干网络层被配置为ShuffleNet模块。
ShuffleNet模块
改进点 2
YOLOv4网络中使用的SPP+PANet结构简化和减轻模型的大小。现有YOLOv4模型的PANet从主干网络分为3层作为输入的。然而,常见对象检测情况与自动驾驶环境不同,有限类别中的物体检测(汽车、行人等,更小的目标也就少了)。
基于这个原因,改进PANet可以接收来自backbone网络的只有2层的输入。Upsample, Downsample层的位置和数量变少了。计算量相对也就减少了。
4实验
没啥好评价的,确实变快了,但是这个改进确实有点。。。。你懂的!!!
5参考
[1].Developing a Compressed Object Detection Model based on YOLOv4 for Deployment on Embedded GPU Platform of Autonomous System
原文:集智书童
作者:ChaucerG
关注我不迷路,目前只是一些入门级的小文章,后面会有AI系列文章推送。
[[https://github.com/yazone/ai\\\_learning\\\_path\](https://github.com/yazone/ai\_learning\_path)](https://github.com/yazone/ai\_learning\_path](https://github.com/yazone/ai_learning_path))
更多嵌入式AI技术相关内容请关注嵌入式AI专栏。