MMDetection V2.0来了!更快更强的通用目标检测平台

2020 年 6 月 2 日 CVer

点击上方“CVer”,选择加"星标"置顶

重磅干货,第一时间送达

本文作者:陈恺

https://zhuanlan.zhihu.com/p/145084667

本文已由原作者授权,不得擅自二次转载

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

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

太长不看版:经过对模型各个组件的重构和优化,我们全面提升了 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


广告时间


最后,还是要给商汤我们的团队打个小广告,目前有许多坑等待优秀的同学们一起来填,欢迎大家推荐和转发,简历投递请联系 chenkai@sensetime.com

邮件主题/简历命名格式:岗位+姓名+CVer推荐


1. 见习算法研究员(多名)

负责开源框架(各种方向,不限于检测)的开发和维护,例如定期实现新的 SOTA 算法,添加新功能把轮子打磨得更顺手等。base 香港,长期实习优先。保证这段经历能让你在算法和工程能力上都能有不小的收获。


2. 见习算法研究员(检测方向,1 名)

负责检测算法的算法研究和业务落地。


3. 全职算法研究员(分割方向,1 名)

负责语义分割方向的算法研究和业务落地。社招优先。


4. 全职开源社区运营(1 名)

负责开源社区运营,提升社区开发者活跃度,连接核心开发团队和开源社区,负责用户需求的挖掘和整理。负责中英文平台的宣传。


5. 项目经理(全职/实习,1 名)

负责设计、细化和实施开源项目开发计划,把控项目风险,协调核心开发团队以及社区开发者的开发任务。


同时,也给 MMLab 打个广告,实验室长期招收有志于在 CV 和 NLP领域有所突破,做出有影响力工作的同学,有CUHK,NTU、HKU、USYD、SIAT 等多个base可以申请,欢迎大家直接联系对应的老师。

  • CUHK:mmlab_contact@ie.cuhk.edu.hk

  • NTU:ccloy@ntu.edu.sg

  • HKU:pluo.lhi@gmail.com

  • USYD:wanli.ouyang@sydney.edu.au

  • SIAT:zoujing@siat.ac.cn



CVer-目标检测 交流群已成立


扫码添加CVer助手,可申请加入CVer-目标检测 微信交流群,目前已汇集4000人!涵盖2D/3D目标检测、小目标检测、遥感目标检测等。互相交流,一起进步!


同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。


一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲长按加群


▲长按关注我们

请给CVer一个在看
登录查看更多
0

相关内容

CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
抢鲜看!13篇CVPR2020论文链接/开源代码/解读
专知会员服务
49+阅读 · 2020年2月26日
【精通OpenCV 4】Mastering OpenCV 4 - Third Edition 随书代码
专知会员服务
39+阅读 · 2019年11月13日
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
如何评价FAIR最新开源的Detectron2目标检测框架?
极市平台
18+阅读 · 2019年10月14日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
FaceBoxes—官方开源CPU实时高精度人脸检测器
极市平台
11+阅读 · 2019年1月18日
用 TensorFlow 目标检测 API 发现皮卡丘!
AI研习社
5+阅读 · 2018年6月4日
Relation Networks for Object Detection 论文笔记
统计学习与视觉计算组
16+阅读 · 2018年4月18日
【下载】PyTorch 实现的YOLO v2目标检测算法
专知
15+阅读 · 2017年12月27日
Arxiv
12+阅读 · 2019年1月24日
Scale-Aware Trident Networks for Object Detection
Arxiv
4+阅读 · 2019年1月7日
Arxiv
5+阅读 · 2018年4月17日
Arxiv
11+阅读 · 2018年4月8日
VIP会员
相关VIP内容
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
抢鲜看!13篇CVPR2020论文链接/开源代码/解读
专知会员服务
49+阅读 · 2020年2月26日
【精通OpenCV 4】Mastering OpenCV 4 - Third Edition 随书代码
专知会员服务
39+阅读 · 2019年11月13日
相关资讯
47.4mAP!最强Anchor-free目标检测网络:SAPD
极市平台
13+阅读 · 2019年12月16日
如何评价FAIR最新开源的Detectron2目标检测框架?
极市平台
18+阅读 · 2019年10月14日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
FaceBoxes—官方开源CPU实时高精度人脸检测器
极市平台
11+阅读 · 2019年1月18日
用 TensorFlow 目标检测 API 发现皮卡丘!
AI研习社
5+阅读 · 2018年6月4日
Relation Networks for Object Detection 论文笔记
统计学习与视觉计算组
16+阅读 · 2018年4月18日
【下载】PyTorch 实现的YOLO v2目标检测算法
专知
15+阅读 · 2017年12月27日
Top
微信扫码咨询专知VIP会员