田嘉禾,王寧,陳廷凱,李春艷,陳帥
1 大連海事大學(xué) 船舶電氣工程學(xué)院,遼寧 大連 116026
2 大連海事大學(xué) 輪機工程學(xué)院,遼寧 大連 116026
3 哈爾濱工程大學(xué) 船舶工程學(xué)院,黑龍江 哈爾濱 150001
隨著海洋智能體技術(shù)的快速發(fā)展,基于計算機視覺的水下環(huán)境智能感知技術(shù)在海洋開發(fā)中扮演著越來越重要的角色,尤其是在海底地形勘察、海洋環(huán)境監(jiān)測以及水下目標檢測識別等領(lǐng)域,具有重要的研究意義[1]。雙目立體匹配作為雙目視覺系統(tǒng)的核心技術(shù),其精度與效率對后續(xù)的三維重建等工作有著極大的影響[2]。高精度的圖像匹配技術(shù)引起了國內(nèi)外學(xué)者的廣泛關(guān)注,針對空氣中的立體匹配研究,Lowe[3]提出了具有旋轉(zhuǎn)和尺度不變性的SIFT (scale invariant feature transform)圖像描述方法,但使用高維的描述向量不可避免地導(dǎo)會致SIFT算法計算緩慢,難以滿足實時性要求。Bay等[4]等提出了穩(wěn)健加速SURF(speededup robust features)算法,即在匹配過程中采用具有64維向量的特征點描述子,可有效提高匹配效率。PCA-SIFT (principal components analysis-SIFT)算法[5]借助主成分分析的策略可改善SIFT平滑加權(quán)直方圖的描述方法,能使特征描述更加簡潔、快速;ORB (oriented FAST and rotated BRIEF)算法[6]結(jié)合FAST (features from accelerated segment test)算子與BRIEF (binary robust independent elementary features)描述符,可使匹配速率提升2個量級。上述算法雖然能夠提高匹配速率,但難以保證水下圖像匹配的準確率。
需要指出的是,一方面,水中折射會影響光線的照射方向[7],導(dǎo)致相機的水下成像模型與空氣中不同;另一方面,水下光照不均勻,會導(dǎo)致圖像特征點稀疏,空氣中的匹配方法難以直接平移應(yīng)用于水下圖像匹配。就目前而言,水下匹配方法主要分為稠密匹配與稀疏特征匹配2種。李雅倩等[8]提出了一種基于深度約束的半全局算法,通過采用拋物擬合法得到亞像素級的稠密視差圖,有效實現(xiàn)了高精度的水下稠密立體匹配;Gedge[9]提出了一種水下相機反投影折射模型并建立了曲線約束條件,可有效刪除誤匹配點,獲取稠密的特征點視差;Ferreira等[10]分析了折射因素對水下圖像的影響并進行了近似估計,在對水下圖像進行處理時,弱化折射因素對水下圖像的影響可提高水下雙目圖像匹配的正確率。針對稀疏特征匹配研究,張強等[11]提出了基于曲線約束的UCCSIFT(SIFT feature matching based on underwater curve constraint)特征匹配算法,通過對水下成像模型的分析建模,并引入折射率因素,構(gòu)建曲線約束方程來改善空氣中的極線約束模型,改善了SIFT算法在水下雙目立體匹配中誤匹配率高的問題,但對于約束剔除閾值的選取不具泛化性;李佳寬等[12]將ORB算法與水下曲線約束策略相結(jié)合,可有效剔除水下圖像的誤匹配點,提高了匹配效率。
需要注意的是,上述方法在匹配的過程中并未考量水下特征信息缺失的因素,剔除了大量帶有水下特征信息的關(guān)鍵點。另外,上述匹配算法的效率與精度還受最鄰近匹配閾值的影響,閾值的選取難以統(tǒng)一?;诖?,本文擬提出一種基于自適應(yīng)深度約束(ADC)的水下雙目圖像稀疏特征匹配算法,針對水下圖像中的稀疏特征,結(jié)合FAST算子與SIFT描述子來有效提高正確匹配點對的數(shù)量,以在保證算法穩(wěn)定性的同時提高匹配效率;然后,通過建立自適應(yīng)閾值約束的方法降低閾值選取對圖像匹配的影響,極大程度地還原圖像原始特征信息。
在水下拍攝的圖像受光照和介質(zhì)散射的影響,具有紋理不清、色彩單一以及光照不均的特點,若采用傳統(tǒng)的特征點檢測方法,將僅能獲取有限的特征點[13]。因此,本文擬采用FAST算法提取大量特征點,用于描述水下圖像的紋理信息,然后采用SIFT方法構(gòu)建高維匹配基元,用以保證匹配準確率。
FAST[14]作為一種角點檢測算法,不涉及特征點的特征描述。為獲取圖像中的特征點位置,首先,對圖像施加FAST算子以提取響應(yīng)值最大的特征點,然后,對相應(yīng)的特征點添加方向?qū)傩?,以此獲取具有位置和旋轉(zhuǎn)屬性的特征區(qū)域。
為了獲取不同位置的像素狀態(tài)S p→m,如圖1所示,以像素點P為圓心,以r=3為半徑作圓[14],覆蓋周圍的16個像素點分別對應(yīng)16個位置,則S p→m可以表示為:
圖1 FAST特征檢測原理圖Fig.1 Schematic diagram of FAST feature detection
式中:m∈{1,2,···,16},為點P周圍像素點的索引值;Ip→m為對應(yīng)像素點的像素值;t為檢測時的經(jīng)驗閾值。當周圍像素的像素值與P點像素值的差值分別小于、大于和等于經(jīng)驗閾值時,該位置像素點的狀態(tài)分別為d(dark),b(bright)和s(similar),分別表示周圍像素點的亮度為暗、亮和約等于P點的亮度。
為了獲得關(guān)鍵點集合,計算每個檢測到的角點得分,如式(2)所示。
其中,
式中,Sb,Sd分別指像素點狀態(tài)為b和d時該像素點所在位置的集合。計算以P點為中心的鄰域內(nèi)16個像素點與P點的像素值差的總和,保留響應(yīng)分數(shù)最大的特征點,得到最終的關(guān)鍵點集合。
SIFT[3]特征匹配方法由特征檢測與特征點描述2部分組成。針對特征點描述部分,SIFT方法通過計算像素梯度方向,為每個像素點分配高維的、具有獨特性的描述符,以使匹配度量不受角度影響。本文將借助SIFT描述子的穩(wěn)定性來對經(jīng)過FAST方法檢測后的關(guān)鍵點建立描述向量。首先,根據(jù)輸入的圖像建立尺度空間,即利用高斯函數(shù)對圖像進行模糊和降采樣工作來得到圖像高斯金字塔,計算公式為:
式 中:L(x,y,σ)為 高 斯 函 數(shù)G(x,y,σ)對 圖 像I(x,y)的 模糊函數(shù);σ2為分布方差。
經(jīng)高斯金字塔篩選出的關(guān)鍵點具有尺度不變性,在匹配過程中,為使匹配度量不受角度的影響,為每個關(guān)鍵點建立了獨特的描述符,如圖2所示。
圖2 關(guān)鍵點主方向分配原理圖Fig.2 Schematic diagram of main direction assignment of key points
采用16×16的窗口建立關(guān)鍵點描述區(qū)域,將關(guān)鍵點的基準方向旋轉(zhuǎn)至與x軸重合,其中,像素點梯度方向的選取如式(6)所示:
式中:m(x,y), θ(x,y)分別為圖像中像素點的梯度模值與方向角;L(x+1,y),L(x?1,y),L(x,y+1)和L(x,y?1)分別為對應(yīng)像素點在其鄰域內(nèi)的尺度空間函數(shù)。通過構(gòu)建關(guān)鍵點鄰域梯度分布直方圖,選取分布最廣的方向作為關(guān)建點的主方向。
旋轉(zhuǎn)后的坐標(x,y)表示為
式中: (xi,yi)為 關(guān)鍵點的初始坐標;θ0為繞基準方向旋轉(zhuǎn)的角度。在圖像半徑區(qū)域內(nèi),根據(jù)每個像素點的梯度幅值與方向,通過分配高斯權(quán)重來生成方向分布直方圖。
利用上述方法,在4×4區(qū)域內(nèi)生成8個方向的梯度方向直方圖,然后將每個方向的梯度累加,形成一個種子點。在16×16區(qū)域內(nèi)共生成了16個種子點,因為每個描述子包含鄰域128維相關(guān)信息,因此,每個關(guān)鍵點的描述向量都具備獨特性與互異性,提高了算法的抗噪能力。
使用歐氏距離對雙目圖像中待匹配點的相似性進行度量,即尋找與關(guān)鍵點歐氏距離最小的特征點,即可得到最近相鄰點距離N。根據(jù)歐氏距離計算次近相鄰點距離S,通過比較相鄰點距離與次近點距離的比值是否小于閾值T來判斷是否接受這一對匹配點,如式(8)所示:
式中,T為預(yù)設(shè)閾值,且0<T≤1。匹配對數(shù)會隨著預(yù)設(shè)閾值T的增大而增加,匹配對數(shù)增加,特征點匹配正確率卻逐漸降低;相反,當降低預(yù)設(shè)閾值T時,匹配的對數(shù)減少,匹配過程更加穩(wěn)定。
當雙目相機在水下環(huán)境工作時,空氣中的極線約束方法由于受到光的折射影響難以適用[15],因此在實際水下環(huán)境中,可通過考慮不同介質(zhì)之間的折射率,設(shè)計自適應(yīng)深度約束模型來減小圖像匹配過程中的搜索區(qū)域,提高匹配效率。
為了減小匹配過程中關(guān)鍵點的搜索范圍并提高匹配精度,在空氣中常用極線約束方法來對最終匹配結(jié)果進行篩選[16]??紤]到水介質(zhì)會對水下圖像帶來不良影響[17],為剔除誤匹配點,本文構(gòu)建了不同介質(zhì)間相對折射率的約束模型,具體如圖3所示。
圖3 水下反投影模型Fig.3 Underwater back projection model
圖3中:水下目標點Q在相機坐標系下的坐標為 (x2,y2,z2);投影到左、右成像面上的投影點分別為Pl和Pr;投影到折射平面上的投影點分別為Pl′和Pr′;雙目相機焦距為f;光心到水面的距離為h;目標點至水面的距離為d;θ為左成像點與相機坐標系下y軸的夾角;φ2和φ3分別為左、右折射面對應(yīng)的入射角;φ1和φ4分別為左、右折射面對應(yīng)的折射角。根據(jù)相似三角形原理,可將坐標(x1,y1,z1)表示為
相應(yīng)地,根據(jù)d和h以及折射點之間的位置關(guān)系,得到水下目標點Q的坐標 (x2,y2,z2)為
利用Q,和Or這3點的坐標,求得平面方程為
由于Pr的縱坐標z=f,由此可得Pr的坐標方程為
本文在SIFT算法的基礎(chǔ)上,結(jié)合FAST角點檢測算法,并引入水下折射率因素的約束條件,實行了水下雙目圖像特征匹配,具體的流程如圖4所示。匹配過程主要分為4個步驟:
圖4 水下圖像匹配流程圖Fig.4 Flow chart of underwater image matching
1) 利用FAST角點提取算法,通過設(shè)定閾值計算像素點狀態(tài),并提取左、右兩幅圖像關(guān)鍵點的位置。通過計算關(guān)鍵點的FAST得分,得到兩幅圖像各自的待匹配特征點集。
2) 使用SIFT算法對兩幅圖像的待匹配特征點集進行描述,并利用中心像素點周圍像素的梯度信息生成128維描述子。
3) 通過關(guān)鍵點的描述信息計算左、右圖像特征點的歐氏距離,得到最近相鄰點距離以及次近鄰點距離。計算2個距離的比值,篩選出比值小于閾值T的左、右圖像特征點來作為預(yù)備匹配點對,T值通常取為0.4~0.6[3]。
4) 利用相機的內(nèi)、外參數(shù)以及水下折射率,對不在約束方程的匹配點對進行篩選。在篩選過程中,由于誤差的存在,特征點不會完全落在約束曲線上,此時,檢測特征點與約束曲線的距離,當該距離小于設(shè)定閾值 τ時,保留該匹配結(jié)果,其中 τ的初值為1像素,即 τ0=lpix(lpix為圖像中相鄰兩像素點的間距)。當保留點對數(shù)少于總匹配點對數(shù)的50%時,重新設(shè)置閾值,使閾值大小增加一個像素距離,即 τ1=τ0+lpix,然后擴大搜索區(qū)域,重新進行匹配點對的剔除操作,直至循環(huán)i次,閾值 τi=τ0+ilpix,使保留特征點對數(shù)滿足條件,從而獲取最終的匹配點對。
為了證明本文算法的有效性與優(yōu)越性,將本文所提算法與經(jīng)典的SIFT[3],SURF[4]以及UCCSIFT[11]在匹配對數(shù)、準確率和實時性方面進行了對比。為了體現(xiàn)本文算法的魯棒性和普適性,本文針對自采數(shù)據(jù)與公開數(shù)據(jù)集[18-19]分別計算了匹配結(jié)果,數(shù)據(jù)采集平臺如圖5所示。
圖5 水下數(shù)據(jù)采集平臺Fig.5 Underwater data acquisition platform
實驗所用相機尺寸為80 mm×22 mm×25 mm,分辨率為640×480,視場角為72°,焦距為3.6 mm,數(shù)據(jù)采集地址為大連海事大學(xué)凌海港口水域。為避免水域特性對實驗結(jié)果產(chǎn)生影響,選取了公開的數(shù)據(jù)集[18-19]。其中,文獻[18]中數(shù)據(jù)集所選取圖片的分辨率為512×512,水體顏色偏綠,水質(zhì)較為渾濁;文獻[19]中數(shù)據(jù)集所選取圖片的分辨率為640×360,水體呈藍色,數(shù)據(jù)的亮度皆較暗。實驗平臺基于win10系統(tǒng),Intel Core i3 8代處理器,配置Visual Studio 2013與Opencv2.4環(huán)境。本文通過張正友標定法計算了相機內(nèi)部參數(shù),如表1所示。表中,(fx,fy)為相機的焦距相關(guān)參數(shù),(u0,v0)為像素坐標系下原點坐標,K為相機畸變參數(shù)矩陣。
表1 雙目相機內(nèi)部參數(shù)Table1 Internal parameters of binocular camera
在3種典型的水下環(huán)境(暗光、旋轉(zhuǎn)、渾濁)下共選取6組圖片進行了對比,相應(yīng)的匹配結(jié)果如圖6所示。
圖6 不同數(shù)據(jù)集匹配結(jié)果Fig.6 Matching results under different data sets
如圖6所示,在3種典型的水下環(huán)境中,SIFT與SURF算法在匹配的過程中同名點之間連線的斜率不一致,存在明顯的誤匹配點;基于水下約束的UCC-SIFT算法則能明顯降低誤匹配點對,但特征點數(shù)量有所下降。需要強調(diào)的是,本文所提的ADC-UFM算法與傳統(tǒng)的SIFT,SURF算法相比,能夠明顯剔除誤匹配點,與UCC-SIFT算法相比能夠保留更多的特征點對,且不受水下環(huán)境影響,更加穩(wěn)定。
除上述匹配結(jié)果圖外,采用4種匹配算法在T=0.4的情況下測得相應(yīng)的量化指標如表2所示。
如表2所示,在匹配點對數(shù)方面,采用本文所提ADC-UFM算法對雙目圖像匹配進行條件約束時,匹配點對數(shù)在絕大多數(shù)水下環(huán)境中均少于傳統(tǒng)的SIFT和SURF算法,考慮到水下圖像特征點易聚簇的情況,本文所提方法在迭代閾值 τ的過程中易接受多余的特征點,因此自采數(shù)據(jù)在渾濁環(huán)境下的特征點對數(shù)高于SIFT算法,且此時本文所提ADC-UFM算法的準確率有所下降,低于UCC-SIFT算法。另外,借助FAST算子,本文所提ADC-UFM算法在特征提取方面能夠比UCC-SIFT算法獲取更多的匹配點對數(shù),更適用于雙目視覺后續(xù)的三維重建工作。
表2 實驗結(jié)果數(shù)據(jù)對比Table2 Comparison of experimental data
在匹配正確率方面,對于缺乏誤匹配點剔除策略的SIFT和SURF算法,其準確率在上述3種典型水下環(huán)境中均低于本文所提ADC-UFM算法。需要指出的是,缺乏自適應(yīng)閾值選取的UCC-SIFT算法不可避免地會剔除正確的匹配點對。因此,本文所提ADC-UFM算法的匹配正確率要高于UCC-SIFT算法。圖7所示為在自建數(shù)據(jù)集和公開數(shù)據(jù)集下不同算法匹配正確率與閾值T的關(guān)系,由于數(shù)據(jù)集包含的圖像較多,所以每組數(shù)據(jù)集皆采用50組圖像。由圖7可知,與SIFT,SURF和UCC-SIFT算法相比,本文所提ADC-UFM方法在T=0.4~0.8之間有著較高的準確率,在T=0.4時準確率能夠達到85.2%。
圖7 不同算法匹配準確率對比圖Fig.7 Comparison of matching accuracy of different algorithms
在匹配效率方面,由于采用的是外加深度約束策略,本文所提ADC-UFM算法在匹配效率方面要低于無約束策略的SIFT和SURF算法。但相比SIFT特征提取方法,因本文采用了效率更高的FAST算子,因此在旋轉(zhuǎn)、渾濁和暗光的水下環(huán)境中,其匹配速率高于UCC-SIFT算法。
本文提出了一種基于FAST與SIFT算法相結(jié)合的高精度雙目水下圖像特征匹配方法。通過考慮水下折射率,明顯提升了水下匹配約束模型的可用性,能夠有效剔除誤匹配點對。通過設(shè)計自適應(yīng)閾值選取模塊,最大程度地保留了水下圖像特征信息的完整性。實驗結(jié)果和比較分析驗證了本文所提出ADC-UFM算法的有效性和優(yōu)越性,為基于雙目視覺的三維重建以及測距等提供了新的技術(shù)手段。需要指出的是,ADC-UFM算法在抵抗光照性與匹配效率方面略有不足,還有一定的提升空間。