AI技术专题之七:STM32低功耗计算机视觉应用:后装智能无线抄表模型

STM32单片机 2022-02-10 08:30


☝ 点击上方蓝字关注我们

‍‍‍‍‍‍‍‍

水表是常见的家用设备。模拟式水表(如下图中所示)数量庞大,需要技术人员每月现场抄表并手工记录数据,以计算当月的用水量。整个过程枯燥且费力。当前,虽然联网仪表正在取代模拟式水表,但成本也会随之上涨;更何况,一些国家并不具备接入全球网络的能力,而有的家庭和公司也无计划支付更换仪表的费用。


本文,意法半导体为你演示如何使用低功耗、低成本的系统(由采用MCU嵌入式连接的低分辨率摄像机组成)高效地将模拟式仪表数字化。

该方法以STM32WL55为基础,通过摄像头捕捉水表读数区域,然后通过MCU上运行的人工智能算法识别水表读数。之后,AI分类器算法的运行结果(即仪表读数)通过STM32WL支持的远程sub-GHz无线网络(如LoRaWAN)进行传输。传统的联网设备会将图像传送到云端,而我们的解决方案传送的是读数。


该解决方案的优点是:通过本地AI模型,可以快速准确地识别读数,只需将结果发送回数据中心即可。此举不仅能有效保护用户数据隐私(仅传输推理结果),而且效率更高,还节省带宽。这样,我们就能以低成本、低功耗、高效率的方式解决问题。




STM32WL系列是世界上第一款支持远程无线通信的MCU。


作为市场上首款可以连接LoRa低功耗广域网的系统级芯片,STM32WL集成了STM32L4超低功耗微控制器和支持多种调制方案的Sub-GHz射频子系统。



STM32取得成功的一个重要因素是其强大的生态系统。基于STM32WL产品的开发人员可以借用已经被市场证明成熟可靠的STM32生态系统。该生态系统包含已经熟练掌握的开发工具(支持基于STM32进行通用开发)、专门用于sub-GHz无线电开发的软件包,以及AI设计工具,由此大大降低了开发难度,并缩短了产品上市时间。


生态系统中的资源包括STM32CubeMX项目配置和代码生成工具、STM32CubeMonitor运行时监测和可视化工具,以及STM32CubeProgrammer代码烧录工具。


STM32Cube.AI可以帮助用户快速将经过训练的AI模型部署到STM32并进行验证测试。


STM32CubeWL MCU软件包的组件包含STM32WL系列运行所需的所有嵌入式软件模块,包括外设驱动程序、意法半导体的LoRaWAN协议栈、Sigfox协议栈,以及利用意法半导体安全启动和安全固件更新技术实现LoRaWAN固件无线更新的示例代码。


此外,还有两种基于STM32WL的nucleo板件可用于快速原型制作:NUCLEO-WL55JC1(868pm 915amp 923 MHz)和NUCLEO-WL55JC2(433Accord470 MHz)。与此同时,有两种基于Nucleo的Nucleo板可用于快速原型开发。该项目基于NUCLEO-WL55JC2开发板。



除了NUCLEO-WL55JC2,该项目的另一个关键组成部分是摄像头。


摄像头模块(基于低成本的OV2640传感器)通过标准GPIO直接连接到NUCLEO-WL55JC2开发板,因为STM32WL系列产品不提供DCMI接口。为方便进行演示,我们使用了一款常见的电磁计数器,这样更容易进行模型演示。


实验系统如下图所示。我们将直流电源转化成方波,用于驱动电磁计数器,然后摄像头就可以采集计数器的读数画面,通过GPIO传输到NUCLEO-WL55JC2,由MCU上运行的AI模型进行识别。



所有硬件准备就绪后,我们就可以自己制作一个数据集,用于模型训练。


在计算机视觉应用中,有一个经典的入门级项目 - 识别MNIST数据集。MNIST数据集收集0-9这10个阿拉伯数字的手写字体,包括训练集中的60000个样本和测试集中的1000个样本。有的用户想要通过真实数据来尝试学习技巧和模式识别方法,同时尽可能地节省在预处理和格式化方面花费的精力,对于此类用户, MNIST是一个很好的练手项目。



但是我们不使用该数据集,因为水表上的数字的字体和颜色与该数据集差别很大。为了使模型获得更好的表现,我们将使用上面提到的设备制作一个类似于MNIST的数据集。


该数据集大约有4000个样本。每个样本包含5位数字。数据集的部分样本如下所示:



拥有数据集之后,我们可以构建一个神经网络,并用自己的数据集来训练模型。在该模型中,我们输入一幅40 X32(单个字符)的灰度图像来识别从0到19(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19)的20个类。下图显示了训练中的损失和准确率的变化。该数据集的特点是背景简单和字体规则,看起来训练效果非常好。实际上,我们可以收集不同的水表读数(不同的字体和颜色)进行训练,这样一个模型就可以识别多个不同水表读数。



训练结束后,我们将得到一个模型文件。此时,我们可以使用前面文章中提到的STM32cube.AI工具将模型转换为优化的代码,并快速将其部署到NUCLEO-WL55JC2板。


STM32Cube集成使STM32Cube.AI用户能够有效地在广泛的STM32微控制器系列产品之间移植模型,并且(在相似型号适用于不同产品的情况下)在STM32产品之间轻松迁移。该项目使用STM32cube.AI将模型部署到STM32WL。关于计算机视觉应用,我们在前面文章中介绍的FP-AI-VISION1软件包中有许多开放代码,可帮助开发人员理解和快速开发。用户可以浏览前面的文章:AI技术专题之六:STM32计算机视觉包FP-AI-VISION1简介,以了解详细信息。


该插件扩展了STM32CubeMX功能,可自动转换预训练人工智能模型和将生成的优化库集成到用户项目中,而不是人工构建代码,并支持将深度学习解决方案嵌入到广泛的STM32微控制器产品组合中,从而为每个产品添加新的智能化功能。


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


此外,STM32Cube.AI支持来自广泛ML开源库Scikit-Learn的标准机器学习算法,如孤立森林、支持向量机(SVM)、K-Means。


在该项目中,我们使用的是TensorFlow框架。



最后,让我们看看实际表现如何。为了便于演示,我们将摄像头捕捉到的图像和MCU上的识别结果传输到计算机屏幕上。视频中黑色背景上的数字(白色字体)是摄像头捕捉到的图像,第一行是AI模型的识别结果。我们将水表设置为每五秒钟驱动一次,这样数字每隔五秒就会更新一次。该视频显示的是未经编辑的录屏。在演示过程中,我们采用了遮挡的光线的方式,去模拟不同的光照条件,证明模型的鲁棒性很好。



 我们策划了一系列AI主题文章,详细介绍意法半导体在Deep Edge AI领域的努力成果。
  欢迎您在文后积极留言,告诉我们想了解意法半导体AI的哪些方面,我们将为您呈现更多精彩内容。


相关阅读




▷ 学知识赢好礼!AI技术专题之一:意法半导体人工智能解决方案概述

▷ AI技术专题之二:机器学习模型设计过程和MEMS MLC【文末留言好礼】

▷ AI技术专题之三:嵌入式机器学习核心运行决策树分类器【文末留言好礼】

▷ AI技术专题之四:AI在Deep Edge领域中的应用

▷ AI技术专题之五:专为STM32 MCU优化的STM32Cube.AI库

▷ AI技术专题之六:STM32计算机视觉包FP-AI-VISION1简介




END




STM32单片机 ST MCU (产品+工具+资料+技术+市场+活动)x 您的关注x您的支持 = STM32 单片机蝴蝶乐园
评论
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 755浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 139浏览
  • 书接上回:【2022年终总结】阳光总在风雨后,启航2023-面包板社区  https://mbb.eet-china.com/blog/468701-438244.html 总结2019,松山湖有个欧洲小镇-面包板社区  https://mbb.eet-china.com/blog/468701-413397.html        2025年该是总结下2024年的喜怒哀乐,有个好的开始,才能更好的面对2025年即将
    liweicheng 2025-01-24 23:18 65浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 100浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 401浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 217浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 167浏览
  • 飞凌嵌入式基于瑞芯微RK3562系列处理器打造的FET3562J-C全国产核心板,是一款专为工业自动化及消费类电子设备设计的产品,凭借其强大的功能和灵活性,自上市以来得到了各行业客户的广泛关注。本文将详细介绍如何启动并测试RK3562J处理器的MCU,通过实际操作步骤,帮助各位工程师朋友更好地了解这款芯片。1、RK3562J处理器概述RK3562J处理器采用了4*Cortex-A53@1.8GHz+Cortex-M0@200MHz架构。其中,4个Cortex-A53核心作为主要核心,负责处理复杂
    飞凌嵌入式 2025-01-24 11:21 103浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 883浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 173浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦