孫建國,賀子天,李思照
(哈爾濱工程大學 計算機科學與技術學院,黑龍江 哈爾濱 150001)
動態可重構視覺計算系統是面向環境動態視覺感知、大規模圖形繪制等視覺信息處理和應用的動態可重構的高效能智能計算機系統,是由計算特性不同的多類計算資源通過高速互聯總線構成的異構計算機系統,其在體系結構上強調計算、通信和存儲之間的均衡,在能力方面強調性能和功耗之間的均衡,在實際運用中強調根據應用選擇合適的計算特性以達到時效和能效的聯合優化。動態可重構視覺計算系統應具有計算架構可重構、規模可伸縮、資源高度協同等能力,能在特定體積、功耗和重量等因素的約束下,以高性能且高效能的方式完成海量數據處理、傳輸、顯示以及導航平臺實時控制等任務。
異構計算被視為繼單核、多核之后處理器的第三個時代,它將有效解決能耗、可擴展性等問題,成為高性能和分布式計算領域的一種重要新興模式。當前異構計算系統主要有以下2種架構:CPU+GPU及CPU+FPGA。
GPU異構系統主要采用CPU+GPU架構,將CPU和GPU各自優點結合起來,GPU處理數據密集型的并行任務,CPU進行復雜的邏輯事務處理,從而充分發揮CPU和GPU各自優勢,最大限度地利用異構系統的處理能力,降低計算成本和能耗。基于CPU+FPGA的異構計算系統可以加速多種計算密集型任務,在此計算模式下,采用傳統并行計算方式實現粗粒度的任務并行,直接通過FPGA上的硬件邏輯實現細粒度的任務并行,硬件可編程性通過改變硬件邏輯來適應底層的計算問題,從而使CPU+FPGA的異構計算系統在性能、功耗、體積和成本等方面和傳統計算機相比獲得顯著提升,具有靈活性高、功能適用性強等優勢。
國內研究人員已針對GPU、FPGA等器件開展領域優化、異構編程、高速互聯等研究,但面向高效能的異構計算技術研究還有待深入開展。國防科技大學的嚴明等人[1]開展了面向領域應用的異構多核SoC系統結構設計與優化技術研究,結合粗粒度可重構體系結構與應用定制指令集處理器,對可重構異構計算系統的定制設計方法開展研究,設計了一款異構多核SoC芯片。武漢大學的肖漢等人[2]基于CPU+GPU異構計算技術開展了面向影像匹配方面的若干問題研究,提出了異構群核架構的影像處理協同解決方案。哈爾濱工程大學的鄧臻等人[3]基于DSP和FPGA的多處理器信號處理平臺,研究了聲納多波束相干測深算法的高效實現方法。大連海事大學的孟凡志等人[4]基于DSP和FPGA器件開展了雷達目標檢測與信息處理系統研究工作,通過軟件優化手段提高了雷達目標自動檢測和錄取處理的速度和精度。哈爾濱工業大學的王鶴澎等人[5]對新型硬件處理器基于數據密集型計算的研究進行了綜述,概述了新型硬件處理器的特點,對新型處理器的FPGA和GPU等硬件進行了性能分析。
因此,根據上述研究中所遇到的問題,本文針對嵌入式視覺計算平臺異構計算資源的多樣性,提出一種異構融合的嵌入式可重配置視覺計算架構,實現對嵌入式計算平臺多樣化視覺應用的全覆蓋支撐;同時,為滿足復雜地形地貌的地形信息,提出一種面向大規模場景的全景視圖拼接方法。通過加入全局上下文信息解決圖像配準中存在的特征點誤匹配問題,進而根據融合線兩側像素點灰度插值計算動態融合區域并進行漸入漸出的加權融合,從而有效提高全景視圖拼接的性能。
為滿足信息處理高性能、高可靠和低功耗等需求,將動態可重構視覺計算架構分為3部分:可重構數據通道及控制模塊、高性能并行視覺計算模塊和動態可重構加速模塊。以此構建的多級異構融合高效能分布式計算系統,由基于CPU、GPU、NPU和多種型號的FPGA定制加速節點連接組成,其架構如圖 1所示。

圖1 動態可重構視覺計算架構Fig.1 Dynamic reconfigurable visual computing architecture
不同的視覺計算應用軟件進入控制單元之后,根據軟件的要求將劃分后的任務逐塊送到數據通道中執行,數據通道再根據所輸入的數據依照控制單元的要求來進行配置計算單元陣列。由于不同應用軟件的任務劃分不同,數據通道會將任務根據相應重配置信息傳入到異構視覺計算單元當中,同時為解決GPU及NPU計算能力不足,利用大規模FPGA進行加速控制,以彌補性能缺陷,構建系統級與單元級的動態可重構加速堆棧結構[6]。
可重構加速堆棧是要使超大規模數據能夠借助CPU、GPU、NPU以及FPGA等非常簡單地來評估、開發、部署和應用加速。此平臺支持open stack,可以方便地進行計算資源的配置和管理,可有效地利用此平臺來處理嵌入視覺、機器學習等工作負載。此結構可以方便地根據輸入的應用軟件來進行各個計算單元之間的配置,例如在目標識別方面常用的人工智能計算框架是Caffe,可利用Caffe來開發庫,包括用于神經網絡、矩陣乘法等,這樣系統將和Caffe進行集成,會很快根據相應的庫文件來確定使用系統中的哪些計算節點,從而實現系統級上的可重構[7]。
此外,各計算單元通過高速傳輸總線連接到外部可伸縮的以太互聯網絡以及高帶寬低延遲非壓縮視頻協議轉換傳輸接口,使異構分布式計算系統具備規模可伸縮特性和視頻無損遠距離傳輸能力,實現整機之間的異構分布式融合。在以太網互聯之外,多個異構計算節點還通過高速串行總線交換設施進行局部互聯,在輕量級通信協議棧的支持下實現各個計算節點之間高帶寬、低延時的數據傳輸,從而達到模塊級的異構分布式融合。最后,通過使用集成了計算節點的FPGA器件,進一步縮短CPU、GPU、NPU與加速計算資源之間的距離,降低通信開銷,實現單元級的異構融合[7]。
GPU、NPU等視覺圖像處理節點和FPGA定制加速節點作為異構分布式系統的加速計算資源,分別承擔高速圖像處理(如目標識別、圖像融合等)和智能化加速計算任務,通過CPU來調度GPU、NPU和FPGA的運行。這種堆棧式架構可以使FPGA加速模塊和GPU及NPU計算模塊通過總線進行緊耦合,從而提高數據帶寬和執行效率[8]。
視覺計算所具備的動態可重構性的流程如圖2所示,假設初始狀態所有部件均未入棧。
(1)當視覺計算應用是路徑規劃和避障檢測等時,算法使用一些相對簡單的圖像處理技術即可,但需要用到大量的并行計算,因此設計在此平臺的加速堆棧中,需要GPU進棧來處理圖像大數據[9],為了滿足實時的需求,還需要FPGA的高度并行計算能力來對圖像處理進行加速,此時FPGA進入加速堆棧,圖2(a)表示在圖像處理時所需要進行可重構的計算平臺。
(2)當運行計算量需求較大的應用時(如近地目標識別),會涉及到大量的卷積神經網絡運算,此時,GPU以其強大的計算能力和較低的功耗擁有較優的卷積神經網絡計算效能,因此在平臺中對卷積神經網絡的計算僅需要配置NPU運算即可。由于上一個應用中GPU和FPGA已經在加速堆棧中,所以控制單元需要發出信號,由CPU控制GPU和FPGA出棧,并使NPU進棧,這樣就完成動態重配置的過程,以完成近地目標識別等應用的顯示成像,動態配置過程如圖 2(b)所示。
(3)當使用三維地圖成像及導航應用時,不僅需要大量的卷積神經網絡計算,同時為達到成像的實時性,還需要對計算進行加速,因此在配置過程當中需要使用GPU來完成卷積神經網絡計算,同時還需要FPGA來進行加速。由于上一個應用中,NPU已經在棧內,因此只需要將FPGA入棧的控制信號傳入到加速堆棧即可,配置過程如圖 2(c)所示,從而完成整個系統的動態可重構過程。

(a) 路徑規劃、避障檢測等應用的重構計算架構
在此計算架構下,所使用的加速堆棧技術可有效地對整機進行系統級和單元級動態可重構,由于使用的就是堆棧結構,每次重新配置時需要經歷出棧-進棧的過程,因此這種結構的可擴展性非常強,添加或刪減部件都不會影響整體架構設計方案。同時,由于智能計算節點和FPGA節點均使用相同的高速串行總線接口進行互聯,因此在接口兼容的情況下,二者可以實現無縫替換。此外,若單系統性能不能滿足應用需求,還可通過以太網互聯進行系統規模的擴容,在資源管理和任務調度中間件的配合之下,實現更高性能的異構分布式處理[10]。
角點包含了物體的重要特征信息,表現為灰度值突變的像素點或物體輪廓邊緣線的相交點,是圖像的一個重要局部特征。角點的優點包括算法適應性強、過程簡單和結果穩定等,檢測到的角點精度和穩定性直接影響了后續的特征匹配等任務[11]。
Harris角點檢測原理是利用一個固定大小的窗口在圖像中移動,計算灰度變化,若該變化大于給定的閾值,則可判定為角點[12]。
對于圖像I(x,y)以及一個固定大小的窗口w(x,y),當w(x,y)在點(x,y)處平移(Δx,Δy)時產生的灰度變化G(x,y)為[13]:
(1)
利用泰勒公式展開可得:
[I(x+Δx,y+Δy)-I(x,y)]≈I(x,y)+ΔxIx+ΔyIy,
(2)
式中,Ix,Iy分別是圖像I(x,y)在(x,y)方向上的梯度,所以有[14]:
(3)
令矩陣:
(4)
定義角點響應函數R為:
R(T)=det(T)-c·tr(T),
(5)
式中,det(T)為矩陣的行列式;tr(T)為矩陣的跡;c為可調參數,取值范圍0.04~0.15[15]。

(6)
由數學知識可知,cosθ的值越接近于1,說明2個向量越相似。將這一原理推廣到二維圖像中可得出:
(7)
式中,
(8)
(9)
NCC設置以特征點(x1i,y1i)和(x2j,y2j)為中心,長為2m+1,寬為2n+1的2個可移動窗口,分別計算亮度均值和方差,NCC(p1i,p2j) 的取值范圍為[-1,1]。
圖像融合算法是指對多個圖像源的像素值進行加權差值以期得到唯一的目標像素值,從而合成一幅新的圖像[18-19]。
雙三次差值[20]又稱立方卷積差值。它利用擬合公式對待插值點周圍的若干個點的圖像數據進行處理,進而求出插值點數據。雙三次插值公式如下:

式中,F(i,j)表示源圖像(i,j)處的像素灰度值。
最常用的擬合基函數為:
(11)
本文提出了一種面向異構計算模塊的可配置視覺計算與通信設計方法,針對異構處理器及視覺計算模塊因其數據處理效能偏低、整體協同工作能力不足、通信帶寬利用率不足等問題,提出一種基于CPU+GPU+NPU的視覺計算作為基礎處理模塊、高性能FPGA作為可配置視頻傳輸加速模塊的系統數據協同通信技術,實現異構視覺處理計算模塊的高效計算能力,以及多模塊之間通信效率的提升,為視覺計算平臺整體架構設計及系統通信效能提供有效的優化手段。