Paddle Lite——将自己的模型部署在树莓派端
原创
©著作权归作者所有:来自51CTO博客作者IrvingGao的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
- 在AI studio上训练Paddle Detection模型
- 在AI studio上准备模型文件
- 导出模型文件
- 在Paddle-Detection项目中转换模型
- 跑通Paddle-Lite demo
- 部署自己的模型
在AI studio上训练Paddle Detection模型
此处以PaddleDetcion——红绿灯检测项目为例。
在AI studio上准备模型文件
导出模型文件
训练后导出paddle原生模型文件:
#导出模型
!python -u tools/export_model.py -c configs/ssd/ssd_mobilenet_v1_voc.yml
在Paddle-Detection项目中转换模型
在模型训练并导出完成后,使用opt模型转换工具实现模型的转换:
#下载opt文件
!wget https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.3.0/opt
#复制opt文件到相应目录下
!cp opt /home/aistudio/work/PaddleDetection/output/car/best_model
#进入预测模型文件夹
%cd /home/aistudio/work/PaddleDetection/output/car/best_model
#给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
最后将模型文件下载到本地即可。
跑通Paddle-Lite demo
Paddle Lite——树莓派端部署图像分类和目标检测demo
部署自己的模型
部署模型.nb文件
- 使用winscp将
.nb模型文件
放在/home/pi/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/models
文件夹下; - 修改
/home/pi/Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo/labels
文件夹下的pascalvoc_label_list
文件的内容,将demo模型的label改为自己模型的label: - 修改
run.sh
文件的内容:
此处需要注意,根据自己模型的类型选择进入的文件夹类型,是图像分类image_classification_demo
还是目标检测object_detection_demo
,此处将以目标检测为例:
cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo
将run.sh中的#run修改参数,即该文件的最后一行参数,修改模型文件参数../models/ssd_mobilenet_v1_pascalvoc_for_cpu/model.nb
为../models/model.nb
,即可完成对run.sh的配置。
#!/bin/bash
# configure
#TARGET_ARCH_ABI=armv8 # for RK3399, set to default arch abi
TARGET_ARCH_ABI=armv7hf # for Raspberry Pi 3B
PADDLE_LITE_DIR=../Paddle-Lite
if [ "x$1" != "x" ]; then
TARGET_ARCH_ABI=$1
fi
# build
rm -rf build
mkdir build
cd build
cmake -DPADDLE_LITE_DIR=${PADDLE_LITE_DIR} -DTARGET_ARCH_ABI=${TARGET_ARCH_ABI} ..
make
#注意,这里为run代码段!!!!!!
#run
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PADDLE_LITE_DIR}/libs/${TARGET_ARCH_ABI} ./object_detection_demo ../models/ssd_mobilenet_v1_pascalvoc_for_cpu/model.nb ../labels/pascalvoc_label_list ../images/2001.jpg ./result.jpg
运行模型
修改C++部署代码
直接修改object_detection_demo.cc
即可。
修改完后重新编译运行:
如果小伙伴跟着博主成功部署了自己的模型,那就大大给个赞吧~@-@