田嘉禾,王寧,陳廷凱,李春艷,陳帥
1 大連海事大學 船舶電氣工程學院,遼寧 大連 116026
2 大連海事大學 輪機工程學院,遼寧 大連 116026
3 哈爾濱工程大學 船舶工程學院,黑龍江 哈爾濱 150001
隨著海洋智能體技術的快速發展,基于計算機視覺的水下環境智能感知技術在海洋開發中扮演著越來越重要的角色,尤其是在海底地形勘察、海洋環境監測以及水下目標檢測識別等領域,具有重要的研究意義[1]。雙目立體匹配作為雙目視覺系統的核心技術,其精度與效率對后續的三維重建等工作有著極大的影響[2]。高精度的圖像匹配技術引起了國內外學者的廣泛關注,針對空氣中的立體匹配研究,Lowe[3]提出了具有旋轉和尺度不變性的SIFT (scale invariant feature transform)圖像描述方法,但使用高維的描述向量不可避免地導會致SIFT算法計算緩慢,難以滿足實時性要求。Bay等[4]等提出了穩健加速SURF(speededup robust features)算法,即在匹配過程中采用具有64維向量的特征點描述子,可有效提高匹配效率。PCA-SIFT (principal components analysis-SIFT)算法[5]借助主成分分析的策略可改善SIFT平滑加權直方圖的描述方法,能使特征描述更加簡潔、快速;ORB (oriented FAST and rotated BRIEF)算法[6]結合FAST (features from accelerated segment test)算子與BRIEF (binary robust independent elementary features)描述符,可使匹配速率提升2個量級。上述算法雖然能夠提高匹配速率,但難以保證水下圖像匹配的準確率。
需要指出的是,一方面,水中折射會影響光線的照射方向[7],導致相機的水下成像模型與空氣中不同;另一方面,水下光照不均勻,會導致圖像特征點稀疏,空氣中的匹配方法難以直接平移應用于水下圖像匹配。就目前而言,水下匹配方法主要分為稠密匹配與稀疏特征匹配2種。李雅倩等[8]提出了一種基于深度約束的半全局算法,通過采用拋物擬合法得到亞像素級的稠密視差圖,有效實現了高精度的水下稠密立體匹配;Gedge[9]提出了一種水下相機反投影折射模型并建立了曲線約束條件,可有效刪除誤匹配點,獲取稠密的特征點視差;Ferreira等[10]分析了折射因素對水下圖像的影響并進行了近似估計,在對水下圖像進行處理時,弱化折射因素對水下圖像的影響可提高水下雙目圖像匹配的正確率。針對稀疏特征匹配研究,張強等[11]提出了基于曲線約束的UCCSIFT(SIFT feature matching based on underwater curve constraint)特征匹配算法,通過對水下成像模型的分析建模,并引入折射率因素,構建曲線約束方程來改善空氣中的極線約束模型,改善了SIFT算法在水下雙目立體匹配中誤匹配率高的問題,但對于約束剔除閾值的選取不具泛化性;李佳寬等[12]將ORB算法與水下曲線約束策略相結合,可有效剔除水下圖像的誤匹配點,提高了匹配效率。
需要注意的是,上述方法在匹配的過程中并未考量水下特征信息缺失的因素,剔除了大量帶有水下特征信息的關鍵點。另外,上述匹配算法的效率與精度還受最鄰近匹配閾值的影響,閾值的選取難以統一。基于此,本文擬提出一種基于自適應深度約束(ADC)的水下雙目圖像稀疏特征匹配算法,針對水下圖像中的稀疏特征,結合FAST算子與SIFT描述子來有效提高正確匹配點對的數量,以在保證算法穩定性的同時提高匹配效率;然后,通過建立自適應閾值約束的方法降低閾值選取對圖像匹配的影響,極大程度地還原圖像原始特征信息。
在水下拍攝的圖像受光照和介質散射的影響,具有紋理不清、色彩單一以及光照不均的特點,若采用傳統的特征點檢測方法,將僅能獲取有限的特征點[13]。因此,本文擬采用FAST算法提取大量特征點,用于描述水下圖像的紋理信息,然后采用SIFT方法構建高維匹配基元,用以保證匹配準確率。
FAST[14]作為一種角點檢測算法,不涉及特征點的特征描述。為獲取圖像中的特征點位置,首先,對圖像施加FAST算子以提取響應值最大的特征點,然后,對相應的特征點添加方向屬性,以此獲取具有位置和旋轉屬性的特征區域。
為了獲取不同位置的像素狀態S p→m,如圖1所示,以像素點P為圓心,以r=3為半徑作圓[14],覆蓋周圍的16個像素點分別對應16個位置,則S p→m可以表示為:

圖1 FAST特征檢測原理圖Fig.1 Schematic diagram of FAST feature detection

式中:m∈{1,2,···,16},為點P周圍像素點的索引值;Ip→m為對應像素點的像素值;t為檢測時的經驗閾值。當周圍像素的像素值與P點像素值的差值分別小于、大于和等于經驗閾值時,該位置像素點的狀態分別為d(dark),b(bright)和s(similar),分別表示周圍像素點的亮度為暗、亮和約等于P點的亮度。
為了獲得關鍵點集合,計算每個檢測到的角點得分,如式(2)所示。

其中,

式中,Sb,Sd分別指像素點狀態為b和d時該像素點所在位置的集合。計算以P點為中心的鄰域內16個像素點與P點的像素值差的總和,保留響應分數最大的特征點,得到最終的關鍵點集合。
SIFT[3]特征匹配方法由特征檢測與特征點描述2部分組成。針對特征點描述部分,SIFT方法通過計算像素梯度方向,為每個像素點分配高維的、具有獨特性的描述符,以使匹配度量不受角度影響。本文將借助SIFT描述子的穩定性來對經過FAST方法檢測后的關鍵點建立描述向量。首先,根據輸入的圖像建立尺度空間,即利用高斯函數對圖像進行模糊和降采樣工作來得到圖像高斯金字塔,計算公式為:

式 中:L(x,y,σ)為 高 斯 函 數G(x,y,σ)對 圖 像I(x,y)的 模糊函數;σ2為分布方差。
經高斯金字塔篩選出的關鍵點具有尺度不變性,在匹配過程中,為使匹配度量不受角度的影響,為每個關鍵點建立了獨特的描述符,如圖2所示。

圖2 關鍵點主方向分配原理圖Fig.2 Schematic diagram of main direction assignment of key points
采用16×16的窗口建立關鍵點描述區域,將關鍵點的基準方向旋轉至與x軸重合,其中,像素點梯度方向的選取如式(6)所示:

式中:m(x,y), θ(x,y)分別為圖像中像素點的梯度模值與方向角;L(x+1,y),L(x?1,y),L(x,y+1)和L(x,y?1)分別為對應像素點在其鄰域內的尺度空間函數。通過構建關鍵點鄰域梯度分布直方圖,選取分布最廣的方向作為關建點的主方向。
旋轉后的坐標(x,y)表示為

式中: (xi,yi)為 關鍵點的初始坐標;θ0為繞基準方向旋轉的角度。在圖像半徑區域內,根據每個像素點的梯度幅值與方向,通過分配高斯權重來生成方向分布直方圖。
利用上述方法,在4×4區域內生成8個方向的梯度方向直方圖,然后將每個方向的梯度累加,形成一個種子點。在16×16區域內共生成了16個種子點,因為每個描述子包含鄰域128維相關信息,因此,每個關鍵點的描述向量都具備獨特性與互異性,提高了算法的抗噪能力。
使用歐氏距離對雙目圖像中待匹配點的相似性進行度量,即尋找與關鍵點歐氏距離最小的特征點,即可得到最近相鄰點距離N。根據歐氏距離計算次近相鄰點距離S,通過比較相鄰點距離與次近點距離的比值是否小于閾值T來判斷是否接受這一對匹配點,如式(8)所示:

式中,T為預設閾值,且0<T≤1。匹配對數會隨著預設閾值T的增大而增加,匹配對數增加,特征點匹配正確率卻逐漸降低;相反,當降低預設閾值T時,匹配的對數減少,匹配過程更加穩定。
當雙目相機在水下環境工作時,空氣中的極線約束方法由于受到光的折射影響難以適用[15],因此在實際水下環境中,可通過考慮不同介質之間的折射率,設計自適應深度約束模型來減小圖像匹配過程中的搜索區域,提高匹配效率。
為了減小匹配過程中關鍵點的搜索范圍并提高匹配精度,在空氣中常用極線約束方法來對最終匹配結果進行篩選[16]。考慮到水介質會對水下圖像帶來不良影響[17],為剔除誤匹配點,本文構建了不同介質間相對折射率的約束模型,具體如圖3所示。

圖3 水下反投影模型Fig.3 Underwater back projection model
圖3中:水下目標點Q在相機坐標系下的坐標為 (x2,y2,z2);投影到左、右成像面上的投影點分別為Pl和Pr;投影到折射平面上的投影點分別為Pl′和Pr′;雙目相機焦距為f;光心到水面的距離為h;目標點至水面的距離為d;θ為左成像點與相機坐標系下y軸的夾角;φ2和φ3分別為左、右折射面對應的入射角;φ1和φ4分別為左、右折射面對應的折射角。根據相似三角形原理,可將坐標(x1,y1,z1)表示為

相應地,根據d和h以及折射點之間的位置關系,得到水下目標點Q的坐標 (x2,y2,z2)為


利用Q,和Or這3點的坐標,求得平面方程為


由于Pr的縱坐標z=f,由此可得Pr的坐標方程為

本文在SIFT算法的基礎上,結合FAST角點檢測算法,并引入水下折射率因素的約束條件,實行了水下雙目圖像特征匹配,具體的流程如圖4所示。匹配過程主要分為4個步驟:

圖4 水下圖像匹配流程圖Fig.4 Flow chart of underwater image matching
1) 利用FAST角點提取算法,通過設定閾值計算像素點狀態,并提取左、右兩幅圖像關鍵點的位置。通過計算關鍵點的FAST得分,得到兩幅圖像各自的待匹配特征點集。
2) 使用SIFT算法對兩幅圖像的待匹配特征點集進行描述,并利用中心像素點周圍像素的梯度信息生成128維描述子。
3) 通過關鍵點的描述信息計算左、右圖像特征點的歐氏距離,得到最近相鄰點距離以及次近鄰點距離。計算2個距離的比值,篩選出比值小于閾值T的左、右圖像特征點來作為預備匹配點對,T值通常取為0.4~0.6[3]。
4) 利用相機的內、外參數以及水下折射率,對不在約束方程的匹配點對進行篩選。在篩選過程中,由于誤差的存在,特征點不會完全落在約束曲線上,此時,檢測特征點與約束曲線的距離,當該距離小于設定閾值 τ時,保留該匹配結果,其中 τ的初值為1像素,即 τ0=lpix(lpix為圖像中相鄰兩像素點的間距)。當保留點對數少于總匹配點對數的50%時,重新設置閾值,使閾值大小增加一個像素距離,即 τ1=τ0+lpix,然后擴大搜索區域,重新進行匹配點對的剔除操作,直至循環i次,閾值 τi=τ0+ilpix,使保留特征點對數滿足條件,從而獲取最終的匹配點對。
為了證明本文算法的有效性與優越性,將本文所提算法與經典的SIFT[3],SURF[4]以及UCCSIFT[11]在匹配對數、準確率和實時性方面進行了對比。為了體現本文算法的魯棒性和普適性,本文針對自采數據與公開數據集[18-19]分別計算了匹配結果,數據采集平臺如圖5所示。

圖5 水下數據采集平臺Fig.5 Underwater data acquisition platform
實驗所用相機尺寸為80 mm×22 mm×25 mm,分辨率為640×480,視場角為72°,焦距為3.6 mm,數據采集地址為大連海事大學凌海港口水域。為避免水域特性對實驗結果產生影響,選取了公開的數據集[18-19]。其中,文獻[18]中數據集所選取圖片的分辨率為512×512,水體顏色偏綠,水質較為渾濁;文獻[19]中數據集所選取圖片的分辨率為640×360,水體呈藍色,數據的亮度皆較暗。實驗平臺基于win10系統,Intel Core i3 8代處理器,配置Visual Studio 2013與Opencv2.4環境。本文通過張正友標定法計算了相機內部參數,如表1所示。表中,(fx,fy)為相機的焦距相關參數,(u0,v0)為像素坐標系下原點坐標,K為相機畸變參數矩陣。

表1 雙目相機內部參數Table1 Internal parameters of binocular camera
在3種典型的水下環境(暗光、旋轉、渾濁)下共選取6組圖片進行了對比,相應的匹配結果如圖6所示。

圖6 不同數據集匹配結果Fig.6 Matching results under different data sets
如圖6所示,在3種典型的水下環境中,SIFT與SURF算法在匹配的過程中同名點之間連線的斜率不一致,存在明顯的誤匹配點;基于水下約束的UCC-SIFT算法則能明顯降低誤匹配點對,但特征點數量有所下降。需要強調的是,本文所提的ADC-UFM算法與傳統的SIFT,SURF算法相比,能夠明顯剔除誤匹配點,與UCC-SIFT算法相比能夠保留更多的特征點對,且不受水下環境影響,更加穩定。
除上述匹配結果圖外,采用4種匹配算法在T=0.4的情況下測得相應的量化指標如表2所示。
如表2所示,在匹配點對數方面,采用本文所提ADC-UFM算法對雙目圖像匹配進行條件約束時,匹配點對數在絕大多數水下環境中均少于傳統的SIFT和SURF算法,考慮到水下圖像特征點易聚簇的情況,本文所提方法在迭代閾值 τ的過程中易接受多余的特征點,因此自采數據在渾濁環境下的特征點對數高于SIFT算法,且此時本文所提ADC-UFM算法的準確率有所下降,低于UCC-SIFT算法。另外,借助FAST算子,本文所提ADC-UFM算法在特征提取方面能夠比UCC-SIFT算法獲取更多的匹配點對數,更適用于雙目視覺后續的三維重建工作。

表2 實驗結果數據對比Table2 Comparison of experimental data
在匹配正確率方面,對于缺乏誤匹配點剔除策略的SIFT和SURF算法,其準確率在上述3種典型水下環境中均低于本文所提ADC-UFM算法。需要指出的是,缺乏自適應閾值選取的UCC-SIFT算法不可避免地會剔除正確的匹配點對。因此,本文所提ADC-UFM算法的匹配正確率要高于UCC-SIFT算法。圖7所示為在自建數據集和公開數據集下不同算法匹配正確率與閾值T的關系,由于數據集包含的圖像較多,所以每組數據集皆采用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算子,因此在旋轉、渾濁和暗光的水下環境中,其匹配速率高于UCC-SIFT算法。
本文提出了一種基于FAST與SIFT算法相結合的高精度雙目水下圖像特征匹配方法。通過考慮水下折射率,明顯提升了水下匹配約束模型的可用性,能夠有效剔除誤匹配點對。通過設計自適應閾值選取模塊,最大程度地保留了水下圖像特征信息的完整性。實驗結果和比較分析驗證了本文所提出ADC-UFM算法的有效性和優越性,為基于雙目視覺的三維重建以及測距等提供了新的技術手段。需要指出的是,ADC-UFM算法在抵抗光照性與匹配效率方面略有不足,還有一定的提升空間。