CenterNet cuda10+ pytoch代码复现详细教程

本文简介

项目地址:https://github.com/xingyizhou/CenterNet/
本文介绍了如何从头开始跑通centernet代码

安装

我的环境:cuda10 ubuntu16.04
因为使用cuda10(cuda>=10.0都可以这么操作),官方安装教程中使用pytorch=0.4.1会报错:get error when run demo _dcn_v2.so: undefined symbol: __cudaRegisterFatBinaryEnd
所以安装方式有些不同
0. 激活新环境[可选但是推荐]

  • 创建一个新conda环境
 conda create --name CenterNet python=3.6
  • 激活环境
conda activate CenterNet

1. 安装pytroch1.0

conda install pytorch=1.0 torchvision -c pytorch

2. 安装 COCOAPI:

# COCOAPI=/path/to/clone/cocoapi
git clone https://github.com/cocodataset/cocoapi.git $COCOAPI
cd $COCOAPI/PythonAPI
make
python setup.py install --user

3. 下载代码库

CenterNet_ROOT=/path/to/clone/CenterNet
git clone https://github.com/xingyizhou/CenterNet $CenterNet_ROOT

4.安装 requirements

  pip install -r requirements.txt

5. 编译 deformable convolutional(from DCNv2).

git clone https://github.com/CharlesShang/DCNv2.git
cd DCNv2
sh make.sh

6. 如果你想使用多尺度测试或者测试ExtremeNet需编译NMS

cd $CenterNet_ROOT/src/lib/external
make

7. 下载预训练模型并存放到文件夹$CenterNet_ROOT/models/`

代码测试

现在可以用程序测试下环境是否安装成功

可视化测试:

1.确保已下载预训练模型
本次运行检测模型:ctdet_coco_dla_2x.pth
2.运行结果可视化代码

cd src
python demo.py ctdet --demo ../images/33823288584_1d21cf0a26_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth

运行结果:

精度测试:

1.确保已下载预训练模型
2.下载测试数据集coco2017val
3.下载标注instances_val2017.json
4.测试精度

python test.py ctdet --exp_id coco_dla --keep_res --load_model ../models/ctdet_coco_dla_2x.pth
测试结果:
单尺度测试精度 map 37.4
多尺度测试精度 map 41.7

数据准备

因为本人使用coco数据集,故在本文中只介绍coco数据集的准备方式,想了解其他数据格式的构建可见官方教程

1. 了解目标检测任务coco数据集格式:https://blog.csdn.net/weixin_38429450/article/details/112759862
2. 将数据集转化为coco格式
因不是本文重点,所以这里不介绍具体的转化方法,大家可以参考转化工具或者自己编写代码。
3.将数据集按照如下放置,当然小伙伴也可以按照自己喜欢的方式放置,修改下代码中的路径即可

${CenterNet_ROOT}
|-- data
`-- |-- coco
    `-- |-- annotations
        |   |-- instances_train2017.json
        |   |-- instances_val2017.json
        |   |-- person_keypoints_train2017.json
        |   |-- person_keypoints_val2017.json
        |   |-- image_info_test-dev2017.json
        |---|-- train2017
        |---|-- val2017
        `---|-- test2017

训练自己的数据

cd src
python main.py ctdet --exp_id coco_dla --batch_size 32 --master_batch 15 --lr 1.25e-4  --gpus 0,1

你可能感兴趣的:(anchor,free)