一、修改Visdron的数据集为coco的格式
visdron数据集的annotation是使用的*.txt文件进行标注的,而coco使用*.json文件进行标注。因此第一步就是需要对数据集annotation进行修改,coco数据集的格式如下所示:
通过简单的python脚本就可以将标注改为coco格式。
二、配置文件修改(此处以ppyoloe为例)
首先需要下载PaddleDetection工具包https://github.com/PaddlePaddle/PaddleDetection
在config文件中就是需要的修改的一些配置文件(*.yml)
_BASE_下面的几个配置文件的作用分别为
1.数据集的读取
2.运行参数调整,如是否启用GPU、是否打印时间、每隔多久保存一次模型参数
3.优化器的调整
4.网络结构调整
5.文件读取器调整
学习率在有预训练文件时可设置为1e-3左右,在有预训练模型时,可设置为1e-4左右,正则项在参数少时,设置较大的数值,在参数多时设置较小比较合适。动态学习率采CosineAnnealingDecay,公式如下:
Tcur为当前轮次,ηmin默认值为0,可以设置,ηmax为设置的学习率。
三、启动训练
配置文件修改完成后使用在终端中使用以下指令开启训练
python F:\PythonProject\PaddleDetection-release-2.4\tools\train.py -c F:\PythonProject\PaddleDetection-release-2.4\configs\ppyoloe\ppyoloe_crn_s_300e_coco.yml
四、测试
加载训练完的权重,启动测试。
-u F:\PythonProject\PaddleDetection-release-2.4\tools\eval.py -c F:\PythonProject\PaddleDetection-release-2.4\configs\ppyoloe\ppyoloe_crn_s_300e_coco.yml -o weights=F:\PythonProject\output\ppyoloe_crn_s_300e_coco\model_final.pdparams
五、推理
将没用进行标注的结果用训练好的权重进行推理储存到对应的文件中。
PaddleDetection-release-2.4\tools\infer.py -c PaddleDetection-release-2.4\configs\ppyoloe\ppyoloe_crn_s_300e_coco.yml --draw_threshold=0.5 --infer_dir=PaddleDetection-release-2.4\dataset\visdron\VisDrone2019-DET-test-dev\images --output_dir=toolinfer --use_vdl=True -o weights=output\ppyoloe_crn_s_300e_coco\model_final.pdparams