來(lái)源 https://blog.csdn.net/qq_30815237/article/details/91897736 前言 三維重建技術(shù)通過(guò)深度數(shù)據(jù)獲取、預(yù)處理、點(diǎn)云配準(zhǔn)與融合、生成表面等過(guò)程,把真實(shí)場(chǎng)景刻畫(huà)成符合計(jì)算機(jī)邏輯表達(dá)的數(shù)學(xué)模型。這種模型可以對(duì)如文物保護(hù)、游戲開(kāi)發(fā)、建筑設(shè)計(jì)、臨床醫(yī)學(xué)等研究起到輔助的作用。 三維重建技術(shù)的重點(diǎn)在于如何獲取目標(biāo)場(chǎng)景或物體的深度信息。在景物深度信息已知的條件下,只需要經(jīng)過(guò)點(diǎn)云數(shù)據(jù)的配準(zhǔn)及融合,即可實(shí)現(xiàn)景物的三維重建。 基于三維重建模型的深層次應(yīng)用研究也可以隨即展開(kāi)。人們按照被動(dòng)式測(cè)量與主動(dòng)式測(cè)量[5]對(duì)目標(biāo)物體深度信息的獲取方法進(jìn)行了分類(lèi),下面對(duì)這兩種方式進(jìn)行相應(yīng)的介紹。 一. 被動(dòng)式三維重建技術(shù) 被動(dòng)式一般利用周?chē)h(huán)境如自然光的反射,使用相機(jī)獲取圖像,然后通過(guò)特定算法計(jì)算得到物體的立體空間信息。主要有以下三種方法: 1.紋理恢復(fù)形狀法 紋理法的基本理論為:作為圖像視野中不斷重復(fù)的視覺(jué)基元,紋理元覆蓋在各個(gè)位置和方向上。當(dāng)某個(gè)布滿(mǎn)紋理元的物體被投射在平面上時(shí),其相應(yīng)的紋理元也會(huì)發(fā)生彎折與變化。 例如透視收縮變形使與圖像平面夾角越小的紋理元越長(zhǎng),投影變形會(huì)使離圖像平面越近的紋理元越大。通過(guò)對(duì)圖像的測(cè)量來(lái)獲取變形,進(jìn)而根據(jù)變形后的紋理元,逆向計(jì)算出深度數(shù)據(jù)。 SFT對(duì)物體表面紋理信息的要求嚴(yán)苛,需要了解成像投影中紋理元的畸變信息,應(yīng)用范圍較窄,只適合紋理特性確定等某些特殊情形。所有在實(shí)際使用中較為少見(jiàn)。 2.陰影恢復(fù)形狀法 SFS(Shape From Shading,從陰影恢復(fù)形狀)法也是一種較為常用的方法。圖像的陰影邊界包含了圖像的輪廓特征信息,因此能夠利用不同光照條件下的圖像的明暗程度與陰影來(lái)計(jì)算物體表面的深度信息,并以反射光照模型進(jìn)行三維重建。 陰影恢復(fù)形狀法的應(yīng)用范圍比較廣泛,可以恢復(fù)除鏡面外的各種物體的三維模型。缺點(diǎn)體現(xiàn)在過(guò)程多為數(shù)學(xué)計(jì)算、重建結(jié)果不夠精細(xì),另外不能忽視的是,SFS法需要準(zhǔn)確的光源參數(shù),包括位置與方向信息。這就導(dǎo)致其無(wú)法應(yīng)用于諸如露天場(chǎng)景等具有復(fù)雜光線的情形中。 3.立體視覺(jué)法 立體視覺(jué)法(Multi-View Stereo,MVS)是另外一種常用的三維重建方法。主要包括直接利用測(cè)距器獲取程距信息、通過(guò)一幅圖像推測(cè)三維信息和利用不同視點(diǎn)上的兩幅或多幅圖像恢復(fù)三維信息等三種方式。通過(guò)模擬人類(lèi)視覺(jué)系統(tǒng),基于視差原理獲取圖像對(duì)應(yīng)點(diǎn)之間的位置偏差,恢復(fù)出三維信息。 雙目立體視覺(jué)重建,在實(shí)際應(yīng)用情況優(yōu)于其他基于視覺(jué)的三維重建方法,也逐漸出現(xiàn)在一部分商業(yè)化產(chǎn)品上; 不足的是運(yùn)算量仍然偏大,而且在基線距離較大的情況下重建效果明顯降低 。 作為計(jì)算機(jī)視覺(jué)的關(guān)鍵技術(shù)之一,立體視覺(jué)法也其弊端。例如,立體視覺(jué)需要假設(shè)空間的平面是正平面,而實(shí)際情況卻與此相差甚遠(yuǎn)。除此之外,匹配還存在歧義性:對(duì)于一幅圖像上的某些特征點(diǎn),另外的圖像可能存在若干個(gè)與之相似的特征點(diǎn)。 那么如何選取最適配的匹配點(diǎn),顯得較為棘手。除此之外,對(duì)于如相機(jī)運(yùn)動(dòng)參數(shù)的確定、大型場(chǎng)景重建需要獲取多幀圖像等問(wèn)題,也極大的影響了立體視覺(jué)的深層次應(yīng)用。 二. 主動(dòng)式三位重建技術(shù) 主動(dòng)式是指利用如激光、聲波、電磁波等光源或能量源發(fā)射至目標(biāo)物體,通過(guò)接收返回的光波來(lái)獲取物體的深度信息。主動(dòng)測(cè)距有莫爾條紋法、飛行時(shí)間法、結(jié)構(gòu)光法和三角測(cè)距法等四種方法。 1.莫爾條紋法 莫爾條紋在生活中比較常見(jiàn),如兩層薄薄的絲綢重疊在一起,即可以看到不規(guī)則的莫爾(Morie)條紋?;驹硎菍蓧K等間隔排列的直線簇或曲線簇圖案重疊起來(lái),以非常小的角度進(jìn)行相對(duì)運(yùn)動(dòng)來(lái)形成莫爾條紋。 因光線的透射與遮擋而產(chǎn)生不同的明暗帶,即莫爾條紋。莫爾條紋隨著光柵的左右平移而發(fā)生垂直位移,此時(shí)產(chǎn)生的條紋相位信息體現(xiàn)了待測(cè)物體表面的深度信息,再通過(guò)逆向的解調(diào)函數(shù),實(shí)現(xiàn)深度信息的恢復(fù)。這種方法具有精度高、實(shí)時(shí)性強(qiáng)的優(yōu)點(diǎn),但是其對(duì)光照較為敏感,抗干擾能力弱。 2.飛行時(shí)間法 飛行時(shí)間法(Time of Flight,ToF)指的是在光速及聲速一定的前提下,通過(guò)測(cè)量發(fā)射信號(hào)與接收信號(hào)的飛行時(shí)間間隔來(lái)獲得距離的方法。這種信號(hào)可以是超聲波,也可以是紅外線等。 飛行時(shí)間法相較于立體視覺(jué)法而言,具有不受基線長(zhǎng)度限制、與紋理無(wú)關(guān)、成像速度快等特點(diǎn)。但是其也有一定的缺點(diǎn)。 首先,ToF相機(jī)的分辨率非常低。其次,ToF相機(jī)容易受到環(huán)境因素的影響,如混合像素、外界光源等,導(dǎo)致景物深度不準(zhǔn)確;最后,系統(tǒng)誤差與隨機(jī)誤差對(duì)測(cè)量結(jié)果的影響很大,需要進(jìn)行后期數(shù)據(jù)處理,主要體現(xiàn)在場(chǎng)景像素點(diǎn)的位置重合上。 3.結(jié)構(gòu)光法 結(jié)構(gòu)光法(Structured Light)通過(guò)向表面光滑無(wú)特征的物體發(fā)射具有特征點(diǎn)的光線,依據(jù)光源中的立體信息輔助提取物體的深度信息。 具體的過(guò)程包括兩個(gè)步驟,首先利用激光投影儀向目標(biāo)物體投射可編碼的光束,生成特征點(diǎn);然后根據(jù)投射模式與投射光的幾何圖案,通過(guò)三角測(cè)量原理計(jì)算攝像機(jī)光心與特征點(diǎn)之間的距離,由此便可獲取生成特征點(diǎn)的深度信息,實(shí)現(xiàn)模型重建。 這種可編碼的光束就是結(jié)構(gòu)光,包括各種特定樣式的點(diǎn)、線、面等圖案。結(jié)構(gòu)光法解決了物體表面平坦、紋理單一、灰度變化緩慢等問(wèn)題。因?yàn)閷?shí)現(xiàn)簡(jiǎn)單且精度較高,所以結(jié)構(gòu)光法的應(yīng)用非常廣泛,如微軟公司的Kinect 4.三角測(cè)距法 三角測(cè)距法是一種非接觸式的測(cè)距方法,以三角測(cè)量原理為基礎(chǔ)。紅外設(shè)備以一定的角度向物體投射紅外線,光遇到物體后發(fā)生反射并被CCD(Charge-coupled Device,電荷耦合元件)圖像傳感器所檢測(cè)。 隨著目標(biāo)物體的移動(dòng),此時(shí)獲取的反射光線也會(huì)產(chǎn)生相應(yīng)的偏移值。根據(jù)發(fā)射角度、偏移距離、中心矩值和位置關(guān)系,便能計(jì)算出發(fā)射器到物體之間的距離。三角測(cè)距法在軍工測(cè)量、地形勘探等領(lǐng)域中應(yīng)用廣泛。 三. 彩色圖像與深度圖像 彩色圖像也叫作RGB圖像,R、G、B三個(gè)分量對(duì)應(yīng)于紅、綠、藍(lán)三個(gè)通道的顏色,它們的疊加組成了圖像像素的不同灰度級(jí)。 RGB顏色空間是構(gòu)成多彩現(xiàn)實(shí)世界的基礎(chǔ)。深度圖像又被稱(chēng)為距離圖像,與灰度圖像中像素點(diǎn)存儲(chǔ)亮度值不同,其像素點(diǎn)存儲(chǔ)的是該點(diǎn)到相機(jī)的距離,即深度值。下圖表示深度圖像與灰度圖像之間的關(guān)系。 深度值指的目標(biāo)物體與測(cè)量器材之間的距離。深度值的大小只與距離有關(guān),而與環(huán)境、光線、方向等因素?zé)o關(guān),所以深度圖像能夠真實(shí)準(zhǔn)確的體現(xiàn)景物的幾何深度信息。通過(guò)建立物體的空間模型,能夠?yàn)樯顚哟蔚挠?jì)算機(jī)視覺(jué)應(yīng)用提供更堅(jiān)實(shí)的基礎(chǔ)。 四. PCL庫(kù) PCL(Point Cloud Library,點(diǎn)云庫(kù))是由斯坦福大學(xué)的Dr.Radu等學(xué)者基于ROS(Robot Operating System,機(jī)器人操作系統(tǒng))下開(kāi)發(fā)與維護(hù)的開(kāi)源項(xiàng)目,最初被用來(lái)輔助機(jī)器人傳感、認(rèn)知和驅(qū)動(dòng)等領(lǐng)域的開(kāi)發(fā)。隨著對(duì)三維點(diǎn)云算法的加入與擴(kuò)充,PCL逐步發(fā)展為免費(fèi)、開(kāi)源、大規(guī)模、跨平臺(tái)的C++編程庫(kù)。PCL框架包括很多先進(jìn)的算法和典型的數(shù)據(jù)結(jié)構(gòu),如濾波、分割、配準(zhǔn)、識(shí)別、追蹤、可視化、模型擬合、表面重建等諸多功能。在算法方面,PCL是一套包括數(shù)據(jù)濾波、點(diǎn)云配準(zhǔn)、表面生成、圖像分割和定位搜索等一系列處理點(diǎn)云數(shù)據(jù)的算法。例如PCL中實(shí)現(xiàn)管道運(yùn)算的接口流程: ①創(chuàng)建處理對(duì)象,例如濾波、特征估計(jì)、圖像分割等; ②通過(guò)setInputCloud輸入初始點(diǎn)云數(shù)據(jù),進(jìn)入處理模塊; ③設(shè)置算法相關(guān)參數(shù); ④調(diào)用不同功能的函數(shù)實(shí)現(xiàn)運(yùn)算,并輸出結(jié)果。 PCL部分常用的算法模塊: libpcl I/O:完成數(shù)據(jù)的輸入、輸出過(guò)程,如點(diǎn)云數(shù)據(jù)的讀寫(xiě); libpcl filters:完成數(shù)據(jù)采樣、特征提取、參數(shù)擬合等過(guò)程; libpcl register:完成深度圖像的配準(zhǔn)過(guò)程,例如迭代最近點(diǎn)算法; libpcl surface:完成三維模型的表面生成過(guò)程,包括三角網(wǎng)格化、表面平滑等。 五. 點(diǎn)云數(shù)據(jù) 如下圖所示,展示了典型的點(diǎn)云數(shù)據(jù)(Point Cloud Data,PCD)模型。 點(diǎn)云數(shù)據(jù)通常出現(xiàn)在逆向工程中,是由測(cè)距設(shè)備獲取的物體表面的信息集合。其掃描資料以點(diǎn)的形式進(jìn)行記錄,這些點(diǎn)既可以是三維坐標(biāo),也可以是顏色或者光照強(qiáng)度等信息。 通常所使用的點(diǎn)云數(shù)據(jù)一般包括點(diǎn)坐標(biāo)精度、空間分辨率和表面法向量等內(nèi)容。點(diǎn)云一般以PCD格式進(jìn)行保存,這種格式的點(diǎn)云數(shù)據(jù)可操作性較強(qiáng),同時(shí)能夠提高點(diǎn)云配準(zhǔn)融合的速度。本文研究的點(diǎn)云數(shù)據(jù)為非結(jié)構(gòu)化的散亂點(diǎn)云,屬于三維重建特有的點(diǎn)云特點(diǎn)。 六. 三位重建流程 使用Kinect采集景物的點(diǎn)云數(shù)據(jù),經(jīng)過(guò)深度圖像增強(qiáng)、點(diǎn)云計(jì)算與配準(zhǔn)、數(shù)據(jù)融合、表面生成等步驟,完成對(duì)景物的三維重建。 對(duì)獲取到的每一幀深度圖像均進(jìn)行前六步操作,直到處理完若干幀。最后完成紋理映射。下面對(duì)每個(gè)步驟作詳細(xì)的說(shuō)明。 1. 深度圖像的獲取 景物的深度圖像由Kinect在Windows平臺(tái)下拍攝獲取,同時(shí)可以獲取其對(duì)應(yīng)的彩色圖像。為了獲取足夠多的圖像,需要變換不同的角度來(lái)拍攝同一景物,以保證包含景物的全部信息。 具體方案既可以是固定Kinect傳感器來(lái)拍攝旋轉(zhuǎn)平臺(tái)上的物體;也可以是旋轉(zhuǎn)Kinect傳感器來(lái)拍攝固定的物體。 2. 預(yù)處理 受到設(shè)備分辨率等限制,它的深度信息也存在著許多缺點(diǎn)。為了更好的促進(jìn)后續(xù)基于深度圖像的應(yīng)用,必須對(duì)深度圖像進(jìn)行去噪和修復(fù)等圖像增強(qiáng)過(guò)程。作為本文的重點(diǎn)問(wèn)題,具體的處理方法將在第四章進(jìn)行詳細(xì)的解釋說(shuō)明。 目前深度相機(jī)輸出的depth圖還有很多問(wèn)題,比如對(duì)于光滑物體表面反射、半/透明物體、深色物體、超出量程等都會(huì)造成深度圖缺失。而且很多深度相機(jī)是大片的深度值缺失,這對(duì)于算法工程師來(lái)說(shuō)非常頭疼。 3. 由深度圖計(jì)算點(diǎn)云數(shù)據(jù) , 預(yù)處理后的深度圖像具有二維信息,像素點(diǎn)的值是深度信息,表示物體表面到Kinect傳感器之間的直線距離,以毫米為單位。以攝像機(jī)成像原理為基礎(chǔ),可以計(jì)算出世界坐標(biāo)系與圖像像素坐標(biāo)系之間具有下式的轉(zhuǎn)換關(guān)系: 即 其中u,v為圖像坐標(biāo)系下的任意坐標(biāo)點(diǎn)。u0,v0分別為圖像的中心坐標(biāo)。xw,yw,zw表示世界坐標(biāo)系下的三維坐標(biāo)點(diǎn)。zc表示相機(jī)坐標(biāo)的z軸值,即目標(biāo)到相機(jī)的距離。R,T分別為外參矩陣的3x3旋轉(zhuǎn)矩陣和3x1平移矩陣。 對(duì)外參矩陣的設(shè)置:由于世界坐標(biāo)原點(diǎn)和相機(jī)原點(diǎn)是重合的,即沒(méi)有旋轉(zhuǎn)和平移,所以: 注意到,相機(jī)坐標(biāo)系和世界坐標(biāo)系的坐標(biāo)原點(diǎn)重合,因此相機(jī)坐標(biāo)和世界坐標(biāo)下的同一個(gè)物體具有相同的深度,即zc=zw.于是公式可進(jìn)一步簡(jiǎn)化為: 從以上的變換矩陣公式,可以計(jì)算得到圖像點(diǎn)[u,v]T 到世界坐標(biāo)點(diǎn)[xw,yw,zw]T的變換公式: M1稱(chēng)為相機(jī)的內(nèi)參矩陣,包含內(nèi)參(fx,fy,u0,v0)。M2稱(chēng)為相機(jī)的外參矩陣,包含外參(R:旋轉(zhuǎn)矩陣,T:平移矩陣)。 , (圖像到相機(jī)的變換) (u0, v0)是圖像坐標(biāo)系原點(diǎn)(圖像中心)在像素坐標(biāo)系(以左上角為原點(diǎn))中的坐標(biāo),dx 和 dy分別是每個(gè)像素在圖像平面x和y方向上的物理尺寸。 f 為焦距(像平面與相機(jī)坐標(biāo)系原點(diǎn)的距離)。M稱(chēng)之為內(nèi)參矩陣可以理解為矩陣內(nèi)各值只與相機(jī)內(nèi)部參數(shù)有關(guān),且不隨物體位置變化而變化。其中fx,fy的單位為個(gè)(像素?cái)?shù)目)。用一幅圖來(lái)總結(jié)從世界坐標(biāo)系到像素坐標(biāo)系(不考慮畸變)的轉(zhuǎn)換關(guān)系: 相機(jī)坐標(biāo)系:在相機(jī)上建立的坐標(biāo)系,為了從相機(jī)的角度描述物體位置而定義,作為溝通世界坐標(biāo)系和圖像/像素坐標(biāo)系的中間一環(huán)。 單位為m。以相機(jī)的光心為坐標(biāo)原點(diǎn),X 軸和Y 軸分別平行于圖像坐標(biāo)系的 X 軸和Y 軸,相機(jī)的光軸為Z 軸,用(Xc, Yc, Zc)表示其坐標(biāo)值。 圖像坐標(biāo)系(image coordinate system):描述物體從相機(jī)坐標(biāo)系到圖像坐標(biāo)系的投影透射關(guān)系,方便進(jìn)一步得到像素坐標(biāo)系下的坐標(biāo)。 以圖像平面的中心為坐標(biāo)原點(diǎn),X軸和Y 軸分別平行于圖像平面的兩條垂直邊,用( x , y )表示其坐標(biāo)值。圖像坐標(biāo)系是用物理單位(例如毫米)表示像素在圖像中的位置。 像素坐標(biāo)系(pixel coordinate system):描述物體成像后的像點(diǎn)在數(shù)字圖像上(相片)的坐標(biāo),是我們真正從相機(jī)內(nèi)讀取到的信息所在的坐標(biāo)系。 單位為個(gè)(像素?cái)?shù)目)。以圖像平面的左上角頂點(diǎn)為原點(diǎn),X 軸和Y 軸分別平行于圖像坐標(biāo)系的 X 軸和Y 軸,用(u , v )表示其坐標(biāo)值。數(shù)碼相機(jī)采集的圖像首先是形成標(biāo)準(zhǔn)電信號(hào)的形式,然后再通過(guò)模數(shù)轉(zhuǎn)換變換為數(shù)字圖像。 每幅圖像的存儲(chǔ)形式是M × N的數(shù)組,M 行 N 列的圖像中的每一個(gè)元素的數(shù)值代表的是圖像點(diǎn)的灰度。這樣的每個(gè)元素叫像素,像素坐標(biāo)系就是以像素為單位的圖像坐標(biāo)系。 4. 點(diǎn)云配準(zhǔn) 對(duì)于多幀通過(guò)不同角度拍攝的景物圖像,各幀之間包含一定的公共部分。為了利用深度圖像進(jìn)行三維重建,需要對(duì)圖像進(jìn)行分析,求解各幀之間的變換參數(shù)。 深度圖像的配準(zhǔn)是以場(chǎng)景的公共部分為基準(zhǔn),把不同時(shí)間、角度、照度獲取的多幀圖像疊加匹配到統(tǒng)一的坐標(biāo)系中。計(jì)算出相應(yīng)的平移向量與旋轉(zhuǎn)矩陣,同時(shí)消除冗余信息。 點(diǎn)云配準(zhǔn)除了會(huì)制約三維重建的速度,也會(huì)影響到最終模型的精細(xì)程度和全局效果。因此必須提升點(diǎn)云配準(zhǔn)算法的性能。 三維深度信息的配準(zhǔn)按不同的圖像輸入條件與重建輸出需求被分為:粗糙配準(zhǔn)、精細(xì)配準(zhǔn)和全局配準(zhǔn)等三類(lèi)方法。 (1)粗糙配準(zhǔn)(Coarse Registration) 粗糙配準(zhǔn)研究的是多幀從不同角度采集的深度圖像。首先提取兩幀圖像之間的特征點(diǎn),這種特征點(diǎn)可以是直線、拐點(diǎn)、曲線曲率等顯式特征,也可以是自定義的符號(hào)、旋轉(zhuǎn)圖形、軸心等類(lèi)型的特征。 隨后根據(jù)特征方程實(shí)現(xiàn)初步的配準(zhǔn)。粗糙配準(zhǔn)后的點(diǎn)云和目標(biāo)點(diǎn)云將處于同一尺度(像素采樣間隔)與參考坐標(biāo)系內(nèi),通過(guò)自動(dòng)記錄坐標(biāo),得到粗匹配初始值。 (2)精細(xì)配準(zhǔn)(Fine Registration) 精細(xì)配準(zhǔn)是一種更深層次的配準(zhǔn)方法。經(jīng)過(guò)前一步粗配準(zhǔn),得到了變換估計(jì)值。將此值作為初始值,在經(jīng)過(guò)不斷收斂與迭代的精細(xì)配準(zhǔn)后,達(dá)到更加精準(zhǔn)的效果。 以經(jīng)典的ICP(Iterative Closest Point,迭代最近點(diǎn))算法為例,該算法首先計(jì)算初始點(diǎn)云上所有點(diǎn)與目標(biāo)點(diǎn)云的距離,保證這些點(diǎn)和目標(biāo)點(diǎn)云的最近點(diǎn)相互對(duì)應(yīng),同時(shí)構(gòu)造殘差平方和的目標(biāo)函數(shù)。 基于最小二乘法對(duì)誤差函數(shù)進(jìn)行最小化處理,經(jīng)過(guò)反復(fù)迭代,直到均方誤差小于設(shè)定的閾值。ICP算法能夠獲得精正確無(wú)誤的配準(zhǔn)結(jié)果,對(duì)自由形態(tài)曲面配準(zhǔn)問(wèn)題具有重要意義。 另外還有如SAA(Simulate Anneal Arithmetic,模擬退火)算法、GA(Genetic Algorithm,遺傳)算法等也有各自的特點(diǎn)與使用范疇。 (3)全局配準(zhǔn)(Global Registration) 全局配準(zhǔn)是使用整幅圖像直接計(jì)算轉(zhuǎn)換矩陣。通過(guò)對(duì)兩幀精細(xì)配準(zhǔn)結(jié)果,按照一定的順序或一次性的進(jìn)行多幀圖像的配準(zhǔn)。 這兩種配準(zhǔn)方式分別稱(chēng)為序列配準(zhǔn)(Sequential Registration)和同步配準(zhǔn)(Simultaneous Registration)。 配準(zhǔn)過(guò)程中,匹配誤差被均勻的分散到各個(gè)視角的多幀圖像中,達(dá)到削減多次迭代引起的累積誤差的效果。值得注意的是,雖然全局配準(zhǔn)可以減小誤差,但是其消耗了較大的內(nèi)存存儲(chǔ)空間,大幅度提升了算法的時(shí)間復(fù)雜度。 5. 數(shù)據(jù)融合 經(jīng)過(guò)配準(zhǔn)后的深度信息仍為空間中散亂無(wú)序的點(diǎn)云數(shù)據(jù),僅能展現(xiàn)景物的部分信息。因此必須對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行融合處理,以獲得更加精細(xì)的重建模型。 以Kinect傳感器的初始位置為原點(diǎn)構(gòu)造體積網(wǎng)格,網(wǎng)格把點(diǎn)云空間分割成極多的細(xì)小立方體,這種立方體叫做體素(Voxel)。通過(guò)為所有體素賦予SDF(Signed Distance Field,有效距離場(chǎng))值,來(lái)隱式的模擬表面。 SDF值等于此體素到重建表面的最小距離值。當(dāng)SDF值大于零,表示該體素在表面前;當(dāng)SDF小于零時(shí),表示該體素在表面后;當(dāng)SDF值越接近于零,表示該體素越貼近于場(chǎng)景的真實(shí)表面。 KinectFusion技術(shù)雖然對(duì)場(chǎng)景的重建具有高效實(shí)時(shí)的性能,但是其可重建的空間范圍卻較小,主要體現(xiàn)在消耗了極大的空間用來(lái)存取數(shù)目繁多的體素。 為了解決體素占用大量空間的問(wèn)題,Curless[50]等人提出了TSDF (Truncated Signed Distance Field,截?cái)喾?hào)距離場(chǎng))算法,該方法只存儲(chǔ)距真實(shí)表面較近的數(shù)層體素,而非所有體素。因此能夠大幅降低KinectFusion的內(nèi)存消耗,減少模型冗余點(diǎn)。 TSDF算法采用柵格立方體代表三維空間,每個(gè)柵格中存放的是其到物體表面的距離。TSDF值的正負(fù)分別代表被遮擋面與可見(jiàn)面,而表面上的點(diǎn)則經(jīng)過(guò)零點(diǎn),如圖2-7中左側(cè)展示的是柵格立方體中的某個(gè)模型。若有另外的模型進(jìn)入立方體,則按照下式(2-9)與(2-10)實(shí)現(xiàn)融合處理。 其中,指的是此時(shí)點(diǎn)云到柵格的距離,是柵格的初始距離,是用來(lái)對(duì)同一個(gè)柵格距離值進(jìn)行融合的權(quán)重。如圖2-7中右側(cè)所示,兩個(gè)權(quán)重之和為新的權(quán)重。對(duì)于KinectFusion算法而言,當(dāng)前點(diǎn)云的權(quán)重值設(shè)置為1。 鑒于TSDF算法采用了最小二乘法進(jìn)行了優(yōu)化,點(diǎn)云融合時(shí)又利用了權(quán)重值,所有該算法對(duì)點(diǎn)云數(shù)據(jù)有著明顯的降噪功能。 6. 表面生成 表面生成的目的是為了構(gòu)造物體的可視等值面,常用體素級(jí)方法直接處理原始灰度體數(shù)據(jù)。Lorensen[51]提出了經(jīng)典體素級(jí)重建算法:MC(Marching Cube,移動(dòng)立方體)法。 移動(dòng)立方體法首先將數(shù)據(jù)場(chǎng)中八個(gè)位置相鄰的數(shù)據(jù)分別存放在一個(gè)四面體體元的八個(gè)頂點(diǎn)處。對(duì)于一個(gè)邊界體素上一條棱邊的兩個(gè)端點(diǎn)而言,當(dāng)其值一個(gè)大于給定的常數(shù)T,另一個(gè)小于T時(shí),則這條棱邊上一定有等值面的一個(gè)頂點(diǎn)。 然后計(jì)算該體元中十二條棱和等值面的交點(diǎn),并構(gòu)造體元中的三角面片,所有的三角面片把體元分成了等值面內(nèi)與等值面外兩塊區(qū)域。 最后連接此數(shù)據(jù)場(chǎng)中的所有體元的三角面片,構(gòu)成等值面。合并所有立方體的等值面便可生成完整的三維表面。 參考 https://www.cnblogs.com/wuyida/p/6301263.html https://www.cnblogs.com/wuyida/p/6301262.html 本文章僅用于參考,如有問(wèn)題請(qǐng)聯(lián)系我們。 |
|
來(lái)自: taotao_2016 > 《圖像處理》