第五十七回 三山聚义打青州 众虎同心归水泊-飞桨目标检测套件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

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

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

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

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

相关推荐
小oo呆3 小时前
【自然语言处理与大模型】模型压缩技术之量化
人工智能·自然语言处理
Magnum Lehar3 小时前
ApophisZerg游戏引擎项目目录展示
人工智能·vscode·编辑器·游戏引擎
飞桨PaddlePaddle3 小时前
Wan2.1和HunyuanVideo文生视频模型算法解析与功能体验丨前沿多模态模型开发与应用实战第六期
人工智能·算法·百度·音视频·paddlepaddle·飞桨·deepseek
绿算技术3 小时前
存储新势力:助力DeepSeek一体机
人工智能·科技·缓存·fpga开发
Y1nhl4 小时前
搜广推校招面经八十一
开发语言·人工智能·pytorch·深度学习·机器学习·推荐算法·搜索算法
胡攀峰4 小时前
第12章 微调生成模型
人工智能·大模型·llm·sft·强化学习·rlhf·指令微调
yuanlaile4 小时前
AI大模型自然语言处理能力案例演示
人工智能·ai·自然语言处理
小白白搭建4 小时前
WordPress AI 原创文章自动生成插件 24小时全自动生成SEO原创文章 | 多语言支持 | 智能配图与排版
人工智能
Jamence4 小时前
多模态大语言模型arxiv论文略读(三十九)
人工智能·语言模型·自然语言处理
ai大模型木子4 小时前
嵌入模型(Embedding Models)原理详解:从Word2Vec到BERT的技术演进
人工智能·自然语言处理·bert·embedding·word2vec·ai大模型·大模型资料