登陆将门-TechBeat社区网址,
https://www.techbeat.net/
搜索【OpenMMLab】即可观看直播回放~
以下是本期课程总结,希望对大家有所帮助~
长按复制链接进入网页
或扫描二维码进入直播间
MMCV: 计算机视觉基础库
在之前的课程中,商汤科技研究副总监陈恺博士介绍了整个 OpenMMLab 算法体系的架构(详情戳这里👈)。本次课程着重讲解了整个算法体系的基础库 MMCV,并基于此介绍了 MMDetection 和 MMDetection3D 的算法开发流程。
注册器 Registry 管理从字符串到模块类的映射,一般通过相应的 build 函数将配置字段映射到对应的模块类并将该类实例化。基于最底层的 Registry & Config & Builder ,MMCV 实现了对上层的模块化支持:Data,Model,Optimizer,这三部分都是由 Runner 进行管理。
新建一个 Registry。
实现对应 build 函数。
在 Registry 中注册模块。
构建并使用模块。
目标检测框架: MMDetection
目标检测框架分为目标检测和实例分割。
目标检测是预测每个物体的矩形框框住其外边沿;实例分割除了预测矩形框之外,还需要对物体进行像素级别的分割。目标检测和实例分割都需要对物体的类别进行识别。
2.1 组件概览
目前,MMDetection 支持了非常多检测器,这得益于非常灵活的模块化设计,如:
MMDetection 不仅支持了各种各样的检测器,也支持了非常丰富的算法模块,如各种模块化插件和训练手段。
MMDetection 主要将检测器拆分成四个主要的模块,分别是:Backbone,Neck,RoIHead,DenseHead。
2.2 如何在 MMDetection 中支持新的算法/神经网络模块?
第一步:在 MMDetection 中支持 PAFPN,实现 PAFPN 并将 PAFPN 注册进 NECKS。
第二步:Import PAFPN。
第三步:修改配置文件,使算法跑起来。
第四步:训练与测试。
2.3 如何在 MMDetection 中支持新数据集?
在 MMDetection 中有如下三种方式去支持一个新数据集:
关于如何支持一个新的数据集,我们举一个例子:如何在 MMDetection 中支持 KITTI 数据集?
详情可见:
https://github.com/open-mmlab/mmdetection/blob/master/demo/MMDet_Tutorial.ipynb
具体步骤分为:
第一步:实现新的数据集类。
第二步:实现新的数据集类。
KITTI 数据集在继承 CustomDataset 后只需要重载 load_annotations 函数将原 KITTI 格式转化成中间数据格式。
第三步:修改配置文件进行训练。
3D目标检测框架: MMDetection3D
3D目标监测框架是 MMDetection 框架的拓展,在一个场景中检测出物体的 3D 框架。预测每个物体在 3D 世界的坐标以及大小和旋转方向。
3.1 特性介绍
模块化设计,模型抽象化,方便替换组合各种模块;
算法丰富,单模态和多模态检测算法,应用于室内和室外场景。比如室内的 ScanNet 和 SUN RGB-D,室外的 NuScense、Waymo、Lyft、KITTI 数据集,单模态检测支持基于点云的 3D 检测,单/双目 3D 检测,多模态检测支持点云+图像等;
高性能,分布式训练优化,速度远超同类框架;
❓如何理解集成拓展 MMDetection
MMDet3D 直接使用了 MMDet 中的训练/测试 API。
相同类型的模块直接使用 MMDetection 的 Registry。
❓关于如何理解模块化设计
统一了 2D 和 3D 检测器的模块设计与使用。
❓关于如何理解高性能
可以看到是远超其他框架的,目前实现算法也是所有 3D 中最多的。
❓关于如何理解算法丰富
MMDet3D 在 NeurIPS 2020 的 nuScenes 检测挑战赛中,凭借多模态方法拿到了 Best PKL Award 和第三名,以及基于视觉的 3D 检测方法的最佳结果!
3.2 nuScenes Challenge Best PKL Award 方案介绍
多模态 3D 检测的现状:近年来基于图像和点云的多模态感知算法并没有体现出相对于单模态算法的绝对优势。出于对不同模态间 consistency 的考虑,目前多模态感知算法使用的数据增强技术远不如单模态算法丰富。
针对这个现状,我们有了以下实践:
验证了单模态算法中常用的数据增强技术对多模态感知算法同样有效。
提出了一种新的多模态数据增强技术,多模态剪贴(Multi-modality Cutand Paste)MoCa。
尝试了多模态融合和模型训练上的有益实践。
感兴趣的同学可以直接去搜索 Multi-Modality Cut and Paste for 3D Object Detection,这里主要讲解一下第三点:如何基于 MMDetection3D 实现这些有益实践。
经过 COCO 和 nuImages 数据集 pretrain 过的图像分支能提高性能。
预训练检测器性能增益 HTC > Cascade Mask R-CNN > Mask R-CNN。
如何在 MMDetection3D 中使用 nuImages 数据集?
3.3 在 MMDetection3D 中实现新的 optimizer
修改配置文件调用两个模块,就可以进行混合优化训练了。
比如:在 MMDetection3D 中实现混合优化,
实现 HybridOptimizerConstructor:
实现 HybridOptimizer:
修改配置文件并训练:
Q & A
1/不同版本之间的兼容性问题,比如需要获取某个算法指定版本的 Pytorch 模型,可以做到吗?
可以的!目前 MMDetection 兼容 Pytorch 1.3-1.7,基于任意一个 Pytorch 版本训练出来的模型都可以在其他版本的 Pytorch 环境下使用。关于 MMDetection 模型,其实只要是在 V2.0 之后训练出来的模型都可以在各个后续版本中使用。包括 V1.0 的模型我们也有发布模型迁移的教程。
2/请问 MMLab 中,任何算法库的数据集格式都是 coco 格式么?
不是的!我们只是在检测中使用 coco 数据集的格式,其他格式也是支持的。
3/MMDetection3D 有哪些模型的引进计划?
我们今年会支持 LiDAR Segmentation,比如 Cylinder3D;然后还有单目 3D 检测的一些模型。
课程预告
OpenMMLab系列课程将在本周四(1月21日)迎来最后一节开源工具使用教学课程,同时上周四的教学课程(二)也即将在TechBeat进行视频回放,敬请期待~
长按复制链接进入网页
或扫描二维码进入直播间
干货不容错过!
点击查看往期直播预告:
商汤×TechBeat系列直播课:
OpenMMLab ●●
// 1
// 2
// 3
扫码观看!
本周上新!
关于我“门”
将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门技术社群以及将门创投基金。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
bp@thejiangmen.com
扫二维码|关注我们
微信:thejiangmen
bp@thejiangmen.com
点个“在看”,分享好内容