为什么可以在边缘处理数据时将数据发送到云服务?

物联网 传感器 aws-iot 云计算
2021-06-08 03:29:32

我最近正在阅读亚马逊关于AWS IoT Platform的信息,并遇到了一个有趣的示例用例:

使用 AWS IoT 检测水分以确保汽车安全的示例

虽然他们没有描述如何准确地感知路况数据,但如果传感器可以检测到潮湿的道路,为什么亚马逊会建议将数据发送到云端?直接在车辆上处理传感器数据并提醒驾驶员,而不是感知,将数据发送到云端,等待处理,接收数据,然后提醒驾驶员,不是更简单吗?除了您将获得的可能的分析数据之外,我真的看不出有什么优势。

亚马逊的示例用例是否仅在您想要获得分析数据时才有用,还是他们建议使用云的其他原因?


我怀疑其中一个原因仅仅是让人们使用他们试图出售的服务,但我对技术原因感兴趣,如果有的话。

2个回答

在选择是在设备上还是在云端处理数据时,有很多因素。

在云中处理的好处

  1. 如果算法使用浮点或在 GPU 上运行,则可能无法在传感器的嵌入式处理器上运行。

  2. 即使没有,如果算法是用高级语言开发的,移植它以在传感器上运行可能会太昂贵(在开发人员时间)。

  3. 从传感器卸载计算可能会增加其电池寿命(取决于这如何影响网络/无线电使用)。

  4. 在云中运行算法允许它结合来自许多传感器的数据并做出系统级决策。在这个例子中,这可能意味着过滤不同汽车的传感器,这样洗一辆车不会导致每辆车都发出下雨警告。

  5. 在云中处理允许将信息分发到许多地方,而不必拥有网状网络,这是一个复杂的架构。

  6. 您可以记录更多数据,从而实现更好的分析、审计和更好算法的开发。

机上处理的好处

  1. 如果原始传感器数据是高带宽,它可能使用更少的电池来汇总数据并发送摘要(取决于所需要的处理,以总结的话)。这可能意味着不是每秒发送 100 次 8 位水分读数,而是过滤它并每 10 秒发送 1 位湿/干标志。

  2. 你可能会更进一步,只有当传感器有一些有趣的东西要报告时才唤醒网络(例如湿/干状态变化)

  3. 减少传感器端的网络带宽也会减少服务器端的网络带宽,因此您可以非常便宜地将服务扩展到更多用户(更多传感器)。

  4. 即使网络不可用,也有可能以相同或减少的功能运行服务。在此示例中,您的汽车可能会警告您它自己看到的湿滑道路,但不会向您发出来自其他汽车的提前警告。

全面的

通常,两者的某种组合是最佳的。您可以在设备上进行尽可能多的处理,尽可能减少对网络的需求,然后在云中运行更复杂的算法,这些算法可以组合更多输入或使用更多计算能力。

您可能会开始在云中运行所有处理(因为它是在 Matlab 或 Python 中进行原型设计的)并逐渐将部分移植到 Rust 以启用离线功能,当您有开发人员时间花在它上面时。

您可能会在正常使用的设备上大量处理数据,但有时也会对原始数据进行采样和记录,以便稍后(当网络更可用时)将其上传到云端进行分析。

从图中可能不明显的是,提议的增值似乎是将信息从一组车辆传递到另一组车辆。可以处理来自某个位置的汽车的传感器信息(噪声抑制、模式识别)并将其传递给预计在不久的将来会遇到这些情况的其他车辆。

也许您可以在繁忙的区域点对点传递信息,但是您失去了从传感器预测中提取置信度数据以及轻松组合多个数据源的能力

至于传感器数据的价值,我认为自动驾驶汽车将受益最大,因为它能够在(例如)弯道之前调整它们的安全裕度和停车距离,弯道在经过一段时间后残留水更多阵雨已经过去。

一个模型可以在来自汽车的传感器数据上进行训练,然后根据实时天气信息以预测方式运行,这似乎是可行的。