CenterNet目标检测环境配置

配置属于自己的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)下载自己需要的CUDACenterNet目标检测环境配置
下载完成后根据提示一路安装,接着找到cuDNN根据自己的CUDA版本下载都用的cuDNN
CenterNet目标检测环境配置
找到刚刚安装的CUDA目录和解压的cuDNN目录,将cuDNN中bin,include,lib等等文件夹中的文件对应加入安装的CUDA目录下如下图的v10.1存放
CenterNet目标检测环境配置
若要检查CUDA安装情况,在命令行输入nvcc --version
CenterNet目标检测环境配置
这样我们就完成了所有的环境配置,接着我们来完成CenterNet的配置。

4.CenterNet配置

  1. 下载CenterNet源代码
    https://github.com/xingyizhou/CenterNet
  2. 编译DCNv2
    由于源码中给出的DCNv2的网络不支持torch1.0以上,因此我们需要下载另一个版本的DCNv2,下载链接https://github.com/CharlesShang/DCNv2下载后,将源文件中的DCNv2删除,将下载的文件放到源文件夹,不需要修改任何东西。接着开始编译,大约需要一分钟的乱七八糟的跳动。
cd src\lib\models\networks\DCNv2
python setup.py build develop
  1. 编译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
  1. 下载并放置预训练权重
    MODEL_ZOO.md下载ctdet_coco_dla_2x,并将其放CenterNet\models中就可以开始测试了。
  2. 开始测试
    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
  1. 测试方法
    执行下面代码可以使用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
上一篇:TensorRT+CUDA加速优化版CenterNet旋转目标以及水平目标框的检测


下一篇:[Algorithm] 728. Self Dividing Numbers