CenterNet配置及问题详解


作者原版github: https://github.com/xingyizhou/CenterNet

Install

按照readme文件夹中的INSTALL.md操作:

0.创建一个虚拟环境

conda create --name CenterNet python=3.6#创建一个名为CenterNet的python3.6虚拟环境
source activate CenterNet				#激活该虚拟环境(source deactivate CenterNet可以退出虚拟环境)

1.安装0.4.1版的pytorch

conda install pytorch=0.4.1 torchvision -c pytorch #conda安装pytorch为0.4.1版本的以及其相关环境

但这里有两个包(mkl和pytorch0.4.1)比较大,会出现网络错误,因此这里用pip从官网下载0.4.1的torch:

pip install http://download.pytorch.org/whl/cu90/torch-0.4.1-cp36-cp36m-linux_x86_64.whl

接着禁用cudnn的批量正则化,原因大致是由批量正则化之前很大的中间特征引起的

PYTORCH=~/anaconda3/envs/CenterNet/lib/python3.6/site-packages/ #如果在服务器上,则改变一下前面的路径,如/home/name/local/anaconda3/envs/CenterNet/lib/python3.6/site-packages/
sed -i "1254s/torch\.backends\.cudnn\.enabled/False/g" ${PYTORCH}/torch/nn/functional.py #对于pytpoch v0.4.1

2.Clone CenterNet

git clone https://github.com/xingyizhou/CenterNet
cd CenterNet
pip install -r requirements.txt #安装所依赖的包

3.安装COCOAPI

我是在CenterNet文件夹下安装的COCOAPI

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

4.编译DCNv2(可变形卷积)

cd CenterNet/src/lib/models/networks/DCNv2 #先进入该文件夹

在编译之前,需要对DCNv2文件夹下的make.sh脚本修改,即在该文件最前部添加(参考自此处):

export CUDA_PATH=/usr/local/cuda-8.0/ 
export CXXFLAGS="-std=c++11"
export CFLAGS="-std=c99"

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export CPATH=/usr/local/cuda-8.0/include${CPATH:+:${CPATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

注意,这里包含cuda的路径都需要修改成自己机器所对应的。
接着运行make.sh编译:

./make.sh

5.编译NMS

编译NMS以便多尺度测试或测试ExtremeNet:

cd CenterNet/src/lib/external
make

Data准备

这里使用的是COCO数据集的格式,数据集需要按如下格式放置:

CenterNet/data/
└── coco
    ├── annotations
        ├── instances_val2017.json
        └── instances_train2017.json
    ├── train2017
    └── val2017

其中,annotations中的json文件是对train2017和val2017中图片的标注。

预训练模型下载

度盘,提取码v9h2。
下载models中的ctdet_coco_dla_2x.pth并放入CenterNet下的models下即可。
由于这里没有运用姿态检测,因此需要修改几个参数(参考自此处):

vim CenterNet/src/lib/models/networks/pose_dla_dcn.py

注释掉第313和第314行:在这里插入图片描述

vim CenterNet/src/lib/opts.py

将第323行改成

opt.flip_idx = False

在这里插入图片描述
不这样做的话,在训练时会去Google Drive上下载姿态检测相关的预训练模型,导致网络超时。

接着开始训练

针对不同的数据集格式,有不同的参数格式,具体参考GETTING_STARTED.md
对于COCO数据集:

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

batch_size可适当调成16,否则会显存不足,gpu卡也调成一张…

  • 9
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值