本發(fā)明涉及光學三維測量領域,尤其涉及一種三維重建方法、裝置及設備。
背景技術:
三維重建技術在三維建模、逆向工程、3d打印、人體測量、人機交互、電影和動畫制作等方面具有廣泛的應用。近年來,廉價的三維成像傳感器(如kinect)使得3d數(shù)據(jù)獲取的成本大大降低。但這些廉價的傳感器精度很有限,不能直接得到高精度的重建。為了改善精度,一類方法是對多點觀測的三維點云進行加權平均,如kinectfusion。另一類方法是與其他類型的三維重建方法進行融合,如光度立體視覺方法,從明暗恢復形狀等。
經(jīng)典的光度立體視覺方法利用同一個相機拍攝的3張不同光照條件下的圖像,可以計算出目標的表面法線方向。光度立體視覺方法能夠很好地重建目標表面的高頻細節(jié),但容易出現(xiàn)低頻的畸變。光度立體視覺方法大部分還處于實驗室研究階段,對使用的條件要求非常嚴格。在已經(jīng)通過其他方法獲得目標表面幾何的情況下,通過與光度立體視覺得到的法向場融合,可以得到更高精度的表面重建。在這些方法中,基于點光源的系統(tǒng),具有緊湊的結構,但通常需要采用專門的標定裝置(如反光球)精確標定點光源的參數(shù)。假設光源為平行光的系統(tǒng),可以實現(xiàn)光源自標定,但為了獲得平行光,光源必須放置在遠離目標的地方,這就導致整個重建系統(tǒng)結構不緊湊。有的方法假設目標表面具有均勻的反射率,對具有均勻反射率的目標重建效果很好,但不適用于具有多反射率的目標。而在實際應用環(huán)境中,具有多反射率的目標是很常見的。
技術實現(xiàn)要素:
本發(fā)明實施例提供了一種三維重建方法、裝置及設備,可以采用近距離點光源模型,使得三維重建系統(tǒng)結構緊湊,且適用于具有多反射率的目標。
本發(fā)明實施例第一方面提供一種三維重建方法,包括:
標定兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù);
根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定至少三個led點光源的參數(shù);
按照預設的時序采集近紅外光斑發(fā)生器照明的散斑圖像對以及至少三張led點光源照明的圖像;
根據(jù)所述近紅外光斑發(fā)生器照明的散斑圖像對,獲取初始深度圖;
根據(jù)所述至少三個led點光源的參數(shù)以及所述至少三張led點光源照明的圖像,獲取目標表面的法線方向;
融合所述初始深度圖以及所述目標表面的法線方向,輸出目標深度圖。
結合本發(fā)明實施例第一方面,在本發(fā)明實施例第一方面的第一種實現(xiàn)方式中,所述led點光源的參數(shù)包括:所述led點光源的位置以及亮度;
所述根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定至少三個led點光源的參數(shù),包括:根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),分別標定每一個led點光源的參數(shù);
其中,所述標定每一個led點光源的參數(shù),包括:
根據(jù)近紅外光斑發(fā)生器照明的散斑圖像對獲取初始深度圖d0;
對所述初始深度圖d0進行雙邊濾波,得到d0';
根據(jù)所述led點光源在相機坐標系中的位置,獲得所述led點光源位置的估算初值s0;
根據(jù)所述d0'以及所述兩個近紅外參數(shù)的內(nèi)部參數(shù)以及外部參數(shù),生成目標的初始點云xi和法線方向ni;
根據(jù)所述s0、xi和ni,由計算公式可得出光源亮度的初值e0;其中,所述計算公式為:
以所述s0以及所述e0為初值,由非線性最小二乘優(yōu)化得到所述led點光源的位值和亮度。
在一種可能的實現(xiàn)方式中,所述目標具有均勻的反射率,即所述ρi=1。
結合本發(fā)明實施例第一方面,在本發(fā)明實施例第一方面的第二種實現(xiàn)方式中,所述按照預設的時序采集近紅外光斑發(fā)生器照明的散斑圖像對以及至少三張led點光源照明的圖像,包括:
打開近紅外光斑發(fā)生器,采用所述兩個近紅外相機采集所述近紅外光斑發(fā)生器照明的散斑圖像對;
關閉所述近紅外光斑發(fā)生器,依次點亮所述至少三個led點光源,采用所述兩個近紅外相機中的一個近紅外相機采集每個led點光源照明的圖像。
結合本發(fā)明實施例第一方面的第一種實現(xiàn)方式,在本發(fā)明實施例第一方面的第三種實現(xiàn)方式中,所述根據(jù)所述至少三個led點光源的參數(shù)以及所述至少三張led點光源照明的圖像,獲取目標表面的法線方向,包括:
根據(jù)所述至少三個led點光源的位置、亮度以及所述至少三張led點光源照明的圖像的灰度值,獲取目標表面上三維點處的法線方向以及反射率。
本發(fā)明實施例第二方面提供了一種三維重建裝置,包括:
第一標定模塊,用于標定兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù);
第二標定模塊,用于根據(jù)所述第一標定模塊標定的兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定至少三個led點光源的參數(shù);
采集模塊,用于按照預設的時序采集近紅外光斑發(fā)生器照明的散斑圖像以及至少三張led點光源照明的圖像;
第一獲取模塊,用于根據(jù)所述采集模塊采集的所述近紅外光斑發(fā)生器照明的散斑圖像,獲取初始深度圖;
第二獲取模塊,用于根據(jù)所述第二標定模塊標定的所述至少三個led點光源的參數(shù)以及所述采集模塊采集的所述至少三張led點光源照明的圖像,獲取目標表面的法線方向;
輸出模塊,用于融合所述第一獲取模塊獲取的所述初始深度圖以及所述第二獲取模塊獲取的所述目標表面的法線方向,輸出目標深度圖。
結合本發(fā)明實施例第二方面,在本發(fā)明實施例第二方面的第一種實現(xiàn)方式中,所述led點光源的參數(shù)包括:所述led點光源的位置以及亮度;
所述第二標定模塊,用于根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),分別標定每一個led點光源的參數(shù);
其中,所述第二標定模塊,包括:
初始深度圖獲取單元,用于根據(jù)近紅外光斑發(fā)生器照明的散斑圖像獲取初始深度圖d0;
噪聲抑制單元,用于對所述初始深度圖d0進行雙邊濾波,得到d0';
位置初值獲取單元,用于根據(jù)所述led點光源在相機坐標系中的位置,獲得所述led點光源位置的估算初值s0;
生成單元,用于根據(jù)所述d0'以及所述兩個近紅外參數(shù)的內(nèi)部參數(shù)以及外部參數(shù),生成目標的初始點云xi和法線方向ni;
亮度初值獲取單元,根據(jù)所述s0、xi和ni,由計算公式可得出光源亮度的初值e0;其中,所述計算公式為:
標定單元,用于以所述s0以及所述e0為初值,由非線性最小二乘優(yōu)化得到所述led點光源的位值和亮度。
結合本發(fā)明實施例第二方面,在本發(fā)明實施例第二方面的第二種實現(xiàn)方式中,所述采集模塊包括:
第一采集單元,用于打開近紅外光斑發(fā)生器,采用所述兩個近紅外相機采集所述近紅外光斑發(fā)生器照明的散斑圖像;
第二采集單元,用于關閉所述近紅外光斑發(fā)生器,依次點亮所述至少三個led點光源,采用所述兩個近紅外相機中的一個近紅外相機采集每個led點光源照明的圖像。
結合本發(fā)明實施例第二方面的第一種實現(xiàn)方式,在本發(fā)明實施例第二方面的第三種實現(xiàn)方式中,所述第二獲取模塊包括:
獲取單元,用于根據(jù)所述至少三個led點光源的位置、亮度以及所述至少三張led點光源照明的圖像的灰度值,獲取目標表面上三維點處的法線方向以及反射率。
本發(fā)明實施例第三方面提供了一種三維重建設備,包括:
兩個近紅外相機、至少三個led點光源、近紅外光斑發(fā)生器、存儲器以及處理器;
所述存儲器用于存儲程序指令;
所述處理器用于調(diào)用所述存儲器中的程序指令并執(zhí)行以下操作:
標定所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù);
根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定所述至少三個led點光源的參數(shù);
按照預設的時序采集所述近紅外光斑發(fā)生器照明的散斑圖像對以及至少三張led點光源照明的圖像;
根據(jù)所述近紅外光斑發(fā)生器照明的散斑圖像對,獲取初始深度圖;
根據(jù)所述至少三個led點光源的參數(shù)以及所述至少三張led點光源照明的圖像,獲取目標表面的法線方向;
融合所述初始深度圖以及所述目標表面的法線方向,輸出目標深度圖。
結合本發(fā)明實施例第三方面,在本發(fā)明實施例第三方面的第一種實現(xiàn)方式中,所述led點光源的參數(shù)包括:所述led點光源的位置以及亮度;
所述處理器根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定所述至少三個led點光源的參數(shù),包括:根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),分別標定每一個led點光源的參數(shù);
其中,所述處理器標定每一個led點光源的參數(shù),包括:
根據(jù)近紅外光斑發(fā)生器照明的散斑圖像對獲取初始深度圖d0;
對所述初始深度圖d0進行雙邊濾波,得到d0';
根據(jù)所述led點光源在相機坐標系中的位置,獲得所述led點光源位置的估算初值s0;
根據(jù)所述d0'以及所述兩個近紅外參數(shù)的內(nèi)部參數(shù)以及外部參數(shù),生成目標的初始點云xi和法線方向ni;
根據(jù)所述s0、xi和ni,由計算公式可得出光源亮度的初值e0;其中,所述計算公式為:
以所述s0以及所述e0為初值,由非線性最小二乘優(yōu)化得到所述led點光源的位值和亮度。
結合本發(fā)明實施例第三方面,在本發(fā)明實施例第三方面的第二種實現(xiàn)方式中,所述處理器按照預設的時序采集所述近紅外光斑發(fā)生器照明的散斑圖像對以及至少三張led點光源照明的圖像,包括:
打開近紅外光斑發(fā)生器,采用所述兩個近紅外相機采集所述近紅外光斑發(fā)生器照明的散斑圖像對;
關閉所述近紅外光斑發(fā)生器,依次點亮所述至少三個led點光源,采用所述兩個近紅外相機中的一個近紅外相機采集每個led點光源照明的圖像。
結合本發(fā)明實施例第三方面的第一種實現(xiàn)方式,在本發(fā)明實施例第三方面的第三種實現(xiàn)方式中,所述處理器根據(jù)所述至少三個led點光源的參數(shù)以及所述至少三張led點光源照明的圖像,獲取目標表面的法線方向,包括:
根據(jù)所述至少三個led點光源的位置、亮度以及所述至少三張led點光源照明的圖像的灰度值,獲取目標表面上三維點處的法線方向以及反射率。
可以看出,本發(fā)明實施例提供了一種三維重建方法、裝置及設備,通過對近紅外相機的內(nèi)部參數(shù)以及外部參數(shù)進行標定、對至少三個led點光源的參數(shù)進行標定,將基于散斑的立體匹配方法和近距離點光源光度立體視覺方法結合起來,能夠同時兼顧重建細節(jié)以及尺寸的精確性,使得整個系統(tǒng)更加緊湊,且能適應具有多反射率表面的目標。進一步的,還提供了一種更簡單的點光源標定方法,只需要利用具有均勻反射率表面的目標就可以實現(xiàn)點光源的標定。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例中所需使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種三維重建方法流程圖;
圖2為本發(fā)明實施例提供的一種點光源標定方法流程圖;
圖3為本發(fā)明實施例提供的近距離點光源與目標表面幾何關系示意圖;
圖4為本發(fā)明實施例提供的一種圖像采集方法流程圖;
圖5為本發(fā)明實施例提供的一種圖像采集時序圖;
圖6(a)為本發(fā)明實施例提供的近紅外相機采集的散斑圖像對;
圖6(b)為本發(fā)明實施例提供的左相機采集的4個led點光源照明的圖像;
圖7(a)為本發(fā)明實施例提供的采用kinectfusion得到的大衛(wèi)頭像重建結果;
圖7(b)為本發(fā)明實施例提供的采用本方法得到的大衛(wèi)頭像重建結果;
圖8左圖為基于散斑立體匹配方法的重建結果,右圖為融合光度立體視覺和基于散斑圖像立體匹配的重建結果;
圖9為本發(fā)明實施例提供的一種三維重建裝置結構圖;
圖10為本發(fā)明實施例提供的一種第二標定模塊結構圖;
圖11為本發(fā)明實施例提供的一種采集模塊結構圖;
圖12為本發(fā)明實施例提供的一種三維重建設備結構圖;
圖13為本發(fā)明實施例提供的一種具體的三維重建設備結構圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述。
本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”、“第三”等是用于區(qū)別不同對象,而不是用于描述特定順序。此外,術語“包括”和“具有”以及它們?nèi)魏巫冃?,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或模塊的過程、方法、系統(tǒng)、產(chǎn)品或設備沒有限定于已列出的步驟或模塊,而是可選地還包括沒有列出的步驟或模塊,或可選地還包括對于這些過程、方法、產(chǎn)品或設備固有的其他步驟或模塊。
請參閱圖1,圖1為本發(fā)明實施例提供的一種三維重建方法流程圖,一種三維重建方法至少可以包括以下幾個步驟:
步驟s101:標定兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù)。
具體地,兩個近紅外相機分別左右放置。其中,相機的內(nèi)部參數(shù)包括鏡頭焦距、主點、畸變系數(shù)等;外部參數(shù)包括左右相機坐標系之間的旋轉(zhuǎn)矩陣和平移向量等。
具體地,對于相機內(nèi)部參數(shù)以及外部參數(shù)的標定通常采用張正友標定法,采用此方法只需要利用平面靶標就可以實現(xiàn)相機參數(shù)的標定。此外,還可以用三維靶標對相機的參數(shù)進行標定,但是二維的平面靶標的獲取比三維靶標更容易,因此常用張正友標定法對相機參數(shù)進行標定。
步驟s102:根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定至少三個led點光源的參數(shù)。
具體地,點光源的參數(shù)可以包括亮度以及位置,位置具體可以為相對于左相機坐標系的位置。
具體地,led點光源的個數(shù)至少為三個,理論上三個led點光源即可,但優(yōu)選方案通常為四個led點光源。
步驟s103:按照預設的時序采集近紅外光斑發(fā)生器照明的散斑圖像對以及至少三張led點光源照明的圖像。
具體地,近紅外光斑發(fā)生器照設目標表面時,采用兩個近紅外相機分別采集目標的散斑圖像,形成散斑圖像對。led點光源照射目標表面時,可以采用兩個近紅外相機中的左相機采集圖像,也可以采用兩個近紅外相機中的右相機采集圖像。
步驟s104:根據(jù)所述近紅外光斑發(fā)生器照明的散斑圖像對,獲取初始深度圖。
具體地,可以應用立體匹配算法來計算出初始深度圖。例如,采用歸一化互相關系數(shù)進行立體匹配,計算視差圖。得到視差圖后,用立體匹配中的唯一性約束剔除誤匹配點。
步驟s105:根據(jù)所述至少三個led點光源的參數(shù)以及所述至少三張led點光源照明的圖像,獲取目標表面的法線方向。
具體地,可以對至少三張led點光源照明的圖像應用光度立體視覺算法獲得目標表面的法線方向。
可以知道的是,步驟s104和步驟s105實現(xiàn)的先后順序在此不做特別限制。
步驟s106:融合所述初始深度圖以及所述目標表面的法線方向,輸出目標深度圖。
具體地,對初始深度圖以及由光度立體視覺算法計算出的目標表面的法線方向進行融合,得到精度更高的深度圖并輸出。
在一種具體的實現(xiàn)方式中,融合所述初始深度圖以及所述目標表面的法線方向,輸出目標深度圖,至少包括以下幾個步驟:
步驟s1061:優(yōu)化法線方向。
具體地,根據(jù)由散斑立體圖像匹配得到初始深度圖可以計算出目標表面的三維點云,由三維點云可以計算出目標表面的法線方向場,記為nm。nm的噪聲特性主要表現(xiàn)為高頻噪聲。由光度立體視覺方法得到的法線方向場記為np,它的噪聲特性主要表現(xiàn)為低頻噪聲。根據(jù)它們各自的噪聲特性,采用以下步驟對它們進行融合。
(a)對nm和np進行高斯平滑,得到它們的低頻分量
(b)計算從
(c)用旋轉(zhuǎn)矩陣場r對
步驟s1062:根據(jù)優(yōu)化后的法線方向,優(yōu)化點云位置,并輸出目標深度圖。
對于某個像素點(x,y),給定其深度值z(x,y),該點的三維坐標p(x,y)可表示為:
其中,fx和fy為等效焦距(單位為像素)。
點云位置優(yōu)化的目標是使得優(yōu)化后的深度圖同時符合立體匹配得到三維點云pm和法向場nc。為了達到這個目的,構建一個目標函數(shù),包含兩個誤差項,即位置誤差項ep和法向誤差項en。
位置誤差線定義為:
其中,pi為優(yōu)化的點坐標。
由式(1)可得,
法向誤差項定義的依據(jù)是:優(yōu)化后的表面切線方向應與nc垂直。切線方向tx和ty定義為:
法向誤差項定義為:
總誤差函數(shù)為:
e(z)=λep+(1-λ)en(7)
其中,λ∈[0,1]。
通過最小化式(7),得到優(yōu)化后的深度圖,即目標深度圖。
實施本發(fā)明實施例可以通過對近紅外相機的內(nèi)部參數(shù)以及外部參數(shù)進行標定、對至少三個led點光源的參數(shù)進行標定,將基于散斑的立體匹配方法和近距離點光源光度立體視覺方法結合起來,能夠同時兼顧重建細節(jié)以及尺寸的精確性,使得整個系統(tǒng)更加緊湊,且能適應具有多反射率表面的目標。
在一個可選的實施例中,根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定至少三個led點光源的參數(shù),可以是根據(jù)兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),分別標定每一個led點光源的參數(shù)。
本發(fā)明實施例提出的標定算法只需一個具有均勻反射率表面的物體(如石膏像、人臉或者一張具有豐富褶皺的a4紙等),就可以標定出點光源的位置和亮度。由于標定物具有均勻的發(fā)射率,不失一般性,令ρi=1。
對于單個led點光源參數(shù)的標定,至少可以包括以下幾個步驟,具體如圖2所示:
步驟s1021:根據(jù)近紅外光斑發(fā)生器照明的散斑圖像對獲取初始深度圖d0。
具體地,與步驟s104一致,可以應用立體匹配算法來計算出初始深度圖。例如,采用歸一化互相關系數(shù)進行立體匹配,計算視差圖。得到視差圖后,用立體匹配中的唯一性約束剔除誤匹配點。
可以知道的是,對于led點光源參數(shù)的標定是離線進行的,所以標定完成以后,只要不改變相機或光源的參數(shù),就可以對初始深度圖進行多次測量。
步驟s1022:對所述初始深度圖d0進行雙邊濾波,得到d0'。
具體地,對初始深度圖進行雙邊濾波是為了抑制噪聲。
步驟s1023:根據(jù)所述led點光源在相機坐標系中的位置,獲得所述led點光源位置的估算初值s0。
在一種可能的實現(xiàn)方式中,當led點光源照射目標表面,采用兩個近紅外相機中的左相機采集圖像時,led點光源在相機坐標系中的位置采用左相機坐標系,估算出led點光源在左相機坐標系中的位置。
在另一種可能的實現(xiàn)方式中,當led點光源照射目標表面,采用兩個近紅外相機中的右相機采集圖像時,led點光源在相機坐標系中的位置采用右相機坐標系,估算出led點光源在右相機坐標系中的位置。
步驟s1024:根據(jù)所述d0'以及所述兩個近紅外參數(shù)的內(nèi)部參數(shù)以及外部參數(shù),生成目標的初始點云xi和法線方向ni。
具體地,根據(jù)步驟s1022中得到的d0'以及上一實施例中的步驟s101中標定的兩個近紅外參數(shù)的內(nèi)部參數(shù)以及外部參數(shù),可以生成目標的初始點云xi和法線方向ni;
步驟s1025:根據(jù)所述s0、xi和ni,由計算公式可得出光源亮度的初值e0。
具體地,根據(jù)公式(8)和(9),由線性最小二乘法求出e的初值e0。
如圖3所示的近距離點光源與目標表面幾何關系示意圖,從目標表面上的某個三維點xi到光源s的光線向量為:
li=s-xi(8)
采用近光源假設,圖像的灰度oi為:
其中,e為光源的亮度,ρi為目標表面的反射率,ni為表面在xi處的法線方向(模為1)。此處由于標定的目標具有均勻的反射率,因此ρi=1。
在目標的反射率、初始點云xi、法線向量ni和s的初值s0已知的情況下,由led照明的圖像灰度值oi,就可以計算出光源亮度的初值e0。
步驟s1025:以所述s0以及所述e0為初值,由非線性最小二乘優(yōu)化得到所述led點光源的位值和亮度。
具體地,公式(9)構成一個非線性方程組,以e0和s0作為初值,用levenberg-marquardt算法對e和s進行同時優(yōu)化,從而實現(xiàn)單個led點光源的參數(shù)的標定。
本發(fā)明實施例提供了一種簡單的點光源標定方法,只需要利用具有均勻反射率表面的目標就可以實現(xiàn)點光源的標定。
在另外一個可選的實施例中,圖像的采集至少可以包括以下幾個步驟,如圖4所示:
步驟s1031:打開近紅外光斑發(fā)生器,采用所述兩個近紅外相機采集所述近紅外光斑發(fā)生器照明的散斑圖像對。
步驟s1032:關閉所述近紅外光斑發(fā)生器,依次點亮所述至少三個led點光源,采用所述兩個近紅外相機中的一個近紅外相機采集每個led點光源照明的圖像。
具體地,假設led點光源的個數(shù)為四個,此時圖像采集的時序圖如圖5所示:
初始時刻,近紅外光斑發(fā)生器以及l(fā)ed1~led4均處于關閉狀態(tài)。
a時刻,光斑發(fā)生器發(fā)開,led1~led4關閉,兩個近紅外相機分別采集一幀圖像,獲得散斑圖像對;如圖6(a)所示的一對圖像,為采用本發(fā)明實施例的方法采集到的一對散斑圖像。
b時刻,光斑發(fā)生器關閉,點亮led1,關閉其他led,兩個近紅外相機中的左相機或者右相機采集一幀圖像。
c時刻,光斑發(fā)生器關閉,點亮led2,關閉其他led,兩個近紅外相機中的左相機或者右相機采集一幀圖像。
d時刻,光斑發(fā)生器關閉,點亮led3,關閉其他led,兩個近紅外相機中的左相機或者右相機采集一幀圖像。
e時刻,光斑發(fā)生器關閉,點亮led4,關閉其他led,兩個近紅外相機中的左相機或者右相機采集一幀圖像。
在上述led點光源照射目標表面時,b、c、d、e時刻采集圖像時統(tǒng)一使用兩個近紅外相機中的左相機或者右相機采集圖像。
如圖6(b)中的四幅圖,分別為四張led照明時近紅外相機采集到的圖像。
結束時刻,光斑發(fā)生器關閉,led1~led4關閉。
本發(fā)明實施例提供了一種圖像采集方法,能夠使近紅外相機按照預設的時序采集散斑圖像對以及l(fā)ed照明的圖像。
在另外一個可選的實施例中,根據(jù)所述至少三個led點光源的參數(shù)以及所述至少三張led點光源照明的圖像,獲取目標表面的法線方向,可以包括:根據(jù)所述至少三個led點光源的位置、亮度以及所述至少三張led點光源照明的圖像的灰度值,獲取目標表面上三維點處的法線方向以及反射率。
具體地,由圖3以及公式(1)和(2)可知,在每個led的亮度e和位置s已知的情況下,由三個以上處于不同位置的led照明的圖像灰度值oi,就可以計算出xi處的法線方向ni和反射率ρi。
本發(fā)明實施例可以獲得具有多反射率的目標表面上三維點處的法線方向以及反射率。
圖7(a)為kinectfusion得到的大衛(wèi)頭像重建結果,圖7(b)為采用本發(fā)明實施例的方法得到的重建結果。顯然,采用本發(fā)明實施例的方法,三維重建的結果具有更好的重建細節(jié)。
圖8中的左圖為基于散斑立體匹配方法得到重建結果,右圖為融合光度立體視覺和基于散斑圖像立體匹配的重建結果。顯然,通過本發(fā)明實施例中的融合光度立體視覺方法得到的法向信息以后,重建精度得到了顯著的提高。
本發(fā)明實施例還相應提供一種三維重建裝置,如圖9所示,三維重建裝置10至少可以包括:第一標定模塊110、第二標定模塊120、采集模塊130、第一獲取模塊140、第二獲取模塊150以及輸出模塊160;其中:
第一標定模塊110,用于標定兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù)。
第二標定模塊120,用于根據(jù)所述第一標定模塊110標定的兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定至少三個led點光源的參數(shù)。
采集模塊130,用于按照預設的時序采集近紅外光斑發(fā)生器照明的散斑圖像以及至少三張led點光源照明的圖像。
第一獲取模塊140,用于根據(jù)所述采集模塊采集的所述近紅外光斑發(fā)生器照明的散斑圖像,獲取初始深度圖。
第二獲取模塊150,用于根據(jù)所述第二標定模塊120標定的所述至少三個led點光源的參數(shù)以及所述采集模塊采集的所述至少三張led點光源照明的圖像,獲取目標表面的法線方向。
輸出模塊160,用于融合所述第一獲取模塊140獲取的所述初始深度圖以及所述第二獲取模塊150獲取的所述目標表面的法線方向,輸出目標深度圖。
在一個可選的實施例中,led點光源的參數(shù)包括:所述led點光源的位置以及亮度。
第二標定模塊120,用于根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),分別標定每一個led點光源的參數(shù)。
具體的,第二標定模塊120的結構圖如圖10所示,至少可以包括:
初始深度圖獲取單元1210,用于根據(jù)近紅外光斑發(fā)生器照明的散斑圖像獲取初始深度圖d0。
噪聲抑制單元1220,用于對所述初始深度圖d0進行雙邊濾波,得到d0'。
位置初值獲取單元1230,用于根據(jù)所述led點光源在相機坐標系中的位置,獲得所述led點光源位置的估算初值s0。
生成單元1240,用于根據(jù)所述d0'以及所述兩個近紅外參數(shù)的內(nèi)部參數(shù)以及外部參數(shù),生成目標的初始點云xi和法線方向ni。
亮度初值獲取單元1250,用于根據(jù)所述s0、xi和ni,由計算公式可得出光源亮度的初值e0;其中,所述計算公式為:
標定單元1260,用于以所述s0以及所述e0為初值,由非線性最小二乘優(yōu)化得到所述led點光源的位值和亮度。
在另外一個可選的實施例中,采集模塊130至少可以包括:第一采集單元1310、第二采集單元1320,如圖11所示;
第一采集單元1310,用于打開近紅外光斑發(fā)生器,采用所述兩個近紅外相機采集所述近紅外光斑發(fā)生器照明的散斑圖像。
第二采集單元1320,用于關閉所述近紅外光斑發(fā)生器,依次點亮所述至少三個led點光源,采用所述兩個近紅外相機中的一個近紅外相機采集每個led點光源照明的圖像。
在另外一個可選的實施例中,第二獲取模塊可以包括:獲取單元,用于根據(jù)所述至少三個led點光源的位置、亮度以及所述至少三張led點光源照明的圖像的灰度值,獲取目標表面上三維點處的法線方向以及反射率。
本發(fā)明實施例提供了一種三維重建裝置,實施本發(fā)明實施例可以通過對近紅外相機的內(nèi)部參數(shù)以及外部參數(shù)進行標定、對至少三個led點光源的參數(shù)進行標定,將基于散斑的立體匹配方法和近距離點光源光度立體視覺方法結合起來,能夠同時兼顧重建細節(jié)以及尺寸的精確性,使得整個系統(tǒng)更加緊湊,且能適應具有多反射率表面的目標。
本發(fā)明還提供了另外一種三維重建設備,如圖12所示,三維重建設備20至少可以包括:兩個近紅外相機210、至少三個led點光源220、近紅外光斑發(fā)生器230、處理器240以及存儲器250;其中,
存儲器250用于存儲程序指令。
處理器240用于調(diào)用存儲器250中的程序指令并執(zhí)行:
標定所述兩個近紅外相機210的內(nèi)部參數(shù)以及外部參數(shù)。
根據(jù)所述兩個近紅外相機210的內(nèi)部參數(shù)以及外部參數(shù),標定所述至少三個led點光源220的參數(shù)。
按照預設的時序采集所述近紅外光斑發(fā)生器230照明的散斑圖像對以及至少三張led點光源照明的圖像。
根據(jù)所述近紅外光斑發(fā)生器230照明的散斑圖像對,獲取初始深度圖。
根據(jù)所述至少三個led點光源220的參數(shù)以及所述至少三張led點光源照明的圖像,獲取目標表面的法線方向。
融合所述初始深度圖以及所述目標表面的法線方向,輸出目標深度圖。
例如,如圖13所示的三維重建設備,1和3分別為兩個近紅外相機,按照一定的距離安裝置在剛性支架上;2為近紅外散斑發(fā)生器,位于兩個近紅外相機中間,用于向目標表面投射密集的近紅外斑點;4~7分別為四個led點光源,固定安裝在剛性支架上,以保持led點光源與兩個近紅外相機的相互位置關系保持不變,處理器和存儲器位于結構內(nèi)部,未在圖中示出。
在一個可選的實施例中,led點光源的參數(shù)包括:所述led點光源的位置以及亮度。
所述處理器240根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),標定所述至少三個led點光源220的參數(shù),包括:根據(jù)所述兩個近紅外相機的內(nèi)部參數(shù)以及外部參數(shù),分別標定每一個led點光源的參數(shù)。
其中,所述處理器240標定每一個led點光源的參數(shù),包括:
根據(jù)近紅外光斑發(fā)生器230照明的散斑圖像對獲取初始深度圖d0。
對所述初始深度圖d0進行雙邊濾波,得到d0'。
根據(jù)所述led點光源在相機坐標系中的位置,獲得所述led點光源位置的估算初值s0。
根據(jù)所述d0'以及所述兩個近紅外參數(shù)的內(nèi)部參數(shù)以及外部參數(shù),生成目標的初始點云xi和法線方向ni。
根據(jù)所述s0、xi和ni,由計算公式可得出光源亮度的初值e0;其中,所述計算公式為:
根據(jù)所述s0以及所述e0,得出所述led點光源的位值和亮度。
在另外一個可選的實施例中,處理器240按照預設的時序采集所述近紅外光斑發(fā)生器230照明的散斑圖像對以及至少三張led點光源照明的圖像,包括:
打開近紅外光斑發(fā)生器230,采用所述兩個近紅外相機210采集所述近紅外光斑發(fā)生器230照明的散斑圖像對。
關閉所述近紅外光斑發(fā)生器230,依次點亮所述至少三個led點光源220,分別采用所述兩個近紅外相機210中的一個近紅外相機采集每個led點光源照明的圖像。
在另外一個可選的實施例中,處理器240根據(jù)所述至少三個led點光源220的參數(shù)以及所述至少三張led點光源照明的圖像,獲取目標表面的法線方向,包括:
根據(jù)所述至少三個led點光源220的位置、亮度以及所述至少三張led點光源照明的圖像的灰度值,獲取目標表面上三維點處的法線方向以及反射率。
本發(fā)明實施例提供了一種三維重建設備,實施本發(fā)明實施例可以通過對近紅外相機的內(nèi)部參數(shù)以及外部參數(shù)進行標定、對至少三個led點光源的參數(shù)進行標定,將基于散斑的立體匹配方法和近距離點光源光度立體視覺方法結合起來,能夠同時兼顧重建細節(jié)以及尺寸的精確性,使得整個系統(tǒng)更加緊湊,且能適應具有多反射率表面的目標。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。
本發(fā)明實施例方法中的步驟可以根據(jù)實際需要進行順序調(diào)整、合并和刪減。
本發(fā)明實施例裝置中的模塊可以根據(jù)實際需要進行合并、劃分和刪減。
以上所述,以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的范圍。