耿 勇 勝,洪 中 華*,童 小 華,劉 世 杰,馮 永 玖,張 云,周 汝 雁,韓 彥 嶺,潘 海 燕,王 靜,楊 樹 瑚,徐 利 軍
(1.上海海洋大學信息學院,上海 201306;2.同濟大學測繪與地理信息學院,上海 200092)
星載SAR影像廣泛應用于圖像融合與拼接、三維重建、變化檢測等方面[1-4],而SAR影像匹配是這類應用的重要基礎。星載SAR影像匹配主要有基于強度的方法和基于特征的方法[5,6],前者需要計算大量的相關性矩陣,時間復雜度高,后者包含特征提取、特征描述子構建和相似性準則匹配等過程,其速度更快、精度更高。SIFT(Scale Invariant Feature Transform)方法是具有代表性的特征匹配方法之一[7],具有良好的尺度不變性和抗噪性[8],已廣泛應用于各種遙感影像匹配中[9,10]。然而,SAR影像不同于光學影像,存在相干斑噪聲,導致SIFT算法難以提取高質量的特征點。針對這一難題,Dellinger等[11]提出了SAR-SIFT算法,通過圖像強度指數加權算子(ROWEA)和梯度影像對數計算以降低相干斑噪聲的影響,但由于SAR-SIFT采用CPU串行計算處理SAR衛星影像效率較低,無法滿足地震等自然災害發生后快速響應場景之需。
針對遙感影像匹配效率不高的難題,當前處理方法主要有4種:分塊匹配方法、特征尺度降維法、CPU并行計算、GPU并行計算。分塊匹配策略的核心是減少影像匹配中非重疊區域的冗余計算,如楊佳賓等[12]通過無人機影像的POS信息提取重疊區域以減少Dense SIFT快速拼接的冗余計算,但該類方法僅采用分塊和CPU串行的方式效率仍不高;魏天華[13]采用特征尺度降維和多核DSP方法提高了SAR-SIFT匹配效率,但該方法是通過降低金字塔維數損失匹配精度以提高效率;利用多核CPU并行計算可加倍加快處理效率,在影像匹配中應用更為廣泛,如程棟等[14]提出利用OpenMP基于多核CPU并行計算對SAR影像匹配中的互相關模板匹配進行加速(加速比為8),宋偉等[15]利用OpenMP基于多核CPU并行計算對無人機影像匹配方法進行加速(加速比優于2),但CPU核數有限導致該類方法效率提升并不明顯;GPU核數遠大于CPU核數,更適用于影像匹配效率提升,如許川佩等[16]利用OpenCL基于GPU并行加速計算提高SIFT算法圖像匹配效率(加速比優于10),張杰等[17]提出利用CUDA基于GPU對特征提取中的圖像金字塔和梯度計算進行加速(加速比為40),肖漢等[18]利用基于CUDA的GPU并行計算對SIFT算法加速(加速比約為30)。
綜合上述研究可以發現,目前針對SAR影像SIFT匹配加速的研究較多,且取得了明顯進展,但專門針對SAR-SIFT的并行計算方法未見報道。因此,本文提出一種基于CPU-GPU協同并行計算的SAR-SIFT快速匹配方法,以期提高SAR影像匹配速度。
本文提出的SAR-SIFT快速匹配方法主要步驟為:首先對SAR影像進行分塊預處理并提取主副影像間的重疊區域,然后采用Fork/Join模式的CPU-GPU協同并行計算以提升SAR-SIFT匹配效率。
針對星載SAR影像文件大導致匹配效率低問題,本文先對影像進行預處理,求出重疊區域,再進行后續匹配。1)分別利用主副影像有理函數模型參數(RPCs)計算影像4個角點的經緯度坐標,然后通過求交判斷該影像是否與其他影像相交;2)將每幅影像依次設為主影像并進行分塊,求出與相交副影像的重疊區域,以減少影像分塊時不重疊區域的冗余計算;3)將主影像分成N×N塊,并求得每一子塊4個角點的經緯度坐標,進而求得主副影像塊之間的重疊區域;4)采用RPCs反算出主副影像塊中重疊區域的行列坐標,而后對主副影像塊中的重疊區域進行匹配。
SAR-SIFT算法在特征尺度空間和特征描述方面對SIFT進行了改進,提高了SAR影像的匹配精度,但隨著數據規模增大,計算效率逐漸降低。SAR-SIFT生成尺度空間響應函數R(x,y,σ)計算如下[11]:
(1)
R(x,y,σ)=Det(CSH(x,y,σ))-t·Trace(CSH(x,y,σ))
(2)

首先,通過尺度空間響應函數R(x,y,σ)在每個尺度空間上尋找3×3范圍內的極大值進行特征點提取,其中響應函數值大于0.8。在確定特征點坐標后,通過特征點鄰域的點經過高斯加權求得特征點主方向,然后采用GLOH[20]方法構建特征描述子。利用特征描述子初匹配后,采用RANSAC篩選出正確的匹配點對,即連接點。在連接點提取過程中,通過Fork/Join模式對金字塔影像進行分層并行處理,該并行模式在CPU端和GPU端分別采用OpenMP和CUDA技術對SAR-SIFT匹配方法進行加速。
本文提出的SAR-SIFT并行計算方法主要技術流程如圖1所示。

圖1 SAR-SIFT協同并行計算流程Fig.1 Framework of collaborative parallel computing for SAR-SIFT
(1)在獲取輸入影像后,采用GPU構建特征金字塔,以充分發揮GPU并行處理和浮點運算力的優勢;同時利用CPU對SAR-SIFT協同并行計算,其遵循Fork/Join并發模式。在構建8層特征金字塔時,由OpenMP編譯指令分配8個獨立線程處理對應子任務中的響應函數。在每個子任務中,影像從內存傳入顯存中,由GPU完成SAR-HRRIS響應函數的計算。該計算首先對影像做高斯模糊操作并計算其梯度幅值和梯度方向,然后計算像素點協方差矩陣,最后計算當前層的SAR-HARRIS響應函數。主線程等待8個工作線程處理完畢后一起將該層的SAR-HRRIS響應函數返回CPU內存中,該過程中僅需將影像傳入顯存,由GPU統一計算特征尺度,以減少顯存與內存之間數據傳輸耗時問題。
(2)完成特征金字塔構建后,利用OpenMP在CPU端并行提取特征點和構建特征描述子。在提取特征點時,由OpenMP編譯指令分配8個工作線程用于提取每一層的特征點;在構建特征描述子時,由OpenMP分配N個工作線程用于特征描述子構建;匹配階段應用knnmatch方法(基于歐氏距離匹配)[21],采用RANSAC[22]三倍中誤差篩除錯誤的匹配點。這種CPU-GPU協同并行計算方法充分利用了計算機硬件性能,可顯著提高SAR影像匹配效率。
本文實驗數據為2021年5月26日采集的覆蓋云南省大理市漾濞縣的5景高分三號L1A級全極化條帶影像,該影像工作頻段為C頻段,方位向空間分辨率為8 m,距離向空間分辨率為6~9 m,幅寬為30 km。漾濞縣地勢北高南低,海拔最高為4 122 m,最低為1 174 m,總面積為1 954 km2,其中山區面積占98.4%。
實驗硬件環境:CPU I-9-10900X,顯卡 RTX2080,內存 64 GB,顯存 11 GB;軟件環境:Windows 10 64位操作系統、Visual Studio 2017、Opencv 3.4.11、GDAL 2.3.1、Eigen 3、CUDA Toolkit 10.1。所有實驗在同一環境下運行,采用C++編寫代碼,在x64debug模式下記錄程序運行時間。
算法參數設置如下:在構建金字塔時,金字塔層數設為8;在提取特征點時,SAR-HARRIS響應函數的閾值設為0.8;在構建特征描述子時,在提取的所有特征點中保留響應值前4 000個特征點用于構建特征描述子匹配,從而提高匹配速度;在匹配階段,歐氏距離匹配閾值設為0.8;最后保存每塊影像上最優的10個連接點。
采用本文提出的SAR-SIFT快速匹配方法在云南漾濞震區5景高分三號順軌影像的連接點提取結果如圖2所示,其中重疊區域中的紫色十字符號代表相鄰兩景影像的連接點坐標,在左右兩邊對應的高分三號匹配影像中,紫線代表連接點連線。由圖2可知,影像重疊區域約占每景影像的20%,提取的連接點分布較均勻且全部落入重疊區域內。本文采用RMSE[23]作為匹配精度指標,得到A、B、C、D 4個區域的RMSE分別為0.3076、0.2673、0.2478、0.2569,均為亞像元精度,滿足圖像拼接需求。

圖2 高分三號遙感影像匹配結果Fig.2 Matching results of GF-3 remote sensing images
為驗證本文提出的基于重疊區域分塊匹配策略和CPU-GPU協同并行計算在SAR-SIFT匹配方法中的有效性,設計了兩組對比實驗:1)在分塊匹配策略中,設計了未分塊以及從4×4分塊到10×10分塊8個對比方案;在CPU-GPU協同并行計算方案中,設計了CPU單線程、CPU多線程、GPU并行、CPU-GPU協同并行4種對比方案,其中GPU并行是指在CPU串行執行每一層金字塔構建時采用GPU并行計算。本文重點關注星載SAR影像匹配效率,采用加速比作為量化參數[24]。實驗結果如表1所示,其中耗時包括影像預處理、通訊消耗和特征點提取、特征描述子構建、特征匹配所需時間,加速比1為未分塊影像匹配耗時除以不同分塊影像匹配最低耗時,加速比2為單線程影像匹配耗時除以多線程影像匹配耗時。2)將本文方法與OpenMP加速[15]、分塊匹配[25]、減層降維[13]不同分塊策略進行對比,結果如表2所示。
由表1可知:1)影像匹配耗時隨著CPU線程數增加而遞減,當線程數大于5時耗時減少并不明顯,主要原因是5個線程只能同時處理8層金字塔影像中的5層,導致后3層金字塔影像處理時出現2個線程等待,當線程數增至8時,加速比為5.74;GPU并行方案可大幅提升處理效率,加速比達12.67;CPU八線程+GPU協同并行計算在所有計算方案中耗時最少,加速比達14.44。2)同一線程數的大部分情況下,6×6分塊方案的加速比最高。3)在所有計算方案中,分塊方案比未分塊方案快2倍以上。4)在分塊方案中,匹配次數隨著影像分塊數增加而增加,進而增加耗時,而未分塊影像只需匹配一次,耗時較少;此外,GPU并行計算時分塊影像需多次傳入GPU顯存,導致通訊時間變長、加速比降低,但分塊可減少冗余計算,使加速比下降不明顯。5)“6×6分塊+CPU八線程+GPU并行計算”為最優方案,其相對于未分塊CPU串行計算方案的加速比達45.15。由表2中的加速比可知,本文方法在5景高分三號順軌影像匹配中效率最高,加速比為8.90,驗證了本文方法的有效性。

表1 影像不同分塊和不同并行計算方案的實驗結果Table 1 Experimental results of different image blocks by using various parallel computing schemes

表2 不同分塊、并行策略耗時對比Table 2 Time-consuming comparison of different image blocks and parallel strategies
本文提出一種基于重疊區域分塊匹配策略和CPU-GPU協同計算的SAR-SIFT特征匹配方法,采用分塊匹配策略以減少非重疊區域的冗余計算,并基于Fork/Join模式CPU-GPU協同并行計算以提高SAR-SIFT特征匹配效率。為驗證本文方法的有效性,在云南漾濞縣5景高分三號影像上開展影像匹配實驗,并與當前主流的分塊匹配策略、OpenMP多線程、減層降維等方法進行對比,結果表明本文方法效率最高,加速比為8.90,為解決SAR影像匹配效率低問題提供了一種解決方案,為進一步提升大區域SAR影像匹配性能提供了有效策略和方法。