何偉業(yè),金 光
(寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 315211)
近年來,隨著計(jì)算機(jī)視覺、自動駕駛和物聯(lián)網(wǎng)等新技術(shù)的發(fā)展,無人船的研究和應(yīng)用也逐漸嶄露頭角[1].獲取航行姿態(tài)角是無人船航向控制的基礎(chǔ),不僅關(guān)系到航行安全,也是航跡跟蹤、自動避障等問題的重要組成部分,直接影響無人船的導(dǎo)航精度.計(jì)算機(jī)視覺技術(shù)的發(fā)展使得其在無人船領(lǐng)域可以得到有效運(yùn)用,通過計(jì)算機(jī)視覺獲取無人船環(huán)境信息和船體運(yùn)動信息成為可能.
圖像特征的提取和匹配在三維重建、視覺同步定位與建圖、圖像拼接、圖像融合、圖像檢索、目標(biāo)識別和跟蹤等計(jì)算機(jī)視覺應(yīng)用中具有重要的意義[2],是無人船相關(guān)視覺技術(shù)的基礎(chǔ).通過提取特征點(diǎn)并加以描述,最后計(jì)算特征點(diǎn)之間的相似度是常用的特征匹配方法,即歸結(jié)為特征的提取和圖像之間的對應(yīng)關(guān)系,旨在識別并對應(yīng)相同或者相似的結(jié)構(gòu)或內(nèi)容.
為應(yīng)對不同的場景和任務(wù)要求,研究者們在特征檢測和描述算法方面做了大量研究.常見的角點(diǎn)特征檢測方法包括Harris 角點(diǎn)[3]、小核值相似區(qū)[3]、加速分割測試特征(Features from Accelerated Segment Test,FAST)[3]以及集合特征檢測器和描述符的定向快速選擇(Oriented FAST and Rotated BRIEF,ORB)[4]等.同時(shí)也涌現(xiàn)出許多高精度要求的斑點(diǎn)特征描述方法,如尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)[3]、加速穩(wěn)健特征(Speeded Up Robust Features,SURF)[3]等.隨著基于學(xué)習(xí)的方法逐步應(yīng)用于圖像特征檢測,精確形狀的局部特征學(xué)習(xí)并定位的方法[5]、利用強(qiáng)化學(xué)習(xí)訓(xùn)練特征點(diǎn)檢測和描述的方法[6]也應(yīng)運(yùn)而生.這些特征檢測器相繼出現(xiàn)和發(fā)展,不斷改進(jìn)特征類型、效率、魯棒性以及準(zhǔn)確性,進(jìn)一步提高了特征的匹配度.
雖然針對不同場合提供了相應(yīng)的特征檢測和描述方法,但誤匹配的存在也會大大影響特征匹配算法的效果,因此,研究者們常常圍繞隨機(jī)采樣一致性(Random Sample Consensus,RANSAC)[7]、最小方差法(Least Squares,LS)[3]、最小中值法(Least Median Squares,LMedS)[8]3 種常用數(shù)學(xué)方法進(jìn)行改進(jìn),出現(xiàn)了DL-RANSAC[9]、自適應(yīng)閾值RANSAC[10]、運(yùn)動網(wǎng)格統(tǒng)計(jì)[11]等方法,大幅提高了特征匹配的準(zhǔn)確率.
上述方法使特征提取和匹配算法成功地運(yùn)用于圖像的運(yùn)動姿態(tài)檢測,但仍有一些問題需解決.具體來說,特征提取直接影響后期匹配算法的準(zhǔn)確性.傳統(tǒng)方法可以使用尺度、仿射信息等更多的圖像線索來提高魯棒性和精度,而基于學(xué)習(xí)的檢測器則可以捕獲更高級的圖像線索,但是往往耗時(shí)較長,且需要提供訓(xùn)練集.而在特征對匹配中,簡單的像素間相似度計(jì)算會導(dǎo)致匹配結(jié)果不盡如人意,同樣不必要的匹配對還會影響算法效率,增加計(jì)算耗時(shí).
而對于水域圖像匹配,因周邊環(huán)境變化多端,能提取的有效特征有限.基于上述分析,本文提出一種基于ORB 特征的無人船航行姿態(tài)角提取算法(Navigation Attitude Angle Extraction,NAAE),該算法增加水岸線分割任務(wù),并基于LMedS 和LS 對特征匹配策略進(jìn)行改進(jìn).算法流程如圖1 所示,首先對采集圖像進(jìn)行預(yù)處理,劃分有效區(qū)域,并計(jì)算ORB 描述子.接下來采用簡單特征匹配策略對其進(jìn)行初步篩選.然后進(jìn)一步優(yōu)化前后幀圖像的模型參數(shù).最后計(jì)算航行姿態(tài)角,即船體的俯仰角、橫傾角、航向角.

圖1 NAAE 流程
特征提取是特征匹配的第一步,如前所述,特征選擇應(yīng)考慮輸入圖像特性和所需精度.ORB 特征具有選擇、尺度不變性和快速等優(yōu)點(diǎn)[4],在實(shí)時(shí)性要求較高的計(jì)算機(jī)視覺任務(wù)中得以廣泛應(yīng)用.ORB 特征匹配通過建立特征集之間的對應(yīng)關(guān)系來匹配兩幅圖像中的ORB 描述子,通過對漢明距離的相似性度量,在所有描述子中找到最接近的匹配.由于所有描述子都參與匹配過程,不必要的描述子會增加特征匹配的計(jì)算量和耗時(shí),而且會影響算法準(zhǔn)確率.因此,在對圖像進(jìn)行特征提取前需要對其進(jìn)行預(yù)處理.
而對水域環(huán)境中的圖像匹配,圖像之間往往存在很多不重疊的動態(tài)區(qū)域,如水面、天空等動態(tài)變換的場景.對于這些區(qū)域的特征提取是不必要的,同時(shí)會增加整體計(jì)算量和時(shí)間.水中倒影更會增加后期誤匹配數(shù)量,從而降低整體準(zhǔn)確率.因此,為提高特征提取和匹配速度及有效性,本文對每一幀圖像進(jìn)行預(yù)處理,去除圖像的水面部分.
對于水岸線分割,目前大多基于擬合的方法進(jìn)行水岸線識別,進(jìn)而區(qū)分水域和岸基.然而在復(fù)雜的內(nèi)河水域環(huán)境中,水岸線大多極為不規(guī)則,此外水面常存在倒影、障礙物等干擾,因此擬合的方法效果不佳.而語義分割算法在自動駕駛領(lǐng)域中效果顯著,為其在水岸線分割任務(wù)中的運(yùn)用奠定了基礎(chǔ).
快速分割卷積神經(jīng)網(wǎng)絡(luò)(Fast Segmentation Convolutional Neural Network,Fast-SCNN)[12]基于現(xiàn)有的二分支網(wǎng)絡(luò)結(jié)構(gòu),引入學(xué)習(xí)下采樣模塊,以此控制計(jì)算開銷.因此Fast-SCNN 能實(shí)現(xiàn)實(shí)時(shí)的語義分割.本文采用該網(wǎng)絡(luò)架構(gòu)對圖像集進(jìn)行水岸線分割,分離水體,保留岸邊環(huán)境.圖2 展示了采用Fast-SCNN 進(jìn)行水岸線分割的結(jié)果,可以看到部分河岸被錯(cuò)誤地檢測為水,且無法準(zhǔn)確檢測水域邊界區(qū)域.

圖2 水岸線分割
在ORB 特征匹配中,除非兩幅圖像的描述子都能找到與之匹配的對方,否則匹配無效.由于所有描述子都參與匹配,因此濾波是描述子匹配的一個(gè)重要過程.本文假設(shè)當(dāng)描述子之間的漢明距離大于所有成對描述子最小距離的兩倍時(shí),兩者匹配無效.為防止最小距離過小,過度濾波,本文將其下限設(shè)置為20.接下來,本文采用普通的模式匹配(Brute-Force,BF)來獲得初始匹配對.
如果一個(gè)特征在特征集中有很好的區(qū)分度,那么說明其最近鄰特征和次近鄰特征之間有相當(dāng)大的差異.為保證特征之間具有良好的區(qū)分度,本文采用比值提純法,保留最近鄰與次近鄰比值在0.49~0.80 之間的匹配對,從而確保匹配的可信度.
在完成特征對的初始匹配后,誤匹配會對后期單應(yīng)性矩陣、旋轉(zhuǎn)矩陣等參數(shù)的計(jì)算造成很大影響.為此,一些擬合算法被用于減少誤匹配的影響,從而減小誤差.其中RANSAC 較常用,其反復(fù)從點(diǎn)集中隨機(jī)選擇一個(gè)子集,計(jì)算該子集中的單應(yīng)性矩陣,并根據(jù)與初始估計(jì)值的一致性來區(qū)分所有剩余數(shù)據(jù)點(diǎn),將其分為內(nèi)點(diǎn)和外點(diǎn),最后保留具有最大內(nèi)點(diǎn)的樣本.但是使用RANSAC 時(shí)需要確定最少點(diǎn)數(shù)、迭代次數(shù)、內(nèi)外點(diǎn)距離閾值以及一致性集合大小閾值等參數(shù),而且參數(shù)的確定直接影響匹配效果.
相比之下,LMedS 無需預(yù)設(shè)閾值,且可自適應(yīng)地區(qū)分內(nèi)點(diǎn)和外點(diǎn).但當(dāng)外點(diǎn)在樣本中所占比例超過一半時(shí),結(jié)果將會很差,而 LS 可以確保LMedS 利用足夠多的內(nèi)點(diǎn)[13],因此,本文結(jié)合LMedS 和LS 來優(yōu)化模型參數(shù),其框架如圖3 所示.

圖3 優(yōu)化模型參數(shù)


歐拉角將旋轉(zhuǎn)姿態(tài)分解為圍繞X軸、Y軸和Z軸的3 次旋轉(zhuǎn),通過給出的3個(gè)相互垂直的軸向,可描述現(xiàn)實(shí)世界空間的任意旋轉(zhuǎn)[14].而X軸、Y軸和Z軸對應(yīng)的3個(gè)歐拉角ψ、θ和φ可分別對應(yīng)無人船的俯仰角、橫傾角和航向角.
旋轉(zhuǎn)矩陣可由3個(gè)相互垂直的單位向量構(gòu)成,用于描述點(diǎn)在世界空間坐標(biāo)系下的姿態(tài),針對坐標(biāo)軸可以分別構(gòu)建對應(yīng)的旋轉(zhuǎn)矩陣R x(ψ)、R y(θ)以及R z(φ)[14]:

對于一個(gè)點(diǎn)在世界坐標(biāo)系中的描述,可以理解為先繞X軸旋轉(zhuǎn),然后繞Y軸旋轉(zhuǎn),最后繞Z軸旋轉(zhuǎn),即可得旋轉(zhuǎn)矩陣[14]:

根據(jù)2.2 節(jié)得到的旋轉(zhuǎn)矩陣R可分別求取歐拉角ψ、θ和φ[14]:

最近,清華大學(xué)與西北工業(yè)大學(xué)的研究人員公開了首個(gè)內(nèi)河無人駕駛數(shù)據(jù)集USVInland,旨在促進(jìn)無人船領(lǐng)域相關(guān)研究[15].該數(shù)據(jù)集的采集平臺配備了激光雷達(dá)、毫米波雷達(dá)、慣性測量單元(Inertial Measurement Unit,IMU)、雙目立體相機(jī)等相關(guān)設(shè)備.針對無人船在內(nèi)河航道中的感知和定位問題,提供了同步定位與建圖/里程表、立體匹配和水岸線分割等不同任務(wù)的相關(guān)數(shù)據(jù)集.
本文實(shí)驗(yàn)環(huán)境:i7-9700K 處理器,英偉達(dá)RTX2080Ti 顯卡,16 GB 內(nèi)存,Ubuntu 18.04 系統(tǒng).具體的水岸線分割采用USVInland 中的Water Segmentation 數(shù)據(jù)集進(jìn)行訓(xùn)練.然后采用USVInland 中的SLAM/Odometry 數(shù)據(jù)集進(jìn)行驗(yàn)證.
為驗(yàn)證本文算法的有效性,分別依據(jù)USVInland 中晴、雨、霧3 種天氣的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn).數(shù)據(jù)集提供了劃分好的圖片、傳感器數(shù)據(jù)、對應(yīng)時(shí)間戳及雙目立體相機(jī)的內(nèi)置參數(shù).首先以相鄰兩幅圖像為一組的方式抽取數(shù)據(jù),3 種天氣分別隨機(jī)抽取100 組作為測試圖像,根據(jù)對應(yīng)時(shí)間戳的IMU(相機(jī)和船體均各自提供)數(shù)據(jù)計(jì)算每組圖像對應(yīng)的航行姿態(tài)角.基于這些數(shù)據(jù),將常用的3 種方法(SIFT、SURF、ORB)與本文的NAAE 方法進(jìn)行對比測試.
實(shí)驗(yàn)用的3 組圖像如圖4 所示.

圖4 實(shí)驗(yàn)用圖
圖5為4 種方法在晴天狀態(tài)下一組圖像的特征匹配情況,圖中可以明顯看到前3 種方法均存在水面倒影的錯(cuò)誤匹配對,而本文NAAE 解決了這一問題.

圖5 特征匹配
本文以航行姿態(tài)角的平均準(zhǔn)確率E和平均運(yùn)行時(shí)間T評價(jià)算法準(zhǔn)確性及有效性.對求得的旋轉(zhuǎn)角度ψ′、θ′和φ′與實(shí)際的旋轉(zhuǎn)角度ψ、θ和φ進(jìn)行比較,以此計(jì)算準(zhǔn)確率e,其計(jì)算公式如下:

為了分析本文方法的先進(jìn)性,在有無水岸線分割任務(wù)的場景下,對比4 種算法的平均準(zhǔn)確率E和平均運(yùn)行時(shí)間T.此外再分析水岸線分割的必要性以及本文在特征匹配方面的提升.
在增加水岸線分割任務(wù)之后,4 種算法在3 種天氣狀況下的準(zhǔn)確率都有了一定的提升(表1),其中,晴天相較于其他兩種天氣狀況的結(jié)果提升較大.

表1 實(shí)驗(yàn)結(jié)果
在晴天時(shí),幾種算法的平均準(zhǔn)確率均達(dá)90%以上.在雨天時(shí),圖像中可明顯看出雨滴留在鏡頭上,且水汽較大,圖像清晰區(qū)域較少,因此4 種算法的平均準(zhǔn)確率都有所下降.在霧天時(shí),相比雨天減少了雨滴的影響,清晰度提升不少,但還是存在模糊區(qū)域.此時(shí)4 種算法的平均準(zhǔn)確率雖有所提高,但仍低于晴天條件的結(jié)果.在所有場景中,NAAE算法基本優(yōu)于其他3 種算法.
4 種算法在晴天、霧天、雨天3 種場景中的平均運(yùn)行時(shí)間也隨可見度降低而減少.相比SIFT 和SURF 兩種算法,ORB 算法和NAAE 算法的運(yùn)行時(shí)間相對較穩(wěn)定.在增加水岸線分割任務(wù)后,4 種算法的運(yùn)行時(shí)間都有明顯增加,但是NAAE 增加了水岸線分割任務(wù)后還能低于未增加該任務(wù)的SIFT和SURF 兩種算法.考慮實(shí)際使用中對實(shí)時(shí)性的要求,NAAE 算法相比其他幾種算法更適合.
針對水面倒影及精度低的問題,本文提出了一種基于ORB 特征的航行姿態(tài)角提取方法NAAE.實(shí)驗(yàn)結(jié)果表明,該方法能有效地提取航行姿態(tài)角,刪除冗余特征點(diǎn),減少錯(cuò)誤匹配,優(yōu)化參數(shù),加快航行姿態(tài)角的提取速率,進(jìn)一步提高精度,并且滿足實(shí)時(shí)性要求.
但在雨天、霧天等外部條件影響下,圖像上會出現(xiàn)模糊區(qū)域,導(dǎo)致提取的航行姿態(tài)角準(zhǔn)確性下降.另外,性能較低的設(shè)備尚難以支持計(jì)算實(shí)時(shí)性.后續(xù)研究將針對上述問題,繼續(xù)提升計(jì)算精度和效率,改善算法的設(shè)備適應(yīng)性.
寧波大學(xué)學(xué)報(bào)(理工版)2021年6期