MMDetection3D:新一代通用3D目标检测平台

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者:包小张 | 来源:知乎

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

本文仅做学术分享,如有侵权,请联系删除。

伴随着自动驾驶科技的飞速发展和激光雷达的普及,3D目标检测近年来逐渐成为业界和学术界的研究热点。然而,目前在3D目标检测领域却不像2D目标检测那样,有着像MMDetection这样简单通用的代码库和benchmark。所以,我们决定发布MMDetection3D(简称MMDet3D)来弥补这一空白。今天,很高兴MMDetection3D 和大家见面了,希望大家喜欢。

太长不看版:

    ·MMDetection3D 支持了VoteNet, MVXNet, Part-A2,PointPillars等多种算法,覆盖了单模态和多模态检测,室内和室外场景SOTA; 还可以直接使用训练MMDetection里面的所有300+模型和40+算法,支持算法的数量和覆盖方向为3D检测代码库之最。

     ·MMDetection3D 支持了SUN RGB-D, ScanNet, nuScenes, Lyft, 和KITTI共5个主流数据集,支持的数据集数量为3D检测代码库之最。

     ·MMDetection3D 拥有最快的训练速度,支持pip install一键安装,简单易用。

下面简单介绍下 MMDetection3D,更具体的细节见文档:https://mmdetection3d.readthedocs.io/en/latest/。

支持多模态/单模态3D检测

3D检测领域的多套codebase大多聚焦在基于点云的单模态检测上,而多模态检测的代码库也不怎么支持单模态的检测。由于多模态3D检测任务的重要性愈发凸显,我们在MMDetection3D里面支持了多模态(图像+点云)的3D检测,目前已经支持了MVX-Net在KITTI 上的模型。从此,新的工作可以基于MMDetection3D和其他单模态或者多模态方法进行直接的比较,减轻了不少codebase迁移和文章复现等带来的负担。

支持室内/室外主流数据集

由于室内和室外3D检测数据集的差异性,一直以来很少有工作会同时在这两类数据集上进行实验和比较,因此目前也没有codebase能较好地同时支持室内外的数据集及相关方法。MMDetection3D目前支持了ScanNet和SUNRGBD两个主流室内数据集,还同时支持了KITTI,nuScenes和Lyft三个室外数据集。在模型层面,我们复现了VoteNet(https://arxiv.org/abs/1904.09664 )这一室内数据集中的state of the art,以及PartA2-Net(https://arxiv.org/abs/1907.03670),PointPillars(https://arxiv.org/abs/1812.05784 )等室外数据集中的常见方法。MMDetection3D将室内外数据集的预处理流程抽象成了一套data pipeline,同时在模型层面已经实现了部分model是与坐标系无关的。我们的目标是以后新的工作可以较轻松地同时在室内和室外数据集上进行试验和比较,以验证方法的普适性并提高其影响力。

直接支持MMDetection的model zoo

目前,还没有哪套3D检测的codebase可以直接在自己的codebase里支持2D检测的SOTA,但MMDetection3D 就做到了这一点。MMDetection3D基于MMDetection和MMCV,使用了和MMDetection一致的外层API并直接使用了很多MMDetection的代码(例如,训练相关的hook都实现在MMCV里面了,而train_detector等函数因为都是检测所以MMDetection3D 压根不用写),所以只要有正确的config文件, MMDetection model zoo里的300+模型和40+算法都可以在MMDetection3D里面正常使用(考虑到MMDetection不支持3D检测,MMDetection3D支持的模型和算法其实比MMDetection多,MMDetection3D可以claim是目前圈内最大、最全的检测算法库了嗯…)。

这样带来的好处有至少以下两点:

     1、以后大家要尝试多模态的检测算法可以复用几乎所有MMDetection里的2D检测器和实例分割模型,选项多多,排列组合多多。

     2、MMDetection和MMCV里实现了很多通用的模块,如GCBlock,DCN,FPN,FocalLoss等,也可以直接在MMDetection3D里面拿来使用(现在就是这么做的),减小了2D检测和3D检测之间的gap。也欢迎大家以后在尝试新的通用检测技术时(如Loss,神经网络模块等)可以来MMDetection3D里试一锤子,说不定也是work的,这样实验也会更加solid。

最快的训练速度

我们和已开源的多个3D检测代码库都进行了比较,在VoteNet,SECOND,PointPillars等模型上的训练速度都比其他代码库要快。在8卡分布式训练并使用相同超参的情况下,训练速度(样本数/秒)的对比如下图;其他codebase中不支持的对应模型我们就打了x。

简单易用

除了上述优势以外,由于MMDetection3D的实现基于MMDetection,设计上的思路也是一脉相承,比如config系统和MMDetection一致,modular design等也像MMDetection一样是codebase的标配,大家要上手MMDetection3D应该都很简单。MMDetection3D也支持像MMDetection 或者detectron2那样作为一个package来使用,因此也方便大家基于MMDetection3D 快速启动一个新的project。直接 pip install mmdet3d 就可以安装最新release 的MMDetection3D,在新的project里面直接 import mmdet3d 就可以轻松使用mmdet3d 的所有功能。

MMDetection3D在工程上也做了不少优化。众所周知,最初的SECOND.Pytorch在Target assign等方面都使用NumPy算子,并且将很多运算放进了Dataloader里面,既不高效也不灵活。MMDetection3D直接使用了MMDetection里的assigner等模块(是的,MMDetection3D并不需要实现这些函数),基于PyTorch将这些复杂的计算放到了CUDA上进行,这大概也是MMDetection3D更快的原因。在其他codebase中,安装spconv也时常是一大障碍,现在spconv也被直接集成进了MMDetection3D的自定义算子里,使得MMDetection3D的安装流程和MMDetection一样流畅。

MMDetection3D 要刷到SOTA 的方式也非常简单。比如我们在nuscenes上使用PointPillars + RegNet3.2GF + FPN + FreeAnchor + Test-time augmentation,不需要使用CBGS 或GT-sampling,只使用普通的数据增强,就能够达到NDS 65, mAP 57,是榜单上LiDAR单模态单模型第一的结果。这个模型在release的时候就在我们的 model zoo 里:https://github.com/open-mmlab/mmdetection3d/tree/master/configs/free_anchor

总结:

MMDetection3D填补了目前3D检测领域codebase的一些空白,支持多种多模态/单模态检测器和室内/室外数据集SOTA,为community未来的free style提供了一个强大易用的codebase。欢迎大家前来fork,star,体验,开发,提PR。

推荐阅读:

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值