何偉業(yè),金 光
(寧波大學 信息科學與工程學院,浙江 寧波 315211)
近年來,隨著計算機視覺、自動駕駛和物聯(lián)網(wǎng)等新技術的發(fā)展,無人船的研究和應用也逐漸嶄露頭角[1].獲取航行姿態(tài)角是無人船航向控制的基礎,不僅關系到航行安全,也是航跡跟蹤、自動避障等問題的重要組成部分,直接影響無人船的導航精度.計算機視覺技術的發(fā)展使得其在無人船領域可以得到有效運用,通過計算機視覺獲取無人船環(huán)境信息和船體運動信息成為可能.
圖像特征的提取和匹配在三維重建、視覺同步定位與建圖、圖像拼接、圖像融合、圖像檢索、目標識別和跟蹤等計算機視覺應用中具有重要的意義[2],是無人船相關視覺技術的基礎.通過提取特征點并加以描述,最后計算特征點之間的相似度是常用的特征匹配方法,即歸結為特征的提取和圖像之間的對應關系,旨在識別并對應相同或者相似的結構或內容.
為應對不同的場景和任務要求,研究者們在特征檢測和描述算法方面做了大量研究.常見的角點特征檢測方法包括Harris 角點[3]、小核值相似區(qū)[3]、加速分割測試特征(Features from Accelerated Segment Test,FAST)[3]以及集合特征檢測器和描述符的定向快速選擇(Oriented FAST and Rotated BRIEF,ORB)[4]等.同時也涌現(xiàn)出許多高精度要求的斑點特征描述方法,如尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)[3]、加速穩(wěn)健特征(Speeded Up Robust Features,SURF)[3]等.隨著基于學習的方法逐步應用于圖像特征檢測,精確形狀的局部特征學習并定位的方法[5]、利用強化學習訓練特征點檢測和描述的方法[6]也應運而生.這些特征檢測器相繼出現(xiàn)和發(fā)展,不斷改進特征類型、效率、魯棒性以及準確性,進一步提高了特征的匹配度.
雖然針對不同場合提供了相應的特征檢測和描述方法,但誤匹配的存在也會大大影響特征匹配算法的效果,因此,研究者們常常圍繞隨機采樣一致性(Random Sample Consensus,RANSAC)[7]、最小方差法(Least Squares,LS)[3]、最小中值法(Least Median Squares,LMedS)[8]3 種常用數(shù)學方法進行改進,出現(xiàn)了DL-RANSAC[9]、自適應閾值RANSAC[10]、運動網(wǎng)格統(tǒng)計[11]等方法,大幅提高了特征匹配的準確率.
上述方法使特征提取和匹配算法成功地運用于圖像的運動姿態(tài)檢測,但仍有一些問題需解決.具體來說,特征提取直接影響后期匹配算法的準確性.傳統(tǒng)方法可以使用尺度、仿射信息等更多的圖像線索來提高魯棒性和精度,而基于學習的檢測器則可以捕獲更高級的圖像線索,但是往往耗時較長,且需要提供訓練集.而在特征對匹配中,簡單的像素間相似度計算會導致匹配結果不盡如人意,同樣不必要的匹配對還會影響算法效率,增加計算耗時.
而對于水域圖像匹配,因周邊環(huán)境變化多端,能提取的有效特征有限.基于上述分析,本文提出一種基于ORB 特征的無人船航行姿態(tài)角提取算法(Navigation Attitude Angle Extraction,NAAE),該算法增加水岸線分割任務,并基于LMedS 和LS 對特征匹配策略進行改進.算法流程如圖1 所示,首先對采集圖像進行預處理,劃分有效區(qū)域,并計算ORB 描述子.接下來采用簡單特征匹配策略對其進行初步篩選.然后進一步優(yōu)化前后幀圖像的模型參數(shù).最后計算航行姿態(tài)角,即船體的俯仰角、橫傾角、航向角.
圖1 NAAE 流程
特征提取是特征匹配的第一步,如前所述,特征選擇應考慮輸入圖像特性和所需精度.ORB 特征具有選擇、尺度不變性和快速等優(yōu)點[4],在實時性要求較高的計算機視覺任務中得以廣泛應用.ORB 特征匹配通過建立特征集之間的對應關系來匹配兩幅圖像中的ORB 描述子,通過對漢明距離的相似性度量,在所有描述子中找到最接近的匹配.由于所有描述子都參與匹配過程,不必要的描述子會增加特征匹配的計算量和耗時,而且會影響算法準確率.因此,在對圖像進行特征提取前需要對其進行預處理.
而對水域環(huán)境中的圖像匹配,圖像之間往往存在很多不重疊的動態(tài)區(qū)域,如水面、天空等動態(tài)變換的場景.對于這些區(qū)域的特征提取是不必要的,同時會增加整體計算量和時間.水中倒影更會增加后期誤匹配數(shù)量,從而降低整體準確率.因此,為提高特征提取和匹配速度及有效性,本文對每一幀圖像進行預處理,去除圖像的水面部分.
對于水岸線分割,目前大多基于擬合的方法進行水岸線識別,進而區(qū)分水域和岸基.然而在復雜的內河水域環(huán)境中,水岸線大多極為不規(guī)則,此外水面常存在倒影、障礙物等干擾,因此擬合的方法效果不佳.而語義分割算法在自動駕駛領域中效果顯著,為其在水岸線分割任務中的運用奠定了基礎.
快速分割卷積神經(jīng)網(wǎng)絡(Fast Segmentation Convolutional Neural Network,Fast-SCNN)[12]基于現(xiàn)有的二分支網(wǎng)絡結構,引入學習下采樣模塊,以此控制計算開銷.因此Fast-SCNN 能實現(xiàn)實時的語義分割.本文采用該網(wǎng)絡架構對圖像集進行水岸線分割,分離水體,保留岸邊環(huán)境.圖2 展示了采用Fast-SCNN 進行水岸線分割的結果,可以看到部分河岸被錯誤地檢測為水,且無法準確檢測水域邊界區(qū)域.
圖2 水岸線分割
在ORB 特征匹配中,除非兩幅圖像的描述子都能找到與之匹配的對方,否則匹配無效.由于所有描述子都參與匹配,因此濾波是描述子匹配的一個重要過程.本文假設當描述子之間的漢明距離大于所有成對描述子最小距離的兩倍時,兩者匹配無效.為防止最小距離過小,過度濾波,本文將其下限設置為20.接下來,本文采用普通的模式匹配(Brute-Force,BF)來獲得初始匹配對.
如果一個特征在特征集中有很好的區(qū)分度,那么說明其最近鄰特征和次近鄰特征之間有相當大的差異.為保證特征之間具有良好的區(qū)分度,本文采用比值提純法,保留最近鄰與次近鄰比值在0.49~0.80 之間的匹配對,從而確保匹配的可信度.
在完成特征對的初始匹配后,誤匹配會對后期單應性矩陣、旋轉矩陣等參數(shù)的計算造成很大影響.為此,一些擬合算法被用于減少誤匹配的影響,從而減小誤差.其中RANSAC 較常用,其反復從點集中隨機選擇一個子集,計算該子集中的單應性矩陣,并根據(jù)與初始估計值的一致性來區(qū)分所有剩余數(shù)據(jù)點,將其分為內點和外點,最后保留具有最大內點的樣本.但是使用RANSAC 時需要確定最少點數(shù)、迭代次數(shù)、內外點距離閾值以及一致性集合大小閾值等參數(shù),而且參數(shù)的確定直接影響匹配效果.
相比之下,LMedS 無需預設閾值,且可自適應地區(qū)分內點和外點.但當外點在樣本中所占比例超過一半時,結果將會很差,而 LS 可以確保LMedS 利用足夠多的內點[13],因此,本文結合LMedS 和LS 來優(yōu)化模型參數(shù),其框架如圖3 所示.
圖3 優(yōu)化模型參數(shù)
歐拉角將旋轉姿態(tài)分解為圍繞X軸、Y軸和Z軸的3 次旋轉,通過給出的3個相互垂直的軸向,可描述現(xiàn)實世界空間的任意旋轉[14].而X軸、Y軸和Z軸對應的3個歐拉角ψ、θ和φ可分別對應無人船的俯仰角、橫傾角和航向角.
旋轉矩陣可由3個相互垂直的單位向量構成,用于描述點在世界空間坐標系下的姿態(tài),針對坐標軸可以分別構建對應的旋轉矩陣R x(ψ)、R y(θ)以及R z(φ)[14]:
對于一個點在世界坐標系中的描述,可以理解為先繞X軸旋轉,然后繞Y軸旋轉,最后繞Z軸旋轉,即可得旋轉矩陣[14]:
根據(jù)2.2 節(jié)得到的旋轉矩陣R可分別求取歐拉角ψ、θ和φ[14]:
最近,清華大學與西北工業(yè)大學的研究人員公開了首個內河無人駕駛數(shù)據(jù)集USVInland,旨在促進無人船領域相關研究[15].該數(shù)據(jù)集的采集平臺配備了激光雷達、毫米波雷達、慣性測量單元(Inertial Measurement Unit,IMU)、雙目立體相機等相關設備.針對無人船在內河航道中的感知和定位問題,提供了同步定位與建圖/里程表、立體匹配和水岸線分割等不同任務的相關數(shù)據(jù)集.
本文實驗環(huán)境:i7-9700K 處理器,英偉達RTX2080Ti 顯卡,16 GB 內存,Ubuntu 18.04 系統(tǒng).具體的水岸線分割采用USVInland 中的Water Segmentation 數(shù)據(jù)集進行訓練.然后采用USVInland 中的SLAM/Odometry 數(shù)據(jù)集進行驗證.
為驗證本文算法的有效性,分別依據(jù)USVInland 中晴、雨、霧3 種天氣的數(shù)據(jù)集進行實驗.數(shù)據(jù)集提供了劃分好的圖片、傳感器數(shù)據(jù)、對應時間戳及雙目立體相機的內置參數(shù).首先以相鄰兩幅圖像為一組的方式抽取數(shù)據(jù),3 種天氣分別隨機抽取100 組作為測試圖像,根據(jù)對應時間戳的IMU(相機和船體均各自提供)數(shù)據(jù)計算每組圖像對應的航行姿態(tài)角.基于這些數(shù)據(jù),將常用的3 種方法(SIFT、SURF、ORB)與本文的NAAE 方法進行對比測試.
實驗用的3 組圖像如圖4 所示.
圖4 實驗用圖
圖5為4 種方法在晴天狀態(tài)下一組圖像的特征匹配情況,圖中可以明顯看到前3 種方法均存在水面倒影的錯誤匹配對,而本文NAAE 解決了這一問題.
圖5 特征匹配
本文以航行姿態(tài)角的平均準確率E和平均運行時間T評價算法準確性及有效性.對求得的旋轉角度ψ′、θ′和φ′與實際的旋轉角度ψ、θ和φ進行比較,以此計算準確率e,其計算公式如下:
為了分析本文方法的先進性,在有無水岸線分割任務的場景下,對比4 種算法的平均準確率E和平均運行時間T.此外再分析水岸線分割的必要性以及本文在特征匹配方面的提升.
在增加水岸線分割任務之后,4 種算法在3 種天氣狀況下的準確率都有了一定的提升(表1),其中,晴天相較于其他兩種天氣狀況的結果提升較大.
表1 實驗結果
在晴天時,幾種算法的平均準確率均達90%以上.在雨天時,圖像中可明顯看出雨滴留在鏡頭上,且水汽較大,圖像清晰區(qū)域較少,因此4 種算法的平均準確率都有所下降.在霧天時,相比雨天減少了雨滴的影響,清晰度提升不少,但還是存在模糊區(qū)域.此時4 種算法的平均準確率雖有所提高,但仍低于晴天條件的結果.在所有場景中,NAAE算法基本優(yōu)于其他3 種算法.
4 種算法在晴天、霧天、雨天3 種場景中的平均運行時間也隨可見度降低而減少.相比SIFT 和SURF 兩種算法,ORB 算法和NAAE 算法的運行時間相對較穩(wěn)定.在增加水岸線分割任務后,4 種算法的運行時間都有明顯增加,但是NAAE 增加了水岸線分割任務后還能低于未增加該任務的SIFT和SURF 兩種算法.考慮實際使用中對實時性的要求,NAAE 算法相比其他幾種算法更適合.
針對水面倒影及精度低的問題,本文提出了一種基于ORB 特征的航行姿態(tài)角提取方法NAAE.實驗結果表明,該方法能有效地提取航行姿態(tài)角,刪除冗余特征點,減少錯誤匹配,優(yōu)化參數(shù),加快航行姿態(tài)角的提取速率,進一步提高精度,并且滿足實時性要求.
但在雨天、霧天等外部條件影響下,圖像上會出現(xiàn)模糊區(qū)域,導致提取的航行姿態(tài)角準確性下降.另外,性能較低的設備尚難以支持計算實時性.后續(xù)研究將針對上述問題,繼續(xù)提升計算精度和效率,改善算法的設備適應性.