SlimYOLOv3:更窄、更快、更好的无人机目标检测算法
点击我爱计算机视觉标星,更快获取CVML新技术
无人机因为硬件计算能力较弱,要在其上实现实时的目标检测,需要算法参数量小、占用内存少、推断时间短。常见的算法往往难以直接应用。
一种比较直接的做法是对模型进行剪枝,尽量减少模型卷积层不必要的通道。
今天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
感谢论文作者的分享!
更多阅读:
移动端70+fps!谷歌新出高效实时视频目标检测
ThunderNet:国防科大、旷视提出首个在ARM上实时运行的通用目标检测算法
YOLO-LITE:专门面向CPU的实时目标检测
52CV正在组织高科技产品!抽奖送【车萝卜小蜜】活动,27日23点开奖,欢迎参加!
目标检测微信群
关注最新的目标检测技术,欢迎加入目标检测专业交流群,扫码添加CV君拉你入群,
(请务必注明:目标检测)
喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。
(不会时时在线,如果没能及时通过验证还请见谅)
长按关注我爱计算机视觉
SlimYOLOv3:更窄、更快、更好的无人机目标检测算法相关推荐
- Yolo-Fastest:超超超快的开源ARM实时目标检测算法
作者丨 qiuqiuqiu@知乎(已授权) 来源 | https://zhuanlan.zhihu.com/p/234506503 编辑 | AI约读社 Github:https://github.c ...
- “快到没朋友”的目标检测模型YOLO v3问世,之后arXiv垮掉了…
安妮 编译整理 量子位 出品 | 公众号 QbitAI 今天有三件事挺有意思. 一是以"快到没朋友"著称的流行目标检测模型YOLO推出全新v3版,新版本又双叒叕提升了精度和速度.在 ...
- YOLOv5全面解析教程③:更快更好的边界框回归损失
作者|Fengwen.BBuf 边界框回归是目标检测的关键步骤,在现有方法中,虽然被广泛用于边界框回归,但它不是针对评估指标量身定制的,即 Intersection over Union (IoU). ...
- YOLOX-PAI:加速YOLOX,比YOLOV6更快更强
作者:忻怡.周楼.谦言.临在 导言 目标检测(object detection)旨在定位并识别出图像中的目标物体,一直以来都是计算机视觉领域研究的热点问题,也是自动驾驶.目标追踪等任务的基础.近年来, ...
- 动态实例分割SOLOv2,更快更强更精准!
今天跟大家分享下前天新出的论文 SOLOv2: Dynamic, Faster and Stronger,一看这名字就知道很霸气!SOLO 超越自己,在原有架构基础上引入动态卷积和发明了Matrix ...
- 如何改进YOLOv3使其更好应用到小目标检测(比YOLO V4高出4%)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨ChaucerG 来源丨集智书童 编辑丨极市平台 导读 针对微小目标的特征分散和层间语义差异的问 ...
- CVPR 2019 | 旷视提出新型目标检测损失函数:定位更精准
点击我爱计算机视觉标星,更快获取CVML新技术 52CV曾经第一时间报道过Softer-NMS:CMU&旷视最新论文提出定位更加精确的目标检测算法,当时引起了不少读者对Softer-NMS的兴 ...
- 难以置信的目标检测小妙招:多训练几个epochs,平均一下就能获得更好的模型...
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 随着深度学习技术的成熟,设计新的算法在主流的目标检测数据集比如CO ...
- 使用SlimYOLOv3框架实现实时目标检测
1. 介绍 人类可以在几毫秒内在我们的视线中挑选出物体.事实上,你现在就环顾四周,你将观察到周围环境并快速检测到存在的物体,并且把目光回到我们这篇文章来.大概需要多长时间? 这就是实时目标检测.如果我 ...
最新文章
- C#操作OFFICE一(EXCEL)
- C和C++混合编程的Makefile的编写!
- 【避坑】初次接项目的血与泪,扎坑了老
- 谈计算机知识对学生的作用,浅谈计算机在教学中的作用
- RPC框架Dubbo分析
- 多校一道KMP+DP的题
- JavaScript开发中几个常用知识点总结
- 多文件管理器 tablacus explorer 下载与安装
- 卸载idea2020删除以前的配置_推荐一款只有5M大小的绿色良心的卸载工具!
- 【BZOJ4069】[Apio2015]巴厘岛的雕塑 按位贪心+DP
- phpMyAdmin出现错误 Access denied for user 'root'@'localhost' (using password: NO)
- 用Markdown格式写一份前端简历
- 基于分布式光纤传感的全厂数字在线监测设计
- 用戶故事 vs 用例
- html在文本中加颜色,如何在HTML中更改文本颜色
- javaScript常用案例
- 【附源码】计算机毕业设计java原创网络文学管理系统设计与实现
- python matting后如何设置透明背景
- Datawhale 1月leetcode
- 跨境电商收款账号一样会关联吗?谁能告诉?
热门文章
- HTTP协议入门——1.1版本
- QT 015 【数据库】 QSqlTableModel Class
- 常用的后端命令 【笔记】
- python3 ftp启动_python3利用pyftpdlib模块启动ftp服务
- linux 文件-s,Linux下访问文件的基本模式
- u大侠pe系统桌面计算机,WinPE系统的四种启动方法
- linux查看当前igb的版本信息,Linux下查看网卡驱动和版本信息
- python获取网页元素坐标_Python实战爬虫系统学习笔记一:解析网页中的元素
- jaxb java xml序列化_XML编程总结(六)——使用JAXB进行java对象和xml格式之间的相互转换...
- 南华大学计算机学院吴取劲,一种基于图深度优先搜索的基本路径集自动生成优化算法-南华大学学报.PDF...