本發(fā)明屬于測量技術(shù)領(lǐng)域,主要涉及一種深度信息的測量方法,可以應(yīng)用于工業(yè)監(jiān)控、醫(yī)學(xué)科學(xué)、人機交互、虛擬現(xiàn)實、現(xiàn)實增強以及3D打印場景。
背景技術(shù):
傳統(tǒng)的成像儀器采集到的信號僅是空間域上的二維信息,三維場景中的深度信息無法被采集到。隨著計算機科學(xué)的發(fā)展以及人們生活水平的提升,二維信息已經(jīng)不能滿足實際生產(chǎn)生活的需要。如何從場景中快速、高效的獲取三維深度信息已經(jīng)成為當(dāng)前研究的熱點。
深度獲取是指在三維場景中獲取物體的深度信息。目前深度獲取的方法主要分為主動式和被動式兩種。被動式方法一般基于一幅或多幅圖像來獲取物體的三維形狀信息,如立體視覺法、陰影測量法等,其中應(yīng)用最廣泛的就是立體視覺法,該方法采用多個相機多角度對同一場景進行拍攝,通過多幅圖像之間的匹配獲取深度信息。主動式方法則是利用光學(xué)投射器投射出探測波,經(jīng)物體反射后捕獲至傳感器,并利用計算機進行處理,從而獲得深度信息,常見的方法有飛行時間法、結(jié)構(gòu)光法、激光掃描法,其中結(jié)構(gòu)光測量方法作為一種非接觸式測量方法,該方法由于具有結(jié)構(gòu)實現(xiàn)簡單、成本低廉、精度以及實時性較好、抗干擾能力強等特點,獲得了廣泛的應(yīng)用。
結(jié)構(gòu)光測量方法一般將一幅或多幅具有特定規(guī)律的結(jié)構(gòu)光模板投射到測量場景中,利用圖像采集設(shè)備拍攝待測物體,通過比對投射的模板及采集到的圖像,結(jié)合三角測距原理計算出物體表面的深度信息。結(jié)構(gòu)光測量方法根據(jù)模板的編碼方式可以分為時間編碼方法以及空間編碼方法,其中:
空間編碼的特點是只投射一幅模板,模板中每個像素點的編碼信息可以結(jié)合其鄰域獲取,空間編碼適用于動態(tài)場景的深度獲取,但由于空間編碼在解碼過程中可能受到鄰域信息的丟失、物體表面反射率不一致以及待測物體表面顏色等問題,易造成解碼錯誤導(dǎo)致深度信息計算錯誤,故空間編碼相對于時間編碼的分辨率、精度較低。
時間編碼,常見的有二值編碼、n值編碼、混合編碼等,這些方法具有簡單易于實現(xiàn)、空間分辨率高、測量精度高等優(yōu)點,但其由于需要投射多幅測量模板,測量時間較長,因而僅適用于靜態(tài)場景的深度測量。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對上述時間編碼技術(shù)的不足,提出一種基于單幀調(diào)制模板的深度信息測量方法,以縮短測量時間,實現(xiàn)場景深度信息的動態(tài)測量。
本發(fā)明的技術(shù)方法是:利用調(diào)制技術(shù),將基于余弦編碼的模板和De Bruijn序列編碼的模板組合為單幀復(fù)合模板并進行投射;通過匹配投射模板以及變形的場景圖像,結(jié)合三角測距原理,獲得場景的深度信息,其實現(xiàn)步驟包括如下:
(1)設(shè)計單幀調(diào)制模板P:
(1a)設(shè)計基于余弦模板I1和基于De Bruijn序列模板I2;
(1b)設(shè)計頻率為fc1的載波模板Ic1和頻率為fc2的載波模板Ic2,并根據(jù)這兩個載波模板Ic1、Ic2和上述余弦模板I1、De Bruijn序列模板I2得到單幀調(diào)制模板P:
P=I1·Ic1+I2·Ic2;
(1c)計算單幀調(diào)制模板P中各個像素點(x,y)的強度值Ip(x,y)為:
Ip(x,y)=I1(x,y)·Ic1(x,y)+I2(x,y)·Ic2(x,y),
其中I1(x,y)、I2(x,y)、Ic1(x,y)、Ic2(x,y)分別為余弦模板I1、De Bruijn序列模板I2以及載波模板Ic1、Ic2的強度值,且I1(x,y)、I2(x,y)中各個像素點強度沿著y方向變化,Ic1(x,y)、Ic2(x,y)中各個像素點強度沿著x方向變化;
(2)將系統(tǒng)中的投影儀T與攝像機V豎直放置,并使兩者光軸平行,用投影儀T將單幀調(diào)制模板P投影到目標(biāo)物體O上;并用攝像機V對該目標(biāo)物體進行拍攝,獲得經(jīng)過目標(biāo)物體O調(diào)制后的變形圖像I;
(3)將變形圖像I傳輸至計算機C,通過計算機C解調(diào)得到解調(diào)余弦模板I′1以及解調(diào)De Bruijn序列模板I′2;
(4)用Gabor濾波器計算解調(diào)余弦模板I′1中各個像素點(x,y)處的截斷相位
(5)根據(jù)解調(diào)De Bruijn序列模板I′2以及截斷相位求解變形圖像I中像素點(x,y)處的相位展開值Φ(x,y);
(6)根據(jù)變形圖像I中像素點(x,y)的相位展開值Φ(x,y),求取像素點(x,y)在單幀調(diào)制模板P中的匹配點(xp,yp),其中x、y為變形圖像I中像素點的行列坐標(biāo)值,xp、yp為單幀調(diào)制模板P中像素點的行列坐標(biāo)值;
(7)根據(jù)三角測距原理,利用像素點(x,y)與匹配點(xp,yp)的空間幾何關(guān)系,計算待測物體的深度信息值。
本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點:
第一,本發(fā)明采用單幀結(jié)構(gòu)光模板,僅需投射一幅模板即可獲得場景的深度信息,簡化了實現(xiàn)過程,降低了對系統(tǒng)設(shè)備的要求;
第二,本發(fā)明在條紋模板的基礎(chǔ)上,結(jié)合De Bruijn序列模板進行調(diào)制,使得相位解纏繞過程中可以利用De Bruijn序列獲取準(zhǔn)確的相位周期,提升了解纏繞的準(zhǔn)確度,避免了二義性的發(fā)生,增加了物體深度信息獲取的精度;
第三,本發(fā)明僅需投射單幀調(diào)制模板測量場景深度信息,通過使用GPU加速,可實現(xiàn)場景深度信息的動態(tài)測量。
附圖說明
圖1為本發(fā)明使用的系統(tǒng)框架圖;
圖2為本發(fā)明的實現(xiàn)總流程圖;
圖3為本發(fā)明中生成結(jié)構(gòu)光模板的子流程圖;
圖4為本發(fā)明中解調(diào)單幀調(diào)制模板的子流程圖。
具體實施方式
本發(fā)明是對傳統(tǒng)結(jié)構(gòu)光方法的改進,不需要增加額外的測量設(shè)備和測量步驟,以下參照附圖對本發(fā)明作進一步詳細(xì)描述。
參照圖1,本發(fā)明使用的深度信息獲取系統(tǒng)包括:待測量的目標(biāo)物體O、攝像機V、投影儀T和計算機C。投影儀T投射單幀調(diào)制模板P到目標(biāo)物體O上,攝像機V對該目標(biāo)進行拍攝,得到經(jīng)過目標(biāo)物體O調(diào)制后的變形圖像I。
參照圖2,本發(fā)明基于單幀調(diào)制模板的深度信息測量方法,其實現(xiàn)步驟如下:
步驟1、設(shè)計單幀調(diào)制模板P。
參照圖3,本步驟的具體實現(xiàn)如下:
(1a)設(shè)計基于余弦模板I1和基于De Bruijn序列模板I2;
(1b)設(shè)計頻率為fc1的載波模板Ic1和頻率為fc2的載波模板Ic2,并根據(jù)這兩個載波模板Ic1、Ic2和上述余弦模板I1、De Bruijn序列模板I2,得到單幀調(diào)制模板P:
P=I1·Ic1+I2·Ic2;
(1c)計算單幀調(diào)制模板P中各個像素點(x,y)的強度值為:
Ip(x,y)=I1(x,y)·Ic1(x,y)+I2(x,y)·Ic2(x,y),
其中I1(x,y)、I2(x,y)分別為余弦模板I1、De Bruijn序列模板I2的強度值,Ic1(x,y)、Ic2(x,y)分別為載波模板Ic1、Ic2的強度值,且I1(x,y)、I2(x,y)中強度值沿著y方向變化,Ic1(x,y)、Ic2(x,y)中強度值沿著x方向變化。
步驟2、獲取變形圖像I。
將系統(tǒng)中的投影儀T與攝像機V豎直放置,并使兩者光軸平行,用投影儀T將所述的單幀復(fù)合模板P投影到目標(biāo)物體O上;并用攝像機V對該目標(biāo)物體進行拍攝,獲得經(jīng)過目標(biāo)物體O調(diào)制后的變形圖像I。
步驟3、將變形圖像I傳輸至計算機C,通過計算機C解調(diào)得到解調(diào)余弦模板I′1以及解調(diào)De Bruijn序列模板I′2。
參照圖4,本步驟的具體實現(xiàn)方式如下:
(3a)對獲取的變形圖像I進行帶通濾波,提取出攜帶余弦模板的調(diào)制圖像其在像素點(x,y)處的強度值
其中I′1(x,y)為余弦模板的強度值,為受到場景干擾的載波頻率;
(3b)對上述(3a)的結(jié)果進行平方運算,得到各個像素點(x,y)上的強度值為:
(3c)對(3b)的結(jié)果進行低通濾波后再進行開方運算,從變形圖像I中得到解調(diào)余弦模板I′1;
(3d)對變形圖像I進行帶通濾波,提取出攜帶De Bruijn序列模板的調(diào)制圖像其在像素點(x,y)處的強度值
其中I′2(x,y)為De Bruijn序列模板的強度值,為受到場景干擾的載波頻率;
(3e)對上述(3d)結(jié)果進行平方運算,得到各個像素點(x,y)上的強度值為:
(3f)對(3e)的結(jié)果進行低通濾波后再進行開方運算,從變形圖像I中得到解調(diào)De Bruijn序列模板I′2。
步驟4、用Gabor濾波器計算解調(diào)余弦模板I′1中各個像素點(x,y)處的截斷相位
(4a)將解調(diào)余弦模板I′1與高斯核進行卷積,得到卷積結(jié)果z(x,y):
z(x,y)=I′1(x,y)*g(x,y,λ),
其中,*代表卷積符號,g(x,y,λ)為高斯核,λ為高斯濾波器的波長,I′1(x,y)為解調(diào)余弦模板I′1的強度值;
(4b)根據(jù)卷積結(jié)果z(x,y),計算截斷相位
其中,Im(z(x,y))為z(x,y)的復(fù)數(shù)部分,Re(z(x,y))為z(x,y)的實數(shù)部分,計算獲得的截斷相位被限制在[-π,π)中。
步驟5、根據(jù)解調(diào)De Bruijn序列模板I′2以及截斷相位求解變形圖像I中像素點(x,y)處的相位展開值Φ(x,y)。
(5a)對解調(diào)余弦模板I′1進行連續(xù)區(qū)域劃分:
定義劃分區(qū)域函數(shù)
其中任一像素點的截斷相位值,為該像素點第i個方向鄰域上的截斷相位值,其中i=1,2,…,8,
定義τ1為第一鄰域門限,τ2為第二鄰域門限,
將滿足如下條件的像素點及其鄰域劃分為同一區(qū)域:
其中為第n個方向鄰域上的截斷相位值,n=3,7;為第m個鄰域上的截斷相位值,m=1,2,4,5,6,8;
(5b)在連續(xù)區(qū)域劃分的基礎(chǔ)上,對解調(diào)De Bruijn序列模板I′2進行周期劃分,求解出解調(diào)De Bruijn序列模板碼值,獲得截斷相位周期n;
(5c)計算變形圖像I中像素點(x,y)的相位展開值Φ(x,y):
其中為像素點(x,y)的截斷相位值,n為截斷相位周期。
步驟6、根據(jù)變形圖像I中像素點(x,y)的相位展開值Φ(x,y),求取像素點(x,y)在單幀調(diào)制模板P中的匹配點(xp,yp),其中x、y為變形圖像I中像素點的行列坐標(biāo)值,xp、yp為單幀調(diào)制模板P中像素點的行列坐標(biāo)值。
步驟7、根據(jù)三角測距原理,利用像素點(x,y)與匹配點(xp,yp)的空間幾何關(guān)系,計算待測物體的深度信息值。
(7a)以攝像機V的光心為原點建立世界坐標(biāo)系,其中世界坐標(biāo)系的x軸沿攝像機V成像平面的水平方向,世界坐標(biāo)系的y軸沿著攝像機V成像平面的豎直方向,世界坐標(biāo)系的z軸沿著攝像機V的光軸方向,且與成像平面垂直;
(7b)計算變形圖像I中的像素點(x,y)與匹配點(xp,yp)之間的視差Δy:
其中T為條紋的周期值,Φ(x,y)為相位展開值,yp為匹配點的y方向坐標(biāo)值;
(7c)計算像素點(x,y)對應(yīng)的深度信息值d(x,y):
其中Δy為視差,f表示為攝像機的焦距,b為攝像機和投影儀之間的基線距離。
以上描述僅是本發(fā)明的一個具體事例,并不構(gòu)成對本發(fā)明的任何限制。顯然對于本領(lǐng)域的專業(yè)人員來說,在了解了本發(fā)明內(nèi)容和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進行形式和細(xì)節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護范圍之內(nèi)。