本發(fā)明涉及一種基于直接法和稀疏法視覺里程計(jì)的單目紅外視頻三維重建方法,通過本方法可對紅外視頻中的場景進(jìn)行三維結(jié)構(gòu)重建,使圖像具有空間感,顯著增強(qiáng)夜視圖像的場景感知性。
背景技術(shù):
三維重建是在二維圖像信息中獲得圖像的信息,并通過對這些信息進(jìn)行處理得到圖像的三維信息,它是計(jì)算機(jī)視覺的重要組成部分?;謴?fù)彩色圖像中的三維結(jié)構(gòu)現(xiàn)在已有比較理想的算法,但對于紅外圖像來說,因其反映的是場景的溫度分布,有著低信噪比、低對比度、缺乏紋理等缺陷,恢復(fù)該圖像的三維重建算法較少。若能恢復(fù)紅外圖像的三維結(jié)構(gòu),那么將極大地提高人眼對該圖像的理解效果。
目前,針對單目彩色圖像進(jìn)行三維重建的主要方法有紋理法、輪廓法、運(yùn)動法、同時定位與建圖(simultaneous localization and mapping)以及基于機(jī)器學(xué)習(xí)的方法。通過分析圖像中物體表面重復(fù)紋理單元的大小、形狀,恢復(fù)出物體法向、深度等信息,得到物體的三維幾何模型,即紋理法。輪廓法則是通過多個角度物體的輪廓圖像得到物體的三維模型。運(yùn)動法即基于運(yùn)動的建模(structure from motion),是通過在多幅未標(biāo)定圖像中檢測匹配特征點(diǎn)集,使用數(shù)值方法恢復(fù)攝像機(jī)參數(shù)與三維信息的一種方法。同時定位與建圖是機(jī)器人從未知環(huán)境的未知地點(diǎn)出發(fā),在運(yùn)動過程中通過重復(fù)觀測到的地圖特征定位自身位置和姿態(tài),再根據(jù)自身位置增量式的構(gòu)建地圖,從而達(dá)到同時定位和地圖構(gòu)建的目的?;跈C(jī)器學(xué)習(xí)的方法就是利用配準(zhǔn)的深度圖和彩色圖作為訓(xùn)練集訓(xùn)練網(wǎng)絡(luò),再將測試集輸入到訓(xùn)練好的網(wǎng)絡(luò)中得到場景的深度。而目前針對單目紅外圖像進(jìn)行三維重建只有基于機(jī)器學(xué)習(xí)的方法,并且訓(xùn)練集的獲取增加了硬件成本。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是如何對夜視紅外視頻的場景進(jìn)行三維重建,使圖像具有空間感,增強(qiáng)夜視圖像的場景感知性。
為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是提供一種基于視覺里程計(jì)的單目紅外視頻三維重建方法,其特征在于,包括如下步驟:
步驟1:紅外熱像儀標(biāo)定;制作針對紅外熱像儀標(biāo)定的棋盤標(biāo)定板,然后將紅外熱像儀固定,采集多張不同位姿的紅外棋盤標(biāo)定板圖像,利用matlab的攝像機(jī)標(biāo)定工具箱計(jì)算出紅外熱像儀的內(nèi)參矩陣;
步驟2:構(gòu)建直接法和稀疏法視覺里程計(jì)模型;通過所述模型刻畫紅外熱像儀的小孔成像模型、紅外熱像儀位姿、紅外熱像儀內(nèi)參、空間點(diǎn)的逆深度以及待優(yōu)化的光度誤差;
步驟3:幀管理;從待處理的連續(xù)紅外圖像序列中產(chǎn)生關(guān)鍵幀,并邊緣化關(guān)鍵幀;
步驟4:對關(guān)鍵幀上的像素進(jìn)行點(diǎn)管理;點(diǎn)管理的目標(biāo)是在優(yōu)化時始終保持固定數(shù)量的激活點(diǎn),在三維空間和激活幀中均勻分布;
步驟5:窗口優(yōu)化;對步驟3所產(chǎn)生的關(guān)鍵幀進(jìn)行滑動窗口優(yōu)化,最小化步驟2中構(gòu)建的直接法和稀疏法視覺里程計(jì)模型的光度誤差,借助高斯-牛頓法迭代求解出紅外熱像儀位姿、紅外熱像儀內(nèi)參、空間點(diǎn)的逆深度,最終得到場景的三維點(diǎn)云。
優(yōu)選地,所述步驟1中,針對紅外熱像儀標(biāo)定的棋盤標(biāo)定板由裝滿溫水的導(dǎo)熱熱水箱、硬紙板、能夠隔熱1000度高溫的石棉隔熱板依次連接組成。
優(yōu)選地,所述步驟2中,構(gòu)建直接法和稀疏法視覺里程計(jì)模型時,考慮到熱像儀和普通彩色攝像頭成像原理的不同,在實(shí)際運(yùn)行時不考慮鏡頭的光度標(biāo)定模型。
優(yōu)選地,所述步驟3中,總是保留最多Nf個關(guān)鍵幀,Nf為正整數(shù),新來的每幀圖像,只和最新的關(guān)鍵幀比較,追蹤紅外熱像儀位姿,之后新來的這幀圖像被用于產(chǎn)生一個新的關(guān)鍵幀或者被丟棄;如果被用于產(chǎn)生新的關(guān)鍵幀,在所有的關(guān)鍵幀進(jìn)行總光度誤差優(yōu)化之后,該關(guān)鍵幀在滿足設(shè)定條件將被邊緣化。
更優(yōu)選地,所述步驟3具體如下:
步驟3.1:新幀跟蹤;當(dāng)新的關(guān)鍵幀被創(chuàng)建時,所有激活的地圖點(diǎn)投影到該幀上,從而創(chuàng)建半稠密地圖;當(dāng)新幀產(chǎn)生時,僅相對最近關(guān)鍵幀進(jìn)行圖像直接配準(zhǔn),從而完成跟追蹤;
步驟3.2:創(chuàng)建關(guān)鍵幀;以下三種情況會創(chuàng)建新的關(guān)鍵幀:一、在視角變化時,會創(chuàng)建新的關(guān)鍵幀;二、在相機(jī)平移導(dǎo)致遮擋或遮擋去除時,會創(chuàng)建新的關(guān)鍵幀;三、在曝光時間顯著變化時,會創(chuàng)建新的關(guān)鍵幀;
步驟3.3:邊緣化關(guān)鍵幀;假設(shè)I1...In是已被激活的關(guān)鍵幀集合,其中I1是最新的關(guān)鍵幀,In是最舊的關(guān)鍵幀;邊緣化策略是:一、總是保留最新的兩個關(guān)鍵幀I1和I2;二、若某關(guān)鍵幀的少于5%的點(diǎn)在關(guān)鍵幀I1中被觀測到,則邊緣化該關(guān)鍵幀;三、如果激活的關(guān)鍵幀多于設(shè)定的最大個數(shù)Nf,則邊緣化距離分?jǐn)?shù)最大的關(guān)鍵幀,不包括I1和I2
優(yōu)選地,所述步驟4中,點(diǎn)管理包括以下三步:候選點(diǎn)選擇、候選點(diǎn)追蹤、候選點(diǎn)激活。
更優(yōu)選地,所述候選點(diǎn)選擇的策略是:一、在圖像中良好分布;二、相對其周圍的環(huán)境具有較高的圖像梯度。
更優(yōu)選地,所述候選點(diǎn)追蹤的策略是:在后續(xù)幀中沿著候選點(diǎn)的極線進(jìn)行離散化搜索,追蹤候選點(diǎn),從而最小化光度誤差。
更優(yōu)選地,所述候選點(diǎn)激活的策略是:在一組舊點(diǎn)被邊緣化之后,需要激活候選點(diǎn)以替換它們;候選點(diǎn)激活的目標(biāo)是保持地圖點(diǎn)在整個圖像中均勻分布;首先將所有激活點(diǎn)投影到最近的關(guān)鍵幀上,然后激活與現(xiàn)有的地圖點(diǎn)距離最大的候選點(diǎn)。
本發(fā)明將直接法應(yīng)用于最小化光度誤差,跳過傳統(tǒng)的特征點(diǎn)檢測與匹配,通過對像素的灰度值的直接操作,直接計(jì)算待優(yōu)化的光度誤差所依賴的所有變量,從而實(shí)現(xiàn)夜視場景的三維重建,保證了三維重建的實(shí)時性,增強(qiáng)了場景的空間感,可用于無人車、機(jī)器人領(lǐng)域。
附圖說明
圖1為基于直接法和稀疏法視覺里程計(jì)的單目紅外視頻三維重建方法流程圖;
圖2為構(gòu)建直接法和稀疏法視覺里程計(jì)所使用的模式示意圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等價(jià)形式同樣落于本申請所附權(quán)利要求書所限定的范圍。
如圖1所示,基于直接法和稀疏法視覺里程計(jì)的單目紅外視頻三維重建方法,首先需要對紅外熱像儀標(biāo)定,得到紅外熱像儀的的內(nèi)參矩陣。然后構(gòu)建直接法和稀疏法視覺里程計(jì)模型,再從待處理的連續(xù)紅外圖像序列中進(jìn)行幀管理,選擇符合要求的關(guān)鍵幀以及邊緣化關(guān)鍵幀。接著對關(guān)鍵幀上的像素進(jìn)行點(diǎn)管理,之后再對關(guān)鍵幀進(jìn)行滑動窗口優(yōu)化,借助高斯-牛頓迭代求解出待優(yōu)化的所有變量,最終得到場景的三維點(diǎn)云。具體方法如下:
步驟1:紅外熱像儀標(biāo)定。首先制作針對紅外熱像儀的棋盤標(biāo)定板,紅外棋盤標(biāo)定板由三部分組成,從后往前依次是熱水箱、硬紙板、石棉隔熱板。通過附加熱源和隔熱板的方案,在紅外熱像儀上獲取到黑白相間的棋盤,然后將20張具有不同位姿的紅外棋盤標(biāo)定板圖像輸入到matlab標(biāo)定工具箱中進(jìn)行熱像儀內(nèi)參標(biāo)定。
紅外熱像儀成像原理不同于普通彩色攝像頭,為了獲得高對比度的黑白相間的棋盤格紅外圖像,采用附加熱源及隔熱板的方案,附加熱源選用裝滿溫水的導(dǎo)熱熱水箱,水溫大約在35度左右,隔熱板選用可以隔熱1000度高溫的石棉板,石棉板的大小為30mm×30mm,石棉板的個數(shù)為41個,然后用matlab腳本在硬紙板上打印針對普通彩色攝像頭的棋盤標(biāo)定板,再將石棉板依次準(zhǔn)確地固定在硬紙板上,之后再將硬紙板固定在裝有溫水的熱水箱上。將熱像儀固定,平移和旋轉(zhuǎn)標(biāo)定板,錄制一個紅外視頻,然后對紅外視頻抽幀選取20張具有不同位姿且對比度較高的標(biāo)定板圖像,將其輸入到matlab標(biāo)定工具箱中,手工選取4個最邊緣的角點(diǎn),程序會自動提取其余角點(diǎn),并計(jì)算出熱像儀內(nèi)參。標(biāo)定結(jié)果為:像素焦距fc=[1636.10735 1516.22703]、主點(diǎn)坐標(biāo)cc=[206.06274 344.97944]、畸變系數(shù)kc=[-0.21301 5.85797 0.01173 -0.03941 0.00000]、誤差err=[1.11672 1.68977]。由最后的誤差可以看出標(biāo)定的誤差在1到2個像素級,熱像儀標(biāo)定結(jié)果是比較準(zhǔn)確的。
步驟2:構(gòu)建直接法和稀疏法視覺里程計(jì)模型。首先假設(shè)所有的模型都是一個把噪聲Y作為輸入并計(jì)算未知估計(jì)量X的概率模型,要尋找使得在X發(fā)生這個條件下Y最小這一事件達(dá)到最大概率的X,可以記作X*:=argmaxXP(Y|X)。噪聲Y在不同的方法中有不同的定義方式,在直接法和稀疏法視覺里程計(jì)模型中,將光度誤差看做噪聲Y,光度誤差的定義如下:
其中,Epj表示兩幀的一個像素點(diǎn)的光度誤差,NP是以像素點(diǎn)p為中心的像素集合,參見圖2;ti、tj分別是圖像Ii、Ij的曝光時間;ai,bi,aj,bj是光照變化函數(shù)的參數(shù);||·||γ表示Huber范數(shù);p′表示p點(diǎn)的投影點(diǎn)位置,可以通過下式計(jì)算:
p′=Πc(RΠc-1(p,dp)+t)
其中
Πc表示投影矩陣;∏c-1表示重投影矩陣;dp表示p點(diǎn)的逆深度;R表示旋轉(zhuǎn)矩陣;t表示平移向量;Ti,Tj分別表示第i幀和第j幀熱像儀的位姿。另外權(quán)重系數(shù)wp如下:
其中c為常量;表示p點(diǎn)為中心的圖像梯度。
總結(jié)上面的內(nèi)容,誤差Epj取決于以下變量:(1)該點(diǎn)的逆深度值dp;(2)熱像儀內(nèi)參;(3)所涉及的熱像儀位姿Ti,Tj;(4)光照變化函數(shù)參數(shù)ai,bi,aj,bj。對于兩幀的一個像素點(diǎn)的光度誤差,用上面的方法定義,待優(yōu)化的所有幀和所有點(diǎn)的總光度誤差給出如下:
式中,i遍歷所有集合F中的圖像幀,p遍歷圖像幀i的所有地圖點(diǎn)Pi,j遍歷所有幀中能夠觀測到點(diǎn)p的對應(yīng)點(diǎn)obs(p)。這樣求解一個極大似然估計(jì)的問題轉(zhuǎn)化成了一個無約束的非線性優(yōu)化問題,通過最小化Ephoto求解出它所依賴的所有變量。
步驟3:幀管理。總是保留最多Nf=7個關(guān)鍵幀,新來的每幀圖像,只和最新的關(guān)鍵幀比較,追蹤熱像儀位姿,之后新來的這幀圖像被用于產(chǎn)生一個新的關(guān)鍵幀或者被丟棄,如果被用于產(chǎn)生關(guān)鍵幀,在所有的關(guān)鍵幀進(jìn)行總光度誤差優(yōu)化之后,該關(guān)鍵幀在滿足一定條件將被邊緣化。下面是詳細(xì)的步驟:
步驟3.1:新幀跟蹤。當(dāng)新的關(guān)鍵幀被創(chuàng)建時,所有激活的地圖點(diǎn)投影到該幀上,從而創(chuàng)建半稠密地圖。當(dāng)新幀產(chǎn)生時,僅相對最近關(guān)鍵幀進(jìn)行圖像直接配準(zhǔn),從而完成跟追蹤,其中會使用到多尺度圖像金字塔和恒速運(yùn)動模型。
步驟3.2:創(chuàng)建關(guān)鍵幀。以下三種情況會創(chuàng)建新的關(guān)鍵幀:(1)在視角變化時會創(chuàng)建新的關(guān)鍵幀。(2)在相機(jī)平移導(dǎo)致遮擋或遮擋去除時會創(chuàng)建新的關(guān)鍵幀。(3)在曝光時間顯著變化時會創(chuàng)建新的關(guān)鍵幀。
步驟3.3:邊緣化關(guān)鍵幀。假設(shè)I1...In是已被激活的關(guān)鍵幀集合,其中I1是最新的關(guān)鍵幀,In是最舊的關(guān)鍵幀。邊緣化策略是:(1)總是保留最新的兩個關(guān)鍵幀I1和I2。(2)該關(guān)鍵幀的少于5%的點(diǎn)在關(guān)鍵幀I1中被觀測到,則邊緣化該關(guān)鍵幀。(3)如果激活的關(guān)鍵幀多于Nf,則邊緣化“距離分?jǐn)?shù)”s(Ii)最大的關(guān)鍵幀(不包括I1和I2),公式為:
其中i,j為關(guān)鍵幀的序號,n為關(guān)鍵幀的總數(shù),d(i,1)是關(guān)鍵幀Ii和I1間的歐幾里得距離,d(i,j)是關(guān)鍵幀Ii和Ij間的歐幾里得距離,c為常數(shù)。采用距離分?jǐn)?shù)是為了保證激活的關(guān)鍵幀在3D空間中的良好分布,使更多的關(guān)鍵幀靠近最近的關(guān)鍵幀。
步驟4:點(diǎn)管理。目標(biāo)是在優(yōu)化時始終保持固定數(shù)量Np的激活點(diǎn)(使用Np=2000),在3D空間和激活幀中均勻分布。首先,識別每個新關(guān)鍵幀中的Np個候選點(diǎn)。候選點(diǎn)不立即添加到優(yōu)化框架中,而是在后續(xù)幀中單獨(dú)追蹤,生成粗略的深度值估計(jì)以用于初始化。當(dāng)需要將新點(diǎn)添加到優(yōu)化框架中時,激活一些候選點(diǎn)(來自優(yōu)化窗口中的所有幀),添加到優(yōu)化框架中。注意,在每個幀中選擇Np個候選點(diǎn),但只保留所有激活幀中的Np個激活點(diǎn)。具體點(diǎn)管理的步驟分為以下三步:
步驟4.1:候選點(diǎn)選擇。所選取點(diǎn)的策略是:(1)在圖像中良好分布。(2)相對它們周圍的環(huán)境具有較高的圖像梯度。通過將圖像分成32×32塊可以獲取一個區(qū)域自適應(yīng)梯度閾值。對于每一個圖像塊,規(guī)定它的閾值為其中,是該塊中所有像素的強(qiáng)度梯度的中值,gth為全局常數(shù)(使用gth=7)。為了在整幅圖像獲得一個均勻的分布,將圖像分成32×32塊,針對每一塊區(qū)域如果有大于區(qū)域自適應(yīng)閾值的點(diǎn),選擇區(qū)域具有最大像素梯度的點(diǎn),如果該區(qū)域沒有大于區(qū)域自適應(yīng)閾值的點(diǎn),舍棄該區(qū)域。
步驟4.2:候選點(diǎn)追蹤。在后續(xù)幀中沿著候選點(diǎn)的極線進(jìn)行離散化搜索,追蹤候選點(diǎn),從而最小化光度誤差。從最佳匹配結(jié)果中,計(jì)算深度值及其方差,其用于約束后續(xù)幀的搜索空間。這種跟蹤策略的靈感來自LSD-SLAM算法。注意,一旦點(diǎn)被激活,計(jì)算的深度值僅用于初始化。
步驟4.3:候選點(diǎn)激活。在一組舊點(diǎn)被邊緣化之后,需要激活候選點(diǎn)以替換它們。同樣,目標(biāo)是保持地圖點(diǎn)在整個圖像中均勻分布。為此,首先將所有激活點(diǎn)投影到最近的關(guān)鍵幀上。然后激活與現(xiàn)有的地圖點(diǎn)距離最大的候選點(diǎn)(在第二和第三次候選點(diǎn)選擇時創(chuàng)建的候選點(diǎn)需要更大的距離閾值)。
步驟5:窗口優(yōu)化算法。步驟2所構(gòu)建的直接法和稀疏法視覺里程計(jì)模型,模型公式給出了總光度誤差公式。步驟3給出了待優(yōu)化的所有關(guān)鍵幀。步驟4給出了關(guān)鍵幀中的激活點(diǎn)。然后利用滑動窗口并借助高斯-牛頓法最小化總的光度誤差,這樣可以迭代求解出總光度誤差所依賴的所有變量。
所計(jì)算的高斯-牛頓系統(tǒng)如下定義:
H=JTWJ且b=-JTWr
其中,W是包含權(quán)重的對角矩陣;r是殘差向量;J是r的雅克比。
如圖2所示,每一個點(diǎn)為能量值貢獻(xiàn)|NP|=8個殘差,為了簡單的表示,接下來只考慮一個殘差rk和它所對應(yīng)的雅克比Jk。在優(yōu)化或者邊緣化過程中殘差總是從當(dāng)前狀態(tài)開始計(jì)算的:
其中,(Ti,Tj,d,c,ai,aj,bi,bj):=x(ζ0殘差所依賴的當(dāng)前狀態(tài)變量;ζ0表示初始的狀態(tài);x為更新值。計(jì)算雅克比Jk的公式為:
它可以分解為:
其中Ij為第j個關(guān)鍵幀,p′為關(guān)鍵幀的一個像素點(diǎn),δgeo表示幾何參數(shù),δphoto表示光度參數(shù),JI表示圖像對像素的導(dǎo)數(shù),Jgeo表示像素對幾何參數(shù)的導(dǎo)數(shù),Jphoto表示殘差對光度參數(shù)的導(dǎo)數(shù)。
在計(jì)算Jgeo和Jphoto時,借助雅克比第一次估計(jì),之后迭代求解出相機(jī)位姿和點(diǎn)的逆深度,完成定位和建圖的任務(wù)。
試驗(yàn)表明,本實(shí)施例構(gòu)建的直接法和稀疏法視覺里程計(jì)對紅外視頻場景有非常好的三維重建效果,實(shí)現(xiàn)了夜視紅外視頻的場景三維重建,使圖像具有空間感,增強(qiáng)了夜視圖像的場景感知性。