PaddlePaddle学习之使用PaddleDetection在树莓派4B进行模型部署(二)--- 深度学习模型训练

PaddlePaddle学习之使用PaddleDetection在树莓派4B进行模型部署(一)— 项目环境搭建
PaddlePaddle学习之使用PaddleDetection在树莓派4B进行模型部署(二)— 深度学习模型训练
PaddlePaddle学习之使用PaddleDetection在树莓派4B进行模型部署(三)— 树莓派4B部署

此项目已公开,包括数据集在内已经打包上传,欢迎Fork!传送门:Paddle_ssd_mobilenet_v1_pascalvoc

本文将使用ssd_mobilenet_v1_voc算法,以一个例子为说明如何利用paddleDetection完成一个项目----从准备数据集到完成树莓派部署,项目用到的工具是百度的AI Studio在线AI开发平台和树莓派4B
全部资料已经都打包在这里(PaddleDetection、Paddle-Lite-Demo、Paddle-Lite、opt)
链接:https://pan.baidu.com/s/1IKT-ByVN9BaVxfqQC1VaMw
提取码:mdd1

环境配置

#安装Python依赖库
!pip install -r requirements.txt
#测试项目环境
!export PYTHONPATH=`pwd`:$PYTHONPATH
!python ppdet/modeling/tests/test_architectures.py

在这里插入图片描述
出现 No module named ‘ppdet’ 是环境配置的问题,有两种解决办法:

  1. 设置环境变量
%env PYTHONPATH=/home/aistudio/PaddleDetection
  1. 找到报错的文件添加以下代码
import sys
DIR = '/home/aistudio/PaddleDetection'
sys.path.append(DIR)

在这里插入图片描述
测试环境通过后,就可以开始训练了

开始训练

训练命令如下:

%cd home/aistudio/PaddleDetection/
!python -u tools/train.py -c configs/ssd/ssd_mobilenet_v1_voc.yml --use_tb=True --eval

训练完成后输出的模型保存在 ./PaddleDetection/output/ssd_mobilenet_v1_voc 文件夹下,本次训练总轮数默认为28000轮,每隔2000轮保存一次模型,以轮次命名的均为阶段性模型,model_final为训练结束时保存的模型,best_model是每次评估后的最佳mAP模型

#测试,查看模型效果
%cd home/aistudio/PaddleDetection/
!python tools/infer.py -c configs/ssd/ssd_mobilenet_v1_voc.yml --infer_img=/home/aistudio/2001.jpg#infer_img输入需要预测图片的路径,看一下效果

模型转换

接下来,需要将原生模型转化为预测模型

!python -u tools/export_model.py -c configs/ssd/ssd_mobilenet_v1_voc.yml --output_dir=./inference_model_final

生成的预测模型保存在 ./PaddleDetection/inference_model_final/ssd_mobilenet_v1_voc 文件夹下,会生成两个文件,模型文件名和参数文件名分别为__model__和__params__

由于部署到树莓派4B上需要使用Paddle-Lite,而PaddlePaddle的原生模型需要经过opt工具转化为Paddle-Lite可以支持的naive_buffer格式

%cd /home/aistudio/
#复制opt文件到相应目录下
!cp opt /home/aistudio/PaddleDetection/inference_model_final/ssd_mobilenet_v1_voc
#进入预测模型文件夹
%cd /home/aistudio/PaddleDetection/inference_model_final/ssd_mobilenet_v1_voc
#下载opt文件
#!wget https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.3.0/opt
#给opt加上可执行权限
!chmod +x opt
#使用opt进行模型转化,将__model__和__params__转化为model.nb
!./opt --model_file=__model__ --param_file=__params__ --optimize_out_type=naive_buffer   --optimize_out=./model
!ls

这个opt自己下载实在是太慢了,因此我在网盘里已经准备好了opt文件,可以直接上传至AI Studio操作,最终结果如下图所示:

在这里插入图片描述
到目前为止,在AI Studio上的所有内容已经完成,文章(一)(二)的目的就是为了生成这个model.nb文件,将其部署在树莓派4B上使用。


参考资料

PaddleDetection官方文档
Paddle-Lite官方文档 — C++Demo

基于树莓派4B的YOLOv5-Lite目标检测的移植与部署可以参考以下步骤: 1. 硬件准备:准备一台树莓派4B主机,具备至少4GB的内存和足够的存储空间。 2. 安装操作系统:在树莓派4B上安装支持深度学习的操作系统,如Raspberry Pi OS(之前的Raspbian)。 3. 安装深度学习框架:在树莓派上安装适用于ARM架构的深度学习框架,如PyTorch。 4. 下载YOLOv5-Lite模型:从YOLOv5的官方GitHub仓库下载YOLOv5-Lite模型的源代码和预训练权重。 5. 数据集准备:根据目标检测任务的需求,准备适合的训练数据集,并将其转换为YOLOv5可训练的格式。 6. 训练模型(可选):如果没有现成的适用于目标的预训练权重,可以选择在树莓派上训练YOLOv5-Lite模型。 7. 模型移植:将训练好的YOLOv5-Lite模型移植到树莓派4B上,确保模型能够在树莓派上运行。 8. 部署与测试:使用树莓派4B的摄像头或者外部摄像头采集图像或视频,并将其输入到模型进行目标检测,观察模型在树莓派上的检测性能。 9. 优化与调整:根据实际情况,进行模型的优化和调整,如调整阈值、模型量化等,以提高模型在树莓派上的运行速度和准确性。 10. 应用开发:根据需求,将目标检测模型移植到实际应用中,如智能监控系统、机器人等,以实现对目标的实时检测和跟踪。 总之,基于树莓派4B的YOLOv5-Lite目标检测的移植与部署需要在树莓派上安装深度学习框架、准备训练数据集、移植模型进行性能测试和优化,最终将模型应用到实际场景中。这需要对深度学习树莓派4B有一定的了解和实践经验。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值