CenterNet在Windows系统下编译:
准备环境:
python3.6.7 cuda10.0 cudnn7.5 VS2017
1.安装vs2017
VS 2017社区版(Community)下载地址:
迅雷下载:
ed2k://|file|en_visual_studio_community_2015_x86_dvd_6847364.iso|3965825024|6A7D8489BB2877E6BB8ACB2DD187B637|/
按照提示进行下载
注:
1.选择使用C++桌面开发;
2.安装完成后添加环境变量(用户环境变量)PATH,LIB,INCLUDE(否则会报找不到cl.exe的错误)。下面给出本系统中添加的环境变量。
INCLUDE:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared
PATH:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin;C:\Program Files (x86)\Windows Kits\10\bin\x64
LIB:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64
2.安装cuda与cudnn
本环节忽略
3.安装anaconda并创建虚拟环境
安装anaconda忽略
在安装anaconda之后,进入anaconda,创建虚拟环境
conda create -n pt python==3.6.7
注:这里的pt为创建的虚拟环境的名字,可以自己随意写
进入到自己的虚拟环境中
conda activate pt
安装pytorch1.1
由于pytorch使用官网命令安装较慢,因此自己提前下载好
下载地址:https://download.pytorch.org/whl/torch_stable.html
安装命令:
pip install torch-1.1.0-cp36-cp36m-win_amd64.whl
安装torchvision
pip install torchvision-0.3.0-cp36-cp36m-win_amd64.whl
验证安装是否成功:
python
>> import torch
>>
4.下载CenterNet程序与DCNv2
CenterNet地址:CenterNet
DCNv2地址:DCNv2
将DCNv2放置与CenterNet/src/lib/models/networks
5.编译DCNv2
修改src/cuda中的dcn_v2_cuda.cu#L11为:
//extern THCState *state;
THCState *state = at::globalContext().lazyInitCUDA();
退回到src中,执行:
python setup.py build develop
注意:此时出现nvcc的错误(之前使用cuda10.1出现此错误,将cuda的版本降至10.0,编译成功)
6.编译nms库
进入到src/lib/external目录下,修改set.py中的代码,在#L10处修改:
#extra_compile_args=["-Wno-cpp", "-Wno-unused-function"]
使用下面命令进行编译:
python setup.py build_ext --inplace
注:此处会出现缺少一般的库,直接使用pip install package即可。
至此编译完成
7.下载模型
在官网下载模型:
ctdet_coco_dla_2x.pth与multi_pose_dla_3x.pth,将两个模型放置在models目录下
8.运行demo
cd CenterNet/src
python demo.py ctdet --demo ../path/image/or/path/video --load_model ../models/ctdet_coco_dla_2x.pth --debug 2
如果要检测骨架,使用模型:multi_pose_dla_3x.pth
python demo.py multi_pose --demo ../path/image/or/path/video --load_model ../models/multi_pose_dla_3x.pth --debug 2
注:原使用cuda10.1,pytorch1.4的时候,编译DCNv2和nms时都已成功,但此时会报找不到模块的错误。(警记:版本要严格对应)
附:效果图(只粘贴一张检测的效果图)