SlimYOLOv3:更窄、更快、更好的无人机目标检测算法

标签: slimyolov3 无人机 目标 | 发表时间:2019-07-29 18:30 | 作者:我爱计算机视觉
出处:https://www.jiqizhixin.com/

无人机因为硬件计算能力较弱,要在其上实现实时的目标检测,需要算法参数量小、占用内存少、推断时间短。常见的算法往往难以直接应用。

一种比较直接的做法是对模型进行剪枝,尽量减少模型卷积层不必要的通道。

今天arXiv新上论文SlimYOLOv3: Narrower, Faster and Better for Real-Time

UAV Applications,作者对YOLOv3的改进版进行了剪枝,在参数量、占用内存、推断时间大幅减少的情况下,在无人机目标检测数据集上实现了与原算法可比较的检测精度。

作者已将代码开源,包含训练和测试部分,值得从事相关工程开发的朋友参考。

以下是作者信息:



作者全部来自北京理工大学。

下图为作者发明的三种设置下的SlimYOLOv3 相比较基线版本的YOLOv3的结果:

YOLOv3-tiny 是YOLOv3的一种快速算法,但精度下降太多。

YOLOv3-SPP1 是YOLOv3加上SPP模块的改进,其比原始YOLOv3精度要高。

YOLOv3模型中加入SPP模块的示意图,作者是在原第5和第6卷积层之间加SPP模块

YOLOv3-SPP3 是该文作者YOLOv3-SPP1的改进,其有3个SPP模块,比YOLOv3-SPP1精度更高,是本文模型剪枝的基础模型。

SlimYOLOv3-SPP3-50/90/95,是YOLOv3-SPP3模型剪枝率分别为50%、90%、95%的三个模型。

可见模型剪枝可大幅改善模型在无人机上的部署,有一定的精度损失,但远比YOLOv3-tiny要好。

剪枝过程

什么是深度模型的剪枝?就像论文名字中的更窄(Narrower),它是要减少模型通道数。

去除每个卷积层中不重要的特征通道。所以需要合理地评估特征通道的重要性。

下图可以较为明了地说明整个过程。


YOLOv3经过稀疏训练,得到各通道的尺度因子,然后去除那些尺度因子小的通道,将剪枝得到的模型SlimYOLOv3在数据集上进一步微调,得到检测结果,然后进入下一轮的稀疏训练。以上剪枝过程是迭代重复的,直到满足一定的模型条件,比如模型剪枝率达到一定要求。

实验结果

作者通过上述方法,在配置为 Intel(R) Xeon(R) E5-2683 v3 CPU @ 2.00GHz (56 CPUs), 64GB RAM, 4 个 NVIDIA GTX1080ti GPU的 Linux 机器上训练,得到三个剪枝模型,并在无人机目标检测数据集 VisDrone2018-Det上进行了实验,结果如下:

可见在精度稍有下降的情况下,推断时间(Inference time)、参数量(Parameters)、内存占用(Volume)大幅减少,更适合在无人机部署。

下图为各算法结果比较的柱状图,更加直观。

检测结果示例:

作者已将代码开源,各位读者可以非常方便地进行训练和测试。

每个步骤仅需要一行命令!

原始模型训练:

./darknet/darknet detector train VisDrone2019/drone.data  cfg/yolov3-spp3.cfg darknet53.conv.74.weights

稀疏训练:

python yolov3/train_drone.py --cfg VisDrone2019/yolov3-spp3.cfg --data-cfg VisDrone2019/drone.data -sr --s 0.0001 --alpha 1.0

通道剪枝

python yolov3/prune.py --cfg VisDrone2019/yolov3-spp3.cfg --data-cfg VisDrone2019/drone.data --weights yolov3-spp3_sparsity.weights --overall_ratio 0.5 --perlayer_ratio 0.1

模型微调:

./darknet/darknet detector train VisDrone2019/drone.data  cfg/prune_0.5.cfg weights/prune_0.5/prune.weights

论文地址:

https://arxiv.org/pdf/1907.11093v1.pdf

代码地址:

https://github.com/PengyiZhang/SlimYOLOv3

感谢论文作者的分享!

相关 [slimyolov3 无人机 目标] 推荐:

SlimYOLOv3:更窄、更快、更好的无人机目标检测算法

- - 机器之心
无人机因为硬件计算能力较弱,要在其上实现实时的目标检测,需要算法参数量小、占用内存少、推断时间短. 一种比较直接的做法是对模型进行剪枝,尽量减少模型卷积层不必要的通道. 今天arXiv新上论文SlimYOLOv3: Narrower, Faster and Better for Real-Time.

下一个目标:广播

- yimin - It Talks-魏武挥的blog
从报纸杂志到书籍电视,传统媒体在全方位地受到数字媒体的冲击,数字革命的颠覆性正在横扫一切传统媒体的角落,现在看来,最后一个堡垒:广播业,也将迎来有力挑战. 美国著名传媒杂志《Media Life》在去年年底展望2011年全美传媒行业的时候,还很乐观地估计,广播行业将从09年的14%衰退中迎来复苏. 在当时,潘朵拉(Pandora.com)这类“网络电台”已经兴起,但该杂志依然满不在乎地说:“尽管Pandora互联网广播服务和其它网站可以依据个人喜好定制个性化网络电台服务,但那仍然属于小众市场.

我的愿望与目标

- bill boy - 嘉佑中文博客
中午,大学校友通过微信语音留言给我,说他要回家结婚了,7月5日走,要请我吃饭. 他们在台州本地的团购网站上预订了晚餐,我跟他们刚刚从九峰山下的某酒店吃完回来. 他们打算 10月2日 结婚,再三嘱咐我一定要过去参加他们的婚礼. 我肯定届时会去郑州,但是这很可能是最后一次在台州见他们. 又一个朋友,而且是很要好的朋友,就要走了,有点失落因为在台州又少了一个依靠,同时也让我多了一个离开黄岩的借口.

有目标?请闭嘴

- - Starming星光社最新更新
当你给了自己一个全新的目标,你会不会想要跟身边(亲密)的人分享它呢. 通常来讲,很多人都会说出来,在这种行为背后,有些是出于“期望获得来自他人的有效监督”的目的,而有些则纯粹是觉得“没什么好隐瞒的,不妨说出来”. 但如果效率天阶告诉你:当有一天你的目标宣告失败(或迟迟不能达成),其根本原因却仅仅是因为你“告诉别人了”,你会不会觉得难以置信呢.

谈技术团队目标

- - Tim[后端技术]
技术主管新年想得最多的一件事必定是如何比上一年做得更好. 宏大的目标设定每个团队都会做,谈几个不引人注意的小问题. 见过一些技术团队将计划定义为“按时完成需求”,需求驱动并没有什么不对,但是研发工作仅考虑被动需求的话是很难做好. 之前完成的许多需求有什么共性. 经常出问题/bug/故障的项目/功能/模块是哪些.

目标管理体系:OKR

- - 标点符
OKR体系的全称是Objectives & Key Results,即目标与关键成果. 所谓OKR,O = Objective 可以理解为企业目标,KR =Key Results 可以理解为关键结果. 浓缩在一起就是“为确保达成企业目标的关键结果分解与实施”. OKR是企业进行目标管理的一个简单有效的系统,能够将目标管理自上而下贯穿到基层.

洛克希德开发形似枫叶种子的无人机

- lin - Solidot
每到秋季,枫叶种子会从枫树上旋转飘落,像单翼直升机那样无声无息的落在地上. 过去五年,洛克希德马丁公司智能机器人实验室一直在开发能复制这一运动的无人飞行器,它将在下周的无人机系统国际会议上展示. 被称为Samarai的无人机长一英尺,仅有两个移动部件外加一个摄像机,可以遥控控制或通过平板上应用程序控制.

国产隐形无人机河北坠毁

- 微笑!?~ - Solidot
bonnae1982 写道 "据香港《明报》报道(图),解放军一架国产隐形无人侦察机前日在河北邢台坠眦,该架直属总参的BZK-005高空远程无人驾驶侦察机. 据悉这件无人机由北京沙河机场起飞运行训练任务后,坠落在邢台一个村落的树林中,起火焚烧,幸未造成地面人员伤亡,当局封锁现场,入夜后将飞机残骸运走.

美国无人机舰队遭病毒攻击

- sec314 - Solidot
《连线》报导,美国捕食者和收割者无人机的“驾驶舱”遭到了病毒攻击,病毒记录了遥控飞机的飞行员的所有按键操作. 病毒是大约两周前被军方的Host-Based安全系统首次检测到的,目前美国军方无人证实是否有机密信息泄露. 消息人士透露,病毒极难清除,总是反反复复出现. 安全专家也不清楚病毒传播范围究竟有多广.