1.1安装PaddlePaddle
安装地址如下: https://www.paddlepaddle.org.cn/install/quick
1.2 安装COCO-API
pip install Cython
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
1.3 下载PaddleDetection
git clone https://github.com/PaddlePaddle/PaddleDetection.git
1.4 安装依赖库
!pip install -r requirements.txt
1.5 测试
!python ppdet/modeling/tests/test_architectures.py
这一步可能出现错误,主要原因是:提示发现缺少“ppdet”这个模块,ppdet(其实就是paddle detection的一个缩写),但是我找到 ppdet/modeling/tests/test_architectures.py这个文件,然后添加红框所示的代码
注意这些代码要写在ppdet的前面
我的标注数据,是在BML中打标的,然后通过导出了COCO格式的标注数据,
你也可以通过这个工具去打标,或者用lableImg这个工具去打标,工具的git地址为:
git clone http://github.com/tzutalin/labelImg
git下来之后直接run就可以用了,或者打包成exe,可以参考: https://zhuanlan.zhihu.com/p/97807042
如图下图就是我们选取的深度学习的配置文件,我参照yolov3_darknet53_original_270e_coco.yml修改了tt_yolov3_darknet53_original_270e_coco.yml
这些参数可以根据自己的数据情况进行设计。
如设置:最大迭代步数:max_iters
预训练模型的来源:pretrain_weights
数据路径:dataset_dir
Batch_size的大小:batch_size
数据集类别:num_classes
别忘了配置这里面这些文件
_BASE_: [
'../datasets/tt_coco_detection.yml',
'../runtime.yml',
'_base_/optimizer_270e.yml',
'_base_/yolov3_darknet53.yml',
'_base_/yolov3_reader.yml',
]
然后就可以训练了:
!python -u tools/train.py -c configs/ppyolo/tt_ppyolo_r50vd_dcn_1x_minicoco.yml --use_vdl=True --vdl_log_dir=tb_fruit_dir/scalar
关于训练命令的参数:
-c configs/yolov3_mobilenet_v1_fruit.yml 用来指定配置文件
–use_tb 是否使用tb-paddle记录数据,进而在TensorBoard中显示,默认值是False
–tb_log_dir 指定 tb-paddle 记录数据的存储路径
–eval 是否边训练边测试
关于–eval参数的使用:在训练中交替执行评估, 评估在每个snapshot_iter时开始。每次评估后还会评出最佳mAP模型保存到best_model文件夹下,建议训练时候使用该参数,可以使得完成训练后快速找到最好的模型。
训练期间可以通过tensorboard实时观察loss和精度值,启动命令如下:
tensorboard --logdir tb_fruit_dir/scalar
PaddleDetection给出的模型预测代码是infer.py。该文件在项目文件夹tools里面。
!python -u tools/infer.py -c configs/yolov3/tt_yolov3_darknet53_original_270e_coco.yml -o weights=output/tt_yolov3_darknet53_original_270e_coco/model_final.pdparams --infer_img=demo/test/14862774.jpg --output_dir=infer_output