1. 程式人生 > 實用技巧 >mmdetection3d學習(一):初步認識

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相關的資料才能理解。