[开源框架]mmdetection3d学习(一):初步认识

mmdetection3d

mmdetection3d 是 mmdetection 的 3D 版本,近期刚开源。

源码地址 https://github.com/open-mmlab/mmdetection3d

官方文档 https://mmdetection3d.readthedocs.io/en/latest/

新一代3D目标检测通用框架 https://zhuanlan.zhihu.com/p/165647329

框架结构

mmdetection3d

  • config: 各种模型、数据集的配置参数文件

  • tools: 常用脚本,包括最顶层的 train.py , test.py

  • tests: 各个模块组件的单元测试代码

  • data: 存放数据集的目录,可以放一些 demo 样本,或建立 soft link 到数据集的根目录

  • mmdet3d: 核心代码

    • apis: 一般是 train.py , test.py 等,在最外层的脚本里调用到这里面的文件。
    • core: 核心代码,常被其他模块调用。
    • dataset: 各数据集的定义,以及处理数据集到载入网络的pipeline,可理解为预处理过程。
    • models: 将网络划分为 backbone + neck + head.
      • backbone 负责提取特征,比如 ResNet
      • neck 比如 FPN ,可以省略
      • head 负责得到最终预测结果、计算损失。其中 head 又分为 dense_head , roi_head , 分别对应一阶段的检测网络和二阶段的检测网络。
      • detectors 则是整个网络的完整定义。
      • 还有许多不同网络各自的小组件。
    • ops: 自定义的 torch op,基本都有相应的 cppcuda 的实现。

mmdetection3d从配置文件中加载所有参数,包括网络结构的定义、所选取的数据集、数据如何加载(加载哪些样本、如何对加载样本做预处理)、训练参数。注意配置文件之间存在继承关系,读某一配置文件觉得不齐全的时候可以去看一下它继承的配置文件。

代码中涉及到的模块会用到注册器注册。

结构大体上与mmdet类似,不过目前mmdet3d资料还比较少,很多没太搞懂的地方都是去搜索mmdet相关的资料才能理解。

posted @ 2020-08-26 11:31  lunaY  阅读(6632)  评论(0编辑  收藏  举报