王昕平 張森林 劉妹琴 樊 臻
(浙江大學電氣工程學院 浙江 杭州 310027)
海洋在維持地球生態環境,促進人類可持續發展中扮演著愈來愈重要的角色,人類對探索和挖掘海洋資源的需求與日俱增。近些年,隨著計算機技術的快速發展,水下圖像處理技術得到了來自海洋科學技術領域研究學者的廣泛關注,計算機視覺技術在水下圖像上的應用也取得了顯著的成果。水下圖像處理對大壩檢測、石油提煉、水下電纜鋪設、海洋資源勘探、海洋生物觀測等都具有重要意義。目前,水下圖像有聲學圖像和光學圖像兩種:水下聲學圖像的成像設備成本較高,精度較低,且缺乏直觀性;水下光學圖像相對分辨率較高,所得信息更具有直觀性。隨著無人有纜水下潛行器(Remote Operated Vehicle,ROV)和自主式水下航行器(Autonomous Underwater Vehicle,AUV)技術的成熟,人們可以很容易地通過ROV和AUV得到水下光學圖像。但是,由于光在水中衰減嚴重,通過水下光學圖像設備得到的圖像和視頻存在視野較窄、圖像質量低等問題。如果想獲取更廣視野和更多信息的圖像和視頻,難免會降低其分辨率和圖像質量。圖像拼接技術成為了克服此問題的有效方法。
圖像拼接技術即將多幅圖像重新合成并融合起來,在不損失分辨率和圖像質量的情況下,生成一幅廣角度的全景圖像。近年來,圖像拼接技術發展迅速,包括Harris算法[1]、SUSAN算法,尺度不變特征變換匹配算法[2](Scale Invariant Feature Transform,SIFT)、加速穩健特征算法[3](Speeded Up Robust Features,SURF)等,其中應用最廣的是SIFT和SURF算法。SIFT算法雖然魯棒性強、可靠性好,但描述符維數較高,計算復雜,算法效率不高;SURF算法通過降維的方法將匹配速度提高了3倍,但文獻[4]的實驗證明,SURF在尺度不變性、旋轉不變性等性能上的表現并不理想。考慮到水下環境和水下成像的特殊性,以及SIFT算法幾乎不受圖像光照、仿射變化(圖像旋轉角度、縮放大小等)和噪音等因素變化的影響,魯棒性較強,容易辨識物體并提取特征,且準確率較高,并且現在已經有很多改進SIFT算法[5-6],提升了算法的速度和效率。本文主要針對水下圖像特點對SIFT算法進行改進。
此外,對于水下圖像來說,由于光在水下的衰減性,光在水下傳播的前向散射效應和后向散射噪聲、水中漂浮物、水對光成分中的藍、綠色成分吸收能力弱等問題,使得水下圖像色彩失真嚴重(圖像偏綠色或藍色),亮度和對比度較低,有的圖像會出現類似“白霧”(噪聲粒子較小)或“雪片”(噪聲粒子較大)覆蓋的現象。水下成像質量差的問題使水下圖像拼接的準確度大大降低,限制了圖像拼接技術的效果。因此,在水下圖像拼接之前,對水下圖像進行預處理極為重要。
本文充分考慮水下環境和水下成像的特點,將多尺度融合原理的圖像增強算法[7]應用于水下預處理圖像中,提升了水下圖像拼接的效果和正確率;并在前人基礎上對SIFT算法進行了水下圖像配準方法改進,提升水下圖像配準和拼接的準確率。
本文對水下圖像拼接的研究主要分為三個部分:水下圖像預處理、水下圖像配準和圖像拼接。水下圖像預處理使用專門針對水下圖像設計的簡化多尺度圖像融合算法,修復偏色嚴重圖像。水下圖像配準使用改進SIFT算法,其改進主要體現在以下三步:從水下圖像中提取關鍵點,特征提取采用自適應閾值法篩選關鍵點,擴大關鍵點提取范圍;用Canny算法計算關鍵點的梯度和大小,在平滑噪聲的同時也可以保留圖像更多細節,形成關鍵點描述符;使用平均Hausdorff距離和BBF最鄰近查詢法可以較快速地對關鍵點進行粗匹配,再用RANSAC進行進一步精準匹配。圖像拼接即通過配準后的點計算變換矩陣,得到最終拼接圖像。本文水下圖像拼接研究整體算法流程如圖1所示。

圖1 算法流程
由于水下環境的特殊性和成像質量問題,水下圖像預處理的效果對圖像配準的準確度有極大影響,所以選擇合適的預處理算法非常關鍵。此前最常見的是基于直方圖的圖像增強算法,如:Shamsuddin等[8]使用基于直方圖的顏色校正來預處理圖像,增強圖像對比度,平衡亮度;Wen等[9]將水下彩色圖像根據RGB三個通道分成三幅單獨的彩色圖像,然后分別對三幅圖像進行直方圖均衡化,將三幅圖像組合在一起,得到對比度高、色彩信息豐富的最終輸出圖像,但該方法沒有考慮RGB三個通道之間的關系,存在圖像顏色失真問題;Hitam等[10]分別對圖像的RGB和HSV模型使用對比度受限自適應直方圖均衡化(CLAHE)算法,然后將輸出圖像與歐幾里得范數相結合,得到最終輸出圖像。但是,基于直方圖的算法會帶來一定程度的噪聲放大,且不適用于深水域中顏色失衡嚴重的圖片。謝雨來等[11]采用了無需先驗信息的快速圖像預處理方法,包括圖像對稱拉伸后恢復、顏色空間轉換后恢復、小波去噪、亮度調整和色彩平衡等圖像增強常見步驟,但此方法并不專門針對于水下環境的特點,對水下不同質量的圖像不具有普適性,且步驟較多,算法復雜,運算量較大,實時性不強。
綜合普適性、實時性等因素,本文采用的多尺度圖像融合算法專門針對水下成像特點構建模型,算法快速有效,對單幀圖像和視頻都適用。基于多尺度融合的圖像增強算法主要包括白平衡處理、對比度增強和多尺度圖像融合三個主要步驟。
因為水中各種光源會造成水下圖像產生許多色塊,且圖像色彩偏色嚴重,白平衡可以有效地恢復色彩均衡,所以對圖像進行白平衡處理非常關鍵。但是,光在水深10 m以上的水域中傳播較差,深水圖像存在明顯的對比度不足,圖像被吸收的顏色難以恢復,白平衡效果受限。目前有多種改進白平衡處理方法,但對深水圖像的處理效果都不太理想。由于水下圖像只包含有鏡面反射的縮小區域,因此白斑算法[12]在深水圖像上的效果較差;由于水下圖像的對比度較低,邊緣不像自然圖像那么明顯,所以灰度邊緣算法處理效果也較差。綜上,充分考慮深水域環境特點,白平衡方法采用了灰色世界算法,可以很好地解決在光照不足時圖像偏色嚴重問題,使得深水域的圖像也可以色彩分布均勻,有效去除色塊,同時恢復圖像的白色和灰色陰影。
白平衡后的圖像無法直接使用,還需要進行對比度增強處理。增強圖像對比度的常用方法有自適應直方圖均衡化(AHE)和對比度受限自適應直方圖均衡化(CLAHE)。AHE算法比過去的直方圖均衡法可以保留更多的圖像細節,但也存在同時放大圖像噪聲的問題。CLAHE算法通過對圖像灰度直方圖限制高度的方法,限制圖像局部對比度的增強幅度,可以達到較好的對比度增強效果。本文采用CLAHE算法。
在應用融合算法時,輸入權重包含以下幾個部分:
(1) 亮度權重:控制最終輸出圖像的亮度增益。此權值代表了每個R、G和B顏色通道與原始輸入圖像亮度之間的標準差。亮度權重可以讓圖像顏色更均衡。
(2) 對比度權重:圖像元素如邊緣和紋理會有較高權值。對比度權重通過對輸入圖像的灰度圖進行拉普拉斯濾波產生。
(3) 色彩權重:控制最終輸出圖像的色彩飽和增益。色彩權重通過對每個像素高斯曲線計算飽和度值和最大飽和度值之間的距離生成。
(4) 顯著度權重:表示圖像鄰域顯著度。根據Achanta等[13]提出的顯著度計算公式生成此權重。
計算得到各權重后,將各權重值高斯均一化。最后采用多尺度融合方法對輸入和權重進行融合。為了避免光暈現象,本文選擇了廣泛使用的多尺度拉普拉斯金字塔分解法,最終的輸出圖像是由拉普拉斯輸入和高斯歸一化權值在各個尺度上獨立混合得到的。水下原圖像與預處理后的圖像分別如圖2、圖3所示。

圖2 水下原圖像

圖3 預處理后的水下圖像
本文采用改進SIFT算法進行圖像配準。SIFT算法主要處理以下場景的圖像:(1) 同一物體通過不同的拍攝儀器獲取到的圖像;(2) 同一物體在不同時間獲取到的圖像;(3) 同一物體從不同的角度獲取到的圖像。
水下圖像除了存在圖像質量問題之外,由于ROV和AUV等水下航行器會受到魚群、水流等水下環境因素的影響,水下攝像機拍攝到的圖像還會存在尺度變化大、旋轉角度大、亮度差異大和運動物體干擾(如魚群、水流)等問題,也會影響圖像拼接的效果和準確度。而SIFT算法基本不受目標物體旋轉、縮放和平移等角度變換的影響,對圖像的光照變換、目標遮擋、雜物場景和噪聲等有較好的魯棒性,所以SIFT算法比較適用于水下場景的圖像配準。本文算法對SIFT算法進行改進。
SIFT算法首先在不同尺度空間上搜索水下圖像的關鍵點,通過高斯模糊來獲取尺度空間。設給定輸入水下圖像I(x,y)像素坐標是(x,y),尺度空間定義公式為:
L(x,y,σ)=G(x,y,σ)*I(x,y)
(1)
式中:σ是空間尺度因子;尺度空間L(x,y,σ)定義為變化尺度的高斯函數G(x,y,σ)和原圖像I(x,y)的卷積。其中,變化尺度的高斯函數公式為:
(2)
之后使用高斯差分函數(DoG)和常數因子k進行鄰域極值檢測:
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*I(x,y)=
L(x,y,kσ)-L(x,y,σ)
(3)
水下圖像每個像素與同尺度的8個鄰域像素和相鄰尺度的9個鄰域像素比較,檢測出局部極大值和極小值,識別對旋轉和尺度變化具有魯棒性的候選特征點。
標準SIFT在選取關鍵點時,不選取對比度較低的不穩定極值作為關鍵點,直接篩去亮度在0.03以下的點,這些點不參與極值檢測。但是大多數水下圖像的亮度都很低,因此亮度閾值設為0.03會使水下暗色圖像中的許多關鍵點被忽略。本文算法將閾值設定為圖像對比度的10%,對比度值10%以下的點才會作為低照度點處理,以此擴大關鍵點范圍,提高水下圖像配準準確率。
為了使描述符具有旋轉不變性,根據水下圖像的局部特性為每個特征點分配一個基準方向。標準SIFT算法使用圖像梯度的方法求取DoG金字塔檢測出的關鍵點的3σ鄰域窗口內像素的梯度和方向分布特征。但是,這種微分運算的實質就是高通濾波,有加強高頻分量的副作用,造成水下圖像高頻噪聲部分也同時被放大,所以求取梯度算法應該在提高對像素梯度敏感性的同時可以抑制水下圖像噪聲。本文采用Canny算法中的一階有限拆分計算偏導數方法來代替標準SIFT的圖像梯度算法,Canny算法既可以平滑噪聲,還可以保留圖像更多細節信息。由于現在圖像已經經過灰度化和高斯濾波,對每個關鍵點像素進行一階有限拆分計算偏導數,像素梯度的模值m(x,y)和方向θ(x,y)如下:
m(x,y)=[(L(x+1,y)-L(x-1,y))2+
(L(x,y+1)-L(x,y-1))2]1/2
(4)
(5)
式中:L(x,y)是關鍵點所在的尺度空間值。根據圖像特征點周圍區域的梯度方向形成方向直方圖。在方向直方圖中,令m(x,y)取得局部最大值時的方向角θ(x,y)為圖像特征點局部梯度的方向。
標準SIFT算法使用歐氏距離進行關鍵點匹配,本文考慮水下圖像光照變化較大、噪聲較多、易受雜物影響等特點,采用先經過基于平均值的Hausdorff距離(MHD)算法[14]和BBF最鄰近查詢法進行關鍵點粗匹配,后采用RANSAC進行關鍵點精匹配的方法進行關鍵點匹配,在提高準確率的同時也提升了計算速度。
首先,MHD算法計算關鍵點之間的距離公式如下:
(6)
式中:p為待配準圖的特征點集合A中的個數;hk(A,B)是從特征點集合A到特征點集合B排序后的距離(HD)值集合中的第K個值,K∈(0,1,…,p)。
接著,用BBF算法進行關鍵點粗匹配。實驗證明,用BBF進行特征匹配比常用的KD-Tree算法更加快速和準確。粗匹配后,用RANSAC算法對匹配點進行提純,去除前面算法得到的不匹配的特征點,以改善水下圖像光照不均、對比度低、噪聲明顯等問題,解決水下圖像匹配效率低、魯棒性差的問題。
最后,使用仿射變換求出變換矩陣,將兩幅圖像進行加權融合,得到最終拼接圖像。變換矩陣公式如下:
(7)
式中:(x,y)是圖像原坐標;(x′,y′)是變化后圖像的坐標;(a11,a12,a21,a22)是尺度、旋轉角度和剪切角度等的參數;ax和ay是圖像變換參數。
本文將提出的算法與標準SIFT算法進行對比,算法在MATLAB 2017a環境中運行,將實驗結果從特征點個數、匹配點個數、匹配成功點個數、匹配正確率、RMSE值、耗時六個維度進行對比。
均方根誤差(RMSE)統計了所有匹配點變換前后的坐標偏差,RMSE值越小,說明正確率越高。
(8)
(9)
(10)
式中:dx和dy是變換后圖像與原圖之間的偏差。實驗結果如圖4和圖5所示。

(a) 標準SIFT算法

(b) 本文算法圖4 本文算法和標準SIFT算法特征點配準情況比較

圖5 本文算法配準結果
用標準SIFT算法處理上面兩幅圖像最終拼接失敗,用本文算法處理圖像最終拼接成功,證明本文算法可以將偏色嚴重的深水域圖像成功配準并拼接。表1所示為算法的實驗結果在數據上的比較。可以看出,本文算法特征點和匹配點個數更多,匹配正確率更高,RMSE值更小。實驗對50余幅水下圖像進行拼接,驗證了本文提出的圖像拼接算法更加貼合水下應用場景,對圖像質量低、光照弱、噪聲較大、失色嚴重的水下圖像魯棒性更強,正確率更高,普適性更強。

表1 本文算法和標準SIFT算法的數據比較
水下圖像拼接算法研究在水下圖像處理領域中非常重要,也對后續圖像應用于大壩檢測、石油提煉、水下電纜鋪設、海洋資源勘探、海洋生物觀測等工程中都具有重要意義。本文實驗結果說明,多尺度融合算法預處理水下圖像對后續圖像配準效果有顯著提高作用,擴大了關鍵點范圍,對噪聲的魯棒性增強,拼接效果更好。同時從實驗結果可見,本文算法明顯地延長了圖像拼接的時間,但因為目前圖像多為離線處理,所以耗時增加的影響并不大。若研究實時性圖像處理系統,未來將在提高拼接正確率、提升拼接效果的同時,適當縮短算法的耗時。