張棟樑, 宮志群, 楊世廷, 陸業寧, 占 靜, 安曉亞
(1. 中國建設基礎設施有限公司, 北京 100029; 2. 武漢天際航信息科技股份有限公司, 湖北 武漢 430074; 3. 西安測繪研究所, 陜西 西安 710054; 4. 地理信息工程國家重點實驗室, 陜西 西安 710054)
影像拼接是指將2張或2張以上具有重疊區域的影像,通過坐標系之間的變換關系,拼接成1張視場更大、信息更豐富的影像[1]。目前已廣泛應用在城市街景影像拼接、衛星影像拼接等領域。隧道受光照等因素限制,比普通道路巡檢更加復雜,利用車載移動測量技術和影像拼接技術獲取隧道內壁影像,可為其內壁安全巡檢工作提供新的巡檢手段。影像匹配是影像拼接過程中最耗時的環節之一,常用的影像匹配算法包括SIFT算法[2-3]、SURF(speeded up robust features)算法[4-5]。Mikolajczyk等[6]選取了10種算子,在光照變化、幾何變形等6種不同情況下對其進行測試與比較,發現SIFT算子匹配效果最好。后續有多位學者使用SIFT算法進行影像匹配。例如: 周杰等[7]使用SIFT算法和泊松融合對無人機遙感影像進行融合; 張冬梅等[8]結合SIFT算法、LM(Levenberg-Marquardt)法和RANSAC算法進行特征點匹配和誤匹配點剔除,并將最小生成樹算法引入到拼接路徑中,實現了影像的有效拼接; 喜文飛等[9]利用SIFT算法和改進的RANSAC算法進行影像拼接,提升了影像匹配點粗差剔除率; Dong等[10]采用SIFT算法提取圖像中的特征點,并利用LATCH描述符和RANSAC算法對特征點進行描述和誤配點剔除,最后利用平移單應矩陣拼接圖像,解決了影像拼接中的黑線問題。但隨著待拼接影像數量的增加,SIFT算法存在匹配效率低的問題。如何有效提升影像匹配速度是影像拼接研究中亟待解決的問題之一。
此外,誤差累積是影像拼接過程中的另一問題。Ait-Aoudia等[11]使用影像間同名點的均方根誤差評價拼接結果。何敬[12]通過分塊拼接,采用最優拼接路徑的方法減少誤差累積。張冬梅等[8]通過SIFT算法進行特征點匹配,采用LM方法和RANSAC算子剔除誤匹配點,有效減少了影像拼接過程中的誤差累積。岳廣等[13]利用航空平臺的姿態信息和位置信息完成了各圖像的投影變換和圖像粗拼接,有效減少了誤差累積。然而,以上算法多考慮相鄰影像間的誤差關系,未考慮待拼接影像的整體關系,誤差會隨著拼接次數的增加而逐漸累積。
基于以上問題,本文聯合SIFT-GPU協同處理算法和整體平差法進行隧道影像拼接試驗研究。在隧道影像匹配過程中,融合SIFT匹配算法和GPU-CPU協同處理技術[14],通過分解SIFT算法處理過程,將其中可以并行處理的步驟通過GPU加速運算,提高影像匹配效率。在影像配準過程中,使用整體平差算法整體求解待拼接影像的變換參數,降低傳統算法中因拼接次數增加而導致的誤差累積問題。
研究使用車載移動測量平臺(見圖1)采集隧道內壁數據,其搭載有全景相機、陀螺儀、Lidar、計步器和人工光源5個硬件模塊。全景相機為4鏡頭相機; 陀螺儀用于獲取外方位元素; Lidar用于獲取隧道內壁點云; 計步器用于控制相機快門和計算所拍攝的相鄰2站影像的重疊度; 人工光源為相機拍攝提供輔助光源支持。作業時,汽車搭載設備沿道路中軸線以10 km/h的速度前進,每前進2.5 m拍攝一次;Lidar在汽車前進過程中連續掃描。

圖1 車載移動測量平臺Fig. 1 Vehicle-mounted mobile measuring platform
1.2.1 隧道影像糾正
受拍攝過程中影像傾斜和被攝景物的深度影響,可能存在影像變形。使用Lidar點云數據對原始影像進行初步糾正。使用Lidar采集到的隧道點云數據建立隧道內壁模型,基于成像點和其對應物方點的共線方程進行影像糾正,最后選用雙線性內插法對糾正后的影像進行灰度內插和賦值,得到糾正后的影像。隧道影像糾正過程如圖2所示。
1.2.2 隧道影像勻光勻色
隧道內部的特殊環境決定了必須使用人工光源輔助影像拍攝,但人工光源強度有限,輻射不均勻,需對其進行勻光勻色處理。
1.2.2.1 MASK勻光算法
采用MASK勻光算法對單張隧道影像進行處理,保證單張隧道影像中間與邊緣亮度一致[15],算法公式為式(1)—(3)。
(1)
(2)

(3)

1.2.2.2 Wallis濾波勻光法
采用Wallis濾波勻光法對所有隧道影像進行處理,保證隧道不同影像間色調一致[16],公式如式(4)所示。
(1-b)mg。
(4)
式中:w(x,y)為Wallis勻光后的影像;g(x,y)為原始影像;mg為原始影像的局部灰度均值;c為影像方差的擴展常數,c∈[0,1];Sf為勻光后影像局部灰度標準偏差的目標值;Sg為原始影像的局部灰度標準偏差;mf為勻光后影像局部灰度均值的目標值;b為影像的亮度系數,b∈[0,1]。
影像匹配的目的是尋找2張或多張影像之間的同名點或同名直線。GPU-CPU協同處理是: CPU作為控制中心負責數據的傳輸、GPU的調用和并行程度低的計算等串行程序的執行; GPU負責并行程度高且耗時長的大規模計算,并將計算結果輸出到CPU。依據各自運算的特點和SIFT匹配算法的關鍵步驟可以發現,影像的讀取、高斯核函數的計算、DOG(difference of Gaussian)金字塔的建立、候選關鍵點位置的確定、特征向量的提取等需要依靠CPU來完成;而高斯金字塔的建立、關鍵點位置的確定以及SIFT特征向量的匹配等并行程度高的計算步驟可以利用GPU加速運算,簡稱為SIFT-GPU匹配算法。其計算方案如圖3所示。

圖3 SIFT-GPU匹配算法具體計算方案Fig. 3 Detailed calculation scheme of SIFT-GPU matching algorithm
得到基準影像與待配準影像的特征點后,需完成2張或多張影像間特征點的一一匹配。SIFT算法采用基于歐氏距離的最鄰近匹配法進行粗匹配,雖能去除一些外點,但仍會存在少量誤配點。為得到影像間精確的變換矩陣,采用RANSAC算法對誤配點進行剔除。其主要思想是基于某一模型,通過反復隨機提取處理數據的子集來估計模型參數,通過設置閾值將處理數據分成“內點”和“外點”,將對應“內點”數目最多的模型參數視為最優模型參數[17-18]。RANSAC算法流程圖如圖4所示。

圖4 RANSAC算法流程圖Fig. 4 RANSAC algorithm flowchart
常用的影像拼接模型有平移旋轉縮放變換、仿射變換、透視變換、非線性變換等[12,19]。不同影像拼接模型的幾何特征不同,所能夠消除的變形類型也有所不同。隧道內壁的形狀類似于柱面而非平面,但人們在觀測二維影像時通常習慣于觀測平面視覺的影像,在后續拼接模型選擇中充分考慮人們的視覺習慣和拼接精度。
使用普通最小二乘法(LS算法)求解2張待拼接影像的誤差方程時,會默認為一張影像上的特征點(xi,yi)具有誤差,另一張影像的特征點(xi′,yi′)完全正確。這會造成變換參數的有偏估計,在影像數量較少的情況下,對結果影響不明顯,但隨著影像數量的增多,在影像連續拼接中會造成誤差累積。廣義最小二乘法(GLS算法)通過為解釋變量加上一個權重,可以得到誤差的無偏和一致估計。本文使用整體平差法,即在整個待拼接區域中,對所有具有重疊區域的影像進行匹配,將匹配出的所有同名點全部納入平差,整體求解變換參數,整個過程只需進行1次平差。
以仿射變換作為拼接模型為例對整體平差算法進行說明。對于整個待拼接區域的所有影像,可將它們之間的重疊關系分為2類: 1)重疊像對中包含基準影像; 2)重疊像對中不包含基準影像。以第1張影像作為基準影像,如果影像與其具有重疊區域,則誤差方程可用矩陣表示為:

(5)
式中: (x1,y1)和(xi,yi)為影像I1與Ii上的一對同名點;a1i,0、b1i,0、c1i,0、d1i,0、e1i,0、f1i,0為影像Ii變換參數的初值;vx和vy分別為x和y的誤差;Da1i、Db1i、Dc1i、Dd1i、De1i、Df1i為影像Ii變換參數的絕對偏差。
如果影像Ii和Ij(i≠1,j≠1)具有重疊區域,則該像對上所有同名點的坐標值在基準影像所在坐標系上的坐標值完全相等,誤差方程可用矩陣形式表示,如式(6)所示。
(6)
式中: (xi,yi)和(xj,yj)為影像Ii與Ij上的一對同名點;a1j,0、b1j,0、c1j,0、d1j,0、e1j,0、f1j,0為影像Ij變換參數的初值;Da1j、Db1j、Dc1j、Dd1j、De1j、Df1j為影像Ij變換參數的絕對偏差。
如果有m+1張影像參與拼接,共匹配出n對同名點,則可以列出2n個誤差方程,誤差方程用矩陣形式表示為:
(7)
試驗樣本為經過預處理后的若干張某隧道內側壁的影像。采用MASK勻光算法對單張隧道影像進行勻光處理。圖5(a)為典型的“中間亮、四周暗”的隧道影像,圖5(b)為經MASK勻光后的隧道影像,勻光后光照均勻。
采用灰度均值、信息熵、標準差、平均梯度4種圖像質量評價指標,評價MASK勻光后的影像在R、G、B通道下的變化,結果見表1。由表可以發現,采用MASK勻光算法改善了隧道影像的光照強度,影像反差變小,圖像清晰度得以提高。

表1 MASK勻光前后圖像質量評價指標對比Table 1 Comparison of evaluation indexes before and after smoothing light using MASK algorithm
采用Wallis勻光算法進行色差調整。圖6(a)和圖6(b)為經過MASK勻光處理后的位于隧道不同地段的2張影像,光照都很均勻,但圖6(b)相對于圖6(a)明顯偏暗。因此,以圖6(a)為基準影像對圖6(b)進行Wallis勻光,結果如圖6(c)所示。對比圖6(a)和圖6(c)可知,經過Wallis勻光后的影像與基準影像的色調一致。

(a) 基準影像 (b) 待勻光影像 (c) Wallis勻光后的影像圖6 Wallis勻光前后的隧道影像對比圖Fig. 6 Comparison of tunnel imaging before and after smoothing light using Wallis algorithm
使用上述4種指標對Wallis勻光結果進行評價,結果見表2。由表可見: Wallis勻光后隧道影像亮度與基準影像十分接近,影像反差變小。

表2 Wallis勻光前后圖像質量評價指標對比Table 2 Comparison of evaluation indexes before and after smoothing light using Wallis algorithm
將已被糾正且進行勻光勻色處理后的隧道影像進行匹配處理,采用原始SIFT算法和SIFT-GPU算法分別進行匹配試驗。為驗證不同條件下的匹配效果,分別選用3組紋理、光照、尺寸等特點不同的隧道影像進行試驗。試驗采用的硬件平臺: CPU為Intel Core i5-3470 3.20 GHz,GPU為NVidia GeForce GTX 650。試驗采用的軟件平臺為: Microsoft Windows 10,Visual Studio 2010。
4.2.1 試驗1
選用2張具有一定重疊度、隧道內壁紋理豐富、光照充足、辨識度高的影像進行匹配試驗,影像大小均為3 000×2 000,匹配結果如圖7和表3所示。由結果可知: SIFT-GPU匹配算法的運算時間顯著減少,RANSAC算法能夠較好地剔除影像中的誤配點,提高后續拼接精度。

(a) SIFT-GPU匹配結果

(b) 剔除誤配點后的匹配結果圖7 試驗1的影像匹配結果Fig. 7 Image matching results in experiment 1

表3 隧道影像匹配試驗結果Table 3 Tunnel image matching experiment data
4.2.2 試驗2
選用2張具有一定重疊度、內壁紋理單一、光照不足、辨識度低的隧道影像進行匹配試驗,影像大小為2 000×3 600。匹配結果如表3和圖8所示。由結果可知: 試驗2相比試驗1加速比小,原因在于內壁紋理單一的影像匹配出的同名點數量明顯減少。由此也可以發現,SIFT-GPU匹配算法在特征明顯的復雜影像匹配中效率優勢更加明顯。

(a) SIFT-GPU匹配結果 (b) 剔除誤配點后的匹配結果圖8 試驗2的影像匹配結果Fig. 8 Image matching results in experiment 2
4.2.3 試驗3
選取2張尺寸更大、特征更加明顯的隧道影像進行匹配試驗,影像大小為7 952×5 304,匹配結果如表3和圖9所示。由結果可知: 與試驗1相比,加速比有一定降低,這與匹配出的同名點數量增加有關,但SIFT-GPU匹配算法的運算時間仍明顯小于SIFT匹配算法的運算時間。

(a) SIFT-GPU匹配結果

(b) 剔除誤配點后的匹配結果圖9 試驗3的影像匹配結果Fig. 9 Image matching results in experiment 3
4.3.1 拼接模型選擇試驗
1.2.1節中影像初步糾正的共線方程的本質是透視變換,因此選擇平移旋轉縮放變換、仿射變換和二次多項式變換進行影像拼接試驗。為對比3種影像拼接模型對于拍攝環境較為惡劣的隧道影像的拼接效果,選擇紋理單一、重復率高、特征不明顯的隧道影像進行試驗。3種拼接模型的影像匹配對數量和誤差值如表4所示。由表4可以看到: 3種拼接模型的匹配精度差別不大,二次多項式變換的拼接精度稍高。然而,隧道特殊的形態和成像環境使得影像的變形和基準影像特征十分復雜,如果完全繼承這些特征,可能導致拼接結果誤差值低,但缺乏觀賞性與實用性。圖10示出采用3種拼接模型對5張隧道影像的拼接結果。綜合考慮拼接精度和拼接結果的可觀賞性,選用平移旋轉縮放變換模型對隧道影像進行拼接。

表4 3種拼接模型的影像匹配對數量和誤差值Table 4 Number of image matching pairs and error value of three splicing models

(a) 二次多項式變換 (b) 仿射變換 (c) 平移旋轉縮放變換圖10 采用3種拼接模型對5張隧道影像的拼接結果Fig. 10 Comparison of five tunnel images with serious deformation by three splicing models
4.3.2 傳統算法與整體平差算法對比試驗
選用隧道側面內壁的10張序列影像,采用平移旋轉縮放變換模型對影像進行拼接,并分別使用傳統平差算法和整體平差算法進行誤差剔除,比較2種算法的誤差結果(見表5)。由表可以看出: 整體平差算法的單位權中誤差值是傳統算法的1/3左右。表明采用整體平差算法進行誤差剔除可有效提升影像拼接結果精度。

表5 10張隧道影像匹配對數量及2種算法的單位權中誤差Table 5 Number of matching pairs of ten tunnel images and unit weight error of two algorithms
試驗數據共包含400張隧道內壁的影像,隧道長度約為250 m,影像大小均為5 000×9 000。各階段處理時間如表6所示。為防止影像拼接結果輸出過程中計算機內存溢出,使用GDAL分塊處理技術對影像拼接成果進行輸出。圖11(a)示出全景相機在某攝站拍攝的4張影像。首先,對所有攝站的4張影像進行拼接(見圖11(b));然后,將拼接好的單站影像進行站與站之間的拼接,結果如圖11(c)所示。最終拼接成果清晰地展示了該段隧道兩側壁、頂部以及部分地面紋理,整個拼接渾然一體,方便觀察。

表6 影像拼接各階段處理時間Table 6 Image processing process and corresponding time

(a) 某攝站的4張影像

(b) 單站4張影像的拼接結果

(c) 試驗區域隧道所有影像拼接結果圖11 試驗區域隧道影像拼接結果Fig. 11 Tunnel image stitching process and final results
針對隧道影像拼接問題,本文聯合SIFT-GPU匹配算法和整體平差法進行了隧道影像拼接研究,并通過相關試驗驗證了該算法的有效性。
1)基于隧道內壁點云數據和勻光勻色算法對原始影像進行預處理,有效提高了待拼接隧道影像的質量。
2)選取3組紋理、光照、尺寸等特點不同的隧道影像進行拼接試驗,結果表明,相比傳統SIFT算法,研究使用的SIFT-GPU匹配算法使得影像匹配效率明顯提升。
3)選取400張隧道內壁影像,使用平移旋轉縮放變換模型、整體平差算法分別進行影像拼接和誤差補償,最終較好地呈現了隧道內壁的景觀。相較于以往的研究,影像間銜接自然,無明顯黑邊,展示效果較好。
本文在影像匹配過程中引入GPU-CPU技術對提取所有待拼接影像特征點的效率進行了提升,然而并未對整個拼接過程的效率進行提升,下一步可繼續研究影像拼接效率提升算法,進一步提升高分辨率長距離隧道影像的拼接速率。