一種適用于快速點云三維重建的顏色映射方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于三維重建技術(shù)領(lǐng)域,特別涉及一種適用于三維重建的顏色映射方法方 法及其裝置。
【背景技術(shù)】
[0002] 現(xiàn)有三維信息的獲取方式主要可以歸納為以下三種:
[0003] 第一種方法,利用激光掃描儀、kinect等設(shè)備直接獲取深度。以深度攝像頭 Kinect距離,它通過T0F(Time of Flight)的方法確定環(huán)境的深度。具體來講,就是傳感器 發(fā)出經(jīng)過調(diào)制的近紅外光,遇到物體后近紅外光被反射,傳感器通過計算光線發(fā)射和反射 的時間差和相位差,來換算被拍攝物體的距離,以產(chǎn)生深度信息,此外再結(jié)合傳統(tǒng)的相機拍 攝,就能將物體的三維輪廓以不同顏色代表不同距離的地形圖方式呈現(xiàn)出來。其測量范圍 可達(dá)數(shù)米、精度小于2cm,每秒更新頻率可達(dá)30~60fps。這種方法具有簡單易操作的優(yōu)點, 而且速度快,精度適中,只需要用設(shè)備掃描需要拍攝的場景,隨后可以對拍攝的深度視頻進(jìn) 行線下的處理從而得到深度圖。
[0004] 第二種方法,利用建模軟件構(gòu)建物體的三維模型。比如使用3Dsmax、maya、autoCAD 等工程制圖軟件,就可以在虛擬世界中建立三維場景。這種方法在游戲設(shè)計和動畫設(shè)計中 非常常用。其缺點是需要大量的人工操作,如上色,貼圖等。其次,虛擬世界的場景無法重 建出太多的現(xiàn)實細(xì)節(jié),尤其是對于不規(guī)則物體的創(chuàng)建。這也就局限了第二種方法的應(yīng)用。
[0005] 第三種是基于二維圖像的三維重建方法。采用圖像和視頻流的三維重建技術(shù),利 用相機的投影和位置關(guān)系,可以通過雙目視覺的方法反算某一點在三維世界中的坐標(biāo),從 而得到稠密的三維點云。這種方法的優(yōu)點是其使用的設(shè)備很靈活,比如一臺或幾臺照相機, 或者一臺攝像機,成本很低;采集的地點也很隨意,室外和是內(nèi)場景均可??梢哉f是一種性 價比很高的方法。但是其缺點是后期的算法需要經(jīng)過精細(xì)的設(shè)計,需要很強大的后期算法 支持作為重建的保證。這也就降低或者抹殺了這種方法在實時場景重建方面的應(yīng)用。
[0006] 關(guān)于三維場景的顏色映射方法主要可以歸納為下面兩種:
[0007] 第一種方法,使用點云自帶的RGB信息進(jìn)行融合,在輸出的三維場景將自帶顏色。 這種方法意在解決點云融合部分的顏色重復(fù)和去冗余問題,主要手段有泊松blending。這 種方法可以將不同視角的帶顏色的點云融合成一片點云。其優(yōu)點是對于點云密度較高的輸 入,blending可以有效地彌合光照的變化,使得顏色均勾,同時對于冗余的部分,blending 方法可以非常好地將冗余點去除,得到較為精細(xì)的三維場景。
[0008] 第二種方法是拍攝場景的二維圖像并記錄拍攝時相機的內(nèi)外參數(shù),在獲得無序無 色點云后使用映射方法將二維紋理映射到三維點云上,將三維場景的數(shù)據(jù)和相機位參,對 應(yīng)場景的RGB紋理分別讀入,而后通過判斷遮擋將可信部分通過內(nèi)外參數(shù)直接映射至三維 場景。這種方法的優(yōu)點在于對于低密度點云和較低分辨率的RGB紋理,本方法可以有效地 保留盡可能多的細(xì)節(jié),避免由于點云過于稀疏所造成的對紋理下采樣的情況發(fā)生。
【發(fā)明內(nèi)容】
[0009] 基于以上現(xiàn)有技術(shù),本發(fā)明的目的在于提供一種全新的適用于快速點云三維重建 的顏色映射方法及裝置,有效地填補了快速重建領(lǐng)域的顏色映射方法的空白,特別對稀疏 點云的顏色映射有著非常好的效果。
[0010] 實現(xiàn)本發(fā)明目的的技術(shù)解決方案為:
[0011] -種適用于快速點云三維重建的顏色映射方法,具體步驟如下:
[0012] S1,將無序點云進(jìn)行快速三角化,得到基于面片的三維模型;
[0013] S2,讀入場景的RGB紋理信息和拍攝紋理信息時相機的位參并進(jìn)行預(yù)處理,將對 應(yīng)位置的RGB信息和對應(yīng)相機的位參信息按對應(yīng)位置讀入相應(yīng)數(shù)組;使用圖像平滑及直方 圖均衡化方法將多幅RGB紋理信息進(jìn)行彩色矯正;
[0014] S3 :取步驟Sl的面片作為輸入面片,判斷面片在某視角下是否可見并標(biāo)記,將輸 入面片索引依次使用內(nèi)外參數(shù)映射至當(dāng)前視角,判斷是否在相機視角內(nèi),如果在視角內(nèi),那 么標(biāo)記為視場內(nèi)可見并輸出;
[0015] S4:檢視前面所有視角,判斷當(dāng)前視角內(nèi)面片是否被前面視角遮擋,并改變標(biāo)記, 依次取步驟S3輸出的視角內(nèi)可見的面片,判斷前面所有視角已染色好的面片與需要投影 的面片的遮擋關(guān)系,如被遮擋,去掉標(biāo)記,否則保留標(biāo)記;
[0016] S5:將視角內(nèi)且未被遮擋的面片與當(dāng)前視角的RGB紋理建立映射,使用內(nèi)外參數(shù) 將在視場內(nèi)且未被遮擋的面片投影至RGB的三角面片上,建立映射關(guān)系;
[0017] S6 :取出所有未被標(biāo)記的面片壓入下一個視角作為步驟S3的輸入面片,將步驟 S3~S5中未被標(biāo)記的面片作為新視角的輸入,重復(fù)進(jìn)行步驟S3直到所有視角均已映射完 畢;
[0018] S7 :所有視角映射結(jié)束后,按映射關(guān)系將點云上色,使用步驟S3~S6所建立的三 維面片和RGB紋理的映射關(guān)系映射點云,輸出彩色三維場景。
[0019] 步驟S2中圖像預(yù)處理的方法為:根據(jù)圖像拍攝所自帶的時間連續(xù)性,輸入拍攝的 圖像組,依次對圖像進(jìn)行直方圖均衡化處理,得到光照較為一致的RGB紋理,便于后面進(jìn)行 映射。
[0020] 步驟S3的具體步驟包括:將面片的三個頂點乘以內(nèi)外參矩陣,得到在該視角下的 投影二維坐標(biāo),判斷二維坐標(biāo)是否在拍攝的圖片像素坐標(biāo)范圍內(nèi),如果三個頂點都在,那么 將面片標(biāo)記為視場內(nèi)可見,否則標(biāo)記為視場內(nèi)不可見。
[0021] -種實現(xiàn)上述方法的裝置,包括依次相連的點云快速三角化模塊、輸入讀取模塊、 圖像預(yù)處理模塊、紋理映射模塊、遮擋判斷模塊和上色點云輸出模塊;所述遮擋判斷模塊與 紋理映射模塊相連構(gòu)成循環(huán);所述點云快速三角化模塊中,點云被讀入后使用網(wǎng)格三角化 的方式將無序點云轉(zhuǎn)化為三角面片形式,并可以建立面片索引;所述輸入讀取模塊中,從不 同位置拍攝的場景RGB紋理和相機位參被順序?qū)?yīng)讀入,作為后面模塊中映射的依據(jù);所 述圖像預(yù)處理模塊中,讀入的RGB紋理需要進(jìn)行直方圖均衡化和平滑濾波的操作,以平衡 和消除場景光照多樣性對紋理映射效果的影響;所述紋理映射模塊中,將標(biāo)記的面片乘以 相機的內(nèi)外參數(shù)映射到二維平面下,尋找對應(yīng)的紋理,記錄二維平面對應(yīng)的三個頂點的坐 標(biāo),并將二維平面和三維平面的定點相關(guān)聯(lián)建立映射;所述遮擋判斷模塊中,將已經(jīng)上色的 面片映射入當(dāng)前視角,取視角內(nèi)面片設(shè)為面片組1,取需要上色的且在視角內(nèi)的面片設(shè)為面 片組2 ;取每一個面片組1中的面片X,使用kdtree搜索面片組2中相鄰的面片Y ;若面片 Y的深度比面片X的大,且面片Y在映射后其頂點在面片X映射后的三角形內(nèi),那么取消 標(biāo)記,判斷為遮擋;所述上色點云輸出模塊中,將所有建立映射的點云和對應(yīng)的面片進(jìn)行融 合,輸出彩色三維場景。
[0022] 進(jìn)一步地,所述遮擋判斷模塊標(biāo)記一部分面片進(jìn)行映射后,將剩下的取消標(biāo)記的 面片和前面未標(biāo)記的面片合并,所述紋理映射模塊作為下一個視角紋理映射的輸入。
[0023] 本發(fā)明提出了一種全新的適用于快速點云三維重建的顏色映射方法。它針對快速 重建產(chǎn)生的無 RGB信息的三維無序稀疏點云,不采取差值方法,而采取三角面片化的方法, 通過使用內(nèi)外參矩陣映射的方式進(jìn)行場景貼圖,通過直方圖均衡化的方式在二維場景