【目標檢測】關於如何在 PyTorch1.x + Cuda10 + Ubuntu18.0 運行 CenterNet 源碼


這幾天一直在嘗試運行CenterNet的源碼,但是出現各種問題,本已經打算放棄,中午吃完飯又不甘心,打算重新安裝環境再來一遍,沒想到竟然成功了。所以,堅持下去,黑夜過后便是黎明。

注意:gcc/g++ 版本盡量為 5.x

CornerNet 源碼倉庫:CenterNet

CornerNet 安裝:

1. 創建 Anaconda 環境,並激活環境

conda create --name CenterNet python=3.6
conda activate CenterNet

2. 安裝 PyTorch:進入PyTorch官網,根據自己的系統情況生成安裝PyTorch的命令

3. 手動修改 torch/nn/functional.py 文件內容(文件地址:~/anaconda3/envs/CenterNet/lib/python3.6/site-packages/torch/nn/functional.py)

# 找到下面一行
torch.batch_norm
# 並將其中的 torch.backends.cudnn.enabled 替換為 False

4. 安裝 COCOAPI

git clone https://github.com/cocodataset/cocoapi.git

5. 之后進入該文件夾(cocoapi),再進入PythonAPI,分別執行以下兩條命令

make
python setup.py install --user

6. 克隆 CornerNet 源代碼

git clone https://github.com/xingyizhou/CenterNet

7. 安裝 requirements.txt 文件中的module

pip install -r requirements.txt

8. 這里是重點:由於我們使用的版本是 PyTorch1.x ,所以在編譯DCNv2時會發生錯誤(關於 torch.utils.ffi)。可通過以下方式解決:

cd CenterNet/src/lib/models/networks
rm -rf DCNv2
git clone https://github.com/CharlesShang/DCNv2
cd DCNv2/src/cuda
vim dcn_v2_cuda.cu

將該文件中(第11行)的 extern THCState *state; 改為 THCState *state = at::globalContext().lazyInitCUDA();

然后再執行以下命令(在DCNv2文件夾下):

python setup.py build develop

9. 測試

cd CenterNet/src
python demo.py ctdet --demo ../images/17790319373_bd19b24cfc_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth --debug 2

 

 

References:

  【github】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM