算法模型在Aidlux端的模型推理测试实现详解

目录

1 pt模型转换成tflite模型

2 Aidlux视频推理代码理解

3 代码复制到Aidlux中

4 远程连接Aidlux软件

5 推理测试Aidlux代码


本文内容主要来源于江大白老师主讲的《AidLux智慧安防实战训练营》,感谢江老师和Aidlux工作人员的无私倾情奉献和细致指导。

在PC端测试完已训练好的模型之后,我们主要是在边缘端Aidlux上进行使用,在前面我们也知道,Aidlux主要针对推理部分,在底层进行了加速优化。因此想要将pt模型移植到Aidlux上使用,还要进行转换模型,修改推理代码的操作。

1 pt模型转换成tflite模型

模型转换的文件是export.py文件,在Aidlux中主要运行的是tflite的方式,因此主要修改其中的三个地方。

算法模型在Aidlux端的模型推理测试实现详解_第1张图片

因为需要tensorflow,所以运行时会报错:

所以再输入:pip3 install tensorflow -i Simple Index,下载tensorflow库。

算法模型在Aidlux端的模型推理测试实现详解_第2张图片

安装好再运行export.py文件,在models文件夹下面,可以看到生成的yolov5n-fp16.tflite文件。

算法模型在Aidlux端的模型推理测试实现详解_第3张图片

2 Aidlux视频推理代码理解

针对Aidlux中推理测试的代码,大白放到yolov5_code/aidlux文件夹的yolov5.py中了,大家也可以将训练好的tflite放到aidlux文件夹中。

其中包含了很多Aidlux专属的函数接口,大家可以在AidLux Docs,查看下相关的函数说明。

当然其中的代码和原本PC端的代码有一些不同,大白也梳理讲解一下,主要分为三个部分:

(1)加载相关的函数库

算法模型在Aidlux端的模型推理测试实现详解_第4张图片

(2)模型初始化及加载

其中主要用到两个函数接口,一个是aidlite_gpu.aidlite()和aidlite.ANNMode()。

算法模型在Aidlux端的模型推理测试实现详解_第5张图片

AidLite初始化的说明:

算法模型在Aidlux端的模型推理测试实现详解_第6张图片

AidLite加载模型的说明:

算法模型在Aidlux端的模型推理测试实现详解_第7张图片

此外还有两行in_shape,out_shape,这里可以通过netron查看一下相关的模型参数。

我们使用Netron,打开刚刚的yolov5n_best-fp16.tflite文件。点击最下方的输出单元,可以看到输出的信息。

算法模型在Aidlux端的模型推理测试实现详解_第8张图片

(3)视频读取&模型推理代码

视频读取和模型推理的地方也比较简单,大白也详细的进行了描述,大家可以对照查看。

算法模型在Aidlux端的模型推理测试实现详解_第9张图片

3 代码复制到Aidlux中

我们将yolov5的代码,全部上传到Aidlux的home下面。还是在网页版的Aidlux中,打开文件浏览器,进入home下方,点击上传按钮,将lessons3_codes都进行上传。

算法模型在Aidlux端的模型推理测试实现详解_第10张图片

4 远程连接Aidlux软件

在第二节课中,我们讲解了使用SSH,连接到Aidlux的方式。大家也可以远程连接到lesson3_codes,当看到红色部分的SSH:AIDLUX,即说明远程连接成功。

算法模型在Aidlux端的模型推理测试实现详解_第11张图片

5 推理测试Aidlux代码

开aidlux文件夹中的yolov5.py进行视频推理测试,在手机版本的Aidlux和PC端网页的Aidlux中,都可以看到推理的显示结果。

PS:需要注意的是,在运行的时候,需要把手机版本里面的aidlux页面叉掉,免得会有冲突,运行的线程会直接被killed掉。

算法模型在Aidlux端的模型推理测试实现详解_第12张图片

你可能感兴趣的:(tensorflow,人工智能,神经网络,视觉检测,智慧城市)