mmdetection3d學習(一):初步認識
阿新 • • 發佈:2020-08-26
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相關的資料才能理解。