配置属于自己的CenterNet网络
我的配置:python1.6+pytorch1.4.0+torchvision0.5.0+cudatoolkit10.1+cuda(cudnn)10.1+vs2017
我的配置正好可以适配CenterNet,其他的配置我不太清楚。接着我就开始介绍
1.Anaconda虚拟环境创建
为了配置专属于CenterNet网络的环境,我们使用Anaconda来实现虚拟环境的创建
conda create --name CenterNet python=3.6//创建python环境为3.6的虚拟环境
conda activate CenterNet //进入该环境
2.安装pytorch和cuda
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1
若使用anaconda下载时速度过慢,也可以使用该链接下载后,cd进入下载位置后
pip install ......
3.给电脑配置CUDA和CUDNN
在上面我们给我们的虚拟环境配置了cudatoolkit10.1,因此我们也应该在我们的电脑上配置一个cuda,由于我的电脑显卡英伟达可以带动cuda10.1,因此我给虚拟环境配置的是10.1的CUDA。
CUDA的配置方法很简单,我这里只举英伟达显卡的例子,进入英伟达官网,选择开发者中的CUDA 根据自己的系统和系统版本(我的是win10)下载自己需要的CUDA
下载完成后根据提示一路安装,接着找到cuDNN根据自己的CUDA版本下载都用的cuDNN
找到刚刚安装的CUDA目录和解压的cuDNN目录,将cuDNN中bin,include,lib等等文件夹中的文件对应加入安装的CUDA目录下如下图的v10.1存放
若要检查CUDA安装情况,在命令行输入nvcc --version
这样我们就完成了所有的环境配置,接着我们来完成CenterNet的配置。
4.CenterNet配置
- 下载CenterNet源代码
https://github.com/xingyizhou/CenterNet - 编译DCNv2
由于源码中给出的DCNv2的网络不支持torch1.0以上,因此我们需要下载另一个版本的DCNv2,下载链接https://github.com/CharlesShang/DCNv2下载后,将源文件中的DCNv2删除,将下载的文件放到源文件夹,不需要修改任何东西。接着开始编译,大约需要一分钟的乱七八糟的跳动。
cd src\lib\models\networks\DCNv2
python setup.py build develop
- 编译NMS
在CenterNet\src\lib\external中找到set.py文件修改set.py中的代码,在#L10处注释#extra_compile_args=["-Wno-cpp", "-Wno-unused-function"]
接着就可以编译NMS了
cd CenterNet\src\lib\external
python setup.py build_ext --inplace
- 下载并放置预训练权重
MODEL_ZOO.md下载ctdet_coco_dla_2x,并将其放CenterNet\models中就可以开始测试了。 - 开始测试
Anaconda进入CenterNet\src目录执行对图像的目标检测由于这里会下载个 dla34-ba72cf86.pth,速度很慢,因此我们进入CenterNet\src\lib\models\networks找到pose_dla_dcn.py注释掉309行
def dla34(pretrained=False, **kwargs): # DLA-34
model = DLA([1, 1, 1, 2, 2, 1],
[16, 32, 64, 128, 256, 512],
block=BasicBlock, **kwargs)
# if pretrained:
# model.load_pretrained_model(data='imagenet', name='dla34', hash='ba72cf86')
return model
- 测试方法
执行下面代码可以使用CenterNet测试预训练的权重
//测试images下的17790319373_bd19b24cfc_k.jpg
python demo.py ctdet --demo ../images/17790319373_bd19b24cfc_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth
//运行网络摄像头测试
python demo.py ctdet --demo webcam --load_model ../models/ctdet_coco_dla_2x.pth
//若下载了multi_pose_dla_3x.pth可以使用这个模型进行人体姿态估计
python demo.py multi_pose --demo ../images/33823288584_1d21cf0a26_k.jpg --load_model ../models/multi_pose_dla_3x.pth