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,基本都有相應的
cpp
和cuda
的實現。
- apis: 一般是
mmdetection3d從配置文件中加載所有參數,包括網絡結構的定義、所選取的數據集、數據如何加載(加載哪些樣本、如何對加載樣本做預處理)、訓練參數。注意配置文件之間存在繼承關系,讀某一配置文件覺得不齊全的時候可以去看一下它繼承的配置文件。
代碼中涉及到的模塊會用到注冊器注冊。
結構大體上與mmdet類似,不過目前mmdet3d資料還比較少,很多沒太搞懂的地方都是去搜索mmdet相關的資料才能理解。