MMDetection V2.0发布!速度精度全面提升,现有检测框架最优

2020 年 6 月 3 日 极市平台

加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~

本文授权转自知乎作者陈恺,https://zhuanlan.zhihu.com/p/145084667。未经作者许可,不得二次转载。

MMDetection V1.0 版本发布以来,我们收到了很多用户的反馈,其中有不少有价值的建议,同时也有很多开发者贡献代码,和我们一起不断完善。经过 2 个月的酝酿,再经过 3 个月的开发和打磨(也就说了五六次“下周发版”吧,这里十分感谢主要开发的小伙伴们:文蔚,嘉瑞和钰杭),终于,在 2020 年 5 月 6 日,我们低调地发布了MMDetection V2.0。今天我们打算介绍一下。

太长不看版: 经过对模型各个组件的重构和优化,我们全面提升了 MMDetection 的速度和精度,达到了现有检测框架中的最优水平。通过更细粒度的模块化设计,MMDetection 的任务拓展性大大增强,成为了检测相关项目的基础平台。同时对文档和教程进行了完善,增强用户体验。

下面简单介绍下 MMDetection V2.0 的各项改进,更具体的细节见文档。

最大最全的模型库

截至 2020 年 5 月底,MMDetection 官方模型库已经支持了35篇论文中的算法,提供了超过 250 个预训练模型,是目标检测领域最大规模的模型库。除此之外,还有 16 篇论文在 Github 上开源了基于 MMDetection 的代码。目前官方支持的方法如图所示:

从 V1.0 到 V2.0,我们新支持了 Res2Net,RegNet(独家放送)等 backbone,也支持了CARAFE,PISA,FSAF,NASFCOS 等方法。对新方法的及时支持使得 MMDetection 既可以用作学术研究的标准 benchmark,也可以用作各种 idea 实现的助力,以及各种比赛的刷(pai)分(lie)利(zu)器(he)。

灵活的设计,全新的体验

模块化设计是 MMDetection 自诞生之初就遵循的原则,使得它能保持强大的生命力,得到社区的广泛支持。

从设计上看,MMDetection V2.0 的模块化设计比之前的版本更加细粒度,使得更多的模块可以被更灵活地替换或调整,让 MMDetection 从单纯的目标检测框架向检测类任务的框架平台转变。新的模块设计如下图所示。

在进行代码重构的过程中,我们针对之前的反馈,在用户体验上着重进行了改进,这里举几个例子。

  • 痛点1:部分模块存在封装太深的问题,例如 AnchorHead 的 target 相关函数实现在了 core 里面,浏览和修改相关代码就需要在 head 和 core 两个文件夹之间来回跳跃,而且在继承拓展的时候无法和核心代码解耦。

  • V2.0改进:对代码结构进行了调整,简化了封装层次,head 的函数都尽量实现在了一个文件内,代码实现一目了然,同时拓展更加容易。

  • 痛点 2:配置文件非常长,修改起来容易出错,而且改动的点不够清晰。

  • V2.0改进:我们设计了新的 config 系统,支持了多重继承机制。将常用的数据集配置、基础模型以及训练策略放到了 _base_ 文件夹中,每个新的 config 只需要继承一个或者多个已有的 config,然后对其中需要修改的字段进行重载即可。下图是 Mask R-CNN R-101 的配置文件在 1.0 和 2.0 版本的对比。V2.0 版本 只需要 2 行,而且所有的改动一目了然,如下图所示。

除此之外,我们在 V2.0 中增加了不少实用的小功能和改进,使得 MMDetection 简直是各位开发者的贴心小棉袄。(还有什么需求都可以提,我们慢慢加,当然能直接提 PR 就最好不过了。。。)

飞一般的速度

在进行代码重构的时候,我们也针对各个模块进行了优化, 实现了30%以上的训练加速和60%以上的测试加速。

它变强了,但没有秃

**MMDetection V2.0 的基准模型精度相比于 V1.x 有了显著的提升。**我们虽然在 V1.0 的技术报告中对各种参数做了 ablation study,但是代码库中的默认配置选用了最朴实无华的版本。在 V2.0 中,在不增加训练和测试代价的前提下,通过对默认超参的调节和实现的优化,例如使用 L1 Loss 而非 SmoothL1 Loss 等,获得了不小的精度提升。Detectron2 在这方面也有不少可圈可点的地方,和 MMDetection V2.0 的主要区别在于默认采用了 multi-scale 训练,而我们仍然选择以 single-scale 作为默认配置。不过在采用相同参数的情况下,精度几乎一致。

总结

其实大多数研究员和开发者在写代码的过程中都会逐渐感受到,代码的工程质量会显著影响研发效率。对于整个社区而言,目标检测的代码框架不仅需要工程上稳定高效的实现,还需要保持灵活性来支持新方法。而 MMDetection 正是在朝着这个方向不断努力。也欢迎各位提 PR 和Issue,让我们一起把它变得更好。

https://github.com/open-mmlab/mmdetection


推荐阅读:



添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:AI移动应用-小极-北大-深圳),即可申请加入AI移动应用极市技术交流群,更有每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、行业技术交流一起来让思想之光照的更远吧~


△长按添加极市小助手


△长按关注极市平台,获取最新CV干货


觉得有用麻烦给个在看啦~  


登录查看更多
1

相关内容

深度学习目标检测方法及其主流框架综述
专知会员服务
147+阅读 · 2020年6月26日
【微众银行】联邦学习白皮书_v2.0,48页pdf,
专知会员服务
165+阅读 · 2020年4月26日
专知会员服务
160+阅读 · 2020年4月21日
【CVPR2020-谷歌】多目标(车辆)跟踪与检测框架 RetinaTrack
专知会员服务
44+阅读 · 2020年4月10日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
如何评价FAIR最新开源的Detectron2目标检测框架?
极市平台
18+阅读 · 2019年10月14日
大盘点 | 性能最强的目标检测算法
极市平台
9+阅读 · 2019年7月8日
已删除
将门创投
4+阅读 · 2019年5月8日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
FaceBoxes—官方开源CPU实时高精度人脸检测器
极市平台
11+阅读 · 2019年1月18日
Mask R-CNN官方实现“又”来了!基于PyTorch,训练速度是原来2倍
机器学习算法与Python学习
5+阅读 · 2018年10月26日
CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进
极市平台
10+阅读 · 2018年7月20日
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
Augmentation for small object detection
Arxiv
11+阅读 · 2019年2月19日
Arxiv
3+阅读 · 2018年6月14日
Arxiv
8+阅读 · 2018年4月12日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
相关资讯
如何评价FAIR最新开源的Detectron2目标检测框架?
极市平台
18+阅读 · 2019年10月14日
大盘点 | 性能最强的目标检测算法
极市平台
9+阅读 · 2019年7月8日
已删除
将门创投
4+阅读 · 2019年5月8日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
FaceBoxes—官方开源CPU实时高精度人脸检测器
极市平台
11+阅读 · 2019年1月18日
Mask R-CNN官方实现“又”来了!基于PyTorch,训练速度是原来2倍
机器学习算法与Python学习
5+阅读 · 2018年10月26日
CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进
极市平台
10+阅读 · 2018年7月20日
相关论文
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
Augmentation for small object detection
Arxiv
11+阅读 · 2019年2月19日
Arxiv
3+阅读 · 2018年6月14日
Arxiv
8+阅读 · 2018年4月12日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
Top
微信扫码咨询专知VIP会员