边缘计算、雾计算和云计算将在自动驾驶领域发挥什么样的作用?哪些任务交给边缘计算,哪些交给云端?
在之前的文章中,曾多次提到过5G网联技术将给自动驾驶带来的巨大变化。5G网络能提供20Gbps速率,时延仅仅1毫秒,每平方公里100万连接,网络稳定性可达99.999%的下一代蜂窝无线通讯网络,将从单车的信息流共享、车队的编队无人化、远程驾驶三个方面推动智能驾驶的高速发展。5G网络的给智能驾驶带来了低延时,高稳定性的物网联架构。通过服务器的高性能计算,核心云及边缘云给网联驾驶车提供实时路况、道路信息、行人信息等一系列交通信息,让智能驾驶迈进了“入5G网而知天下”的时代。
然而,有一部分朋友并不完全认同,@goly说:“设备端转云端处理根本就不现实! 1.网络覆盖情况? 2.高速120下网络吃的消?过隧道之类的咋处理?3.实时性要求? 云端处理海量数据,集群,网不好的情况,等数据从云到端的时候,都翻车了。”
还有一个朋友@Mr.high也提出了自己的观点:“云端+边缘计算可能是一个解决方案。 增强车载端高性能处理单元(车载计算机?)的处理能力, 网络负载能力与高速行驶状态下的容错能力。 现在的车载TBOX已经完全不能满足需要,5G时代的来临可能会触发车载高性能计算机的爆发式增长,CPU,GPU们好戏又要来了,反观桌面PC市场可能进一步萎缩,更智能的手机终端与车载高性能计算机的搭配可能渐入佳境。”
边缘计算、雾计算和云计算将在自动驾驶领域发挥什么样的作用?
边缘计算是一个相对较新的术语,随着物联网(IoT)时代的开始,它已变得越来越重要。
边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务,这个概念不像在云端中进行处理和算法决策,而是将智能和计算推向更接近实际的行动。这就允许分析的直接性。
与云端相比,边缘计算具备这七大优势:
- 延迟:毫秒级延迟
- 高吞吐量:本地生成,近场传输
- 数据简化:末端自主分析,减少对上游的依赖。
- 语境意识:实时获取用户及位置信息并用于计算
- 安全性:免受UE和CPE攻击
- 隔离:在丢失连接时仍能继续运转
- 合规性:有助于用户隐私条款
试想一下,如果你有一个工厂正在运行各种自动泵和涡轮机。如果设备连接到云,并且从这些设备传出的所有数据都进入云端,那么让云实际控制这些设备也是很诱人的。当需要关闭泵时,从云端通过网络发出并下至泵的命令会告诉它关闭。当泵遇到麻烦时,它会通过网络发送信息并传送到云端。这将是管理设备的集中方式。
假设泵开始出现问题,它需要一点时间才能通过网络进行通信,然后让网络将消息传递到云,然后云应用程序需要时间处理信息,才能发出一条命令,然后通过网络,最后到达泵。那可能是因为那时泵已经完全失灵了。从泵 – 云 – 泵的步骤延迟可能需要很长的时间,以至于云错过了保存泵的机会。
这也可以用在自动驾驶汽车。自动驾驶汽车上有许多感应装置,包括摄像头,用于激光雷达或雷达,声纳装置等等。许多自动驾驶汽车制造商正在设想,传感器的数据将流入汽车制造商为自驾车设置的云端。这使得汽车制造商能够收集大量的驾驶数据,并能够使用机器学习来改善自动驾驶汽车的行为。
问题出在多少处理应该发生在“边缘”?
在哪种情况下,处理应该在自动驾驶汽车及其无数本地设备,而不是在云端?
出于实际原因,我们已经知道大部分处理必须发生在边缘,因为感知数据需要分析的速度受到自动驾驶汽车运动影响需要及时指示汽车周围有什么。一份调查表明,一辆每天运行8小时的自动驾驶汽车将产生至少40TB的数据。这就是通过网络来回传输的大量数据。
假设有强大的网络连接并且在传输过程中保持连接,通过网络来回发送数据至少需要150-200毫秒。这实际上是一个很长的时间,因为汽车在运转,而且需要对汽车的控制作出快速的决定。
因此,自动驾驶汽车需要利用边缘计算。但是这涉及到具有足够的本地化计算处理能力和存储器容量以能够确保车辆和AI能够执行其所需的任务。你可能会说,我们应该继续将大量的处理器和内存放在自动驾驶汽车上。当然,这是一个不错的主意,但请记住,这将为自动驾驶汽车增加大量成本,同时这将会增加机器发生故障的几率,也需要耗费更多的电力,增加更多的重量到汽车等等。
本地与云端并不是互斥的命题
通过精心设计,能够将本地化处理和云处理混合在一起。
例如,自动驾驶汽车可能正在实时处理感知数据并据此采取驾驶行动。同时,它正在将数据发送到云端。云处理数据需要寻找更长期的模式,并最终通过分析数据向自动驾驶汽车发送一些更新信息。在这种情况下,我们将工作分为两部分,一部分是在本地(边缘)层面进行生死攸关的快速处理,另一部分是在云层面上进行更多面向概述的工作,而不是即时性工作。
将数据推送到云端并取回结果的能力将取决于:
- 自动驾驶汽车上的通信设备
- 通过网络进行通信所涉及的延迟
- 网络的带宽
- 网络的可用性
- 网络的可靠性
- 自驾车内的通信
变幻莫测的网络决定了为什么不能把自动驾驶汽车的实时工作交给云端处理。
自动驾驶汽车上有一些设备将被视为边缘专用设备,这意味着它们完全依赖于本地处理。尽管他们收集的数据可能会发送到云端,但他们并不依赖于从云端返回的任何内容。有边缘共享的设备能够与云分工,完全在本地完成一些任务,并以与云共同协作的方式执行其他任务。
自动驾驶汽车的处理器上的图像分析仪能够追踪其他汽车,摩托车,行人等。然后将其输入到传感器融合中,汇集来自激光雷达,雷达等的感知分析。传感器融合被输入到周围驾驶场景的虚拟世界模型中。所有这些都在边缘进行(在车内)。
自动驾驶汽车的AI在本地处理器上运行,并分析虚拟世界模型以决定采取何种动作。然后,AI会命令汽车控制装置加速或刹车来驾驶汽车。
我们假设这一切都会发生在边缘。过程会是这样的:
- 传感器数据收集在边缘
- 传感器融合在边缘
- 虚拟世界模型更新在边缘
- AI决策规划在边缘确定
- AI在边缘发布汽车控制命令
- 自动驾驶在边缘执行汽车控制命令
如果把云端加进来,作为一个非实时合作者,这意味着云会被告知正在发生的事情,但不会进行与自驾车有关的控制:
1.在边缘传感器数据收集
将数据发送到云端,但不要等待云端
2.传感器融合在边缘
将传感器融合结果发送到云端,但不要等待云端
3.虚拟世界模型更新在边缘
将虚拟世界模型发送到云端,但不要等待云端
4.人工智能行动计划在边缘确定
将AI行动计划发送到云端,但不要等待云端
5.AI在边缘发布汽车控制命令
将AI发布的汽车控制命令发送到云端,但不要等待云端
6.自驾车控制执行命令
从云端获取更新并在可行时更新边缘
我们将边缘信息传输到云端。这也可以在上述循环结束时完成,而不是尝试交错。
如果决定将云端控制放在这些步骤中,可能看起来是这样:
- 在边缘传感器数据收集
- 将数据发送到云端,等待云端
- 传感器融合在云端
- 虚拟世界模型更新在云端
- AI在云中确定的行动计划
- AI通过云发布汽车控制命令
- 等到收到云端车辆控制命令
- 自驾车执行汽车控制命令
在这种边缘云模型中,自动驾驶汽车几乎是一辆“哑巴”汽车,并没有通过自己处理很多事情。如前所述,这里所关心的是通信是否足够可靠,只有做到一致性且足够快才能满足需要做的事情。云本身可能有一些地球上最快的计算机,但最终是网络通信可能会破坏这种巨大的处理能力。
使用云的价值之一是能够利用我们在云中可以拥有的大得多的处理和内存容量,而不是我们已经加载到自动驾驶汽车上的容量。例如,当进行图像分析时,最好在边缘完成,而在云端进行大规模学习,其中有成千上万的自动驾驶驾驶的汽车图像,它可能比处在边缘处理器上的一些较小的神经网络更好地进行图像分析。
因此,精心设计的自动驾驶汽车能够在边缘拥有所需的自主权,并在适当的时候利用云。例如,当汽车停放或未被使用时,我们可能会让自动驾驶汽车AI在可用的情况下从云端获取更新信息。还可以通过利用来自云的大规模神经网络学习来增强局部边缘的神经网络。
有些人认为我们也需要雾计算
雾计算是边缘计算和云计算之间的中间地带。像一种中介计算,来充当边缘和云之间的中介。这可能意味着我们会在公路上安装计算机服务器,这些系统可以更快速,更可靠地与在高速公路上呼啸而过的自行驾驶汽车进行通信,而不会与云本身进行通信。因此,您大概会得到类似云的功能,不会像真正的云那样具有相同类型的延迟和问题。这需要增加大量的基础设施,而这些基础设施在初始设置和保持维护时往往都很昂贵。
在许多雾计算应用中,来自端点设备或者直接附接到简单的类服务器计算机(有时称为“网关”)的传感器数据会受到该网关的作用而触发某些动作,或者执行某些类型的任务。 之后,数据被传送到链条上更强大的服务器。这些服务器通常在云端进行更高级的数据分析。
前沿边缘计算设备的一个最好例子是联网自动(或甚至半自动)汽车。得益于大量的传感器数据以及关键的本地处理能力,再加上连接到云端更先进数据分析工具的需求,自动驾驶汽车成为了前沿边缘计算的典范。
尽管我们会怀念一切计算都发生在本地的简单日子,或者怀念一切任务都在远程数据中心完成的纯粹的云端世界,但可能今天的高级应用,需要更复杂的混合设计。打造基于云的基础设施和基于云的软件工具是计算进化的关键一环。显然,即将发生的最有趣且令人兴奋的进展将会把前沿计算推向边缘侧。