基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目

文章目录

  • 一、环境部署
  • 二、数据准备
  • 三、训练
  • 四、训练过程可视化
  • 五、模型预测


一、环境部署

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这个文件,然后添加红框所示的代码
基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第1张图片
注意这些代码要写在ppdet的前面


二、数据准备

我的标注数据,是在BML中打标的,然后通过导出了COCO格式的标注数据,
基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第2张图片

你也可以通过这个工具去打标,或者用lableImg这个工具去打标,工具的git地址为:

git clone http://github.com/tzutalin/labelImg 

git下来之后直接run就可以用了,或者打包成exe,可以参考: https://zhuanlan.zhihu.com/p/97807042

我的数据格式如下:
基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第3张图片
基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第4张图片
基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第5张图片
基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第6张图片

三、训练

如图下图就是我们选取的深度学习的配置文件,我参照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
基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第7张图片
别忘了配置这里面这些文件

_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

五、模型预测

你所训练的模型结果参数都在output文件中
基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第8张图片

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

在这里插入图片描述
预测结果如下:

基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第9张图片

基于PaddleDetection-YOLOV3做一个完整的图形目标检测项目_第10张图片
参考:https://zhuanlan.zhihu.com/p/340717675

你可能感兴趣的:(摸鱼日常,目标检测,git)