第五十七回 三山聚义打青州 众虎同心归水泊-飞桨目标检测套件PaddleDetection初探

杨志说,要打青州,需要大队人马,请孔亮亲自星夜去梁山泊请宋江,咱们大伙再集中起来,一起打青州。于是孔亮就去找宋江,把叔叔孔宾和哥哥孔明被抓的事情讲给宋江听,宋江将这事再告知各位头领。晁盖准备自己带兵下山,宋江说哥哥是山寨之主,不可轻动。于是还是宋江带队。

宋江到了青州,与武松、鲁智深、杨志、李忠、周通、施恩、曹正等人相见。吴用和宋江制定了计策。

一天,呼延灼收到报信说城北门外土坡上,有三个人骑马在那里看城,中间一个穿红袍骑白马的,两边一个是小李广花荣,左边是道士打扮。呼延灼说那个穿红色的应该是宋江,于是带了一百骑兵去追,结果掉入陷阱,连人带马被抓住了。

宋江亲自扶呼延灼坐上位,行拜见之礼。然后三言两句,就把呼延灼说动,投奔了梁山。呼延灼带了十位头领,扮做军士模样,骗知府开了城门,大家杀进了城,救出了孔宾孔明。慕容知府一家老幼都被斩。

李忠、鲁智深等三山人马也都跟着宋江回到梁山。

宋江人马越来越多,飞桨AI训练越来越容易!

飞桨目标检测套件PaddleDetection初探

PaddleDetection是一个基于PaddlePaddle的目标检测端到端开发套件,在提供丰富的模型组件和测试基准的同时,注重端到端的产业落地应用,通过打造产业级特色模型|工具、建设产业应用范例等手段,帮助开发者实现数据准备、模型选型、模型训练、模型部署的全流程打通,快速进行落地应用。

参考自:https://github.com/PaddlePaddle/PaddleDetection/docs/tutorials/QUICK_STARTED_cn.md

编译安装PaddleDetection

下载源代码

复制代码
git clone https://github.com/PaddlePaddle/PaddleDetection

安装库

其中的numba可不安装,但是会报警。

复制代码
cd PaddleDetection && pip install -r requirements.txt
pip install numba

单图片目标检测

复制代码
cd PaddleDetection && python tools/infer.py -c configs/ppyolo/ppyolo_r50vd_dcn_1x_coco.yml -o use_gpu=true weights=https://paddledet.bj.bcebos.com/models/ppyolo_r50vd_dcn_1x_coco.pdparams --infer_img=demo/000000014439.jpg

检测后的图片会生成在output目录,可以看到检测出来的物体都打上了框。

训练评估预测全流程跑一遍

1、开始训练

使用套件非常简单方便,会自动下载训练数据集。

复制代码
# 边训练边测试 CPU需要约1小时,估计不止(use_gpu=false),V100 GPU 16G需要约30分钟
# -c 参数表示指定使用哪个配置文件
# -o 参数表示指定配置文件中的全局变量(覆盖配置文件中的设置),这里设置使用gpu
# --eval 参数表示边训练边评估,最后会自动保存一个名为model_final.pdparams的模型

cd PaddleDetection && python tools/train.py -c configs/yolov3/yolov3_mobilenet_v1_roadsign.yml --eval -o use_gpu=true

如果想通过VisualDL实时观察loss变化曲线,在训练命令中添加--use_vdl=true,以及通过--vdl_log_dir设置日志保存路径。

但注意VisualDL需Python>=3.5

首先安装VisualDL

python -m pip install visualdl -i https://mirror.baidu.com/pypi/simple

然后在命令中加入--use_vdl=true:

python -u tools/train.py -c configs/yolov3/yolov3_mobilenet_v1_roadsign.yml \

--use_vdl=true \

--vdl_log_dir=vdl_dir/scalar \

--eval

这样就能通过visualdl实时查看变化曲线:

visualdl --logdir vdl_dir/scalar/ --host <host_IP> --port <port_num>

2、评估

复制代码
# 评估 默认使用训练过程中保存在output目录的model_final.pdparams
# -c 参数表示指定使用哪个配置文件
# -o 参数表示指定配置文件中的全局变量(覆盖配置文件中的设置)
# 目前只支持单卡评估

cd PaddleDetection && python tools/eval.py -c configs/yolov3/yolov3_mobilenet_v1_roadsign.yml -o use_gpu=true -o weights=output/model_final

最终模型精度在mAP=0.85左右,由于数据集较小因此每次训练结束后精度会有一定波动

3、预测

复制代码
# -c 参数表示指定使用哪个配置文件
# -o 参数表示指定配置文件中的全局变量(覆盖配置文件中的设置)
# --infer_img 参数指定预测图像路径
# 预测结束后会在output文件夹中生成一张画有预测结果的同名图像

cd PaddleDetection && python tools/infer.py -c configs/yolov3/yolov3_mobilenet_v1_roadsign.yml -o use_gpu=true --infer_img=demo/road554.png -o weights=output/model_final

可以看到输出的文件已经识别出来交通标志了。

整个过程是不是非常简单? 在实际应用中,针对自己需求,创建数据集后,再来一遍训练、评估、预测流程即可训出自己的模型。

一天鲁智深对宋江说,我挺想念九纹龙史进,听说他在少华山上,我去看看他去。于是鲁智深和武松作伴,两个人一起到了少华山。听说史进去刺杀贺太守,被抓入关在牢里,鲁智深急匆匆的去华州城里救人,结果也被抓住了。

欲知后事如何,且听下回分解。

相关推荐
Spcarrydoinb29 分钟前
基于yolo11的BGA图像目标检测
人工智能·目标检测·计算机视觉
非ban必选1 小时前
spring-ai-alibaba第四章阿里dashscope集成百度翻译tool
java·人工智能·spring
是店小二呀1 小时前
AI前沿:资本狂潮下的技术暗战:巨头博弈、开源革命与生态重构
人工智能·重构·开源
snowfoootball2 小时前
基于 Ollama DeepSeek、Dify RAG 和 Fay 框架的高考咨询 AI 交互系统项目方案
前端·人工智能·后端·python·深度学习·高考
云和数据.ChenGuang2 小时前
机器学习之回归算法
人工智能·机器学习·回归
odoo中国2 小时前
深度学习 Deep Learning 第15章 表示学习
人工智能·深度学习·学习·表示学习
橙色小博2 小时前
长短期记忆神经网络(LSTM)基础学习与实例:预测序列的未来
人工智能·python·深度学习·神经网络·lstm
深蓝学院2 小时前
闭环SOTA!北航DiffAD:基于扩散模型实现端到端自动驾驶「多任务闭环统一」
人工智能·机器学习·自动驾驶
jimmyleeee2 小时前
人工智能基础知识笔记七:随机变量的几种分布
人工智能·笔记·概率论
仙人掌_lz3 小时前
机器学习ML极简指南
人工智能·python·算法·机器学习·面试·强化学习