這幾天一直在嘗試運行CenterNet的源碼,可是出現各類問題,本已經打算放棄,中午吃完飯又不甘心,打算從新安裝環境再來一遍,沒想到居然成功了。因此,堅持下去,黑夜事後即是黎明。python
注意:gcc/g++ 版本儘可能爲 5.xgit
CornerNet 源碼倉庫:CenterNetgithub
CornerNet 安裝:vim
1. 建立 Anaconda 環境,並激活環境api
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)ui
# 找到下面一行 torch.batch_norm
# 並將其中的 torch.backends.cudnn.enabled 替換爲 False
4. 安裝 COCOAPIurl
git clone https://github.com/cocodataset/cocoapi.git
5. 以後進入該文件夾(cocoapi),再進入PythonAPI,分別執行如下兩條命令spa
make python setup.py install --user
6. 克隆 CornerNet 源代碼.net
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: