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

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

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

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

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

相关推荐
果冻人工智能34 分钟前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工35 分钟前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz37 分钟前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤1 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭1 小时前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~1 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码1 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng11331 小时前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike1 小时前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
庞传奇1 小时前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow