目录
本文内容主要来源于江大白老师主讲的《AidLux智慧安防实战训练营》,感谢江老师和Aidlux工作人员的无私倾情奉献和细致指导。
在PC端测试完已训练好的模型之后,我们主要是在边缘端Aidlux上进行使用,在前面我们也知道,Aidlux主要针对推理部分,在底层进行了加速优化。因此想要将pt模型移植到Aidlux上使用,还要进行转换模型,修改推理代码的操作。
1 pt模型转换成tflite模型
模型转换的文件是export.py文件,在Aidlux中主要运行的是tflite的方式,因此主要修改其中的三个地方。
因为需要tensorflow,所以运行时会报错:
所以再输入:pip3 install tensorflow -i Simple Index,下载tensorflow库。
安装好再运行export.py文件,在models文件夹下面,可以看到生成的yolov5n-fp16.tflite文件。
2 Aidlux视频推理代码理解
针对Aidlux中推理测试的代码,大白放到yolov5_code/aidlux文件夹的yolov5.py中了,大家也可以将训练好的tflite放到aidlux文件夹中。
其中包含了很多Aidlux专属的函数接口,大家可以在AidLux Docs,查看下相关的函数说明。
当然其中的代码和原本PC端的代码有一些不同,大白也梳理讲解一下,主要分为三个部分:
(1)加载相关的函数库
(2)模型初始化及加载
其中主要用到两个函数接口,一个是aidlite_gpu.aidlite()和aidlite.ANNMode()。
AidLite初始化的说明:
AidLite加载模型的说明:
此外还有两行in_shape,out_shape,这里可以通过netron查看一下相关的模型参数。
我们使用Netron,打开刚刚的yolov5n_best-fp16.tflite文件。点击最下方的输出单元,可以看到输出的信息。
(3)视频读取&模型推理代码
视频读取和模型推理的地方也比较简单,大白也详细的进行了描述,大家可以对照查看。
3 代码复制到Aidlux中
我们将yolov5的代码,全部上传到Aidlux的home下面。还是在网页版的Aidlux中,打开文件浏览器,进入home下方,点击上传按钮,将lessons3_codes都进行上传。
4 远程连接Aidlux软件
在第二节课中,我们讲解了使用SSH,连接到Aidlux的方式。大家也可以远程连接到lesson3_codes,当看到红色部分的SSH:AIDLUX,即说明远程连接成功。
5 推理测试Aidlux代码
开aidlux文件夹中的yolov5.py进行视频推理测试,在手机版本的Aidlux和PC端网页的Aidlux中,都可以看到推理的显示结果。
PS:需要注意的是,在运行的时候,需要把手机版本里面的aidlux页面叉掉,免得会有冲突,运行的线程会直接被killed掉。