王昕平 張森林 劉妹琴 樊 臻
(浙江大學(xué)電氣工程學(xué)院 浙江 杭州 310027)
海洋在維持地球生態(tài)環(huán)境,促進(jìn)人類(lèi)可持續(xù)發(fā)展中扮演著愈來(lái)愈重要的角色,人類(lèi)對(duì)探索和挖掘海洋資源的需求與日俱增。近些年,隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,水下圖像處理技術(shù)得到了來(lái)自海洋科學(xué)技術(shù)領(lǐng)域研究學(xué)者的廣泛關(guān)注,計(jì)算機(jī)視覺(jué)技術(shù)在水下圖像上的應(yīng)用也取得了顯著的成果。水下圖像處理對(duì)大壩檢測(cè)、石油提煉、水下電纜鋪設(shè)、海洋資源勘探、海洋生物觀測(cè)等都具有重要意義。目前,水下圖像有聲學(xué)圖像和光學(xué)圖像兩種:水下聲學(xué)圖像的成像設(shè)備成本較高,精度較低,且缺乏直觀性;水下光學(xué)圖像相對(duì)分辨率較高,所得信息更具有直觀性。隨著無(wú)人有纜水下潛行器(Remote Operated Vehicle,ROV)和自主式水下航行器(Autonomous Underwater Vehicle,AUV)技術(shù)的成熟,人們可以很容易地通過(guò)ROV和AUV得到水下光學(xué)圖像。但是,由于光在水中衰減嚴(yán)重,通過(guò)水下光學(xué)圖像設(shè)備得到的圖像和視頻存在視野較窄、圖像質(zhì)量低等問(wèn)題。如果想獲取更廣視野和更多信息的圖像和視頻,難免會(huì)降低其分辨率和圖像質(zhì)量。圖像拼接技術(shù)成為了克服此問(wèn)題的有效方法。
圖像拼接技術(shù)即將多幅圖像重新合成并融合起來(lái),在不損失分辨率和圖像質(zhì)量的情況下,生成一幅廣角度的全景圖像。近年來(lái),圖像拼接技術(shù)發(fā)展迅速,包括Harris算法[1]、SUSAN算法,尺度不變特征變換匹配算法[2](Scale Invariant Feature Transform,SIFT)、加速穩(wěn)健特征算法[3](Speeded Up Robust Features,SURF)等,其中應(yīng)用最廣的是SIFT和SURF算法。SIFT算法雖然魯棒性強(qiáng)、可靠性好,但描述符維數(shù)較高,計(jì)算復(fù)雜,算法效率不高;SURF算法通過(guò)降維的方法將匹配速度提高了3倍,但文獻(xiàn)[4]的實(shí)驗(yàn)證明,SURF在尺度不變性、旋轉(zhuǎn)不變性等性能上的表現(xiàn)并不理想??紤]到水下環(huán)境和水下成像的特殊性,以及SIFT算法幾乎不受圖像光照、仿射變化(圖像旋轉(zhuǎn)角度、縮放大小等)和噪音等因素變化的影響,魯棒性較強(qiáng),容易辨識(shí)物體并提取特征,且準(zhǔn)確率較高,并且現(xiàn)在已經(jīng)有很多改進(jìn)SIFT算法[5-6],提升了算法的速度和效率。本文主要針對(duì)水下圖像特點(diǎn)對(duì)SIFT算法進(jìn)行改進(jìn)。
此外,對(duì)于水下圖像來(lái)說(shuō),由于光在水下的衰減性,光在水下傳播的前向散射效應(yīng)和后向散射噪聲、水中漂浮物、水對(duì)光成分中的藍(lán)、綠色成分吸收能力弱等問(wèn)題,使得水下圖像色彩失真嚴(yán)重(圖像偏綠色或藍(lán)色),亮度和對(duì)比度較低,有的圖像會(huì)出現(xiàn)類(lèi)似“白霧”(噪聲粒子較小)或“雪片”(噪聲粒子較大)覆蓋的現(xiàn)象。水下成像質(zhì)量差的問(wèn)題使水下圖像拼接的準(zhǔn)確度大大降低,限制了圖像拼接技術(shù)的效果。因此,在水下圖像拼接之前,對(duì)水下圖像進(jìn)行預(yù)處理極為重要。
本文充分考慮水下環(huán)境和水下成像的特點(diǎn),將多尺度融合原理的圖像增強(qiáng)算法[7]應(yīng)用于水下預(yù)處理圖像中,提升了水下圖像拼接的效果和正確率;并在前人基礎(chǔ)上對(duì)SIFT算法進(jìn)行了水下圖像配準(zhǔn)方法改進(jìn),提升水下圖像配準(zhǔn)和拼接的準(zhǔn)確率。
本文對(duì)水下圖像拼接的研究主要分為三個(gè)部分:水下圖像預(yù)處理、水下圖像配準(zhǔn)和圖像拼接。水下圖像預(yù)處理使用專(zhuān)門(mén)針對(duì)水下圖像設(shè)計(jì)的簡(jiǎn)化多尺度圖像融合算法,修復(fù)偏色嚴(yán)重圖像。水下圖像配準(zhǔn)使用改進(jìn)SIFT算法,其改進(jìn)主要體現(xiàn)在以下三步:從水下圖像中提取關(guān)鍵點(diǎn),特征提取采用自適應(yīng)閾值法篩選關(guān)鍵點(diǎn),擴(kuò)大關(guān)鍵點(diǎn)提取范圍;用Canny算法計(jì)算關(guān)鍵點(diǎn)的梯度和大小,在平滑噪聲的同時(shí)也可以保留圖像更多細(xì)節(jié),形成關(guān)鍵點(diǎn)描述符;使用平均Hausdorff距離和BBF最鄰近查詢法可以較快速地對(duì)關(guān)鍵點(diǎn)進(jìn)行粗匹配,再用RANSAC進(jìn)行進(jìn)一步精準(zhǔn)匹配。圖像拼接即通過(guò)配準(zhǔn)后的點(diǎn)計(jì)算變換矩陣,得到最終拼接圖像。本文水下圖像拼接研究整體算法流程如圖1所示。
圖1 算法流程
由于水下環(huán)境的特殊性和成像質(zhì)量問(wèn)題,水下圖像預(yù)處理的效果對(duì)圖像配準(zhǔn)的準(zhǔn)確度有極大影響,所以選擇合適的預(yù)處理算法非常關(guān)鍵。此前最常見(jiàn)的是基于直方圖的圖像增強(qiáng)算法,如:Shamsuddin等[8]使用基于直方圖的顏色校正來(lái)預(yù)處理圖像,增強(qiáng)圖像對(duì)比度,平衡亮度;Wen等[9]將水下彩色圖像根據(jù)RGB三個(gè)通道分成三幅單獨(dú)的彩色圖像,然后分別對(duì)三幅圖像進(jìn)行直方圖均衡化,將三幅圖像組合在一起,得到對(duì)比度高、色彩信息豐富的最終輸出圖像,但該方法沒(méi)有考慮RGB三個(gè)通道之間的關(guān)系,存在圖像顏色失真問(wèn)題;Hitam等[10]分別對(duì)圖像的RGB和HSV模型使用對(duì)比度受限自適應(yīng)直方圖均衡化(CLAHE)算法,然后將輸出圖像與歐幾里得范數(shù)相結(jié)合,得到最終輸出圖像。但是,基于直方圖的算法會(huì)帶來(lái)一定程度的噪聲放大,且不適用于深水域中顏色失衡嚴(yán)重的圖片。謝雨來(lái)等[11]采用了無(wú)需先驗(yàn)信息的快速圖像預(yù)處理方法,包括圖像對(duì)稱(chēng)拉伸后恢復(fù)、顏色空間轉(zhuǎn)換后恢復(fù)、小波去噪、亮度調(diào)整和色彩平衡等圖像增強(qiáng)常見(jiàn)步驟,但此方法并不專(zhuān)門(mén)針對(duì)于水下環(huán)境的特點(diǎn),對(duì)水下不同質(zhì)量的圖像不具有普適性,且步驟較多,算法復(fù)雜,運(yùn)算量較大,實(shí)時(shí)性不強(qiáng)。
綜合普適性、實(shí)時(shí)性等因素,本文采用的多尺度圖像融合算法專(zhuān)門(mén)針對(duì)水下成像特點(diǎn)構(gòu)建模型,算法快速有效,對(duì)單幀圖像和視頻都適用?;诙喑叨热诤系膱D像增強(qiáng)算法主要包括白平衡處理、對(duì)比度增強(qiáng)和多尺度圖像融合三個(gè)主要步驟。
因?yàn)樗懈鞣N光源會(huì)造成水下圖像產(chǎn)生許多色塊,且圖像色彩偏色嚴(yán)重,白平衡可以有效地恢復(fù)色彩均衡,所以對(duì)圖像進(jìn)行白平衡處理非常關(guān)鍵。但是,光在水深10 m以上的水域中傳播較差,深水圖像存在明顯的對(duì)比度不足,圖像被吸收的顏色難以恢復(fù),白平衡效果受限。目前有多種改進(jìn)白平衡處理方法,但對(duì)深水圖像的處理效果都不太理想。由于水下圖像只包含有鏡面反射的縮小區(qū)域,因此白斑算法[12]在深水圖像上的效果較差;由于水下圖像的對(duì)比度較低,邊緣不像自然圖像那么明顯,所以灰度邊緣算法處理效果也較差。綜上,充分考慮深水域環(huán)境特點(diǎn),白平衡方法采用了灰色世界算法,可以很好地解決在光照不足時(shí)圖像偏色嚴(yán)重問(wèn)題,使得深水域的圖像也可以色彩分布均勻,有效去除色塊,同時(shí)恢復(fù)圖像的白色和灰色陰影。
白平衡后的圖像無(wú)法直接使用,還需要進(jìn)行對(duì)比度增強(qiáng)處理。增強(qiáng)圖像對(duì)比度的常用方法有自適應(yīng)直方圖均衡化(AHE)和對(duì)比度受限自適應(yīng)直方圖均衡化(CLAHE)。AHE算法比過(guò)去的直方圖均衡法可以保留更多的圖像細(xì)節(jié),但也存在同時(shí)放大圖像噪聲的問(wèn)題。CLAHE算法通過(guò)對(duì)圖像灰度直方圖限制高度的方法,限制圖像局部對(duì)比度的增強(qiáng)幅度,可以達(dá)到較好的對(duì)比度增強(qiáng)效果。本文采用CLAHE算法。
在應(yīng)用融合算法時(shí),輸入權(quán)重包含以下幾個(gè)部分:
(1) 亮度權(quán)重:控制最終輸出圖像的亮度增益。此權(quán)值代表了每個(gè)R、G和B顏色通道與原始輸入圖像亮度之間的標(biāo)準(zhǔn)差。亮度權(quán)重可以讓圖像顏色更均衡。
(2) 對(duì)比度權(quán)重:圖像元素如邊緣和紋理會(huì)有較高權(quán)值。對(duì)比度權(quán)重通過(guò)對(duì)輸入圖像的灰度圖進(jìn)行拉普拉斯濾波產(chǎn)生。
(3) 色彩權(quán)重:控制最終輸出圖像的色彩飽和增益。色彩權(quán)重通過(guò)對(duì)每個(gè)像素高斯曲線計(jì)算飽和度值和最大飽和度值之間的距離生成。
(4) 顯著度權(quán)重:表示圖像鄰域顯著度。根據(jù)Achanta等[13]提出的顯著度計(jì)算公式生成此權(quán)重。
計(jì)算得到各權(quán)重后,將各權(quán)重值高斯均一化。最后采用多尺度融合方法對(duì)輸入和權(quán)重進(jìn)行融合。為了避免光暈現(xiàn)象,本文選擇了廣泛使用的多尺度拉普拉斯金字塔分解法,最終的輸出圖像是由拉普拉斯輸入和高斯歸一化權(quán)值在各個(gè)尺度上獨(dú)立混合得到的。水下原圖像與預(yù)處理后的圖像分別如圖2、圖3所示。
圖2 水下原圖像
圖3 預(yù)處理后的水下圖像
本文采用改進(jìn)SIFT算法進(jìn)行圖像配準(zhǔn)。SIFT算法主要處理以下場(chǎng)景的圖像:(1) 同一物體通過(guò)不同的拍攝儀器獲取到的圖像;(2) 同一物體在不同時(shí)間獲取到的圖像;(3) 同一物體從不同的角度獲取到的圖像。
水下圖像除了存在圖像質(zhì)量問(wèn)題之外,由于ROV和AUV等水下航行器會(huì)受到魚(yú)群、水流等水下環(huán)境因素的影響,水下攝像機(jī)拍攝到的圖像還會(huì)存在尺度變化大、旋轉(zhuǎn)角度大、亮度差異大和運(yùn)動(dòng)物體干擾(如魚(yú)群、水流)等問(wèn)題,也會(huì)影響圖像拼接的效果和準(zhǔn)確度。而SIFT算法基本不受目標(biāo)物體旋轉(zhuǎn)、縮放和平移等角度變換的影響,對(duì)圖像的光照變換、目標(biāo)遮擋、雜物場(chǎng)景和噪聲等有較好的魯棒性,所以SIFT算法比較適用于水下場(chǎng)景的圖像配準(zhǔn)。本文算法對(duì)SIFT算法進(jìn)行改進(jìn)。
SIFT算法首先在不同尺度空間上搜索水下圖像的關(guān)鍵點(diǎn),通過(guò)高斯模糊來(lái)獲取尺度空間。設(shè)給定輸入水下圖像I(x,y)像素坐標(biāo)是(x,y),尺度空間定義公式為:
L(x,y,σ)=G(x,y,σ)*I(x,y)
(1)
式中:σ是空間尺度因子;尺度空間L(x,y,σ)定義為變化尺度的高斯函數(shù)G(x,y,σ)和原圖像I(x,y)的卷積。其中,變化尺度的高斯函數(shù)公式為:
(2)
之后使用高斯差分函數(shù)(DoG)和常數(shù)因子k進(jìn)行鄰域極值檢測(cè):
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*I(x,y)=
L(x,y,kσ)-L(x,y,σ)
(3)
水下圖像每個(gè)像素與同尺度的8個(gè)鄰域像素和相鄰尺度的9個(gè)鄰域像素比較,檢測(cè)出局部極大值和極小值,識(shí)別對(duì)旋轉(zhuǎn)和尺度變化具有魯棒性的候選特征點(diǎn)。
標(biāo)準(zhǔn)SIFT在選取關(guān)鍵點(diǎn)時(shí),不選取對(duì)比度較低的不穩(wěn)定極值作為關(guān)鍵點(diǎn),直接篩去亮度在0.03以下的點(diǎn),這些點(diǎn)不參與極值檢測(cè)。但是大多數(shù)水下圖像的亮度都很低,因此亮度閾值設(shè)為0.03會(huì)使水下暗色圖像中的許多關(guān)鍵點(diǎn)被忽略。本文算法將閾值設(shè)定為圖像對(duì)比度的10%,對(duì)比度值10%以下的點(diǎn)才會(huì)作為低照度點(diǎn)處理,以此擴(kuò)大關(guān)鍵點(diǎn)范圍,提高水下圖像配準(zhǔn)準(zhǔn)確率。
為了使描述符具有旋轉(zhuǎn)不變性,根據(jù)水下圖像的局部特性為每個(gè)特征點(diǎn)分配一個(gè)基準(zhǔn)方向。標(biāo)準(zhǔn)SIFT算法使用圖像梯度的方法求取DoG金字塔檢測(cè)出的關(guān)鍵點(diǎn)的3σ鄰域窗口內(nèi)像素的梯度和方向分布特征。但是,這種微分運(yùn)算的實(shí)質(zhì)就是高通濾波,有加強(qiáng)高頻分量的副作用,造成水下圖像高頻噪聲部分也同時(shí)被放大,所以求取梯度算法應(yīng)該在提高對(duì)像素梯度敏感性的同時(shí)可以抑制水下圖像噪聲。本文采用Canny算法中的一階有限拆分計(jì)算偏導(dǎo)數(shù)方法來(lái)代替標(biāo)準(zhǔn)SIFT的圖像梯度算法,Canny算法既可以平滑噪聲,還可以保留圖像更多細(xì)節(jié)信息。由于現(xiàn)在圖像已經(jīng)經(jīng)過(guò)灰度化和高斯濾波,對(duì)每個(gè)關(guān)鍵點(diǎn)像素進(jìn)行一階有限拆分計(jì)算偏導(dǎo)數(shù),像素梯度的模值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)是關(guān)鍵點(diǎn)所在的尺度空間值。根據(jù)圖像特征點(diǎn)周?chē)鷧^(qū)域的梯度方向形成方向直方圖。在方向直方圖中,令m(x,y)取得局部最大值時(shí)的方向角θ(x,y)為圖像特征點(diǎn)局部梯度的方向。
標(biāo)準(zhǔn)SIFT算法使用歐氏距離進(jìn)行關(guān)鍵點(diǎn)匹配,本文考慮水下圖像光照變化較大、噪聲較多、易受雜物影響等特點(diǎn),采用先經(jīng)過(guò)基于平均值的Hausdorff距離(MHD)算法[14]和BBF最鄰近查詢法進(jìn)行關(guān)鍵點(diǎn)粗匹配,后采用RANSAC進(jìn)行關(guān)鍵點(diǎn)精匹配的方法進(jìn)行關(guān)鍵點(diǎn)匹配,在提高準(zhǔn)確率的同時(shí)也提升了計(jì)算速度。
首先,MHD算法計(jì)算關(guān)鍵點(diǎn)之間的距離公式如下:
(6)
式中:p為待配準(zhǔn)圖的特征點(diǎn)集合A中的個(gè)數(shù);hk(A,B)是從特征點(diǎn)集合A到特征點(diǎn)集合B排序后的距離(HD)值集合中的第K個(gè)值,K∈(0,1,…,p)。
接著,用BBF算法進(jìn)行關(guān)鍵點(diǎn)粗匹配。實(shí)驗(yàn)證明,用BBF進(jìn)行特征匹配比常用的KD-Tree算法更加快速和準(zhǔn)確。粗匹配后,用RANSAC算法對(duì)匹配點(diǎn)進(jìn)行提純,去除前面算法得到的不匹配的特征點(diǎn),以改善水下圖像光照不均、對(duì)比度低、噪聲明顯等問(wèn)題,解決水下圖像匹配效率低、魯棒性差的問(wèn)題。
最后,使用仿射變換求出變換矩陣,將兩幅圖像進(jìn)行加權(quán)融合,得到最終拼接圖像。變換矩陣公式如下:
(7)
式中:(x,y)是圖像原坐標(biāo);(x′,y′)是變化后圖像的坐標(biāo);(a11,a12,a21,a22)是尺度、旋轉(zhuǎn)角度和剪切角度等的參數(shù);ax和ay是圖像變換參數(shù)。
本文將提出的算法與標(biāo)準(zhǔn)SIFT算法進(jìn)行對(duì)比,算法在MATLAB 2017a環(huán)境中運(yùn)行,將實(shí)驗(yàn)結(jié)果從特征點(diǎn)個(gè)數(shù)、匹配點(diǎn)個(gè)數(shù)、匹配成功點(diǎn)個(gè)數(shù)、匹配正確率、RMSE值、耗時(shí)六個(gè)維度進(jìn)行對(duì)比。
均方根誤差(RMSE)統(tǒng)計(jì)了所有匹配點(diǎn)變換前后的坐標(biāo)偏差,RMSE值越小,說(shuō)明正確率越高。
(8)
(9)
(10)
式中:dx和dy是變換后圖像與原圖之間的偏差。實(shí)驗(yàn)結(jié)果如圖4和圖5所示。
(a) 標(biāo)準(zhǔn)SIFT算法
(b) 本文算法圖4 本文算法和標(biāo)準(zhǔn)SIFT算法特征點(diǎn)配準(zhǔn)情況比較
圖5 本文算法配準(zhǔn)結(jié)果
用標(biāo)準(zhǔn)SIFT算法處理上面兩幅圖像最終拼接失敗,用本文算法處理圖像最終拼接成功,證明本文算法可以將偏色嚴(yán)重的深水域圖像成功配準(zhǔn)并拼接。表1所示為算法的實(shí)驗(yàn)結(jié)果在數(shù)據(jù)上的比較??梢钥闯?,本文算法特征點(diǎn)和匹配點(diǎn)個(gè)數(shù)更多,匹配正確率更高,RMSE值更小。實(shí)驗(yàn)對(duì)50余幅水下圖像進(jìn)行拼接,驗(yàn)證了本文提出的圖像拼接算法更加貼合水下應(yīng)用場(chǎng)景,對(duì)圖像質(zhì)量低、光照弱、噪聲較大、失色嚴(yán)重的水下圖像魯棒性更強(qiáng),正確率更高,普適性更強(qiáng)。
表1 本文算法和標(biāo)準(zhǔn)SIFT算法的數(shù)據(jù)比較
水下圖像拼接算法研究在水下圖像處理領(lǐng)域中非常重要,也對(duì)后續(xù)圖像應(yīng)用于大壩檢測(cè)、石油提煉、水下電纜鋪設(shè)、海洋資源勘探、海洋生物觀測(cè)等工程中都具有重要意義。本文實(shí)驗(yàn)結(jié)果說(shuō)明,多尺度融合算法預(yù)處理水下圖像對(duì)后續(xù)圖像配準(zhǔn)效果有顯著提高作用,擴(kuò)大了關(guān)鍵點(diǎn)范圍,對(duì)噪聲的魯棒性增強(qiáng),拼接效果更好。同時(shí)從實(shí)驗(yàn)結(jié)果可見(jiàn),本文算法明顯地延長(zhǎng)了圖像拼接的時(shí)間,但因?yàn)槟壳皥D像多為離線處理,所以耗時(shí)增加的影響并不大。若研究實(shí)時(shí)性圖像處理系統(tǒng),未來(lái)將在提高拼接正確率、提升拼接效果的同時(shí),適當(dāng)縮短算法的耗時(shí)。