-
对于复杂算法,为了实现合理的软硬件划分,首先要开展单元分割,将算法划分成若干个功能相对独立的单元。使用图论模型可以有效的表达算法的拓扑结构,加权有向图可以更好地反映算法的细节特点,既反映数据流向,又定量化的表示数据流量,有助于对算法进行分割。在算法的加权有向图中,将算法的各个函数抽象成顶点,将各个函数之间的数据通信关系抽象为边,数据通信量用边的权重表示,箭头的指向与数据流的方向一致的。
一个合理有效的单元分割应该满足:使得分割后的子图内顶点的耦合度相对其他分割是最高的,而子图间耦合度是最低的。近年来,许多研究人员提出了在图分割问题中评价分割效果好坏的标准,例如最小割、最小直径、k-center、k-median准则等。Shi和Jitendra Malik 提出了一种衡量分割效果的Normalized Cut(Ncut)准则[13]。Ncut标准既考虑一个图里面处于相同模块内顶点间的耦合情况,又考虑图中不同模块间顶点的耦合情况,是一种较为理想的评价分割质量的标准。假设V(G)划分为两个子集A和B。Ncut准则定义如下:
式中:
$Cut\left( {A,B} \right) =\!\!\!\!\!\displaystyle \sum_{u \in A,v \in B} {w(u,v)} $ ,$Assoc\left( {A,V} \right) =\!\!\!\!\! \displaystyle\sum_{u \in A,t \in V} {w(u,t)} $ ,$Assoc\left( {B,V} \right) = \displaystyle\sum_{u \in B,t \in V} {w(u,t)} $ 。在该定义中,$Ncut\left( {A,B} \right)$ 的值越小,表示该分割越合理,反之则越不合理。将三维成像实时处理算法用加权有向图表示其拓扑关系,如图1(a)所示。依照Ncut准则,对处理算法运用二分法,采用深度遍历的方法搜索解空间,通过最小择优的原则选取每次二分法的最优分割,直到获得适度的单元规模,取得单元分割结果如图1(b)所示,共分为6个单元,每个单元由若干子函数构成。将图1(b)归纳为图1(c)所示,各单元的功能简述如下:
单元M1:旋转矩阵计算,利用激光雷达激光扫描时刻的平台GPS/IMU数据,完成从激光传感器坐标系到WGS84大地坐标系进行坐标变换的旋转矩阵和平移参数计算。
单元M2:大地坐标解算,实现激光点从激光扫描坐标系到地心坐标系的坐标转换。
单元M3:高斯投影,用于实现目标点从WGS84大地坐标系到高斯平面直角坐标系的转换。
单元M4:外方位元素计算,利用光学相机成像时刻的平台POS/IMU数据,解算影像的外方位元素。
单元M5:高程内插,根据激光雷达与光学相机的同步对应关系,部分光学影像像点具备对应的三维坐标,利用这些像点的三维坐标,在沿轨和穿轨方向上利用经线性内插方法,计算获得每一个像点的物方坐标高程值。
单元M6:共线方程解算及融合,根据光学影像像点坐标及对应高程、影像的外方位元素,再结合系统内参数,按照共线方程解算出每个像点的大地坐标,然后对每个像点赋予光谱值,获得多光谱三维立体影像。
-
基于单元分割结果,将各单元分别映射到ARM处理器利用软件实现、映射到可编程逻辑中构建硬件模块来实现,并对软件实现和硬件实现的性能进行了评估,然后利用多目标规划模型开展了划分方案求解和分析。
-
将三维成像实时处理算法各单元程序移植到ARM平台,并完成程序优化和评估。在机载飞行验证试验数据中,选取20 s的数据作为实验数据。高光谱数据选取R、G、B三个波段数据,选取3000扫描行,像元数为2 000,数据量化位数为14 bit。激光雷达数据选取600行,像元数为360,数据量化位数为64 bit。总数据量约为38.5 MB。
如表1所示,利用分析工具采集软件运行信息,包括各单的运行耗时、耗时占比、主要函数的调用次数,其中函数的调用次数是衡量可并行性的一个重要指标。大地坐标解算单元对激光点逐点开展坐标系转换计算,函数调用率高达25万余次,有利于并行执行;并且,计算中存在大量开方、三角运算等,单个运算执行需上百个时钟,因此,本单元耗时最长。共线方程解算及融合单元对每个影像像点进行坐标求解,因此函数调用达到575万余次;虽然主要为双精度浮点除法和乘法运算,耗时占比也高达28.26%。高斯投影单元实现每个激光点在高斯平面直角坐标系的投影,并行度较高,而计算中多为双精度浮点数据的乘法、加法,因此,单元耗时仅为14.3%。高程内插单元计算每个影像像点的高程值,涉及较多的双精度浮点除法和跳转指令,耗时约占12.29%。在旋转矩阵计算单元、外方位元素计算单元中,针对不同成像时刻的位置姿态数据开展计算,也具有一定的并行性,且计算简单,因此耗时占比很小。
Functional modules Subfunction calling Time/s Time rate Subfunciton Call counts Rotation matrix calculation MatrixTransCal 666 0.03 0.44% Geodetic Coordinate calculation GeoCoorCal 266365 3.32 42.95% Gauss-Kruger projection GaussPrj 243085 1.11 14.30% Elements of exterior erientation calculation ExtOritCal 3325 0.14 1.76% Elevation interpolation AltiInterp 1 0.95 12.29% Collinearity equation solution and fusion FrontPrj 5753553 2.19 28.26 Table 1. Software performance of functional modules
-
数据处理全部利用可编程逻辑来实现时能够获得最佳的处理性能,但是这是以硬件资源消耗为代价的,尤其是对于双精度浮点运算、换取效果并不理想。文中将实时处理算法全部利用可编程逻辑资源实现,完成了硬件加速。如表2所示,统计了单元的硬件资源占用率,对比了软件和硬件实现的运行耗时、功耗,以及硬件运行相对于软件运行的加速比,从而为后续的软硬件划分奠定基础。
Functional modules Module lable LUT FF DSP BRAM Software time/s Hardware time/s Software power/W Hardware power/W Speedup rate Rotation matrix calculation M1 3% 1% 1 % 1% 0.034 0.007 1.836 1.351 4.86% Geodetic coordinate calculation M2 86% 48% 46% 8% 3.32 0.2 2.154 1.739 16.60% Gauss-Kruger projection M3 36% 46% 56% 14% 1.1 0.05 2.087 1.68 22.00% Elements of exterior orientation calculation M4 51% 24% 37% 19% 0.137 0.025 1.975 1.614 5.48% Elevation interpolation M5 8% 2% 13% 0 0.95 0.06 1.757 1.372 15.83% Collinearity equation solution and fusion M6 22% 12% 19% 2% 2.19 0.19 1.869 1.454 11.53% Table 2. Hardware/Software performance of functional modules
由表2可见,大地坐标解算单元和外方位元素计算单元中,由于双精度浮点开发和三角运算的硬件实现会占用大量的可编程逻辑资源,因此这两个单元的硬件面积均较大;而大地坐标解算单元的可并行性较高,因此能获得较高的加速比,外方位元素计算单元的并行度较低,因此加速比也较低。高斯投影单元中,双精度浮点数据的乘法、除法可直接调用DSP实现,由于计算简单,因此资源消耗较少;且该单元的并行度较高,因此,综合导致该单元加速比高达22。共线方程解算及融合单元为典型的重复、简单运算,因此资源消耗小,可并行性良好。旋转矩阵计算单元主要为矩阵的乘法和加法,运算简单,因此资源消耗最少,但是硬件加速效果较差。综上所述,因算法单元的运算及数据类型、可并行度的不同,在硬件资源消耗和计算速度提升方面均表现出了一定差异,因此对各单元进行定量评估从而指导软硬件划分是十分必要的。
-
软硬件划分是软硬件协同设计的关键环节。如何充分利用软件和硬件的优势,不再仅单一考虑时间约束,而寻求在时间、功耗、硬件资源等多个指标约束下寻求最优解决方案,成为软硬件划分的关键。在许多实际问题中,各个目标之间往往存在一定的竞争性,需要对多个子目标进行协调和综合权衡,尽可能使相对重要的目标处于最优状态。文中建立基于权重法的多目标规划,可以根据每个目标的重要程度,为每个目标函数设置权重,并将多个目标转化为单一目标函数,在给定的区域上求取最优解。基于权重法的多目标规划表达为以下形式:
式中:
${w_i}$ 表示单个指标评价函数的综合权重,且$\displaystyle\sum_{i = 1}^n {{w_i} = 1} $ 。$f_i'(x)$ 为归一化的指标评价函数:式中:
${f_{i,\max }}$ 和${f_{i,\min }}$ 分别为指标评价函数${f_i}(x)$ 的最大值和最小值。面向三维成像实时处理应用需求,综合考虑时间、硬件资源、功耗三个评价指标,针对上述6个处理单元进行分析,权重模型可细化为:
式中:
${w_1}$ 、${w_2}$ 、${w_3}$ 分别是时间消耗、硬件资源消耗和功耗3个评价指标的权重;$f_{\rm{t}}'(x)$ 、$f_{{\rm{DSP}}}'(x)$ 、$f_{{\rm{FF}}}'(x)$ 、$f_{{\rm{BRAM}}}'(x)$ 、$f_{{\rm{LUT}}}'(x)$ 、$f_{\rm{W}}'(x)$ 分别为归一化的时间、数字处理器(DSP)资源、触发器(FF)资源、块状存储器(BRAM)资源、查找表(LUT)资源、功耗目标函数。目标函数表示为:式中:
${x_i}$ 表示每个单元的实现方式,硬件实现表示为1,软件实现表示为0;${t_{{\rm{si}}}}$ 、${t_{{\rm{hi}}}}$ 分别表示单元的软件运行时间、硬件运行时间,${R_{{\rm{DSP}}i}}$ 、${R_{{\rm{FF}}i}}$ 、${R_{{\rm{LUT}}i}}$ 、${R_{{\rm{BRAM}}i}}$ 分别表示DSP、FF、LUT、BRAM硬件资源的消耗量;${W_i}$ 表示单元的运行功耗;${W_{{\rm{PS}}}}$ 表示PS端的固有功耗;${{\overset{\frown} R} _{{\rm{DSP}}}}$ 、${{\overset{\frown} R} _{{\rm{FF}}}}$ 、${{\overset{\frown} R} _{{\rm{BRAM}}}}$ 、${{\overset{\frown} R} _{{\rm{LUT}}}}$ 分别表示芯片中提供的${\rm{DSP}}$ 、${\rm{FF}}$ 、${\rm{LUT}}$ 、${\rm{BRAM}}$ 的资源;${\overset{\frown} T} $ 、${\overset{\frown} W} $ 为系统设计能承受的最大运行时间、功耗。为了保证数学模型的客观性和科学性,权重的设置至关重要。文中结合德尔菲法和T.L.Saaty 1-9标度法[14],由专业人员结合其专业知识和应用需求,通过二元比较量化的方式,对各指标的相对权重进行打分建立判断矩阵,然后利用“和积法”求解得到各个指标的组合权重值。
-
2018年,项目组研制完成机载共孔径主被动高光谱三维成像系统,并在海南儋州岛屿开展了机载飞行验证,飞行高度为2 km。系统构成如图2所示。高光谱成像仪的谱段覆盖400~950 nm,光谱分辨率低于5 nm,波段数为120,像元数为2 000,视场角为20°,在2 km飞行高度下地面分辨率达到0.4 m,扫描行频设置为150 Hz。激光雷达工作波长为1 064 nm,采用360像元的长线阵激光推扫,激光发射脉冲宽度10 ns,单路能量300 μJ,扫描行频设置为50 Hz,每秒钟可以获得18000个三维测量值。共光路光学单元用于接收来自地面目标的辐射和激光回波,并通过分色棱镜将高光谱与激光波段光线分离。POS传感器提供观测平台的厘米精度的位置信息和精确的姿态信息。综合控制单元对以上各探测器进行指令、同步控制等。实时处理单元接收上述传感器的输出数据,开展高速数据处理,实时生成包含完整多光谱信息的三维影像。
-
文中针对速率优先、功耗优先两种应用场景需求,然后利用多目标规划模型求解了软硬件划分方案。
应用场景一:在机载快速响应遥感系统中,处理速率为首要关注目标,通过德尔菲法和T.L.Saaty 1-9标度法计算指标权重w,其中时间权重为w1 = 0.728,硬件资源权重为w2 = 0.179,功耗权重为w3 = 0.092。
应用场景二:在供电能力有限的无人机搭载观测系统的应用中,功耗成为首要关注目标。采用同样方法计算指标权重:时间权重为w1=0.191,硬件资源权重为w2=0.213,功耗权重为w3=0.595。
基于软件和硬件的性能评估结果,利用公式(4)求解软硬件划分方案,解空间如图3所示。图中以可编程逻辑中的重要资源LUT为例,横坐标表示LUT的占用率,“o”型点表示耗时特性,对应左侧纵坐标,“*”型点表示功耗特性,对应右侧纵坐标。图中标识了6组划分方案,每条“…”虚线连接的“o”型点和“*”型点标志一组方案,详细信息见表3,其中 “划分编码”表示6个算法单元的实现方式(0表示软件实现,1表示硬件实现),编码从高位到低位分别对应单元M1到M6,加速比定义为全软件实现耗时与该方案实现耗时的比值。
Solutions Partitioning code LUT FF DSP BRAM Time/s Power/W Speedup rate S1 010011 89% 62% 78 10% 1.721 8.003 4.61% S2 110011 92% 63% 79% 11% 1.694 8.848 4.68% S3 010000 59% 48% 46% 8% 4.811 6.143 1.65% S4 100000 3% 1% 1% 1% 7.904 6.073 1.00% S5 000001 22% 12% 19% 2% 5.731 6.144 1.38 S6 000000 0 0 0 0 7.931 5.228 1.00% Table 3. Examples of hardware/software partitioning schemes
对于应用场景一,方案S1为最优解,将大地坐标解算、高程内插、共线方程解算及融合单元均利用硬件实现,其余单元利用ARM软件实现,硬件资源中的LUT、DSP占用达到80%左右,硬件资源得到充分利用,功耗约为8W,处理速率约为22.37MB/s,相对于全软件实现加速比达到4.61。相对于方案S1,方案S2增加旋转矩阵计算单元利用硬件实现,S2相对于S1的耗时减少约1.5%,但是功耗增加约10.6%。由于该单元规模较小,其占用资源、耗时均较小,因此代表S1、S2两种方案耗时特性的“o”点在图中位置比较接近,求解空间中存在多个类似情况。
对于应用场景二,方案S3为最优解,仅将大地坐标解算单元利用硬件实现,其余单元均利用ARM实现,资源占用率和和功耗都控制在相对较低水平。在方案S6中,将全部功能均利用ARM实现,此时功耗是最低的。相对于S6,方案S1的速度提升了1.61倍,但是功耗仅增加17.5。方案S4中仅将旋转矩阵计算单元利用硬件实现,相对于方案S6,功耗增加16%,但是处理速度仅提升0.3%。方案S5中仅将共线方程解算及融合单元利用硬件实现,其功耗与S3相近,但其加速比约为1.38,低于S3的1.65。
-
在高性能嵌入式系统设计中,采用多个高性能处理器并行设计是一种主流方法,比如将FPGA和DSP联合使用在很多设计中被广泛采用。2018年利用FPGA+DSP的经验方案实现了三维成像实时处理[11],该设计中FPGA作为系统的数据和任务管理中心,DSP负责核心的三维成像处理任务,系统的处理速率和功耗如表4所示。对比可见,在采用该处理框架设计时,处理速率提升了43.4%,而功耗降低了约53.5%,主要原因,一方面是SOPC中资源得到充分利用,尤其是大量可编程逻辑被用于并行加速;另一方面,对于三维成像实时处理这种数据密集型运算,SOPC内部的高速互联有利于提高通信效率降低传输耗时。另外,在利用SOPC实现高性能、低功耗处理的同时,由于芯片数量的减少,也降低了系统的设计复杂性和板卡面积,有利于缩短设计周期。
Design scheme Processors Processor numbers Processing rate/MB·s−1 Power/W SOPC ZYNQ-7020 1 chip 22.37 8.003 FPGA+DSP FPGA:XC7K420T DSP:TMS320C6678 FPGA:1 chip DSP:1 chip 15.6 17.2 Table 4. Performance of processing systems
利用该框架设计的实时处理系统,对机载验证试验中采集的数据进行处理,三维影像如图4(a)所示,红框区域的地物影像如图4(b)所示,在该区域内选取5种典型地物,其光谱曲线如图4(c)所示。
Real-time processing framework of common-aperture active and passive hyperspectral 3D imaging
doi: 10.3788/IRLA20200249
- Received Date: 2020-06-25
- Rev Recd Date: 2020-08-26
- Available Online: 2021-02-07
- Publish Date: 2021-02-07
-
Key words:
- hyperspectral /
- active and passive /
- hardware-software co-design /
- multi-objective programming /
- SOPC
Abstract: Common-aperture active and passive hyperspectral three-dimensional imaging technology is a new remote sensing detection method, which combines active LiDAR and passive hyperspectral cameras in a single framework with shared optical systems. Thus, the difficulty of heterogeneous data registration is reduced, and the generation of the 3D spectral image by real-time fusion becomes possible. The real-time 3D imaging is characterized by data-intensiveness and computing-intensiveness, and the software and hardware co-design framework for system-on-a-programmable-chip provides a feasible solution to it. At present, the hardware/software partitioning is mostly derived from qualitative and empirical analysis, and it is challenging to achieve a quantitative and optimal design. A system-on-a-programmable-chip processing framework using a multi-objective programming model based on object weight was proposed to tackle this problem. In this processing framework, the graph-theory-based model with Ncut criterion was used to achieve high cohesion and low coupling functional modules partitioning. Then, the performances of functional modules with software fulfilment and hardware fulfilment were thoroughly analyzed and evaluated. Finally, aiming at the design requirement, the proposed multi-objective programming model was used for the hardware/software partitioning scheme. Two optimal hardware/software partitioning schemes based on the speed-first criterion or the power-first criterion were solved quantitatively for different scenarios. The result shows that the speed-first design overperforms an empirical design with an increase of 43.4% in processing speed, a reduction of 53.5% in power consumption.