最近在复现CenterNet时,碰到很多问题,花费了两天多的时间,但最后都一一解决了
1.环境
Window10+VS2019+CUDA11.1+Python3.8+Pytorch1.8.0+Anaconda3+Pycharm
显卡:GTX2060;
2.论文
论文原文:https://arxiv.org/pdf/1904.07850.pdf(Objects as Points)
代码:https://github.com/xingyizhou/CenterNet
下面所有的命令行都是在Pcharm中的Terminal中进行,主要执行的文件的环境就好
conda create -n CenterNet python=3.6 #
activate CenterNet # 切换环境至CenterNet
这里安装好anaconda3+python3.8后,主要查看是否配置好环境变量。
在选择CUDA时一定要考虑好Pytorch、CUDA、驱动和显卡之间的版本关系,
在CenterNet环境中
conda install pytorch==1.8.0 torchvision==0.9.0
安装好后,运行下列代码,查看安装是否完成
import torch
print(torch.version.cuda)
print(torch.__version__)
print(torch.cuda.is_available()) #查看cuda是否可用
print(torch.cuda.device_count()) #查看可行的cuda数目

在CenterNet环境中
pip install requirements.txt
这个教程只看安装部分就好,安装好要查看是否配置好环境变量
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dt7bb1RI-1660014880100)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220809110343916.png)]](https://1000bd.com/contentImg/2022/08/13/101349144.png)
cd CenterNet\src\lib\external
python setup.py build_ext --inplace
这里有问题出现:在编译NMS时,**cl: 命令行error D8021 :无效的数值参数“/Wno-cpp”请看踩坑2
先在文件夹中删除自带的DCNv2,在下面这个文件夹下,直接删除就好
CenterNet\src\lib\models\network
然后在Pycharm中,
cd CenterNet\src\lib\models\networks
git clone https://github.com/lbin/DCNv2/tree/pytorch_1.9
cd DCNv2
python setup.py build develop
cd CenterNet/src
python demo.py ctdet --demo ../images/17790319373_bd19b24cfc_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth --debug 2
python demo.py multi_pose --demo ../images/17790319373_bd19b24cfc_k.jpg --load_model ../models/multi_pose_dla_3x.pth --debug 2
运行过程中会在线下载ctdet_coco_dla_2x.pth,multi_pose_dla_3x.pth文件,可能会出现HTTP request请求超时报错。这里的两个文件,第一个是物体检测的,第二个是人体姿态检测的。
解决办法:事先下载好以上两个文件,放入项目models文件夹下.
若已经将文件下载至本地后,运行demo.py还是会在线下载模型,注释pose_dla_dcn文件中的第313,314行代码:

到这里就运行成功了。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CHgtHsWn-1660014880101)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220809111330377.png)]](https://1000bd.com/contentImg/2022/08/13/101349820.png)
python setup.py build develop
出现:RuntimeError: Error compiling objects for extension
把DCNv2文件换为:
https://github.com/lbin/DCNv2/tree/pytorch_1.9
里面的pytorch可以在master中更改版本,我用的是pytorch1.8,这里pytorch1.9也可以用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YjqyJAyU-1660014880101)(C:/Users/13611/AppData/Roaming/Typora/typora-user-images/image-20220808223544131.png)]
这一行代码注释掉
[外链图片转存中…(img-YjqyJAyU-1660014880101)]
这一行代码注释掉
这里请查看VS2019的环境变量是否配置好,重启一下。