分享一篇今天新出的重要文章:Scaled-YOLOv4: Scaling Cross Stage Partial Network,作者出自YOLOv4的原班人马,其聚焦于针对YOLOv4的模型缩放(model scale)。

该文作者信息:

论文地址:https://arxiv.org/2011.08036
代码地址: https://github.com/WongKinYiu/ScaledYOLOv4

旗下重要的三个模型:

YOLOv4-CSP(面向普通GPU):

https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-csp

YOLOv4-tiny(面向低端GPU):

https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-tiny

YOLOv4-large(面向高端GPU): 

https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-large

在我爱计算机视觉公众号后台回复“YOLOv4”,即可收到包含论文和代码的打包下载。

实现效果

1)其开发的YOLOv4-large 在COCO数据集达到SOTA精度: 55.4% AP(73.3% AP50) 并以以15 fps 在 Tesla V100运行, 而如果加上测试阶段数据增强方法后,YOLOv4-large 达到 55.8% AP (73.2 AP50). 作者称这一精度是所有已公开文献的最高精度. 

2)另外其 YOLOv4-tiny模型在COCO数据集达到 22.0% AP (42.0% AP50) , ∼443 FPS 在 RTX 2080Ti运行, 当使用 TensorRT做推理, batch size = 4 和 FP16推断时,  YOLOv4-tiny 甚至可达到 1774 FPS

何为模型缩放?

为什么要缩放?

首先我们要搞清楚这篇文章作者的本意,其本不是冲着提高检测精度而来的。其主要考虑的是在深度学习技术应用领域不断扩大的今天,面向实际工程部署,往往需要的不是一个模型而是一套模型

部署在云端,也许你有高端大气上档次的V100 ,部署在个人电脑有大量的消费级GPU可选如2080TI(当然还是略贵~),部署在嵌入式平台可以选择TX2 、Jetson NANO等“弱机”。

模型缩放即希望一个算法衍生出多个模型,对计算和存储的需求不同(精度当然也不同),以满足部署在不同平台的需求。其实这当然不是什么新概念,EfficientNet、EfficientDet即是一个算法的一系列模型。

作为工业界宠爱的 YOLOv4, 需要模型缩放。

Scaled-YOLOv4

是怎么做模型缩放的?

正如之前跟大家分享过YOLOv4论文一样,作者们依然采用了极其工程化的方法设计 Scaled-YOLOv4 ,没有发明什么新思想、新路径,而是“博采众长”,“努力调优”。

以往模型缩放,如 EfficientDet 无非是首先选择网络基础模块,它往往又好又快,然后针对影响目标检测的重要参数如:网络宽度w、深度d、输入图像分辨率size等进行(满足一定条件下按照一定规律)调参。

虽然神经架构搜索也常被用于设计不同平台的一系列不同模型,但EfficientDet 已经证明上述方法其实是很有效。

作者针对不同的GPU设计不同模型。思路依然是寻找基础模块,然后调整网络宽度w、深度d、输入图像分辨率size。

作者认为之前的工作没有系统性分析各个网络因素的影响,而作者进行了系统分析。

这里CV君不再跟大家分享作者的分析细节,只上结论。

针对普通GPU,对应YOLOv4-CSP,作者选择了CSPNet (CVPR 2020 Workshop 论文)启发下的CSP-ized(CSP化的)模型作为基础结构。作为后来者,相比EfficientDet,设计 Scaled-YOLOv4 能选择的网络结构更多,当然是有优势的。

YOLOv4-CSP中的reversed CSP dark 结构

针对嵌入式等平台上的弱GPU,对应YOLOv4-tiny,除了考虑计算量,作者尤其提到要考虑内存访问速度、内存带宽、DRAM 速度的影响,作者选择了OSANet作为整体结构,并依然进行了CSP化,即CSPOSANet。CV君觉得这是搞工程化的人最值得参考的地方。

YOLOv4-tiny 计算模块

对于高端GPU,对应YOLOv4-Large,首要考虑的是追求高精度,所以作者在提高输入图像分辨率和增加stage上下功夫,因为这直接影响不同分辨率目标和算法感受野,输入分辨率高、算法感受野大能检测到更多目标。

YOLOv4-P5、P6、P7结构

算法效果

作者在COCO数据集上进行了测试,未使用预训练权重,从头开始训练。

尽管 Scaled-YOLOv4并不单纯追求精度高,但跟SOTA算法相比依然很能打。

请注意,表中的YOLOv4 -CSP、P5、P6、P7依然都是实时算法,针对帧率15fps(v100 GPU上测试),当然YOLOv4-P7也取得了最高的精度,但相比相同输入分辨率的EfficientDet-D7x也并未出现碾压的架势,在Large目标上EfficientDet-D7x是最优秀的,YOLOv4-P7对小目标检测更好。

YOLOv4-Large 加上测试时图像增强(TTA,这时在工程应用时经常做的)后,精度获得了小幅提升:

YOLOv4-tiny同样很优秀,相比其他主打小模型计算量小的算法,取得了速度和精度的双优。

结论

尽管在算法设计上,该文并没有带来重要亮点,但从工程应用的角度讲, Scaled-YOLOv4无疑是极其优秀的选择!尤其是YOLOv4-tiny,其设计不仅考虑到计算量和参数量还考虑到内存访问,感谢作者团队的开源!

END

备注:目标检测

目标检测交流群

2D、3D目标检测等最新资讯,若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

上达最高精度,下到最快速度,Scaled-YOLOv4:模型缩放显神威相关推荐

  1. 精度45.9%,推理速度72.9FPS,百度飞桨推出工业级目标检测模型 PP-YOLO

    允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 工业视觉.自动驾驶.安防.新零售等我们身边熟知的各行各业都需要目标检测技术,由于其很好的平衡了标注成本.检测精度和速度等,成为当前智能制造产 ...

  2. 同等情况下计算机执行什么速度最快,显存速度是什么 内存和显存哪个更能影响电脑运行速度...

    显存,其实就是显卡内存.在计算机电脑中,显存的作用可以说是和硬盘同样重要的,显卡主要就是对一些数据进行渲染,而显存越大,对笔记本数据的渲染也就越好.特别是一些图形的处理.如今的笔记本已经不想是以前集成 ...

  3. 刘强东:猪飞到天疯狂了十几秒 但摔下死得更快

     刘强东:猪飞到天疯狂了十几秒 但摔下死得更快 2015年09月22日09:47   新浪科技    我有话说(6,450人参与) 收藏本文      查看最新行情 京东CEO刘强东 新浪科技讯 ...

  4. C# 判断给定大数是否为质数,目标以快速度得到正确的计算结果。

    标题是一个测试题.在看到这道题的时候,第一反应这是一道考程序复杂度的题,其次再是算法问题. 我们先来看看质数的规则: Link:http://en.wikipedia.org/wiki/Prime_n ...

  5. dotnet 是 前30个增长最快速度的开源项目中排名第一的开发平台

    CNCF 的博客 发了一篇文章 <Update on CNCF and Open Source Project Velocity 2020>,中文翻译参见 2020年CNCF和开源项目开发 ...

  6. 最快速度求两个数组之交集算法与hash

    一个题目 该题目来自58同城的二面,用最快速度求两个数组之交集算法. 比如A={6,2,4,1},B={2,9,4,3},那么A&B={2,4}. 算法一:在大多数情况,也就是一般的情况下,大 ...

  7. 最快速度找到内存泄漏

    本文已经迁移到: http://cpp.winxgui.com/cn:the-fastest-way-to-find-memory-leak 最快速度找到内存泄漏 许式伟 2006年11月某日 内存管 ...

  8. 最快速度求两个数组之交集算法

    该题目来自58同城的二面,用最快速度求两个数组之交集算法. 比如A={6,2,4,1},B={2,9,4,3},那么A&B={2,4}. 算法一:在大多数情况,也就是一般的情况下,大家都能想出 ...

  9. 如何在互联网以最快速度赚够十万?

    普通的我们,每天过着普通人的生活,每天重复着固定的工作,每月上缴着房贷车贷保险,支出着固定的水电费.物业费.吃住穿行.每天如拼命三郎一般勤勤恳恳的付出,只为能在单位加个薪,升个职. 不料公司的效益一年 ...

最新文章

  1. LTE中基本通信过程的理解——上行调度
  2. 转:c# Linq 的分页[转]
  3. [ARC073C] Ball Coloring(贪心)
  4. python-字典方法
  5. 安装fio命令linux,如何在Linux中使用Fio来测评硬盘性能
  6. ROS学习笔记九:用C++编写ROS发布与订阅
  7. 性能飙升160%!阿里云发布第七代ECS、云原生数据库PolarDB-X等重磅新品 | 凌云时刻...
  8. Win11 安卓子系统 (WSA) 安装包教程 - 电脑运行 Android 手机应用 / 安装 APK 方法
  9. 清理系统垃圾 bat
  10. 解读Secondary NameNode的功能
  11. 优化器 示意图 神经网络_走入五彩斑斓神经网络世界:关于梯度下降、RMSprop优化器的研究...
  12. 腾讯为什么把全国最大的数据中心落户到南京?
  13. 扒一扒那些叫欧拉的定理们(七)——欧拉线定理的证明
  14. php 考试试题id,【模考来啦】2021年3月21日时政试题四大考点
  15. 树莓派?云服务器?小主机?旧手机使用Termux安卓手机中跑Java跑spring boot不香吗?
  16. 安防视频监控流媒体服务器系统对网络带宽的要求
  17. 灰色预测模型及其代码
  18. CVPR‘21 | 真·内卷!involution:超越convolution和self-attention的神经网络新算子
  19. 计算机网络--自顶向下方法 学习笔记之计算机网络和因特网
  20. 别让房子升值迷惑,特别是公寓

热门文章

  1. Ubuntu在启动器中添加自定义程序快捷方式
  2. 数据可视化系列(二):艺术画笔见乾坤
  3. toj 4319 盒子游戏
  4. Font Configuration and Customization for Open Source Systems - 白皮书翻译和深入
  5. 【环境搭建002】ubuntu 13 在vm 下的 NFS 搭建
  6. android 简易涂鸦板,canvas实现的简易涂鸦板效果
  7. nginx多端口配置php,nginx服务器使用不同端口配置多个网站站点
  8. 怎么配置linux中es搜索的主机名,分布式搜索elasticsearch中文分词集成
  9. timespan怎么比较大小_万能小哥丨厨房墙砖哪种好?厨房墙砖怎么挑选?
  10. eclips图片为什么显示不了_为什么要定制工业平板电脑?定制工业平板电脑的七大理由...