历史上的今天
今天是:2024年11月06日(星期三)
2020年11月06日 | SensorTile.box的无限可能——利用啼哭检测婴儿是否遗留在车上
2020-11-06 来源:ST
本文来源自ST Blog,EEWorld编译

一个名为婴儿哭泣检测器的项目由ST软件创建。该应用程序是STBLESensor上众多演示中的一个,STBLESensor是我们面向iOS和Android的移动工具。该应用程序与SensorTile.box——ST最强大的传感器平台相结合。顾名思义,婴儿啼哭检测器检测婴儿是否在哭。SensorTile.box使用MP23ABS1 MEMS麦克风录制16 kHz样本的声音。之后处理信号,再将其传递给运行在STM32L4R9上的机器学习算法。如果系统确定有孩子在哭,传感器板上的LED变绿,智能手机通过蓝牙接收警报。
在夏天炎热的天气里,父母会不经意地把孩子留在车里,这太危险了。因此,ST专家提出了一个简单的问题:我们能否利用现有技术防止此类悲剧的发生?因为处于困境中的孩子几乎总是会哭,所以发现他们的尖叫声可以触发警报。问题是,要想有效,应用程序必须精确。因此,人工智能是必要的,因为硬编码算法将起到巨大作用。此外,该平台需要足够强大的传感器来捕获高质量的数据。因此,ST工程师采用了SensorTile.box。
获取数据

当ST工程师开始研究婴儿啼哭检测器时,他们遇到的第一个障碍是找到有用的训练数据。著名的格言“垃圾进,垃圾出”与机器学习特别相关。因此,我们的研究小组从梳理婴儿哭闹的数十小时录音开始。他们也意识到筛选数据同样重要。因此,有必要采集周围噪音、动物和成人哭泣的样本以及其他各类。
分辨误判
一旦ST团队觉得他们的数据集令人满意,他们就开始测试神经网络。初步评估令人鼓舞。然而,他们也意识到他们有一些反复出现的误判。其中一个发生在系统误认为狗的嚎叫是婴儿的哭声。为了解决这个问题,我们的团队在将音频信号发送到神经网络之前调整了音频信号的快速傅立叶变换。ST工程师还实现了一个惯性探测系统。婴儿哭闹检测器开启条件是假设婴儿独自在车内,如果车辆在移动,就意味着有司机,警报就不会运行。当前的实现是相对基本的,但是开发人员可以使用LSM6DSOX的机器学习核心SensorTile.box在保持最小功耗的同时感知运动。
用STM32转换神经网络Cube.AI
婴儿哭闹检测器的另一个突出特点是能够在STM32L4上运行机器学习算法。为了实现这样的壮举,ST工程师使用了STM32 Cube.AI。扩展软件将神经网络转换为STM32的优化代码。在这个例子中,我们的开发人员在Keras上创建了一个神经网络。基于TensorFlow2.0,API生成了一个Python库,用户可以使用X-CUBE-AI处理该库。结果是开发人员可以在主循环中调用的二进制文件。因此,婴儿啼哭检测器从麦克风中获取信号,将其发送到由X-CUBE-AI优化的神经网络,并返回系统是否检测到处于困境中的婴儿。
不是最终产品
婴儿哭闹探测器能防止一个孩子死亡吗?我们相信答案是“是的”,但我们也知道我们的开发还没有市场化。一家想要销售类似解决方案的公司将不得不收集更多的数据,并创建一个更复杂的神经网络来提高其准确性。然而,我们的应用程序显示了我们在短时间内可以完成的工作,并且使用了来自互联网的简单数据集。因此,婴儿啼哭探测器以一种非常真实的方式展示了人工智能和传感器的潜力,以及工程师在热衷于SensorTile.box以及ST生态系统。
史海拾趣
|
64位的cpu是地址线的位数是64位,还是数据线的位数是 64位? 64位机呢?问题如上? 是64位机还是64位的cpu可以将内存扩展到2的64次方? 谢谢回答。… 查看全部问答> |
|
#define uint unsigned int #define uchar unsigned char uint state; uint i; uchar sum_state; uchar buff_1[5]=\"XXXXX\"; uchar buff_2[5]=\"XXXXX\"; uchar buff_3[5]=\"XXXXX\"; uchar buff_4[5]=\"XXXXX\"; uchar buff_5[5]=\"XXXX ...… 查看全部问答> |
|
判断处理器状态的问题: 书上这样写的,不怎么理解。 ------------------ 原文:当异常发生时,处理器自动切换到ARM状态,所以在异常 ...… 查看全部问答> |
|
FPGA使用的是StratixII GX,RAM资源有M512(32*18bits)、M4K(128*36bits)和M-RAM(4K*144bits)3种。我例化一个64*48的FIFO占用2个M4K;例化一个128*48的FIFO占用2个M4K;以上情况我能理解,因为1个M4K的位宽不够,所以要拼起来才能实现48bit位 ...… 查看全部问答> |
|
ME是叮叮铛铛的雷丝,自认大哥的消息一直收录齐全~那个 呃 ……大家不要误会,我并不是来掏底的,我对大哥那是一个尊重加爱护加珍惜加倾慕!~咦~害羞~一切都是隐私所以不能像广大网民透露!但是大哥最近潜伏在4S店的事,ME却完全没有预料!实在 ...… 查看全部问答> |
|
本想使用LM Flash Programmer 通过串口对LM3S6432下载程序,结果始终波特率不匹配。向大家咨询下,如何使用。在此先谢谢了。… 查看全部问答> |
|
//同样的,使用lcd1602显示,这里不再多述其程序了,前面有 #include \"lcd1602.h\" #define Num_of_Results 32 static uint results[Num_of_Results]; uchar a[10]=\"0123456789\"; uchar b[16]=\"temperatu ...… 查看全部问答> |




