KinectFusion 論文精析

KinectFusion是一種利用kinect相機的深度數(shù)據(jù)進行實時三維重建的技術(shù)。本文學(xué)習(xí)一篇比較早的論文(見參考文獻(xiàn))关面,并對其進行詳細(xì)地講述。這篇文章構(gòu)建了KinectFusion的雛形,被后來者爭相follow腔长。

圖1.Kinect相機的輸入和輸出結(jié)果。最左側(cè)為帶有噪聲和空洞的數(shù)據(jù)钢拧,可以作為Kinect的輸入拯爽,后面組是輸出結(jié)果,彩色圖是Normal map碳蛋,灰度圖是Phong色調(diào)渲染的結(jié)果

0.工作流程

KinectFusion的過程可以分為四個模塊:

  • 表面測量(surface measurement)
    這是一個預(yù)處理的過程胚泌,根據(jù)原始深度數(shù)據(jù)計算出稠密的頂點圖(vertex map)和法向圖(normal map)金字塔。
  • 表面重建更新(surface reconstruction update)
    全局場景融合過程肃弟,根據(jù)由跟蹤(tracking)得到的相機位姿(pose)玷室,新測量的surface measurement被融合到由TSDF表示的全局場景模型中
  • 表面預(yù)測(surface prediction)
    利用光線投影(raycasting)將模型投影到估計的frame獲得預(yù)測的surface
  • 傳感器位置估計(sensor pose estimation)
    多尺度的ICP算法匹配measured surface和predicted surface。
圖2.算法流程圖

1.surface measurement

首先對原始深度數(shù)據(jù)做雙邊濾波處理笤受,對處理后的深度圖做反投影(back-project)操作穷缤,得到vertex map。
向量之間的叉乘可以得到法向量箩兽,具體運算可以見圖3津肛。

圖3.normal map的計算方法。V代表每個像素對應(yīng)的三維點汗贫,v是歸一化操作

得到vertex map和normal map后生成金字塔身坐。

2.surface reconstruction

surface construction的核心是TSDF及其更新秸脱。
TSDF全程Truncated Signed Distance Function。它將空間場景模型化為一個立方體柵格部蛇,每個柵格中都存有兩個值摊唇,一個是距離值F,另一個是權(quán)重值W涯鲁。
如圖4所示巷查,TSDF模型中存儲的距離值,surface處值為零撮竿,傳感器一側(cè)的值為正吮便,距離表面越遠(yuǎn)值越大,另一側(cè)值為負(fù)幢踏,距離表面越遠(yuǎn)值越小髓需。而權(quán)重值則與表面測量的不確定度有關(guān)。

圖4.TSDF模型

而在實際的測量中房蝉,接近零的位置的值才是有效的僚匆,因此需要設(shè)定一個閾值u,將與surface距離大于u置為無效搭幻,不予考慮咧擂,而小于u的值進行歸一化截斷。
圖5給出了當(dāng)前幀TSDF距離值的計算方法檀蹋。

圖5.TSDF距離值F的計算公式

全局的TSDF是由每一幀單個的TSDF加權(quán)平均得來的松申,如圖6所示。

圖6.全局TSDF

雖然理論上權(quán)重值和表面測量的不確定度有關(guān)俯逾,即與頂點光線方向和法線方向夾角的余弦值成正比贸桶,與相機中心和頂點的距離值成反比。但是在實際中桌肴,權(quán)重恒等于1可以得到很好的結(jié)果皇筛,并且權(quán)重的累積不是一直增大,而是設(shè)置了最大值閾值坠七,如圖7所示水醋。

圖7.設(shè)置最大閾值

3.Surface prediction

上文提到過,在TSDF模型中距離值F=0的位置就是surface的位置彪置,因此利用ray casting拄踪,從相機中出發(fā),逆著光線走悉稠,直到TSDF體元中的距離值由正變負(fù)或者由負(fù)變正宫蛆,即確定為surface的位置。
但是有一個問題的猛,在逆著光線方向走的時候耀盗,以多長距離為間隔呢?這里由于場景中很大一部分都是沒有物體的無效位置卦尊,每個體元都去判斷正負(fù)值顯然很費時間叛拷。這里就根據(jù)TSDF每個體元中存儲的距離值來確定步長,當(dāng)走到TSDF體元存儲著正距離值的時候岂却,步長要設(shè)定為小于u值忿薇,而在此之前,就以u值作為步長躏哩,這樣就可以快速找到正負(fù)變化的位置署浩。
好像還是哪里有問題。對扫尺,雖然正負(fù)變化的體元位置找到了筋栋,但是哪里才是表面確定位置,畢竟表面是一個值而不是一個有厚度的區(qū)域正驻。所以我們采用圖8的式子近似找到一個合理的位置弊攘。

圖8.更精確的表面位置.其中t表示時間,即光線上一點的坐標(biāo)姑曙,F(xiàn)表示在光線上對對應(yīng)位置進行三線性插值后得到的值

找到surface的坐標(biāo)后襟交,預(yù)測的法向量可以由這一點的梯度得到,如圖9伤靠,并在不同尺度上計算以適應(yīng)不同的體元精度捣域。

圖9.計算predicted normal map.png

4.pose estimation

相機的pose通過ICP算法求解。和一般的ICP不同宴合,這里的ICP不是通過兩幀之間的對應(yīng)點進行求解焕梅,而是將當(dāng)前幀的點與上一幀得到的predicted surface點進行匹配。在建立measured surface和predicted surface之間點的對應(yīng)關(guān)系時形纺,作者沒用使用過ICP中的最近點丘侠,而是將measured surface上的點投影到上一幀相機的位置,得到的圖像平面上的坐標(biāo)對應(yīng)的predicted surface上的點就是要找的對應(yīng)點逐样。如圖10所示蜗字。

圖10.建立點對應(yīng)的示意圖。黃線代表measured surface脂新,綠線代表predicted surface

在度量measured surface和predicted surface之間的誤差時挪捕,作者使用的是ICP中的點面誤差度量,如圖11争便。

圖11.誤差最小化求得相機位姿级零。該式其實一個點到平面的距離平方和公式

由于變換矩陣中的旋轉(zhuǎn)部分是非線性的,所以求解這個目標(biāo)函數(shù)其實是一個非線性最小二乘問題,接下來作者就用近似的方法將其線性化奏纪,利用SVD分解的方法計算變換矩陣鉴嗤。
point-to-plane ICP算法的簡單介紹和詳細(xì)的線性求解方法可以參考我的另一篇文章:Point-to-Plane ICP算法的線性近似求解


以上為算法全部內(nèi)容序调。
持續(xù)更新醉锅,歡迎提出質(zhì)疑或與作者就相關(guān)問題進行討論。


*參考文獻(xiàn)
[1]KinectFusion: Real-Time Dense Surface Mapping and Tracking
[2]A Volumetric Method for Building Complex Models from Range Images

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末发绢,一起剝皮案震驚了整個濱河市硬耍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌边酒,老刑警劉巖经柴,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異墩朦,居然都是意外死亡坯认,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門介杆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹃操,“玉大人,你說我怎么就攤上這事春哨【0” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵赴背,是天一觀的道長椰拒。 經(jīng)常有香客問我,道長凰荚,這世上最難降的妖魔是什么燃观? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮便瑟,結(jié)果婚禮上缆毁,老公的妹妹穿的比我還像新娘。我一直安慰自己到涂,他們只是感情好脊框,可當(dāng)我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著践啄,像睡著了一般浇雹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屿讽,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天昭灵,我揣著相機與錄音,去河邊找鬼。 笑死烂完,一個胖子當(dāng)著我的面吹牛试疙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窜护,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼效斑,長吁一口氣:“原來是場噩夢啊……” “哼非春!你這毒婦竟也來了柱徙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤奇昙,失蹤者是張志新(化名)和其女友劉穎护侮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體储耐,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡羊初,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了什湘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片长赞。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖闽撤,靈堂內(nèi)的尸體忽然破棺而出得哆,到底是詐尸還是另有隱情,我是刑警寧澤哟旗,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布贩据,位于F島的核電站,受9級特大地震影響闸餐,放射性物質(zhì)發(fā)生泄漏饱亮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一舍沙、第九天 我趴在偏房一處隱蔽的房頂上張望近上。 院中可真熱鬧,春花似錦拂铡、人聲如沸壹无。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽格遭。三九已至,卻和暖如春留瞳,著一層夾襖步出監(jiān)牢的瞬間拒迅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留璧微,地道東北人作箍。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像前硫,于是被迫代替她去往敵國和親胞得。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容