Tensorflow Lite模型部署实战教程--YOLOV5移动端部署过程_yolov5

Tensorflow Lite模型部署实战教程是一系列嵌入式Linux平台上的模型部署教程。


????基于的硬件平台:i.MX8MPlus EVK

????BSP版本:L5.10.52_2.1.0

????Tensorflow Lite版本:2.5.0


这一节将教大家使用现有的yolov5模型进行移动端部署。

1、下载Yolov5工程

git clone https://github.com/ultralytics/yolov5.git

2、安装必要的依赖

pip install -r requirements.txt

3、预训练模型转换

使用以下命令将YOLOv5s模型和预训练的权重转换为 TensorFlow冻结图格式(save_model.pb)

python export.py --weights yolov5s.pt --img-size 256 --include pb


注意:你可能想用export.py脚本直接转换为TF Lite格式(.tflite),但不建议这样做。为了避免TF Lite模型和DLA代表之间的不兼容问题,我们将使用 "eIQ模型工具 "进行转换。

请自由尝试改变输入尺寸(必须是最大跨度64的倍数)。增加输入大小将导致更高的预测精度(mAP),但推理时间将受到影响。在速度和准确度之间总是会有一个权衡。


4、打开eIQ门户进入模型工具

Tensorflow Lite模型部署实战教程--YOLOV5移动端部署过程_tensorflow_02

5、加载pb文件并进行转换

选择 "启用量化 "并选择 "每通道"。输入和输出类型为 'uint8'。选择'有符号'量化归一化。TF Lite转换器:'MLIR'。

Tensorflow Lite模型部署实战教程--YOLOV5移动端部署过程_移动端_03

Tensorflow Lite模型部署实战教程--YOLOV5移动端部署过程_tensorflow_04

6、主机端detect测试 

python detect.py --weights yolov5s.tflite --img-size 256 --source data\images\zidane.jpg

Tensorflow Lite模型部署实战教程--YOLOV5移动端部署过程_部署_05

7、主机端精度评估 

python val.py  --data coco128.yaml --weights .\yolov5s.tflite --imgsz 256 --verbose

8、移动端测试

NPU测试:

./benchmark_model --graph=/home/root/yolov5s.tflite --max_num_runs=50 --external_delegate_path=/usr/lib/libvx_delegate.so

CPU测试:

./benchmark_model --graph=/home/root/yolov5s.tflite --max_num_runs=50 --num_threads=4

CPU平均:150ms,NPU平均:23ms

9.移动端实际测试

python3 yolov5_decode.py yolov5s.tflite coco_label.txt zidane.jpg

Tensorflow Lite模型部署实战教程--YOLOV5移动端部署过程_移动端_06

移动端推理代码评论私发。