# MMDetection 3.1.0 在Windows上的安裝教學 論文使用了MMdetection 3.1.0 來進行實作,想說順便整理一下如何安裝,之後有要重灌時會比較方便XD 官方網站,包含英文與簡體中文: MMCV: https://mmcv.readthedocs.io/en/latest/ MMdetection: https://mmdetection.readthedocs.io/en/latest/ ## :beginner: 系統環境 作業系統: Windows 10/11 CPU: Intel i5-12400 RAM: 32GB 顯示卡: NVIDIA GeForce RTX 3060 ## 軟體版本 :::warning 官方文件顯示 MMDetection 可以安裝在 Linux、Windows 和 macOS上。 最低版本要求 Python 3.7+、CUDA 9.2+ 和 PyTorch 1.8+。 ::: 顯示卡驅動: 537.42 Visual Studio Build Tools 2022 CUDA: 11.7 cuDNN: 8.9.5 --- Python: 3.8.19 Pytorch: 2.0.1 MMCV: 2.0.1 MMDetection: 3.1.0 ## 安裝環境 ### Anaconda 先準備Anaconda,下載網址: https://www.anaconda.com/download/ 並進行安裝,並且記得勾選PATH的選項!!!  安裝完畢後,打開並切換到Environments,創立新環境,選擇Python為3.8版  切換回HOME,並點選CMD.exe Prompt進行安裝,此為接下來負責安裝套件的重要程式。  點擊Launch或在開始功能表點擊Anaconda Prompt即可開啟命令提示字元  如圖,有在路徑前方顯示(環境名稱)即為安裝完畢。  ___ ### 顯示卡驅動 此文使用GPU進行神經網路訓練,首先必須先安裝顯示卡的驅動程式。 https://www.nvidia.com/zh-tw/geforce/drivers/ 通常使用最新的就可以了,不要裝到太舊版本就好。 搜尋NVIDIA Control Panel (NVIDIA控制面板),在系統資訊區可以查看顯示卡版本。  ___ ## Visual Studio 因為MMCV需要使用Visual Stduio的C++工具進行編譯,所以要先安裝Visual Studio。 https://visualstudio.microsoft.com/zh-hant/ 在微軟官網即可下載安裝檔,  並選擇C++內的MSVC編譯工具以及Win 10 SDK(10.0.20348.0)進行安裝。   安裝完畢後,去Visual Studio的安裝檔位置尋找MSVC的路徑,並確認是否有cl.exe。 以下為我電腦的路徑,實際情況可能會有版本號的不同: ``` C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\Hostx86\x64 ``` 打開本機,顯示硬碟空間大小的頁面,在空白處按下右鍵,  並選擇內容後,選擇左方(Win10)或中間(Win11)的進階系統設定。   下方有一個系統變數,點開後在系統區找到Path,點選編輯,會顯示一個新視窗。  將此路徑新增到系統的Path內,並儲存確定。   如果原本有已經開啟的CMD,要先關閉後再重新開啟,才會吃到已經修改過的系統變數。 開啟CMD,並輸入 `cl` ,如果有出現MSVC的資訊代表安裝成功。  --- ## CUDA 安裝完顯示卡驅動後,必須先看適用的CUDA版本。 不管是Tensorflow還是Pytorch,皆會有對應的版本, 如果沒安裝對應版本是無法進行訓練的。 為了配合Pytorch,在這裡使用CUDA 11.7進行安裝,也可使用11.8版本。 https://developer.nvidia.com/cuda-toolkit-archive  點選後選擇電腦對應的版本進行下載並安裝。  選擇自訂,如果另外兩個選項已經有安裝在電腦上,就只需要安裝CUDA本體即可。  安裝完畢後,測試是否有安裝成功,打開先前環境的命令提示字元(CMD), 並輸入`nvcc -V`,如有顯示CUDA即為安裝成功。  ___ ## cuDNN cuDNN需要配合CUDA的版本,我個人會使用不那麼新的版本,以免出現未知的錯誤。 下載連結: https://developer.nvidia.com/rdp/cudnn-archive 在版本號後面會顯示這個cuDNN所適用的版本,我使用8.9.5版,可用在CUDA11版本。  下載完畢後解壓縮會看到三個資料夾與一個LICENSE,  先尋找CUDA的資料夾位置, ``` C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7 ``` 再把他們全放進CUDA的程式資料夾內,並新增系統路徑。  再點選新增,並重複先前的新增系統變數動作,加入下列三行系統路徑。 ``` C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\lib ```  新增完畢後,點選確定進行存檔,等等安裝Pytorch時,會一併檢查安裝狀態。 ## Pytorch 接下來是重頭戲Pytorch,如果沒有與先前的CUDA配合好,安裝失敗的話就只能使用CPU進行訓練。 本文使用Pytorch 2.0.1版本進行安裝,連結: https://pytorch.org/get-started/previous-versions/#v201 選擇Windows下的對應Cuda版本進行安裝,這裡使用11.7版本。 打開包含Python環境的CMD,開頭會包含(環境名稱的),並輸入以下的指令, ``` # CUDA 11.7 版本 conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia ``` 即可進行Pytorch的安裝,安裝完畢後需進行驗證。 直接輸入`python`後,進入指令執行介面,並分別輸入以下兩行指令。 ``` import torch torch.cuda.is_available() ``` 如果出現回傳為 `True` ,代表Cuda有安裝成功,可以繼續下一個步驟。  :::warning 假設出現回傳為 `False` ,請檢查前面是否有什麼步驟並沒有安裝成功。 ::: 在False的情況下繼續安裝,雖然通常可以繼續運作,但會使得MMDetection只使用CPU進行運算,速度與效率會非常的差。 確認完畢後,輸入 `exit()` 離開python執行介面回到cmd中。 ## MMCV 終於要開始安裝本體了!!XDDD 雖然官方網站是推薦使用他們的 `openmim` 套件進行MMCV的安裝,但對於電腦本身沒有安裝好MSVC的人,經常會出現顯示安裝完畢,但實際上並沒有成功的情況。我自己電腦就是本身就有,安裝就成功了,結果幫同學安裝卻失敗QQ。 所以在這邊我們改採用從來源Source檔直接編譯的方式進行,需要用到前面所安裝的MSVC套件, 假設出現問題,也相對容易除錯。 目前最新的MMCV版本為2.1.0,但因為版本間也有支援問題,改採用2.0.1版本進行安裝。 參考連結: https://mmcv.readthedocs.io/en/latest/get_started/build.html#build-on-windows 因為使用的是特定版本,直接使用 `git clone` 的話預設會拉到最新版檔案, 所以這邊為打開Github的網站下載舊版。 https://github.com/open-mmlab/mmcv 點選網站右側的Releases,  並找到2.0.1版下方的Assets,   點選zip檔進行下載,並解壓縮,放置在以下路徑, ``` C:\Users\你的使用者名稱 ``` 為了方便作業,解壓縮後把後面的版本號碼刪除。 :::warning 必須注意,點開mmcv資料夾時不要讓資料夾內是兩層,如果有兩層的話, 把外層刪掉,讓我們點開mmcv時就會直接看到裡面一堆檔案。 :::  更改好資料夾名稱,點開後會如圖所示,不會有資料夾中又包一層資料夾的問題。 點開剛才已經安裝好環境的cmd,並輸入 ``` cd mmcv ``` 切換到剛才下載的mmcv資料夾。並先安裝第一部分需要的套件`ninja` 和 `psutil`, ``` pip install -r requirements/optional.txt ``` 安裝完畢後,繼續執行以下兩個指令。 如果成功執行的話,會看到MSVC開始進行程式碼建構。 ``` python setup.py build_ext ``` 在執行過程中出現一堆如圖所示的訊息是正常的,代表程式正在建構。   出現已完成程式碼產生,代表建構完畢後,輸入 ``` pip install matplotlib==3.7.2 python setup.py develop ``` 安裝第二部分的套件。 因為預設會安裝過新的matplotlib 3.9.0,與我們的環境不符合, 所以先安裝3.7.2板後再完成MMCV的安裝。  安裝完畢後輸入 ``` python .dev_scripts/check_installation.py ``` 進行安裝的驗證,  驗證如果顯示Successfully即為安裝成功。 ## MMDetection :::warning 一定要確認MMCV已經安裝成功,GPU支援也確定成功後,再繼續安裝MMDetection。 ::: 最後為安裝MMDetection本體,首先按照目前教學時,cmd的位置應該是在mmcv底下,如圖:  必須先輸入 `cd ..` 切換為上一層資料夾後再繼續動作。  因為也是安裝舊版,去GitHub尋找檔案。 https://github.com/open-mmlab/mmdetection/releases/tag/v3.1.0 拉到最下面後點選Source Code進行下載。  拉到使用者目錄下,與mmcv放在一起,將版本號刪除,也同樣確認不要有資料夾內又包一層資料夾。 點開時如圖顯示的樣子。  回到CMD,輸入以下兩行指令: ``` pip install -U openmim mim install mmengine ``` 安裝完畢後,切換到mmdetection資料夾,並安裝本體。 ``` cd mmdetection pip install -v -e . ``` 官方推薦安裝以下的套件,可以拿來監測網路。 ``` pip install -v -e . -r requirements/tracking.txt pip install git+https://github.com/JonathonLuiten/TrackEval.git ``` 安裝完畢後,官方提供了一個神經網路驗證是否安裝成功。 ``` mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest . python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth ``` 有顯示result have been saved at outputs,並且在mmdetection/outputs資料夾內, 內有出現辨識的檔案即為成功。  ## 用途 安裝完畢後,即可開始使用config資料夾內所提供的各個神經網路架構來進行神經網路訓練。 官方有提供介紹,未來應該也會寫文介紹(?), 可參考: https://mmdetection.readthedocs.io/en/latest/user_guides/train.html#train-with-customized-datasets ## 參考文獻 https://medium.com/ching-i/win10-%E5%AE%89%E8%A3%9D-cuda-cudnn-%E6%95%99%E5%AD%B8-c617b3b76deb https://pytorch.org/get-started/locally/
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up