你确实需要所有的原始传感器数据吗?不!有更好的方法
如果你正在构建接收传感器数据流的应用,那你很有可能和我一样是个数据迷。看到传感器将数据传入应用,并且还能轻松使用大量现成的传感器添加更多数据流,你肯定会有一种满足感。
传感器系统可以捕获大量的事件,这些事件则被解构为具有惊人细节水平的扩展测量序列。尽管如此,即使是最狂热的数据迷也承认,仅凭原始数据量庞大并不能推动实现应用的目标。驱动应用实现目标的是事件本身,而非各个事件精细切割的测量数据。幸运的是,智能传感器的问世有助于人们把关注点重新放在对应用及其用户非常重要的事件上。
随着更多传感器数据变得越来越容易生成,数据流演变为源源不断的原始测量数据,这可能导致旨在从所有数据中提取有用信息的嵌入式硬件和软件变得不堪重负。而问题不仅仅在于数据超出处理能力和通信管道能力。详细的测量数据可能会分散应用开发人员和用户的注意力,使其专注于小细节,而忽略了做出决策所需的更高级别的抽象信息。
处理抽象信息
顾名思义,抽象意味着损失一些细节。对于以数据为中心的应用,处理从多个原始测量中提取的衍生数据可能会让工程师有所顾虑,这不难理解,因为他们担心会丢失一些在以后看来很重要的细节。对于需要识别某些新事件或理顺根本原因的交通或安全数据记录器等应用来说,这当然是个值得考虑的问题。
然而,对于许多消费类和工业类应用而言,关键事件的具体特征往往众所周知。比如,人或物体突然坠落会产生特定的运动伪影,工业电机故障会表现出可预测的振动模式。而对于许多更高级别的应用而言,这些特征的细节通常无关紧要。这些应用只需要在发生坠落或故障事件时收到警报。当然,用于检测警报条件的机制确实需要详细的传感器测量。
在一个项目期间,我曾遭遇同样的问题,该项目需要为某个处理高级事件的应用生成大量数据。生成高级事件信息需要详细数据,但除了一些简短的活动窗口之外,如果尝试存档其他所有测量数据,存储空间就会耗尽。一种基于机器学习和其他分析方法的抽象方法化解了我们的难题。
经过大量测试后,我们确信可以动态生成抽象结果并覆盖旧的测量数据。
专注于事件
STMicroelectronics 的 iNEMO 系列惯性测量装置 (IMU) 等最先进的传感器使得始终开启型应用能够具备这种能力。该低功耗 IMU 包括适合电池供电消费类应用的 LSM6DSOX、适合高精度应用的 LSM6DSRX 和适合工业应用的 ISM330DHCX。这些 IMU 集成了可编程有限状态机 (FSM) 和机器学习核心 (MLC),使得用户可以使用自己的训练数据集进行训练(参见《使用智能传感器的内置机器学习内核可以优化“始终开启”运动跟踪》)。
当这些设备之一检测到与关注事件相关的模式时,便可以为主机处理器生成中断。然后由主机处理器执行适当的应用逻辑。事实上,如果你只想要原始运动数据,或者与事件中断结合使用,你可以像使用任何运动传感器一样读取原始测量数据(图 1)。
图 1:STMicroelectronics 的 iNEMO IMU 集成了完整的数字链,可生成有条件的数据,以供集成式 FSM 和 MLC 使用,以及通过 IMU 的先进先出 (FIFO) 缓冲区进行主机访问。(图片来源:STMicroelectronics)
传感器能够监控自身的测量数据并识别更多抽象事件,因而降低了处理器和通信通道的负载,并为新一代智能传感器指明了方向。更重要的是,传感器能够在内部分析原始数据并生成有用信息,这为实现更高效的机器学习设计指明了道路,使其不仅能够提供原始测量数据,而且还可以提供派生数据。
总结
若将应用解决方案的焦点放在派生数据而非原始测量上,则不需要支持机器学习的传感器。对于相对简单的数据集,传感器系统的主机处理器可能有足够的可用周期来执行识别事件的决策树。但对于更大规模的部署,你可以在传感器和上游主机之间使用边缘计算资源来执行抽象转换。不管如何,若能将数据缩减成有用的抽象信息,则有助于满足一些应用领域对数据宁缺毋滥的要求。
参考资料:
使用智能传感器的内置机器学习内核可以优化“始终开启”运动跟踪
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum