2021SC@SDUSC
CenterNet训练自己的数据集
环境配置
环境要求:
python>=3.5
pytorch==0.4.1or 1.1.0 or 1.0.0(1.0.0也可以)
tensorboardX(可选)
配置:
将cudnn的batch norm关闭。打开torch/nn/functional.py文件,找到torch.batch_norm这一行,将torch.backends.cudnn.enabled选项更改为False。
克隆项目
CenterNet_ROOT=/path/to/clone/CenterNet
git clone https://github.com/zzzxxxttt/pytorch_simple_CenterNet_45 $CenterNet_ROOT
安装cocoAPI
cd $CenterNet_ROOT/lib/cocoapi/PythonAPI
make
python setup.py install --user
编译可变形卷积DCN
如果使用的是pytorch0.4.1, 将$CenterNet_ROOT/lib/DCNv2_old 重命名为 C e n t e r N e t R O O T / l i b / D C N v 2 如 果 使 用 的 是 p y t o r c h 1.1.0 o r 1.0.0 , 将 CenterNet_ROOT/lib/DCNv2 如果使用的是pytorch1.1.0 or 1.0.0, 将 CenterNetROOT/lib/DCNv2如果使用的是pytorch1.1.0or1.0.0,将CenterNet_ROOT/lib/DCNv2_new 重命名为 $CenterNet_ROOT/lib/DCNv2.
然后开始编译
cd $CenterNet_ROOT/lib/DCNv2
./make.sh
编译NMS
cd $CenterNet_ROOT/lib/nms
make
对于COCO格式的数据集,下载链接在:http://cocodataset.org/#download。将annotations, train2017, val2017, test2017放在$CenterNet_ROOT/data/coco
对于Pascal VOC格式的数据集,下载VOC转为COCO以后的数据集
下载以后将annotations, images, VOCdevkit放在$CenterNet_ROOT/data/voc
PS:以上两者是官方数据集,如果制作自己的数据集的话可以往下看。
如果选择Hourglass-104作为骨干网络,下载CornerNet提供的Hourglass预训练模型
将下载的权重checkpoint.t7放到$CenterNet_ROOT/ckpt/pretrain中。
2.配置自己的数据集
这个版本提供的代码是针对官方COCO或者官方VOC数据集进行配置的,所以有一些细节需要修改。
以Pascal VOC格式为例,修改自己的数据集。
按照一个类‘dim target’来修改,其他的类别也很容易修改。
VOC类别修改
将datasets/pascal.py中16行内容:
VOC_NAMES = ['__background__', "aeroplane", "bicycle", "bird", "boat",
"bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog",
"horse