一个利用边缘AI实现山火警报的实际案例
编译自Edge Impulse
早期发现对于控制山火蔓延至关重要。然而,大多数检测系统依赖于卫星和光学热监测,通常在点着火后一到三个小时产生警报。在森林中部署无线传感器节点是对抗山火的最常用解决方案之一。但是由于现有设备的功耗,限制了现场部署。此外,到目前为止,这些传感器节点只是一个数据收集的设备,在远离数据生成点的服务器上盲目地收集数据并将数据发送到运行在服务器上的检测算法,这会显著增加能耗和响应时间。
边缘机器学习则解决了这一瓶颈。将计算后的节点数据上传到云端,可显著提升电池寿命和系统响应时间。嵌入式爱好者 Pratyush Mallick开发了一个集成机器学习的山火检测方案。
该系统包括一个来自 ADI的EV-COG-4050LZ 主控制板——一个具有板载电源管理和浮点单元的低功耗 Arm Cortex-M4F 微控制器。通过 Bosch 的 BME688 完成环境参数的检测。它是由气体、气压、湿度和温度传感器组成的单一封装,专为低功耗的移动应用而设计的。它取代了四个独立传感器,并将功耗保持在 12mA 以下。
辨别野火只是解决方案的一个方面。它还必须在检测到事件时发送警告。低功耗网状网络可以实现这一目标。选择了XBee-2SC模块,传输数据时消耗小于40mA,以及SparkFun Nano Power Timer (TPL5110) 和 Xidas 能量收集教育/开发套件 (EH-EDU-1) 。Power Timer是一个超低功耗设备,可按设定的时间间隔打开或关闭主微控制器。该开发套件包含一个混合 RHB-1530 电池、电源管理电路以及太阳能电池板的充放电系统,可为整个系统供电。
Nano Power Timer定期唤醒微控制器。控制器唤醒后,从周围环境中收集环境数据并执行边缘 ML 模型。该模型预测发生野火的可能性,如果检测到,RF 模块将被触发并将数据发送到网关节点。否则,该装置会将自身重新置于睡眠模式,在该模式下,整个系统消耗 35nA 电流。
该软件基于 Arm 的 mbed OS,可轻松将代码移植到不同的 MCU。对于模型训练和部署,使用了 Edge Impulse。其具有简化但功能强大的模型构建过程的优势,同时支持 mbed模式的开发板。
数据的收集是分析的关键参数。这里的一个区别是,Edge Impulse 支持通过其数据转发器或直接上传带时间戳的.csv 文件,甚至支持来自第三方板卡的数据记录。由于 EV-COG-4050LZ 板带有 microSD 插槽,因此数据首先被收集到 SD 卡上,然后上传到 Edge Impulse 门户。使用不同类型的木材和可燃有机物收集两大类的数据:
正常:森林呈现正常的温度、湿度和空气质量。
明火:完全成熟的野火,湿度低,温度高,含有大量挥发性有机化合物 (VOC)。
累积数据后,Edge Impulse的整个处理工具是无缝的。该工具简化了 GUI,用于设置管道的不同块,例如预处理或学习块,并支持调整各个块的参数,有助于找到最佳的参数架构。特征浏览器有助于可视化不同类之间的重叠区域,并使用户能够相应地配置特征参数。
对于嵌入式工程师来说,算法和模型选择的一个关键参数是推理所需的内存使用和计算时间。 Edge Impulse 在模型的每个步骤中提供详细的内存占有量和时间,并让开发人员在构建模型时做出决策。
目前,收集的数据是由神经网络分类的两类,得到的模型性能如下图所示:
该模型是使用 Edge Impulse 的 C++ 库部署的,该库与平台无关,可以在任何目标设备的任何 IDE 上构建。
该模型是此类项目的关键推动因素,因为如果没有将智能融入进MCU,则需要将传感器数据传输回服务器进行推理。来回传输数据是一项能源密集型任务,会大量消耗电池电量。下图是设备在运行时的电流消耗情况:
为了可持续地使用太阳能运行该设备,它需要消耗的能量少于产生的能量。在每毫瓦功率至关重要的用例中,Edge ML 对进一步降低功耗和硬件 BOM 成本具有深远的影响。