劉則元,徐文斌,邢冠宇
(1.四川大學計算機學院,成都 610065;2.光學輻射重點實驗室,北京 100854;3.四川大學視覺合成圖形圖像技術(shù)國防重點學科實驗室,成都 610065)
即時定位與建圖(Simultaneous Localization And Mapping,SLAM)[1]技術(shù)是指主體在沒有先驗信息的環(huán)境中,通過傳感器估計自身的運動位置,并在過程中同時建立起周圍環(huán)境的模型。
SLAM技術(shù)現(xiàn)在大量應用于無人機、自動駕駛、機器人導航領(lǐng)域,用來完成導航或建模的工作,并且成功實現(xiàn)了商業(yè)化的應用。例如在機器人領(lǐng)域,市面上應用較多的掃地機器人,可以利用SLAM技術(shù)對周圍環(huán)境進行感知,并能對自身所處的位置有較為準確的判斷,從而更好地完成掃地路徑的規(guī)劃以及對障礙物的規(guī)避。
視頻標定技術(shù)是指利用視覺傳感器得到的視頻或序列幀,反求出視覺傳感器的運動軌跡和姿態(tài)。然而現(xiàn)有的基于可見光的視覺SLAM方法在弱光、霧霾、煙塵等不良環(huán)境下均無法正常工作,而熱紅外攝像機能夠穩(wěn)定工作在上述環(huán)境中,這使得實現(xiàn)全天候的視覺跟蹤和定位成為可能。
與可見光系統(tǒng)相比,紅外成像系統(tǒng)具有以下優(yōu)點:
(1)紅外攝像機的環(huán)境適應性相比于可見光更好,在夜間和惡劣條件下能工作地更出色;
(2)紅外光透過霧霾、煙霧的能力比可見光強,抗干擾能力更強;
(3)紅外光可以利用不同目標之間的溫差,更加準確地探測如人體、導彈等物體;
(4)隱蔽性好,紅外傳感器可以被動地接受紅外輻射,比激光探測更加安全。
但是與基于可見光的系統(tǒng)相比,紅外圖像還存在分辨率低,噪聲高,缺乏紋理、顏色信息,存在非均勻性誤差,圖像對比度低并且邊緣模糊等缺點。
從發(fā)展趨勢上來講,由于普通可見光圖像的局限性,在煙霧、粉塵以及夜間等低光照環(huán)境中不能正常工作,因此研究紅外視覺SLAM系統(tǒng),對于實現(xiàn)全天候的視覺SLAM系統(tǒng),有著非常重要的意義。
從傳感器的種類上來分,SLAM技術(shù)主要可以分為激光SLAM和視覺SLAM兩大類。其中激光SLAM方案起步較早,從理論到應用都有著較為成熟的體系,也是目前實際應用中采用較多的主流方案。而視覺SLAM系統(tǒng)使用相機作為數(shù)據(jù)采集傳感器,不僅硬件價格低廉,而且體積小、能耗低,在小范圍內(nèi)精度高、穩(wěn)定性好,能夠應用于大多數(shù)平臺。圖像作為計算機的待處理數(shù)據(jù),不僅信息量豐富,而且不依賴于環(huán)境場景的預先布置,適用性較強,也能夠在各種復雜的場景下工作。
憑借以上諸多優(yōu)點,同時得益于近年來計算機運算速度的極大提升以及概率學模型的應用,視覺SLAM方案得到了極大發(fā)展,產(chǎn)生了越來越多較為成熟的SLAM系統(tǒng),例如基于特征點的ORB-SLAM[2-3]系統(tǒng),基于直接法的LSD-SLAM[4-5]系統(tǒng)等。
目前,對于全天候視覺SLAM相關(guān)的研究非常少。
本文提出了一種基于單目視覺SLAM系統(tǒng)進行紅外相機定位的框架和算法,用于實現(xiàn)在霧霾、粉塵、煙塵以及黑暗環(huán)境等特殊環(huán)境下進行紅外視頻的標定。
圖1 視覺SLAM系統(tǒng)框架
視覺SLAM系統(tǒng)框架主要分為三個部分,分別是追蹤部分,局部建圖部分和閉環(huán)檢測部分。對于經(jīng)過非均勻性校正管理的視頻幀序列,追蹤部分首先對紅外視頻中的特征點進行追蹤,利用多視圖幾何的方法初步計算出相機的位姿,以及地圖點的深度信息。
初步得到的標定結(jié)果存在著較大誤差,需要對這個誤差進行進一步的優(yōu)化,。在局部建圖部分,對選取的關(guān)鍵幀,挑選其中的地圖點,將挑選出的地圖點添加到地圖中,然后對這些地圖點進行非線性優(yōu)化,最小化這些三維空間點在像素坐標系下的重投影誤差,使一個時間段內(nèi)的誤差最小化。
閉環(huán)檢測部分檢測運動軌跡中的回環(huán),對于與關(guān)鍵幀相似度較高的候選幀計算圖像的相似度,判斷相機是否處于曾經(jīng)出現(xiàn)過的位置,再把這個約束結(jié)果傳給后端進行閉環(huán)融合,最后進行全局的優(yōu)化,從而消除視覺SLAM系統(tǒng)長時間累計的誤差。
本文在進行紅外視頻的標定時,主要使用視覺SLAM系統(tǒng)的追蹤部分求出紅外攝像機的運動軌跡,使用局部建圖對這個結(jié)果進行優(yōu)化,得到精確可靠的標定結(jié)果。
紅外圖像的非均勻性噪聲是一種固定圖像噪聲,是由于紅外探測器的加工工藝、材料、溫度和偏置情況的不均勻所造成的,為了減少這種噪聲紅外相機會對這些噪聲進行非均勻性校正,此時由于相機重新校準會造成約一兩秒的延遲,新進數(shù)據(jù)可能丟失,這在一定程度上會造成追蹤丟失。因此首先需要對紅外攝像機的非均勻性誤差校正過程進行非均勻性校正管理(NUC)。
圖2 NUC管理的流程
如圖2所示,對于紅外視頻新進的每一幀,進行四次檢查:
(1)如果當前關(guān)鍵幀是新的一幀;
(2)如果上一個新進幀出現(xiàn)了延遲,說明正在進行非均勻性校正;
(3)如果新進幀是經(jīng)過非均勻性校正之后的第一幀;
(4)如果條件允許新的特征檢測。分別檢查上述四個條件后,再進行角點的特征追蹤,從而保證在非均勻性校正造成延遲時,跟蹤盡量不丟失。
對于紅外視頻,本文利用基于特征點的視覺SLAM方法對紅外視頻進行標定,因此匹配良好的特征點算法對于整個系統(tǒng)是至關(guān)重要的第一步。
為了能夠紅外圖像中盡可能提取出更多的角點,并對這些角點進行追蹤,實驗選取了SURF、STAR、FAST、ORB、MSER等不同的角點算法,從相鄰兩幀紅外圖像中分別提取角點,并進行如下處理:
(1)選取可重復性來衡量特征點算法在熱紅外圖像中的穩(wěn)定性,定義重疊誤差:
其中SH為第二幅圖像通過單應矩陣投影到之前圖像的區(qū)域面積。
(2)接受匹配要求重疊誤差小于0.2的特征點數(shù)量為a,總的匹配特征點數(shù)量為b,可重復率定義為a/b。
(3)改變靈敏度閾值,增加匹配的特征點的數(shù)量,重復上述步驟,得到特征點匹配數(shù)量與可重復率之間的關(guān)系。
根據(jù)實驗結(jié)果,選取可重復率較高并且效率較高的角點算法作為紅外視覺SLAM系統(tǒng)的特征點算法。
視頻標定是指利用視覺傳感器得到的視頻或序列幀,反求出視覺傳感器的運動軌跡和姿態(tài)。對于紅外視頻中的每一個序列幀,先進行非均勻性校正管理,然后從紅外圖像中提取足夠多的特征點,并在相鄰兩幀之間進行特征點匹配。
由于紅外圖像存在低紋理等缺點,從紅外圖像中能夠提取的角點數(shù)量較少,為了能從紅外圖像中提取出足夠數(shù)量的角點,相較于普通可見光圖像需要大幅降低靈敏度閾值。這會導致特征點大量的誤匹配,因此提出了一種在熱紅外圖像中大幅減少誤匹配的方法:
(1)降低角點檢測算法的閾值,盡可能多地檢測紅外圖像中的角點;
(2)利用L-K光流法對角點進行追蹤;
(3)計算追蹤成功角點的二進制特征描述符;
(4)在追蹤角點的閾值范圍內(nèi)根據(jù)匹配。
經(jīng)過這樣篩選后能夠在減少誤匹配的同時盡量保留特征點的數(shù)量,從而可以增加地圖點的數(shù)量,使SLAM系統(tǒng)在更容易初始化成功的同時,減小標定誤差。
在相鄰兩幅圖片之間匹配好特征點后,利用多視圖幾何[8]的方法,分別計算本質(zhì)矩陣和單應矩陣,通過矩陣分解初始化相機的位移t和旋轉(zhuǎn)R,選擇其中誤差較小的結(jié)果作為相機的初步的運動估計。PnP算法[9]是指通過多對3D與2D匹配點,在已知或者未知相機內(nèi)參的情況下,利用最小化重投影誤差來求解相機外參的算法。對于初始化成功的SLAM系統(tǒng),可以用PnP算法完成后續(xù)相機外參的標定。依據(jù)得到相機的運動估計,可以通過三角測量算法計算特征點對應的點的三維空間坐標作為地圖點,最后依據(jù)一定的策略從序列幀中選取出一部分關(guān)鍵幀。
對于初步的標定結(jié)果,局部地圖構(gòu)建和閉環(huán)檢測的兩個線程都需要進行束集調(diào)整(Bundle Adjustment,BA)優(yōu)化。BA算法是一種非線性優(yōu)化算法,具有很高的精度,而且由于視覺SLAM系統(tǒng)中矩陣的稀疏特性,使BA算法能夠應用在實時的視覺SLAM系統(tǒng)中。
紅外視頻的標定可以得到紅外相機的外參數(shù)(包括位移和旋轉(zhuǎn)),為了更直觀驗證標定結(jié)果的準確性,采用增強現(xiàn)實技術(shù),在采集的真實熱紅外視頻中實時加入計算機生成的虛擬景物,通過保證虛實景物共享一個環(huán)境空間,構(gòu)建動態(tài)紅外虛實融合環(huán)境。如果加入的虛擬物體在場景中保持著穩(wěn)定性和一致性,說明標定的結(jié)果是精確可靠的。
實驗環(huán)境采用紅外攝像機Phantom 4 IR-PRO 4.35mm,在Ubuntu 16.04 amd64操作系統(tǒng)下,軟件環(huán)境為使用了 OpenCV 2.4.13,矩陣庫 Eigen3、Pangolin,非線性優(yōu)化庫g2o,點云庫PCL等。
實驗使用可以加熱的棋盤格標定板,對棋盤格黑色部分采取隔熱處理,然后依次從不同角度拍攝20張如圖3所示的不同的棋盤格圖像。
圖3 不同角度拍攝的棋盤格紅外圖像
使用張正友標定算法[10],得到了實驗使用的紅外攝像機的內(nèi)參數(shù)矩陣:
以及畸變系數(shù):
k1=-0.11973069
k2=-0.06653221
p1=-0.00075981
p2=0.0029442
k3=0.23346432
將這個結(jié)果用于重投影誤差的計算,計算得到棋盤格角點的平均重投影誤差為0.154304(單位:像素)。
使用OpenCV分別對熱紅外圖像進行SURF、STAR、FAST、ORB、MSER 特征點的提取和匹配,分別計算在不同特征點數(shù)量下的可重復率,如圖4所示。
圖4 SURF、STAR、FAST、ORB、MSER可重復率比較
根據(jù)上述實驗可以得知,ORB特征點在穩(wěn)定性方面與SURF、STAR特征點并無太大差異,但是ORB特征點在具備旋轉(zhuǎn)、尺度不變性的同時,特征檢測與匹配速度較快,因此系統(tǒng)采取了ORB特征點作為熱紅外圖像的特征。
對于輸入的熱紅外圖像幀,經(jīng)過濾波操作去除噪聲后系統(tǒng)使用OpenCV從圖像中提取出角點,然后計算這些像素點的描述子,得到圖像中的特征點,用L-K光流法跟蹤這些特征點,并在跟蹤的區(qū)域內(nèi)進行匹配,得到了匹配良好的ORB特征點。
為了評估算法的穩(wěn)定性,分別從重投影誤差和虛擬現(xiàn)實演示兩個方面進行。對于隨機選取的不同的熱紅外視頻的幀序列,得到其重投影誤差和視頻幀序列的關(guān)系,如圖5所示。
圖5 重投影誤差隨著紅外視頻幀數(shù)的變化
考慮到從投影到圖像中的每個點到像素的平均誤差,使用重投影誤差為標準來判斷系統(tǒng)運行期間的穩(wěn)定性和性能。經(jīng)驗上來講,平均重投影低于1.50個像素時,對應著良好的運動估計和場景的結(jié)構(gòu)的可靠的估計;當誤差增大到約3.00個像素時,SLAM系統(tǒng)運行的結(jié)果不可靠。
將加入虛擬物體前和加入虛擬物體后的場景進行對比,加入虛擬物體前場景如圖6所示。
在熱紅外視頻中加入虛擬物體(小汽車)并經(jīng)過渲染后,如圖7所示。
一般來說,虛擬物體在視頻中表現(xiàn)地越穩(wěn)定、越逼真,說明運動估計是準確而可靠的,也就說明標定的結(jié)果與預期中一致。
圖6 加入虛擬物體前測試的場景
圖7 在道路上加入了虛擬汽車的紅外視頻
該系統(tǒng)對于熱紅外圖像的非均勻性校正和噪聲經(jīng)過特殊處理,并且對熱紅外圖像存在的特征點過少的問題做出優(yōu)化,將ORB特征點和L-K光流法用于處理熱紅外視頻的特征,系統(tǒng)能夠在不借助其他傳感器的情況下較好地運行。然而,由于熱紅外圖像本身的局限性,相較于普通可見光的SLAM系統(tǒng),該系統(tǒng)還是容易出現(xiàn)很多失敗條件,例如初始化不成功等問題。
由于熱紅外相機的特性,該系統(tǒng)能夠較好地運行在煙霧、夜間等環(huán)境,從而實現(xiàn)全天候的視覺SLAM,這對于軍事上或者某些場合(例如太空中)有著重大的實用意義。
未來的工作包括在系統(tǒng)中加入基于機器學習的閉環(huán)檢測模塊,增加對熱紅外圖像的適配,加入的閉環(huán)檢測模塊,可以有效減少系統(tǒng)長時間內(nèi)的累計誤差,使整個系統(tǒng)更加魯棒。