新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > STM32低功耗计算机视觉:模拟仪表展示

STM32低功耗计算机视觉:模拟仪表展示

作者:ST意法半导体时间:2022-06-12来源:CTIMES收藏

水表是常见的家庭设备,不过类似图一的模拟水表多达数千种,需要技术人员每个月到现场人工记录数据,才能计算当月的使用量,这是十分费时且费力的工作。现在,电表逐渐被智慧电表所取代,不过成本仍然很高,对于缺乏联机能力的使用者,或尚未规画更换经费的国家来说,这更加是艰巨的任务。

本文叙述如何透过使用具嵌入式联机能力的低分辨率摄影机所组成的、低成本系统,有效地将模拟仪表数字化。.


图片.png 
图一

经由采用意法半导体(STMicroelectronics;ST)的WL55,透过摄影机撷取水表读表区域,接着利用上执行的 AI 算法识别读表。AI分类器算法的结果(也就是读表)以WL(如 LoRaWAN)支持的远程 sub-GHz 无线网络传输。传统的联机装置会将影像传送到云端,而ST的解决方案则是传输读数。这个方案的优势,在于透过本地 AI 模型可以快速准确地识别读数,然后只需要将读数传送回数据中心即可。

这种方法不仅可以有效保护用户数据的隐私(仅传输推论结果),而且效率更高,并且节省带宽。如此,使用者就能以低成本、、高效率的方式解决这个问题。


图片.png
 
图二

WL 系列是全世界第一款支持长距离无线通信的

WL系列为一款可以连接LoRa广域网的系统芯片,其整合STM32L4超低功耗系列和支持多种调变方案的Sub-GHz射频子系统。


图片.png 
图三

STM32 成功的重要因素为其强大的生态系统。从事STM32WL工作的开发人员可以运用已在市场上获得验证之成熟的STM32生态系统,使用STM32通用开发所熟悉开发的工具,以及 subGHz 无线电开发和 AI 设计工具专用的软件包组成。如此即可大幅降低开发门坎,加速产品上市时间。

生态系统中的资源,包括STM32CubeMX项目配置和程序代码产生工具、STM32CubeMonitor运行时间监控、可视化工具,以及 STM32CubeProgrammer 程序代码刻录工具。

STM32Cube.AI有助于用户将经过训练的AI模型快速部署到STM32上并进行验证测试。STM32CubeWL MCU软件包组件,包含STM32WL系列执行所需的所有嵌入式软件模块,包括周边设备驱动器、ST LoRaWAN 通讯协议堆栈、Sigfox通讯协议堆栈,以及使用ST 安全启动和安全韧体更新技术实现LoRaWAN韧体无线更新的范例程序代码。

另外,还有两个采用STM32WL的核板,用于快速原型设计:NUCLEO-WL55JC1(868pm 915amp 923 MHz)和NUCLEO-WL55JC2(433Accord470 MHz),以及两个Nucleo开发板板,用于快速原型研发。而本文的使用范例即采用了NUCLEO-WL55JC2开发板。


图片.png
 
图四

除了NUCLEO-WL55JC2之外,这个项目的另一个关键组件是摄影机。

摄影机模块(采用低成本OV2640 传感器)透过标准GPIO直接连接到NUCLEO-WL55JC2 开发板中的STM32 MCU。由于STM32WL系列中没有可用的DCMI 接口,在示范中使用了电磁计数器,这个计数器在多数常见的在线商店容易取得,因此容易复制重现。

实验系统如图五所示。

图片.png 
图五

当所有硬件准备就绪之后,用户就可以制作数据集进行模型训练。

中有典型的入门项目,就是识别 MNIST 数据集。MNIST数据集收集0-9共十个 阿拉伯数字的手写字型,包括训练集中6万个样本和测试集中的1千个样本。对于想要使用现实世界数据,尝试学习技术和模式识别方法,同时在预处理和格式化方面动用最少的人力来说,这是很好用的数据库。

图片.png
 
图六

不过,我们无法直接使用这个数据集,因为水表上的数字字型和色彩与此数据集有极大的不同,为了达到更好的效能,我们会使用上述所提到的设备,让数据集与MNIST类似。

以下讨论这个项目,开启 STM32 的大门。

这个数据集大约有 4千个样本,每个样本包含五个数字。数据集的部分样本,如图七所示。

图片.png
 
图七

当有数据集之后,就可以建立神经网络,并使用自己的数据集训练模型。在这个模型中,输入40X32(数字)的灰阶影像来识别从0到19的20个类别,分别为:0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19。图八则是训练中失误和准确度的变化。这个数据集背景很简单,由于数字字型很规则,因此训练效果很好。其实可以收集不同的水表读数(不同的字型和色彩)一起训练,如此一来,模型就可以识别多个水表读数。

图片.png
 
图八

训练结束后会取得模型档案。迄今我们可以使用STM32cube.AI 工具,将模型转化为优化程序代码,快速部署到 NUCLEO-WL55JC2开发板上。

由于整合STM32Cube,让STM32Cube.AI用户能够有效地将模型移植到多样化的STM32 微控制器系列中。而且对于类似模型也适用于不同产品的情况,能够在STM32产品组合中轻松移转,而此项目亦是利用STM32Cube.AI将模型部署到STM32WL。

此外,可以透过插件扩充STM32CubeMX的功能,自动转换预训练的人工智能算法,并将产生的优化数据库整合到用户项目中,而不是建构手动输入的程序代码。而且还能将深度学习解决方案嵌入各种STM32 微控制器产品组合中,藉以对每个产品新增智能功能。

STM32Cube.AI 提供对各种深度学习框架的原生支持,例如 Keras、TensorFlow Lite、ConvNetJs,并支持所有可以汇出为ONNX标准格式的架构,例如PyTorch、Microsoft Cognitive Toolkit、MATLAB等。

此外,STM32Cube.AI支持来自大量机器学习开放原始码链接库Scikit-Learn的标准机器学习算法,例如Isolation Forest、支持向量机器(SVM)、K-Means。

在这个项目中,使用了TensorFlow 架构。


图片.png
 
图九

最后,我们来看看实际效能。为了方便展示,我们将摄影机拍摄的影像和MCU上的识别结果传送到计算机屏幕。影片中黑底白字的数字为摄影机所拍摄的图片,第一行是AI模型的结果。我们将仪表设定为每五秒驱动一次,因此数字每五秒更新一次。以下是未经编辑的实际屏幕快照。

图片.png 
图十

本文引用地址:http://www.eepw.com.cn/article/202206/435066.htm


评论


相关推荐

技术专区

关闭