全自主空中系统的边缘资源管理
1 引言
无人机系统(UAS)可以悬停、飞往航点并执行预定义的动作,例如着陆和起飞。除了旋翼和电机外,这些飞机还搭载了计算机系统、摄像头、电池等设备。它们能够到达高处、广阔区域或危险地点,并采集详细图像和传感器读数。摄影师、农民和第一响应者通过遥控器或智能手机 [3, 13, 26, 32, 42]操控无人机系统。终端用户决定无人机系统的飞行路线、感知数据的时机以及任务何时完成。
无人机系统的飞行操作错误可能带来严重后果。例如,在限制区域飞行无人机系统会危及人类生命安全。其他常见错误,如飞向不必要的航点,会降低任务吞吐量(即完成的任务数量)。人们需要依赖更少人工驾驶的空中系统[32, 41]。目前,支持控制飞机的软件开发工具包正获得越来越多的支持。大疆创新(DJI)的飞机支持通过iOS、安卓和Linux设备进行软件控制[39]。Pixhawk和 AeroStack也提供了软件控制的平台[33, 37, 38]。
全自主空中系统(FAAS)是一种新兴的工作负载,其中无人机系统执行完全由软件定义的动态任务。终端用户既不操控FAAS,也不设定预设航点。相反,他们提供目标、约束条件和用于执行任务的软件。与边缘驱动视频分析[12, 17, 20, 21, 43–45],类似,FAAS会实时处理图像,并利用人工智能进行场景分析。然而,FAAS还需控制飞机的飞行,使得飞行路径(以及感知的数据)具有动态性。
近期的无人机系统配备了复杂的处理器。例如,大疆御系列搭载了Myriad 2,这是一种片上系统,包含流式向量引擎处理器、硬件加速器、多个RISC核心以及2 MB的片上内存。然而,与无人机系统相比,FAAS显著增加了计算需求 [3, 30, 41, 43, 44]。如果飞机将电池容量让渡给机载处理器,并携带更重的有效载荷用于数据存储,飞行时间将会受到影响[43]。FAAS工作负载可以不使用机载资源,而是运行在地面,通过网络消息控制飞机(即边缘云节点)。另一种选择是将飞机连接到高速的云计算中心。这些选择在延迟、处理能力和成本方面各不相同。专业终端用户必须了解这些因素如何影响其最终效益,但要回答关于架构和软件设计比较的假设性问题却十分困难。
例如,如果我将FAAS软件运行在机载而不是边缘服务器上,每块充满电的电池可完成多少任务(即任务吞吐量)?或者,GPU提供的数据处理加速是否值得其成本?
自主系统结合了许多独立的软件组件。许多组件支持在计算需求和节能之间进行权衡的设置。由于这些设置会影响FAAS的飞行路径、所需的计算资源数量,且影响具有任务特定性,因此很难预测这些设置对任务吞吐量的影响。例如,轻量级图像分类器可以降低计算需求并节省能量,但FAAS也需要飞往更多的航点,这可能会抵消节省的能量。终端用户可以测试每种设置并直接测量任务吞吐量。然而,由于任务复杂且耗时较长,加上软件设置众多,穷尽测试变得不切实际。
本文提出了一种可预测任务吞吐量的建模方法。我们的方法对飞机和计算的能量需求进行建模。我们将任务建模为一系列航点。耗尽电池容量的航点决定了任务吞吐量。然而,针对影响自主决策的系统设置(我们称之为自主性设置)来刻画能量需求十分困难。自主性设置会改变飞行路径,从而影响任务执行过程中所感知的数据,最终影响能量需求。我们提出了自主立方体,这是一种用于表征任务整个飞行区域的数据结构。自主性立方体可以近似任意飞行路径下的感知数据,类似于数据立方体(其思想来源)[18]。
为了验证该模型,我们创建了SoftwarePilot[6], —— 一个执行以下复杂任务的FAAS套件:(1)自主拍摄人脸的高质量照片,(2)为第一响应者搜索与绘图指定区域,以及(3)勘察农田以获取代表性样本。SoftwarePilot采用了先前研究[30, 37]中提出的路径规划和人工智能方法。每个FAAS支持广泛的软件和硬件设置。切换这些设置可使每项任务的航点数增加4倍,计算需求增加35倍。
我们收集了122个自主性立方体,在56个地点飞行并采集了20970条数据读数。我们还执行了145次实际FAAS任务,并测量了真实任务吞吐量。FAAS使用了DJI Spark和 Mavic Pro飞机。我们将我们的建模方法与AeroStack[37]和Autoware[22, 30]进行了比较。这些方法利用先前任务的参考轨迹来建模能耗。我们的模型预测吞吐量时具有4%误差。当轨迹和任务设置在多个维度上不同时,AeroStack和 Autoware的误差比我们的方法高出5倍和10倍。
在验证了我们的建模方法后,我们探索了边缘资源的模型驱动管理。首先,我们考虑终端用户分别购买飞机、软件和硬件,然后将它们组合成一个FAAS的场景。在购买飞机和软件之后,这些终端用户希望购买能够提供高吞吐量的计算硬件。在成本预算下,这些终端用户可能需要最大化每美元吞吐量。终端用户可以使用我们的模型来回答这些问题。我们使用建模方法比较了机载、边缘和云架构。机载计算和存储使飞行时间减少了50%,显著降低了任务吞吐量。边缘计算最终提供了最佳的任务吞吐量和每美元吞吐量。然而,我们观察到大型飞机可以提升机载架构的性能。我们还使用建模方法比较了横向扩展、纵向扩展和GPU方法以满足计算需求。我们发现最佳方法取决于(1)自主性设置和(2)能量容量。GPU可提高吞吐量,但会迅速耗尽电池。在芯片上增加核心数量提供了一种可靠的吞吐量提升方法。
我们还研究了终端用户控制飞机、处理器和软件设计与实现的管理场景[32]。这些终端用户可将FAAS出售给军事部门、智慧城市或其他大型运营机构,并能够调整FAAS的各个方面以找到高吞吐量的设置。我们研究了软硬件协同设计,建立了一种自适应策略,在深度、计算密集型AI模型与精度较低但节能的AI模型之间进行切换。运行CPU和GPU的边缘系统可以在使用精度较低的模型时关闭GPU。我们比较了在任务期间和任务之间切换GPU状态的两种方法。在任务期间切换GPU状态可提供更高的任务吞吐量。我们还对一项工业应用——农业勘察——建立了端到端成本模型。通过基于模型的边缘管理,FAAS任务比人工驾驶UAS任务便宜87%。
我们的贡献如下:
- 我们的建模方法能够精确预测任务吞吐量。我们表明,自主性设置对FAAS的飞行路径和能耗有显著影响。
- 我们通过软件飞行员构建了三个开源FAAS(自主摄影、搜救和农业勘察),并直接测量了它们的任务吞吐量,验证了我们的建模方法。
- 我们展示了能够提升吞吐量并降低成本的边缘资源管理技术。
本文其余部分安排如下。第2节概述了FAAS。第 3节提出了由自主性立方体驱动的能量模型。第4节描述了FAAS的实现。第5节验证了我们的模型并研究了飞行即服务工作负载。第6节使用我们的建模方法指导 FAAS系统管理。第7节讨论了未来工作以及我们方法的局限性。第8节讨论相关工作。第9节给出结论。
2 动机与背景
自主系统在定义模糊的区域中执行复杂任务,而无需接收来自人类的指令。根据这一定义,无人机系统并非自主的。人类决定(1)飞行地点,(2)何时感知数据,以及(3)任务是否完成。not图1展示了无人机系统的工作流程。人类设定高层任务目标,例如拍摄一张人类目标的精彩照片。然后,他们通过(1)使用遥控设备,(2)做出手势,或(3)提供一组GPS坐标,操控飞机飞往各个航点。在每个航点,无人机系统从周围环境感知数据,例如详细图像或 GPS数据。人类在研究这些数据后,判断其目标是否已达成。若未达成,则选择新的航点并重复该过程。
图1还描绘了FAAS的工作流程。人类设定目标,但其余所有工作均由软件完成。该系统能够在无人类下达指令的情况下完成多个任务。为了将人类从循环中移除,软件必须能够判断任务何时完成,这意味着人类终端用户和软件都能理解任务目标。
在真实目标与软件中可表达的目标之间存在语义鸿沟。目前,自主系统要求终端用户将其模糊的高层目标转化为数学方程(称为效用函数)。如果任务未完成, FAAS软件还必须选择下一个航点。
全自动航空系统任务示例:农田面积广阔。传统的勘察报告可能会遗漏一些细微问题,例如过度拥挤或作物病害。人工驾驶的无人机系统已改变了侦察方式。像Fly TheFarm[29],这样的公司会飞行于农田上空,采集详细图像。这些图像为农民提供信息,指导肥料和农药的施用。然而,无人机驾驶员收费为每英亩1至5美元。一次侦察报告的成本可能接近玉米田净利润的3%[7, 16, 42]。通过摒弃人工飞行员,FAAS可以降低成本。
图2描述了飞行区域以及先前研究中探讨的两次农业勘察任务[5]。飞行区域由飞机可飞行的航点组成。图2中的每个单元格代表一个航点(此处为GPS位置)。沿蓝线,我们的FAAS飞行控制器引导飞机到达航点 (A1)并拍摄详细的图像。FAAS软件分析该图像,统计玉米作物。如果图像包含足够的作物以准确测量田地状态,则任务完成。(注意,该图像可能被用于后续分析,例如产量建模[26]。)否则,FAAS路径规划软件将选择一个新的航点(B1)。此过程重复进行,任务在航点B2完成。
FAAS 在每次任务中仅访问部分航点。如图2所示,路径规划软件(A*搜索与最近邻算法)会影响 FAAS 的飞行路径以及任务完成的速度。红线表示的设置选择了一条更长的飞行路径。这是一个关键区别:使用无人机系统进行视频分析时,飞机会飞往预设航点并动态自适应调整视频质量 [43]。而对于 FAAS,分析可以影响飞行动作,从而以难以预测的方式改变资源需求。
运行时执行:图1展示了关键软件以红色标注的运行时执行过程。首先,软件管理飞行控制以实现起飞、着陆和机动操作。感知软件从飞机传感器获取数据。这些数据生成和执行组件对延迟敏感,通常使用位于机载的处理器[3]。与视频分析类似,FAAS 使用人工智能模型将感知图像转换为多维点[17, 20, 36, 43]。每个维度代表一个模型的输出。本讨论不需要特定类型的模型(例如, DNN 或回归),模型在离线状态下构建。在运行时,通过评估模型来分类场景。该执行过程可以使用机载处理器、边缘云节点或云资源[43]。强化学习可以是一种自主控制设备的稳健方法。在此方法中,FAAS 被分布
3 性能建模
图3概述了我们通过吞吐量来建模任务的方法。模型输入与自主性(目标和工作负载)、计算架构以及飞机相关。我们的方法包含四个阶段,如图3中的方框所示。首先,我们收集任务期间可能感知到的全部数据,即一个自主性立方体。自主性立方体用于结合后续讨论的路径查找算法(k近邻、A*)构建精确的飞行路径。给定一条飞行路径后,接下来的阶段使用实证数据对计算和飞机工作负载进行分析。最后,瓶颈分析预测飞机或计算哪个会先耗尽电池。
3.1 自主性分析
FAAS 很难建模,因为其飞行路径取决于运行时感知的数据。哪些数据在运行时被感知会影响两架仅相隔几英尺飞行的 FAAS 所获取感知数据的效用。它们的飞行路径可能会产生分歧,从而影响能耗、权限以及最终的任务吞吐量。我们通过在多次运行中对预期任务吞吐量取平均值来建模,以缓解由空间位移引起的差异。路径规划、人工智能模型、效用函数及其他自主性设置会对飞行路径产生系统性及非线性效应。
Competing Approaches: 在详细介绍我们的方法之前,有必要说明近期研究如何建模自主的系统[22, 30, 38]。Autoware[22, 30]使用来自自动驾驶汽车的长时间、具有代表性的轨迹。由于安全问题限制了驾驶机动和执行环境,该轨迹足以满足研究需求。AeroStack[38] 创建多条轨迹,用户在不同轨迹之间更改环境。这种方法能够捕捉到广泛的机动行为,但如果自主性设置发生变化,飞行路径将偏离之前的轨迹。
我们使用自主性立方体,这是一种数据结构,用于捕获在用户定义的约束条件下任务期间可感知的所有图像。自主性立方体为基准测试提供了一个有原则的理想模型;可用于计算任意FAAS自主设置下的飞行路径。通过在每个允许的GPS位置描绘所捕获的图像,图2展示了一个简单的二维自主性立方体。
定义自主性立方体: 如公式1所示,航点x是一个多维点。维度可以抽象为(1)全球定位系统或网格位置 (例如,图2),(2)飞行器姿态(例如,飞行器姿态、云台位置)以及局部数据(例如,高度计和罗盘读数)。航点x是一组维度d1…dn,用于唯一描述无人机在现实世界中的位置和状态。FAAS在离散且有限的空间中飞行,其中各维度受到飞行器、用户或通信范围限制的约束。对于飞行器可移动的每一维度di(例如偏航、向上运动、向北运动),该维度被限制在某个最大幅值Di内,表示飞行器在该方向上的最大运动范围,即: ∀i: 0< di< Di。
x=(d0,…, dK) (1) fai ∈ FA:{xm}→{xn} (2)
FS:{x, fai, y}→{1|0} if fai(x)= y (3) ug= u(ai(x)) u(ai(y)) ◦ FS{x, fai, y} (4)
如公式2所示,我们将飞行动作FA抽象为一组在航点之间移动无人机的函数。具体而言,一个飞行动作施加一组力。该力使悬停飞行器沿六个自由度移动。动作离线校准。每个动作f ai将飞行器从一个期望航点移动到另一个期望航点。由于空间位移,实际位置与期望位置可能略有不同。例如,风可以施加意外的力,使飞行器偏离其期望位置。注意,可通过任意动作组合到达的航点定义了飞行区域。
沿飞行路径的单个步骤包括起点、飞行动作和终点。飞行步进函数FS(公式3)用于指示有效的步骤,即飞行动作导致终点位于FAAS飞行区域维度范围内的步骤。每个航点始终具有 |FA| 飞行动作,但只有部分动作可产生有效飞行步骤。在每个航点,FAAS感知周围环境,并利用人工智能转换感知数据
3.2 飞行器性能分析
在我们建模方法的第二阶段,我们对输入飞行器上的飞行动作进行延迟和能耗函数的性能分析。在公式8中, LatencyA函数通过飞行区域内多个采样点处执行飞行动作的平均延迟来估计延迟,其中飞行区域由N表示。概念上,我们对能量和悬停功率也采用同样的方法。该性能分析是离线完成的。
LatencyA={fai(x)}→ r ∈ R: r= ∑n′ LatencyA(fai((xn′)) N , N<< |X| (8)
3.3 计算性能分析
计算延迟和能量消耗取决于在航点感知的数据内容。与具有较紧密延迟分布的无人机动作不同,计算延迟的方差更大。调度波动、不可预测的线程开销、模型时序以及网络干扰都会导致计算时间的变化。计算延迟是在在在线情况下进行性能分析的,需要多种不同的执行环境和条件。我们基准测试中所有单个组件的实验延迟数据被汇总为正态分布(由μ 和 σ表示),并截断至三倍标准差。我们的模型使用这些分布来预测离线任务的计算延迟,方法类似于公式8。
LatencyC={ai(x)}→(µ, σ) ∈ R: σ= ∑n′ Latency(ai((xn′)) N , N<< |X| (9)
3.4 吞吐量建模
回想一下,FAAS 在运行时计算其飞行路径 fpi。如公式10所示,每个飞行步骤 fs [ i,n] ∈ fpi 都基于执行期间观察到的数据。 ugn,n+1:{xn, faf(n) , yn}N→{xn+1, faf(n +1) , yn+1} (10)
具体而言,FAAS计算预期效用增益̂ug,使用过去的数据和包含额外自主性的训练数据
| FAAS 任务 | 自主摄影 | 搜救 | 农业勘察 |
|---|---|---|---|
| 效用和约束函数飞行条件 | 1) 优先考虑高实用性(util) 2) 偏好短任务(tput) 3) 良好混合 | 1) 优先考虑高实用性(util) 2) 偏好短任务(tput) 3) 良好混合 |
1) 高实用性需求 2) 最大航点数
(10, 20 或 30) |
| 飞行区域 | 2x2x3x3 超立方体附近主体 | 15个超立方体在一个目标区域 | n×m网格上方农田 |
| 飞行动作 | 平移x、y和z, 云台俯仰 | 平移x、y和z, 云台俯仰 | 平移和xy |
| 路径规划 算法 | 1) 从K‐近邻中选择 2) 使用A*搜索以避免局部最优 3) 使用能量感知A*(EA*) 优先考虑低功耗移动 | 1) 从K‐近邻中选择 2) 使用A*搜索以避免局部最优 3) 使用能量感知A*(EA*) 优先考虑低功耗移动 | 1) 从K‐近邻中选择 2) 使用A*搜索以避免局部最优 3) 使用能量感知A*(EA*) 优先考虑低功耗移动 |
| AI分类器 准确率与 复杂度 | 1) 整数精度(int)速度快但准确性较低, 2) 浮点精度(fp), 3) 深度 最准确但需要 GPU(全部) | 1) 整数精度(int)速度快但准确性较低, 2) 浮点精度(fp), 3) 深度 最准确但需要 GPU(全部) | 1) 整数精度(int)速度快但准确性较低, 2) 浮点精度(fp), 3) 深度 最准确但需要 GPU(全部) |
| 执行 上下文 | 边缘系统、云或机载 | 边缘系统、云或机载 | 边缘系统、云或机载 |
| 架构支持 | 纵向扩展、横向扩展、GPU加速 | 纵向扩展、横向扩展、GPU加速 | 纵向扩展、横向扩展、GPU加速 |
表1:分层实现和系统设置。
利用立方体推断飞行动作的影响。飞行动作的飞行路径fpi是针对自主立方体迭代调用预期效用增益̂的结果,即 fpi={ug◦ N ac}。为了建模吞吐量,我们假定可以访问 ̂ug 和 ac。
我们通过两个部分对飞机消耗的能量进行建模。首先,针对飞行路径上的每一步,累加对应动作所消耗的能量;其次,将计算延迟乘以悬停时的功耗。对于计算部分则采用相反的方式处理。当计算单元和飞机具有已知存储容量(Cair 和 Ccmp)的不同能源时,任务吞吐量通过统计在耗尽某一能源之前完成的任务数量来计算。
公式11展示了我们如何根据飞机和计算能耗(Eair 和Ecmp)来计算最终的吞吐量。Eair可以通过对所有单个飞行动作的能量消耗求和得到。一个飞行动作的能量消耗等于其延迟乘以无人机的基础功耗(悬停功率),再加上执行该飞行动作所需的额外能量。Ecmp同样可以以此方式计算,使用计算空闲功耗作为其基础。吞吐量(tput)描述了任务中能够到达的最大航点数(N),该数值取决于Eair和Ecmp。当其中一个组件的能量耗尽时,系统的任务完成,如公式11所示。
Eair(N):∑ n (EnA(fan)+ LatencyC(ai(xn)) × PwrA(fahover)) Ecmp(N):∑ n (EnC(ai(xn))+ LatencyA(fan) × PwrC(idle)) tput= min N: Cair −Eair(N)= 0 or Ccmp −Ecmp(N)= 0 (11)
4 实现FAAS
表1 对 FAAS 进行了分解,并展示了其组件的分层系统视图。本节介绍了每一层,并比较了 3 个 FAAS 的系统设置。
FAAS任务:我们实现了(1)自主摄影,(2)搜救, 以及(3)农业勘察。对于自主摄影,FAAS会自行定位并拍摄高质量的人脸肖像,并在其飞行区域内自主探索。该工作负载的灵感来自计算摄影和SkyDio[1, 3]。
搜救FAAS扩展了自主摄影功能。它在多个区域搜索人类。在紧急情况或灾难期间,可以帮助第一响应者发现受害者。FAAS在各个区域之间(例如建筑物内的房间)导航飞机,并对区域进行彻底探索。
如前所述,农业勘察目前在商业上是可行的。该 FAAS对农田进行航拍,类似于之前的工作[5]。在本研究中,我们获得了一块玉米田的访问权限,因此我们的任务生成了关于玉米和种植行的详细图像。侦察作为工作负载核心,支撑着空中监视和军事目标检测。
飞行区域和飞行动作:自主摄影覆盖一个2x2x3x3超立方体。飞机可以平移X、Y和Z轴并旋转相机。我们为此基准收集了110个自主性立方体。搜救探索15个 2x2x3x3超立方体,并支持相同的动作。
农业勘察覆盖了一个75英亩的农田。飞行区域是一个 55x43的网格。飞机只能在X和Y维度上移动。总共,我们收集了122个自主性立方体(20970张图像),涵盖(1)全部3种FAAS,(2)多样化环境:室外、室内、下雨和有风,以及(3)多个目标:人类和玉米。拍摄一个立方体大约需要11分钟用于自主摄影立方体,而农业勘察则需要4小时。
效用函数和约束条件:摄影和作物分析使用不同的效用函数。一个好的肖像应包含居中、明亮且清晰的脸部[8]。我们创建了一个效用函数,使用的特征包括:人脸检测、人脸在图像中的位置、图像亮度以及人脸边界框的大小。一张良好的农田照片应避免模糊,突出作物与土壤的对比,并且不包含无关物体。此处的效用函数考虑了眩光、图像亮度和统计的玉米作物。对于所有效用函数,每个特征都进行了加权,并对整个函数进行了归一化。
终端用户设置阈值。当效用超过阈值时,FAAS任务完成。我们的摄影FAAS支持3个阈值。高阈值鼓励 FAAS探索其飞行区域。因此,任务时间更长。低阈值鼓励FAAS快速降落。我们标记将此设置为高吞吐量。最后,默认设置旨在实现提供良好混合的中等阈值。
飞行区域边界在空间上限制FAAS的飞行路径。导致飞机离开该区域的飞行操作将不会执行。如果飞机电池电量低于其容量的10%,我们的FAAS将立即降落。最大航点设置在时间上限制飞行路径。超过此阈值后,任务完成。
路径规划: 默认情况下,使用4000个训练数据条目来决定飞行位置。每个训练数据条目描述从采集的自主性立方体中获取的一幅图像。训练数据条目包含一个效用特征向量,以及指向其他训练数据条目的指针,这些指针代表FAAS通过一次动作(例如,使用左、右、上、下飞行操作感知到的数据)可在自主性立方体内到达的感知数据。这将包含数十吉字节图像数据的数十或数百个自主性立方体缩减为大小在兆字节级别的便携式 CSV文件。
路径规划算法在我们的立方体和训练集上运行,以建模FAAS动作。K近邻算法(KNN)找到与感知图像效用特征最接近的9个条目。默认情况下,我们采用贪婪路径寻找方法。预期效用增益是按飞行动作分组的最近邻所观察到的平均增益。该方法选择具有最大预期效用增益的飞行动作。
A 搜索通过线性启发式改进贪婪KNN,以建模整个飞行区域,并沿最佳预期路径选择飞行动作。能量感知A 搜索根据飞机配置文件对飞行操作加权,生成优先选择低能耗操作的飞行路径。A*搜索及其能量感知变体已被广泛研究,并应用于近期的研究中[9, 22, 30]。
AI模型: 每个FAAS将感知到的数据特征化为最多64维的向量。每一维代表一个AI分类器的输出。我们根据计算需求对分类器进行区分,并支持这些分类器组的任意子集。整数模型包括OpenCV局部二值模式、仅使用整数数据类型的级联模型以及RGB图像分类器。这些模型轻量、快速但不精确。浮点模型包括DLIB梯度直方图。它们比整数模型更精确,但计算较慢。深度模型包括用于人脸识别的DLIB卷积神经网络(CNN)以及用于作物识别的自定义CNN。我们仅在GPU可用时执行深度模型(即不在CPU上运行)。
执行上下文和架构支持:SoftwarePilot,我们的 FAAS套件,由微服务组成。每个微服务提供基本功能, 例如发送飞机指令、数据感知、数据存储、将感知数据输入人工智能模型运行、查询路径寻找算法等。
微服务使用Californium UDP CoAP客户端和服务器 [28]交换消息。我们的套件支持在边缘或云系统上执行基于自主立方体的路径规划和建模。
5 评估
建模简化了在FAAS吞吐量上测试各种硬件设置的过程。给定真实数据和配置文件信息,我们的建模方法的目标是使模拟飞行和实际FAAS任务的结果几乎无法区分。我们的FAAS提供真实数据,能够使用真实飞机、目标、软件设置和计算硬件直接测量任务吞吐量。本节首先将我们的模型预测结果与观测到的吞吐量进行比较,然后比较不同的建模方法,最后分离计算和飞机配置文件,并对这些工作负载进行表征。
5.1 模型验证
我们在表1的系统设置下运行了每个基准测试。我们的FAAS使用大疆安卓软件开发工具包,通过连接无线网络的笔记本电脑(边缘设备)来控制飞机。我们的平台还可以在多个设备上或云上运行软件组件。边缘设备运行Ubuntu Linux 18.04。
每次测试都从充满电的飞机和边缘电池开始。然后我们执行任务,直到其中一个电池电量低于安全着陆阈值。观察到的任务吞吐量是完成的任务数量。我们对每次测试重复6次,并报告平均吞吐量。
除非另有说明,我们使用了DJI Spark飞机[11]。其机身大约为6平方英寸,重量为300克。我们观察到,在不为其16瓦时锂离子电池充电的情况下,它可以悬停11至13分钟。同样,除非另有说明,我们采用边缘架构设置,因为更容易更改架构设置。我们测试了具有以下计算架构的边缘设备。
- 2c : HP G6 笔记本电脑;双核 i5 7200u处理器;3.1 吉赫兹;3 兆字节缓存;4 GB DDR4内存;500 GB 硬盘。
- 2x2c : 2台HP G6笔记本电脑,通过1千兆以太网路由器连接。一台笔记本电脑运行飞行控制,从飞机获取图像并计算整数人工智能模型。另一台笔记本电脑运行路径规划算法和浮点模型。
- 4c : 四核i5 7300u处理器;3.5吉赫兹;3兆字节缓存; 4GB DDR4内存;500GB硬盘。
- 4c+gpu : 4ci7 连接到一块 NVIDIA 1080 Ti显卡。
- 2c+gpu : GPU 连接到 2核。
预测准确性 :回顾一下,我们的建模方法用于预测预期任务吞吐量,即多次任务的平均值。对于自主摄影和搜索救援任务,我们的方法使用自主性立方体为每个自主设置生成50条任务飞行路径。注意,计算硬件设置不会影响飞行路径。自主设置包括人工智能模型、路径规划和效用函数。对于每条飞行路径,第3节描述了预测任务吞吐量的工作流程。农业勘察覆盖面积更大,因此我们使用的立方体较少。在此场景中,我们为每个自主设置生成6条飞行路径。
自主性立方体通过一个微服务实现,该微服务在航点处返回立方体中的图像以替代飞机摄像头。FAAS软件与该微服务的交互方式与其和飞机的交互方式相同。
图4比较了自主摄影任务的预测吞吐量与观察到的吞吐量。为了节省空间,我们将任务目标参数的名称缩写为 mix、util和tput。我们还将人工智能模型的整数和浮点设置分别缩写为int和fp。我们的测试涵盖了所有支持的自主设置。平均绝对百分比误差(即|pred−obs| obs)为4%。误差可归因于基准测试和实际飞行之间飞行条件、电池老化以及硬件时序的细微差异。我们发现,单独来看,GPU、目标和路径规划设置对吞吐量的影响最高可达1.8倍、1.75倍和1.71倍。综合来看,这些设置产生了复杂的影响。例如,在4c、k近邻和util条件下,添加GPU使吞吐量提升了 1.15倍。然而,在4c、A*和tput条件下,加速比达到1.23 倍——提升了7%。util和k近邻任务悬停时间更长,而悬停消耗的能量降低了添加GPU所带来的系统加速比。
竞争的建模方法 :我们还研究了受近期研究启发的建模方法。在Autoware[22,23, 30],研究中,研究人员使用来自真实、长时间运行的自动驾驶汽车的ROSBAG记录。我们通过在多个任务中收集长时间轨迹来模仿这种方法。对于自主摄影和搜救,我们结合了100个任务的飞行路径。侦察使用了 12个任务。
Autoware 未考虑自主性设置。因此,该方法无法很好地建模飞行路径。图5 使用图2 中的示例说明了这一问题。Autoware 配置文件在新硬件上计算工作负载。然而, Autoware 无法获取跟踪外部的数据。如果自主设置发生变化导致 FAAS 的飞行位置改变,Autoware 将无法访问相应的感知数据,也无法使用现有数据生成配置文件。图5 突出了这一问题:A* 任务比 KNN 和混合(Mix)任务完成得更快。因此,Autoware 对总计算工作负载的估计过高。
AeroStack 通过手动插入障碍物[38],在多种设置下飞行自主飞行器。该方法改进了Autoware的方法论,因为轨迹包含了来自多种设置的数据。我们通过为每种设置创建3个长时间运行的轨迹来模仿这种方法。
图6(a–d)比较了我们的方法、Autoware和 AeroStack。我们还比较了一种简单的建模方法,该方法基于从大疆和英特尔(DJI)收集的数据驱动。该方法忽略自主性,利用飞行时间和每秒聚合周期数,将吞吐量建模为加速、最大航点数和飞行时间的函数。Autoware和 AeroStack的轨迹使用在基准场景下执行的任务。AeroStack轨迹在多个轨迹中切换航点(15)和A*算法。
在所有工作负载、设置和架构中,其他方法的相对误差增加了1.2倍至10倍。具有高飞行开销和较低细节感知数据的工作负载相比低开销工作负载误差更小。在自主摄影中,由于路径规划的细微差异可能导致感知数据的巨大差异,使用其他方法时相对误差达到1.7倍至10倍以上。
在图6(a,c & d)中,我们使用了接近参考跟踪的设置:将 mix改为util。在这些图表中,Autoware和AeroStack避免了误差增加2倍。鉴于我们的模型对吞吐量的预测误差为4%,这些结果尚可接受。然而,图6(b)进行了两项重大更改:将 mix改为tput,以及将knn改为A*。如前所述,这些设置对吞吐量影响很大。大疆的相对误差增加了10倍,Autoware最高增加了20倍,AeroStack增加了5%。这些结果表明,基准测试必须考虑飞行路径——更广泛地说,还需考虑与自主性相关的软件设置。
更换飞机 :为了确保我们建模方法的有效性,我们为大疆 Mavic Pro以及Spark创建并验证了模型。大疆Mavic Pro是一款重734克的个人无人机,长度约为12英寸。它配备了一块43瓦时的锂离子电池,最长悬停时间为23至25分钟。御系列由于配备了更强大的电机和处理器,运行时比 Spark消耗更多能量。在我们所建模的飞行组件中,御的能耗比Spark高出45%至55%。通过5次完全自主任务进行验证,我们的御模型平均误差为3%。
图像质量 : 图6(e)描述了图像质量对吞吐量的影响。最近的无人机系统研究建议使用高压缩比[4, 15](例如 JPEG60)或低分辨率图像以加快检测速度。如图所示,处理时间随着压缩比的增加而减少。然而,图像质量的降低会影响目标检测。因此,飞机会探索更多航点,但可能无法产生有价值的结果。
图6(e)显示了使用DLIB的人脸识别CNN时,随着图像质量降低,吞吐量下降的情况。在DJI Spark相机的默认质量(1200万像素)下,我们的FAAS每次充电可完成 27项任务。在较低的图像质量(300万像素 [4, 15])下,任务吞吐量降低了62%。该结果表明端到端指标在自主系统中至关重要——仅由处理时间驱动的结果可能会忽略整个系统的影响。
5.2 工作负载研究
图6(f)展示了飞行器悬停、飞行、网络数据传输、空闲计算和运行时软件对系统总能耗的影响。其中飞行器占比为58%‐90%。使用GPU使计算的影响增加了4.6倍。
表6(g)深入分析了影响人脸识别工作负载计算延迟的架构指标。这些数据是在4c硬件上使用Linux Perf工具收集的。我们观察到自主性设置会影响每任务航点数( WPM)。整数模型精度不足,导致FAAS访问大量航点。然而,整数模型在通用处理器上执行效率较高,使缓存和分支预测错误频率降低了25%。该设置提供了最低延迟,使运行时速度提升了4倍。
在A*搜索下,运行时在遇到缓存未命中之前每个航点执行的指令数(IPW)高于基准场景。然而,尽管缓存未命中率较低,但仍会产生更多的分支预测错误,并执行更多的IPW(即用于计算动作序列效用增益的指令)。最终结果是性能下降29%。
6 系统管理
我们的模型可以帮助FAAS终端用户:(1)管理计算硬件, (2)评估紧耦合与松耦合之间的权衡的飞机、软件和硬件,以及(3)在运行时调整硬件和软件。
6.1 管理计算资源
我们的建模方法利用自主性设置来构建逼真的飞行路径。飞行路径和自主性立方体产生代表性计算工作负载。这些工作负载可以在不实际飞行飞机的情况下进行测试。考虑一位拥有商用飞机的终端用户。该终端用户可能会问,哪些硬件资源将提供高吞吐量?通过在竞争性硬件之间重用飞行路径可解决此问题。
升级计算资源时,有三种选择。通过横向扩展,计算资源被复制,并且工作负载在这些资源之间被平衡。从我们的2核升级到2倍2核配置即为横向扩展。纵向扩展则是用更快或更节能的资源替换现有资源,例如从2核 i5升级到4核 i7。最后,针对工作负载的加速器可以增强现有资源,例如2核+GPU。
图7(a) 绘制了使用自主摄影即服务(FAAS)通过横向扩展、纵向扩展和添加GPU实现的加速比。加速比为 tput new 吞吐量 old 。在此图中,分母来自一个配备2瓦时电池的设备上运行的2核处理器。在 2瓦时电池条件下,只有纵向扩展能够提供加速。大于系统成本的增加。如果升级包括20瓦时电池,则横向扩展和纵向扩展是值得的投资。GPU加速与其9倍的成本增加不相匹配。然而,GPU能提供最大的吞吐量提升。
6.2 比较机载、边缘和云
大疆软件开发工具包支持边缘架构,其中平板电脑运行人工智能软件并远程控制飞机[10]。对于开发者而言,这些设备提供了一跳式、低延迟的飞机访问能力以及强大的计算性能。此外,开发者可以根据需要采购资源。
位于机载的处理器可以提供更低的延迟,但存在缺点:机载设备会消耗飞机的能量,从而减少飞行时间。注意,飞行时间减少有两个原因。首先,最直接的原因是,处理器在视觉处理、路径规划等方面消耗能量。其次,较为隐蔽的原因是,处理器的重量增加了起飞、悬停和飞行所需的推力。小型飞机根本无法产生足够的气流来承载NVIDIA 1080 Ti显卡(1041克)。即使是较大的无人机也会注意到飞行时间的减少。
云也是一个选项。弹性云服务可以动态地提供资源,使终端用户能够按需租用硬件,避免过度配置。缺点是较慢的网络延迟会降低响应速度。
我们扩展了飞机配置文件,以建模在增加有效载荷情况下的飞行时间。飞行时间之间的关系
有效载荷重量取决于额定推力和飞机重量[31]。具体而言,我们利用制造商提供的推力和功率负载数据,对搭载英特尔i5处理器、DDR4内存和固态硬盘时的飞行时间损失进行了建模。
我们比较了三种飞机:(1)Spark,一款300克无人机,可承载500克;(2)Mavic,一款734克无人机,可承载 1300克;以及(3)Matrice 100,一款2400克的企业级无人机,可承载3600克。对于Spark,机载CPU和内存会使飞行时间降低20%;完整计算系统会使飞行时间降低50%。对于 Mavic和Matrice,机载完整计算系统会使飞行时间降低10%。
我们更新了飞机配置文件以获得机载吞吐量。我们根据机载有效载荷导致的飞行时间下降,按比例增加了每个飞行动作的能耗需求。然后在每个航点,从飞机容量中减去计算能耗。对于云吞吐量,我们使用AWS微型实例作为第二处理器部署了2x2c设置。这导致了在边缘和云之间传输图像时出现12%吞吐量下降。
图7(b) 探讨了每美元吞吐量与飞机寿命(以任务次数衡量)之间的关系。该图使用了Spark飞机,并假设用户为硬件或云使用时间支付每个FAAS任务的固定成本。云系统的每美元吞吐量保持静态。我们采用A WS按需微型实例进行定价。机载和边缘系统存在云系统所没有的前期开销,但维护成本极低,这意味着随着系统的使用,其每美元总吞吐量会逐渐提高。此外,云系统的延迟远高于边缘系统,使得边缘系统在实时 FAAS处理中更具吸引力。交叉点是指机载和边缘系统相较于云系统变得更具有成本效益的使用点。使用我们的采用4核配置、高吞吐量自主设置和DJI Spark,边缘系统仅需10次任务即可实现成本效益。若将系统移至机载,则需要5倍时间才能达到盈亏平衡。
6.3 自适应硬件‐工作负载协同设计
终端用户在选择要部署于FAAS上的AI模型时可能有多种选项。我们的基准测试可在以下两类不同的模型之间切换: (1) 识别精度和 (2) 延迟。高精度模型对于检测远处或昏暗物体是必需的。而对于清晰锐利的图像,则复杂度较低的模型已足够。然而,结合DLIB的高精度DNN(深度模型)需要昂贵且耗电的GPU。我们还使用OpenCV LBP级联分类器(Int模型),其在双核笔记本电脑上运行时,延迟低于DNN,但精度也较低。深度模型能够在大尺寸且噪点多的图像中发现小而模糊的人脸,但随着图像变得清晰,其性能将逐渐收敛至Int模型的水平。
随着深度模型和Int模型的性能趋于收敛,关闭GPU并仅使用更快的Int模型是明智的选择。这种方法通过降低特征提取延迟来节省边缘设备的电池电量并提高吞吐量。
:描绘了一个通过实验获得的任务序列示例,其中 GPU 处于循环启停状态。)
图7(c) 描绘了一个通过实验获得的任务序列示例,其中 GPU 处于循环启停状态。我们设置了 0.5 的效用阈值,在找到 0.5 效用图像后关闭 GPU,仅使用 Int 模型。All表示执行了深度模型的航点,而Int表示仅执行了 Int 模型的航点。对于在循环启停阈值之后的航点, Int 模型和深度模型表现相似,以相近的效用找到了图像并选择了相同的路径。
图7(d‐e) 探讨了使用3种不同策略的占空比循环GPU在吞吐量和效用上的差异:
- 我们的方法 : 为占空比循环分配一个用户定义的阈值。一旦飞行路径中的某个图像使用DNN模型超过该阈值,GPU将被关闭,并使用LBP模型进行面部识别。
- Ubora : 模拟了近期研究中的自适应质量管理。每个任务被视为一个查询。在每次任务开始时,GPU和 Int模型会被切换一次。将飞行路径上的平均效用与占空比阈值进行比较。如果平均效用超过阈值,则关闭 GPU,直到平均效用低于阈值。
- 静态 : 对全部特征提取使用深度模型,且无GPU占空比循环。
图7(d)显示,与静态方法相比,采用我们的循环工作模式方法在使用A*配置时实现了1.3倍增益,相较于 Ubora方法则实现了1.4倍增益。A*配置中的边缘电池容量足够大,因此系统瓶颈在于无人机电池,吞吐量的增益或损失完全取决于特征提取阶段的执行时间节省,而这部分节省由GPU配置实现。与另外两种方法相比, Ubora方法的吞吐量有所下降。使用累积效用阈值会导致Ubora方法在高方差工作负载(如无人机数据采集)中错过局部效用峰值。在我们的测试配置中,Ubora对 GPU的循环启停要么过早、要么过晚。循环启停过晚 (在整数模型和深度模型收敛之后)会使Ubora的行为类似于我们的方法,但GPU使用更多;而循环启停过早则可能在精度尚未收敛前就切换到整数模型,导致为达到效用目标平均需要经过更多航点。这一影响可在图 7(e)中观察到,其中Ubora的平均效用明显低于我们的方法和静态方法。在此上下文中,Ubora方法的不足与我们更简单方法的成功形成对比,表明尽管在FAAS工作负载中对模型和硬件进行占空比循环可能是有利的,但仍必须谨慎选择循环工作模式方法。
在不同自主设置下的平均效用同样重要。随着我们的架构、模型和路径查找算法的改进,平均效用也随之提升。与使用相同模型的A*相比,我们的KNN配置图像效用降低了0.83倍。在切换到GPU配置上的深度模型时,平均效用提升了1.06倍,这归因于深度模型更高的准确性。在使用低电量配置(边缘端电池成为吞吐量瓶颈)时,我们的方法相较于非循环工作模式方法提升了1.65倍,相较于Ubora提升了1.15倍。
6.4 自主摄影的加速
我们的模型驱动方法在使用4核Intel I7搭配GPU、低效用阈值、自适应循环工作模式和A*搜索时找到了最高吞吐量。该配置在无需充电的情况下,使用Spark完成了34项任务。与使用2核Intel I5并通过贪婪KNN寻找高效用图像的方案相比,4核配置将计算延迟加快了15倍。进一步分析发现,以下变化具有显著影响:
- 自主性设置 : A*搜索和较低阈值减少了每项任务的航点数,实现了4.1倍加速。
- 使用GPU :比其他方法快达2.25倍。
- 软件驱动电源管理 :相较于静态 GPU 使用,吞吐量提升 3倍。
综合来看,最佳设置相比上述双核设置可使任务吞吐量提高10.2倍。
6.5 作物巡查的端到端节省
我们的侦察型FAAS每次任务覆盖约1英亩,每小时可完成 15次任务。单台FAAS侦察150英亩的田地需要10小时。然而,多台FAAS可以并行工作,以更快完成整个田地的侦察。给定截止时间后,我们可以估算所有并行FAAS的软硬件成本。相比之下,无人机系统(UAS)需要人工驾驶。根据第一手经验,我们假设人类飞行员每小时可执行11次割草机式任务,成本为每小时20美元[29]。我们还对 UAS设备的成本进行了建模,包括电池、计算资源和飞机。
图8显示了并行UAS和基线FAAS实现每小时x任务吞吐量的成本。基线FAAS(2核,autoware,k近邻)优于人工驾驶的无人机系统。额外的设备和劳动力成本推高了无人机系统的成本。我们的模型驱动方法显著提高了任务吞吐量,在UAS和基线上分别提升了6倍和4.2倍。自适应 GPU电源循环提供了进一步的改进。相比人工驾驶的无人机系统,模型驱动、自适应的FAAS将成本降低了87%。
7 局限性和未来工作
我们的自主性立方体建模方法与分析包含诸多局限性和未来的研究机会。首先,自主性立方体的采集可能较为困难。我们执行了超过100次FAAS任务,以收集用于FAAS建模以及作为路径规划算法输入的自主性立方体。这对于所有 FAAS任务而言并不可行。未来的研究应探索从现有的地理标记多维图像集中生成自主性立方体的方法。例如,可利用谷歌街景[2],等大规模公开数据集或KITTI[14]等自动驾驶数据集,为多种相关的FAAS任务构建自主性立方体。
我们的许多管理策略专注于降低单个FAAS的计算功耗。多个FAAS(即集群)可以共享边缘计算系统,而每架无人机则携带自身的电池。大型集群的总体计算需求可能会改变功耗模式,使得边缘系统电池成为瓶颈资源。我们的方法可以调整电池容量,但我们无法建模集群将如何增加计算需求。
8 相关工作
FAAS在运行时选择其飞行路径,类似于自动驾驶汽车。影响其飞行路径的工作负载设置会显著改变能耗和吞吐量。我们对此进行了量化,并提出了自主性立方体以捕捉设置变化时的代表性轨迹。Autoware是一个旨在使自动驾驶更加开放的项目[22]。Autoware提供了用于自动驾驶的开源算法、库和消费级硬件组件,其中许多可应用于FAAS。本文在其第5节引用的运动规划设计基础上进行了改进。林等人扩展了Autoware以研究加速器[30]。使用消费级硬件可将自动驾驶汽车的目标检测与跟踪加速169倍,但计算加速可能会降低行驶里程。这一结果与我们在任务吞吐量方面的观察相类似。
AeroStack [38]提供了一个开源的、基于组件的软件架构,用于空中机器人,强调完全自主性。AeroStack的设计影响了我们自身全自主航空系统软件的设计与实现。
其他近期研究探讨了加速和边缘设备。Sirius [19]研究了在个人助手基准测试中使用现场可编程门阵列、中央处理器、图形处理器和协处理器的情况。原位人工智能 [40] 研究了自主物联网。计算冲刺针对具有动态架构优化的交互式移动工作负载 [34, 35]。
9 结论
无人机正在改变从农业到监视和摄影的各个行业。全自主空中系统由软件驾驶,避免了成本高昂且容易出错的人工驾驶。软件和硬件设置会影响这些系统的飞行路径以及任务完成的时间。近期的基准测试论文仅使用少量设置(例如,来自先前轨迹的数据),却广泛推断吞吐量。本文提出了一种建模方法,能够对不同自主性设置下的飞行路径进行建模。自主性立方体为任何可达航点提供感知数据,从而支持我们的方法。我们已收集了在多种设置下执行多样化任务的真实FAAS的自主性立方体。我们的模型可将FAAS吞吐量预测误差控制在4%以内。我们利用该模型评估了系统管理问题,并发现了可使吞吐量提升10倍、FAAS成本降低87%的洞察。我们建模方法及自主性立方体的代码均为开源,通过 SoftwarePilot项目提供。
55

被折叠的 条评论
为什么被折叠?



