pytorch1.2.0+torchvision0.4.0在自己的数据集上训练CenterNet
1.环境的搭建1.1.创建虚拟环境conda create --name CenterNet python=3.61.2激活虚拟环境conda activate CenterNet1.3安装pytorch1.2.0pip install torch=1.2.0 torchvision=0.4.0 -f https://download.pytorch.org/whl/torch_stable.ht
1.环境的搭建
1.1.创建虚拟环境
conda create --name CenterNet python=3.6
1.2激活虚拟环境
conda activate CenterNet
1.3安装pytorch1.2.0
pip install torch=1.2.0 torchvision=0.4.0 -f https://download.pytorch.org/whl/torch_stable.html
1.4安装COOCAPI
git clone https://github.com/cocodataset/cocoapi.git $COCOAPI
cd $COCOAPI/PythonAPI
make
python setup.py install --user
1.5.clone CenterNet的项目到本地
git clone https://github.com/xingyizhou/CenterNet $CenterNet_ROOT
1.6 安装所依赖的包
pip install -r requirements.txt
1.7.编译deformable convolutional (from DCNv2 支持pytroch 1.2.0)
cd $CenterNet_ROOT/src/lib/models/networks
rm -rf DCNv2
git clone https://github.com/CharlesShang/DCNv2
cd DCNv2
python setup.py build develop
1.8.[可选的,仅在使用extremenet或多尺度测试时需要]如果需要使用多尺度测试或测试extremenet,执行这步,编译NMS
cd $CenterNet_ROOT/src/lib/external
#python setup.py install
python setup.py build_ext --inplace
1.9. 测试一下是否配置成功:
python demo.py ctdet --demo /home/CenterNet/images/ --load_model /home/CenterNet/models/ctdet_coco_dla_2x.pth
2.准备自己的数据集并开始训练
2.1.将数据的标注转化为COCO格式
当我们生成train.json,test.json和val.json文件之后,来到CenterNet这个工程里,在data文件夹下新建一个文件夹,名字就是自己数据集的名称,文件结构如下:
-Data(在CenterNet项目下创建data文件夹)
--myData(在data文件夹下创建,名字就是自己数据集的名称)
---images(myData下存放train.json,test.json和val.json文件)
---annotations(myData下存放所有图片)
2.2.在src/lib/datasets/dataset里面模仿"coco.py"新建一个“自己数据集名. py”,文件内容复制一下”coco.py“中的内容,修改一丢丢内容就可以了
将coco修改成自己的类别,num_classes=80改成自己的类别数(不包括背景类),default_resolution(这个参数有两种(300,300)或者(512,512)
接下来的mean和std改成自己图片数据集的均值和方差(这个脚本我以前写过)
修改数据和图片路径,data_dir 输入的是之前建立的数据集文件夹的名字,img_dir 输入的是 images 图片文件夹
修改json文件路径如下
类别名字和类别id改成自己,需要注意的点:类别id一定要从1开始,要不然会报错。
2.3.将数据集加入src/lib/datasets/dataset_factory里面 在dataset_facto字典里加入自己的数据集名字 (格式为2.2中’自己数据集名. py’中’自己数据集名‘:自定义的数据集这个类的名字,因为要从2.2中’自己数据集名. py’中里找到你的数据类,名字必须对应上):
2.4. 修改/src/lib/opts.py 将自己的数据集设为’default’数据集,加入到help里面。
self.parser.add_argument('--dataset', default='mydata',
help='coco | kitti | coco_hp | pascal | myData')
2.5.修改ctdet任务使用的’default’数据集为自己的数据集,如下(修改分辨率,类别数,均值,方差,自己的数据集名字):
'ctdet': {'default_resolution': [512, 512], 'num_classes': 80,
'mean': [0.408, 0.447, 0.470], 'std': [0.289, 0.274, 0.278],
'dataset': 'coco'},
2.6.修改src/lib/utils/debugger.py文件(修改为自己数据的类别和名字,数据集名字一定保持一致
再加上自己数据的类别,不包括背景类:
2.6.开始训练
python main.py ctdet --exp_id coco_dla --batch_size 32 --master_batch 1 --lr 1.25e-4 --gpus 0,1
参考以下博主的博客:
1.(绝对详细)CenterNet训练自己的数据(pytorch0.4.1)链接
2.【centernet】编译centernet支持pytorch1.2.0链接
更多推荐
所有评论(0)