網(wǎng)格生成之TSDF算法學(xué)習(xí)筆記

本博客內(nèi)容來源于網(wǎng)絡(luò)以及其他書籍狡刘,結(jié)合自己學(xué)習(xí)的心得進(jìn)行重編輯,因?yàn)榭戳撕芏辔恼虏槐阋灰粯?biāo)注引用困鸥,如圖片文字等侵權(quán)嗅蔬,請告知?jiǎng)h除剑按。

傳統(tǒng)2D計(jì)算機(jī)視覺學(xué)習(xí)筆記目錄------->傳送門
傳統(tǒng)3D計(jì)算機(jī)視覺學(xué)習(xí)筆記目錄------->傳送門

前言

國慶結(jié)束,又是一段漫長的工作期澜术,有點(diǎn)煩艺蝴,~~~~ (>_<) ~~~~ 。本篇文章為大家介紹一個(gè)非常經(jīng)典也非常重要的算法鸟废,TSDF猜敢,kinFusion的靈魂所在。不知道kinfusion盒延,那沒關(guān)系缩擂,看完這篇文章你就把kinfusion里面的精髓學(xué)到了。

TSDF 算法簡介

TSDF 兰英,全稱:truncated signed distance function撇叁,基于截?cái)嗟膸Х柧嚯x函數(shù),是一種常見的在3D重建中計(jì)算隱勢面的方法畦贸。著名的Kinfusion就是才用TSDF來構(gòu)建空間體素的,通過求去每個(gè)體素的值楞捂,然后再使用之前提到的Marching Cube來提取表面的薄坏。

TSDF是在SDF進(jìn)行改進(jìn)的,是在SDF提出了截?cái)嗑嚯x寨闹,具體內(nèi)容我們們在下面講 胶坠,很簡單的。SDF是在2003年由S Osher提出繁堡。在擁有大內(nèi)存的顯卡并行計(jì)算的情況下沈善,使用TSDF可以做到實(shí)時(shí)的重建效果,獲得了很多方面的落地使用椭蹄。

下面我們一起來看一下闻牡,TSDF的具體的算法思路。

TSDF 算法思路

TSDF的算法的思路很樸素绳矩,就是用一個(gè)大的空間(我們稱之為volume)作為要建立的三維模型罩润,這個(gè)空間可以完全包括我們的模型,volume由許多個(gè)小的體素(我們稱之為voxel翼馆,就是小立方體)組成割以,

每個(gè)voxel對應(yīng)空間中一個(gè)點(diǎn),這個(gè)點(diǎn)我們用兩個(gè)量來評價(jià):

  1. 該voxel到最近的surface(當(dāng)然我們已開始不知道应媚,我們假設(shè)有)(一般稱作zero crossing)的距離严沥,我們記作tsdf(x),即帶符號距離
  2. 體素更新時(shí)的權(quán)重,我們記作w 中姜。

假設(shè)我們真是的面到相機(jī)的深度是ds消玄,相機(jī)采集到的深度dv,那么符號距離值就是d(x) = ds - dv, 當(dāng)d(x)>0 時(shí)說明該體素在真實(shí)的面的前面,小于0 莱找,則說明該體素在真實(shí)的面的后面酬姆。

可能你會說,這不是廢話嘛奥溺,我要是知道真是的面在哪里辞色,還用什么TSDF啊。每一次相機(jī)采集出來的數(shù)值浮定,我們都認(rèn)為是最大可能真實(shí)面相满,在相機(jī)前后也有可能是真實(shí)面,但是概率要小桦卒。這個(gè)前后距離我們對它進(jìn)行一定的限制立美,因?yàn)殡x得特別遠(yuǎn)的話,其概率也是很小方灾,我們就忽略了建蹄。

在計(jì)算新的拍攝幀的體素的符號距離值和體素更新的過程中,我們不是所有的體素都查找和更新裕偿,而是只查找更新截?cái)嗑嚯x內(nèi)的體素洞慎,這也是TSDF與SDF不同的一點(diǎn),大大縮短了計(jì)算量嘿棘,并提高了精度劲腿。

下面來看一下其具體的計(jì)算過程會有更清晰的理解。

TSDF 算法的步驟

TSDF 算法我們分為一下這3部分:

  1. 準(zhǔn)備工作
  2. 計(jì)算當(dāng)前幀的TSDF值以及權(quán)重
  3. 當(dāng)前幀與全局融合結(jié)果進(jìn)行融合

1. 準(zhǔn)備工作

  1. 建立長方體包圍盒鸟妙,能夠完全包圍要重建的物體焦人。
  2. 劃分網(wǎng)格體素,對包圍盒盡心劃分n等分重父,體素的大小取決于包圍盒和劃分體素的數(shù)目決定花椭。我們將整個(gè)空間的體素全部存入GPU運(yùn)算,每個(gè)線程處理一條(x,y)坪郭。即對于(x,y,z)的晶格坐標(biāo)个从,每個(gè)GPU進(jìn)程掃描處理一個(gè)(x,y)坐標(biāo)下的晶格柱。
  3. 對于構(gòu)造的立體中的每個(gè)體素g,轉(zhuǎn)化g為世界坐標(biāo)系下得三維位置點(diǎn) p(根據(jù)體素的大小歪沃,以及體素的數(shù)目);

2. 計(jì)算當(dāng)前幀的TSDF值以及權(quán)重

這一步我們遍歷所有的體素嗦锐,以一個(gè)體素在世界坐標(biāo)系三維位置點(diǎn)p為例

  1. 由深度數(shù)據(jù)的相機(jī)位姿矩陣,求世界坐標(biāo)系下點(diǎn)p在相機(jī)坐標(biāo)系下得映射點(diǎn)v沪曙,并由相機(jī)內(nèi)參矩陣奕污,反投影v點(diǎn)求深度圖像中的對應(yīng)像素點(diǎn)x,像素點(diǎn)x的深度值為value(x)液走,點(diǎn)v到相機(jī)坐標(biāo)原點(diǎn)的距離為distance(v)碳默;
  2. 那么p的sdf值為 sdf(p) = value(x)- distance(v)〖窒荩現(xiàn)在我們就要引入截?cái)嗑嚯x了,計(jì)算出tsdf(p), 公式寫出來比較復(fù)雜嘱根,直接描述就是在截?cái)嗑嚯xu以內(nèi)髓废,tsdf(p) = sdf(p)/|u|, 否則,如果sdf(p) >0该抒,tsdf(p) = 1,sdf(p) <0慌洪,tsdf(p) = -1。
  3. 權(quán)重w(p)的計(jì)算公式:
    w(p) = cos(θ)/distance(v)凑保,其中θ為投影光線與表面法向量的夾角冈爹。

經(jīng)過我們這一步就算出這一幀的所有體素的tsdf值以及權(quán)重值。

3. 當(dāng)前幀與全局融合結(jié)果進(jìn)行融合

如果當(dāng)前幀是第一幀欧引,則第一幀即是融合結(jié)果频伤,否則需要當(dāng)前幀與之前的融合結(jié)果在進(jìn)行融合。我們命名大寫TSDF(p)為體素p的融合TSDF值芝此,W(p)為融合權(quán)重值憋肖,tsdf(p)為體素p當(dāng)前幀的TSDF值,w(p)為當(dāng)前幀權(quán)重值』槠唬現(xiàn)在我們要通過tsdf(p)更新TSDF(p)瞬哼。公式如下:

通過上述公式就可以將新的幀融合進(jìn)融合幀內(nèi)。

第一部分完成后租副,就是每添加一幀深度數(shù)據(jù),執(zhí)行一遍2,3步的計(jì)算较性,知道最后輸出結(jié)果給Marching Cube計(jì)算提出三角面用僧。

TSDF 算法的特點(diǎn)

TSDF 算法的特點(diǎn)就是計(jì)算非常簡單,沒有復(fù)雜的計(jì)算赞咙,但是其需要大量的并行责循。所以在大規(guī)模并行化顯卡出現(xiàn) 之前,其計(jì)算需要非常長的時(shí)間攀操。而用上顯卡之后院仿,其計(jì)算速度非常快速和,可以做到實(shí)時(shí)歹垫,需要比較大顯存的顯卡。

TSDF 生成的網(wǎng)格的細(xì)節(jié)保持比較好颠放,而且精確度也比較好排惨,但是在邊緣處以及前后景交界處,會出現(xiàn)較大的拖尾現(xiàn)象碰凶。因?yàn)樵隗w素p向像素坐標(biāo)系投影時(shí)會有一定的誤差暮芭。

總結(jié)

TSDF 可以說是極大的促進(jìn)了3維重建的平民化以及落地進(jìn)程鹿驼,可以出說初入門三維重建必須要學(xué)習(xí)的一個(gè)算法。其實(shí)寫完了辕宏,才發(fā)現(xiàn)之前的理解竟然有的地方有錯(cuò)誤畜晰,還是要用文字表達(dá)出來,學(xué)的才能更徹底瑞筐。

慚愧慚愧

重要的事情說三遍:

如果您看到我的文章對您有所幫助凄鼻,那就點(diǎn)個(gè)贊唄 ( * ^ __ ^ * )

如果您看到我的文章對您有所幫助,那就點(diǎn)個(gè)贊唄( * ^ __ ^ * )

如果您看到我的文章對您有所幫助面哼,那就點(diǎn)個(gè)贊唄( * ^ __ ^ * )

傳統(tǒng)2D計(jì)算機(jī)視覺學(xué)習(xí)筆記目錄------->傳送門
傳統(tǒng)3D計(jì)算機(jī)視覺學(xué)習(xí)筆記目錄------->傳送門

任何人或團(tuán)體野宜、機(jī)構(gòu)全部轉(zhuǎn)載或者部分轉(zhuǎn)載、摘錄魔策,請保留本博客鏈接或標(biāo)注來源匈子。博客地址:開飛機(jī)的喬巴

作者簡介:開飛機(jī)的喬巴(WeChat:zhangzheng-thu),現(xiàn)主要從事機(jī)器人抓取視覺系統(tǒng)以及三維重建等3D視覺相關(guān)方面闯袒,另外對slam以及深度學(xué)習(xí)技術(shù)也頗感興趣虎敦,歡迎加我微信或留言交流相關(guān)工作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末政敢,一起剝皮案震驚了整個(gè)濱河市其徙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喷户,老刑警劉巖唾那,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異褪尝,居然都是意外死亡闹获,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門河哑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來避诽,“玉大人,你說我怎么就攤上這事璃谨∩陈” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵佳吞,是天一觀的道長拱雏。 經(jīng)常有香客問我,道長容达,這世上最難降的妖魔是什么古涧? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮花盐,結(jié)果婚禮上羡滑,老公的妹妹穿的比我還像新娘菇爪。我一直安慰自己,他們只是感情好柒昏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布凳宙。 她就那樣靜靜地躺著,像睡著了一般职祷。 火紅的嫁衣襯著肌膚如雪氏涩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天有梆,我揣著相機(jī)與錄音是尖,去河邊找鬼。 笑死泥耀,一個(gè)胖子當(dāng)著我的面吹牛饺汹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痰催,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼兜辞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了夸溶?” 一聲冷哼從身側(cè)響起逸吵,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缝裁,沒想到半個(gè)月后扫皱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捷绑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年啸罢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胎食。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖允懂,靈堂內(nèi)的尸體忽然破棺而出厕怜,到底是詐尸還是另有隱情,我是刑警寧澤蕾总,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布粥航,位于F島的核電站,受9級特大地震影響生百,放射性物質(zhì)發(fā)生泄漏递雀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一蚀浆、第九天 我趴在偏房一處隱蔽的房頂上張望缀程。 院中可真熱鬧搜吧,春花似錦、人聲如沸杨凑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撩满。三九已至蜒程,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伺帘,已是汗流浹背昭躺。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伪嫁,地道東北人领炫。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像礼殊,于是被迫代替她去往敵國和親驹吮。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

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

  • 題目:單目視覺-慣性融合自動導(dǎo)航 摘要 自主微型飛行器(MAV)具有成本和機(jī)動性優(yōu)勢晶伦,使其成為航空攝影碟狞,監(jiān)視和搜索...
    陌上塵離閱讀 2,816評論 0 1
  • 個(gè)人為了看的方便沒有廣告,轉(zhuǎn)載自泡泡機(jī)器人:https://www.sohu.com/a/161346283_71...
    Maxsium閱讀 38,991評論 0 8
  • /**轉(zhuǎn)載自https://blog.csdn.net/xiaoxiaowenqiang/article/deta...
    Maxsium閱讀 626評論 0 0
  • (第一次發(fā)表婚陪,可能有點(diǎn)長族沃,請耐心,筆芯) 終其一生泌参,我們都在割裂與愈合中行進(jìn)脆淹,從軟弱走向堅(jiān)強(qiáng)。 ...
    L木筆_閱讀 291評論 0 1
  • 那一夏沽一,漫天花雨盖溺,梓幽湖畔與你相遇。 那一言铣缠,勾魂奪魄烘嘱,卿訴離別舍夢其歸。 那一念蝗蛙,奢靡寶剎蝇庭,故人不知西壘何話。 ...
    放牛郎李沐宸閱讀 240評論 1 1