这几天一直在尝试运行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: