
【Wio Lite AI套件评测】人脸检测评测报告 / U% _; e& k$ Z- z: L 一、 开箱,初始庐山真面目 本文评测报告基于意法半导体公司生成的Wio Lite AI套件,此套件搭配官方生产的STM32H725AE开发板、一颗200万像素的OV2640摄像头、一根MIPI连接线、一个SPI串口屏、一块屏转接驱动板组成。因为这块开发板上是不含ST-Link的,因此作者选用4线SWD接口配合J-Link进行烧录debug,具体硬件连接如下图所示。 ![]() ![]() + z% p/ [6 o" W+ b, _ b2 l 由上图可知MCU基于Arm Cortex-M7架构,主频高达550MHz。具备众多驱动外设输出接口,超大的Flash和RAM是支撑AI模型运行的支柱。在浮点单元运算上可以借助FPU进行加速计算。内嵌Chrom-ART加速器,实现2D图像的细节调整,这样可以深度的对摄像头的输入图像数据加速处理。然后拥有DMA和Cache对图像数据的大容量快速传输,这样就能保证帧率,保证采集图像和结果显示的实时性。 ( J# `& y3 f* l8 \ 三、 程序和权重模型的分析/ U: |) I/ [& A1 W7 ` 首先是主程序,首先对硬件的时钟、内存、缓存寄存器进行初始化,后面就是对一些外设接口进行初始化,保证通信协议的正常进行。 ![]() 外设调用这里就不着重介绍了,感兴趣的朋友可以去参考sorce demo。这里重点来讲述一下模型加载,此demo做的是一个人脸检测方案,使用的Google_Model基于Tersorflow-Lite训练完成的一个微小模型,weights至于用的什么网络,小编还看得不是很清楚,单从模型结构来看已经实现了end to end的效果。 ![]() 输入被约束成1*96*96*1的一个gray图,所以如果是摄像头RGB图像进来在进入模型推理之前还需要对frame进行图像格式转换。这个在while函数STM32Ipl_Convert(&frame_rgb565, &frame_rgb565_grayscale)中也体现出来,同时长和宽也限制成96*96,所以STM32Ipl_Resize(&frame_rgb565_grayscale, &frame_grayscale_resized, &roi)就是对图像长宽比例进行比例缩放的。图像再经过一系列深度卷积和卷积上下采样后在经过全局平均池化防止过拟合等,最后在经过一层卷积完成输出采样。2 t% z" i9 T& x) e3 p o5 n ![]() 值得一提的是MCU并没有文件操作系统加持,所以不能够像在PC端那样去直接调用,所以ST把整个权重模型转换成数组类型了。 ![]() 小编不知道此模型的预训练是什么数据类型的,这里ST全部转换成int8格式的数据类型了,这样推理的时候计算量就变小了,但随机而来的计算精度肯定会有损失。至于推理内核ST封装在静态文件当中了,也不知道他的推理引擎是如何标定的。为了减少计算量此backbone里面GFLOPS非常小,相对于传统的目标检测深度学习模型,只保留了backbone,省略了Neck、FPN、Head等,转用ST自己的函数做了简单处理。( Q9 c0 V4 Z# i+ T1 I1 X2 @5 j4 j 四、 推理结果说明! \+ r- b# k- H* D0 `) H4 F 算力决定性能,所以采用超轻量模型后,精度能达到一定要求就足够了,不过值得表扬的是ST的这 个模型优化的相当不错,保证性能的同时精度也相对较好。因为摒弃了OpenCV那套画框函数思想,所以视频显得相对简单,有人脸在摄像头视野内就会出现”person”字样后面还会显示预测人脸概率,如果没有人脸进入就会显示“Not person”字样也会跟着预测人脸概率。# Y% q! B8 p4 R H " s: r$ J N* t$ j 五、人脸识别演示 2 x% X$ M' E f! t , w _5 r5 h v0 S9 F) N ( Y! x- e% b$ ` |
【Wio Lite AI视觉开发套件】+移植TensorFlow Lite
STM32H745I-DISCO脉冲宽度调制(PWM)
STM32H745I-DISCO串口通信,输入输出
拷打cubemx【002】——自定义还需基于芯片的工程
STM32硬件结构学习
STM32中BOOT的作用
STM32H7的TCM,SRAM等五块内存基础知识
STM32H7的TCM,SRAM等五块内存基础知识
简单了解一下STM32H7的BDMA
有奖预约 | STM32H7R7基于RT-Thread RTOS的智能终端GUI解决方案