论文:CenterNet : Objects as Points
论文地址:https://arxiv.org/abs/1904.07850
代码地址:https://github.com/xingyizhou/CenterNet
1 Install
按照readme文件夹的install.md操作,本文在实验环境为Ubuntu18.04 RTX3090 CUDA11,Anaconda Python3.6 Pytorch1.7。
1.1 创建虚拟环境
# 创建虚拟环境
conda create -n CenterNet python=3.6
# 激活虚拟环境
conda activate CenterNet
1.2 安装pytorch1.7
为了快速安装可先对conda换源(自行百度),换源后在官网pytorch选择对应版本的pytorch安装。
注意:换源后install链接末尾不用-c pytorch
,否则会在官网下载pytorch。
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0
1.3 Clone CenterNet
git clone https://github.com/xingyizhou/CenterNet
cd CenterNet
pip install -r requirements.txt #安装所依赖的包
注意:未安装git或者网速较慢时,可以直接在github中CenterNet代码库下载代码后,执行后面的操作。
1.4 安装pycocotools
可直接使用pip命令安装,没必要git cocoapi,这样比较方便。
pip install pycocotools
1.5 编译DCNv2
由于官方代码的环境为pytorch0.4,本文实验环境为pytorch1.7,这里直接按照install.md
中操作会报错(由于DCNv2对应的pytorch0.4和pytorch1.X不兼容)。需先下载最新的DCNv2:https://github.com/jinfagang/DCNv2_latest替换CenterNet/src/lib/models/networks/
文件下的DCNv2文件。然后执行如下命令:
cd CenterNet/src/lib/models/networks/DCNv2
python setup.py build develop
1.6 编译NMS
编译NMS以便多尺度测试或测试ExtremeNet:
cd CenterNet/src/lib/external
make
COCO数据集准备
COCO数据集按如下格式:
CenterNet/data/
└── coco
├── annotations
├── instances_val2017.json
└── instances_train2017.json
├── train2017
└── val2017
demo测试
需要提前在代码库中下载模型ctdet_coco_dla_2x.pth,放置在models文件夹下。首次运行肯需要加载模型,同时当测试的图片出现后,按键盘上除Esc外的任意键继续运行。
python demo.py ctdet --demo ../images/ --load_model ../models/ctdet_coco_dla_2x.pth
COCO数据集上训练
可参考Getting Started:
python main.py ctdet --exp_id coco_dla --batch_size 32 --master_batch 15 --lr 1.25e-4 --gpus 0