MMDetection 安裝

引言

MMDetection是一款優秀的基於PyTorch的深度學習目標檢測工具箱,由香港中文大學(CUHK)多媒體實驗室(mmlab)開發。基本上支持所有當前SOTA二階段的目標檢測算法,比如faster rcnn,mask rcnn,r-fcn,Cascade-RCNN等。讀者可在 PyTorch 環境下測試不同的預訓練模型及訓練新的檢測分割模型。

根據 GitHub 項目所述,MMDetection的主要特徵可以總結為以下幾個方面:

  • 模塊化設計:將檢測或者分割任務分解成幾個模塊,通過模塊的組合即可完成相應的任務。
  • 支持多個框架,開箱即用:該工具包直接支持多種流行的檢測框架,如 Faster RCNN、Mask RCNN、RetinaNet 等。
  • 高效:所有基礎邊界框和掩碼運算都在 GPU 上運行。不同模型的訓練速度大約比 FAIR 的 Detectron 快 5% ~ 20%。
  • 技術發展水平: 達到了目前最先進的水平。

翻譯過程中難免有所疏漏,如發現錯誤,希望大家指出,謝謝支持。

目錄

  • MMDetection安裝 瞭解如何在計算機上安裝MMDetection
  • MMDetection入門 學習有關MMDetection用法的基本教程。
  • 基準測試和model zoo 介紹各種模型的訓練環境和基準測試,比較不同模型訓練的各項數據。
  • 技術細節 介紹訓練檢測器的主要單元:數據管道,模型和迭代管道。
  • 更新日誌

安裝

安裝條件

  • Linux(不正式支持Windows)
  • Python 3.5+
  • PyTorch 1.1或更高版本
  • CUDA 9.0或更高
  • NCCL 2
  • GCC 4.9或更高
  • mmcv(https://github.com/open-mmlab/mmcv)

我們已經測試了以下版本的操作系統和軟件:

  • OS: Ubuntu 16.04/18.04 and CentOS 7.2
  • CUDA: 9.0/9.2/10.0/10.1
  • NCCL: 2.1.15/2.2.13/2.3.7/2.4.2
  • GCC(G++): 4.9/5.3/5.4/7.3

安裝 mmdetection

a. 創建一個conda虛擬環境並激活它

<code>conda 

create

-n

open

-mmlab python=

3.7

-y conda

activate

open

-mmlab/<code>

b. 按照官方說明安裝PyTorch和Torchvision(https://pytorch.org/) ,例如,

<code>

conda

install pytorch torchvision -c pytorch/<code>

c. 克隆mmdetection存儲庫

<code>git 

clone

https://github.com/open-mmlab/mmdetection.git

cd

mmdetection/<code>

d. 安裝構建要求,然後安裝mmdetection。(我們通過github repo安裝pycocotools而不是pypi,因為pypi版本較舊並且與最新的numpy不兼容。)

<code>pip 

install

-r requirements/build.txt pip

install

"git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"

pip

install

-v -e . /<code>

注意:

  1. git commit的id將在步驟d中寫入版本號,例如0.6.0 + 2e7045c。該版本還將保存在經過訓練的模型中。建議你每次從github獲取一些更新時都運行步驟d。如果修改了C++/CUDA代碼,則此步驟為強制性的。
  2. 按照上述說明,mmdetection將安裝在dev模式下,對代碼進行的任何本地修改都將生效,而無需重新安裝它(除非你提交了一些提交併希望更新版本號)。
  3. 如果要使用 opencv-python-headless 來代替 opencv-python,可以在安裝MMCV之前先安裝它。
  4. 一些依賴關係是可選的。只需運行 pip install -v -e .,將只會安裝最低運行時間要求。要使用可選的依賴項如albumentations和imagecorruptions,並使用pip install -r requirements/optional.txt 手動安裝它們,或者在調用pip時指定所需的附加項(例如pip install -v -e .[optional])。對於額外字段的有效鍵為:all,tests,build,和 optional。

另一個選擇: Docker Image

我們提供了一個Dockerfile(https://github.com/open-mmlab/mmdetection/blob/master/docker/Dockerfile)來構建映像。

<code> 

docker

build -t mmdetection docker//<code>

準備數據集

建議將數據集根符號鏈接到$MMDETECTION/data。如果文件夾結構不同,則可能需要更改配置文件中的相應路徑。

<code>mmdetection
├── mmdet
├── tools
├── configs
├── 

data

│ ├── coco │ │ ├── annotations │ │ ├── train2017 │ │ ├── val2017 │ │ ├── test2017 │ ├── cityscapes │ │ ├── annotations │ │ ├── train │ │ ├──

val

│ ├── VOCdevkit │ │ ├── VOC2007 │ │ ├── VOC2012 /<code>

必須使用cityscapesScripts工具箱(https://github.com/mcordts/cityscapesScripts)將城市景觀註釋轉換為coco格式。我們計劃提供一個易於使用的轉換腳本。目前,我們建議你遵循maskrcnn-benchmark工具箱(https://github.com/facebookresearch/maskrcnn-benchmark/tree/master/maskrcnn_benchmark/data) 中提供的說明 。使用此腳本時,所有圖像都必須移到同一文件夾中。在linux系統上,例如可以通過以下方式對火車圖像進行處理:

<code>

cd

data/cityscapes/

mv

train/*/*train/

/<code>

從零開始的安裝腳本

這是一個完整的腳本,用於使用conda設置mmdetection並鏈接數據集路徑(假設你的COCO數據集路徑為$ COCO_ROOT)。

<code>conda 

create

-n

open

-mmlab python=

3.7

-y conda

activate

open

-mmlab conda

install

-c pytorch pytorch torchvision -y git

clone

https://github.com/

open

-mmlab/mmdetection.git cd mmdetection pip

install

-r requirements/build.txt pip

install

"git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"

pip

install

-v -e . mkdir

data

ln

-s $COCO_ROOT

data

/<code>

使用多個MMDetection版本

如果你的機器上有多個mmdetection,並且你想交替使用它們,則建議的方法是創建多個conda環境並對不同版本使用不同的環境。

另一種方法是插入下面的代碼到主腳本(train.py,test.py或任何其他腳本運行)

<code>import 

os

.

path

as osp import sys sys.

path

.

insert

(

0

,osp.join(osp.dirname(osp.abspath(__file__)),

'../'

))/<code>

或者在相應文件夾的終端中運行以下命令以臨時使用當前文件夾。

<code>

export

PYTHONPATH=`

pwd

`:

$PYTHONPATH

/<code>


分享到:


相關文章: