基于De序列混合編碼的目標物體深度信息獲取方法
【專利摘要】本發(fā)明公開了一種基于De序列混合編碼的目標物體深度信息獲取方法,主要解決現(xiàn)有三幀相移方法中相位展開問題。其實現(xiàn)步驟為:1)設計需要投射的三張De序列混合編碼模板T1、T2、T3;2)將三張混合模板圖像依次投射到目標物體上;3)采集由三張混合模板照亮目標后的形變圖像并傳回至計算機解碼,得到截斷相位φ;4)從形變圖像計算得到形變后的De序列圖案并對其解碼,得到φ的延拓周期數(shù)n;5)根據(jù)延拓周期數(shù)n對φ進行相位延拓,獲得連續(xù)的相位值;6)對相位值進行求解,得到目標物體的深度信息;本發(fā)明魯棒性強、測量精度和分辨率高、處理耗時少,可用于人機交互、醫(yī)療應用、逆向工程、文物重建。
【專利說明】
基于De序列混合編碼的目標物體深度信息獲取方法
技術領域
[0001 ]本發(fā)明屬于深度測量技術領域,主要涉及一種目標物體深度信息的獲取方法,可 用于人機交互、醫(yī)療應用、逆向工程、文物重建、自動導航等領域。
【背景技術】
[0002] 人類發(fā)展的過程也是對世界認知的過程,在人類對外部世界認知的過程中,主要 是通過視覺、觸覺、聽覺、嗅覺等感官來獲取外部世界的信息,而這些信息中有80%以上是 通過視覺獲得的。因此,通過視覺獲得信息是人類認識外部世界的主要方式。隨著計算機視 覺和工業(yè)水平的發(fā)展,傳統(tǒng)的二維圖像已不能滿足人們的認知需求。深度信息,反映了物體 表面的三維信息,大大提高了人們認識和理解真實世界物體復雜性的能力,因此,深度信息 得到了越來越多的應用。
[0003] 深度信息獲取方法在經(jīng)過數(shù)十年的研究已取得很大進展,在已有方法中,根據(jù)測 量時是否接觸被測物體一般分為接觸式和非接觸式兩種測量方法。接觸式測量方法是通過 物理接觸被測物體的表面來感知物體的深度信息,具體的實現(xiàn)方法如坐標測量機等。由于 該方法在測量時必須接觸被測物體,因此很容易改變或破壞被測物體的表面,甚至損壞被 測物體,這對貴重的物品或歷史文物的測量中將無法使用。而且該方法對硬件要求高、速率 低、使用不方便,往往只能得到少數(shù)特征點的深度信息,因此重點討論非接觸式方法。非接 觸式測量方法不需要與被測量物體直接接觸,而是主要通過光學圖像的處理來獲得被測物 體的深度信息,故該方法可以避免接觸式測量方法中的缺點。
[0004] 非接觸式方法的測量速度快,分辨率高,已成為現(xiàn)階段獲取三維信息的一個重要 研究方法。利用該方法在進行測量的過程中,根據(jù)場景中光源的光照形式定義為兩種類型: 主動式測量和被動式測量。主動式測量方法需要通過光源向被測場景中投射特定的編碼模 板,被動式測量方法則對光源沒有嚴格要求,只需要自然光條件下基于一幅或多幅圖像進 行深度數(shù)據(jù)獲取。
[0005] 被動式測量方法是當前深度測量領域中研究和應用比較廣泛的一種三維深度數(shù) 據(jù)獲取方法。被動式測量方法僅由環(huán)境光提供照明,在被測物體表面產(chǎn)生反射,不需要額外 添加可控光源,由一個或多個攝像機從不同角度獲得二維圖像,并利用特定算法提取拍攝 場景的三維數(shù)據(jù)信息。被動式測量方法對成像設備要求不高,不需要額外光源,而且操作 簡便,容易實現(xiàn)。但是由于場景中缺少編碼信息,對于不存在明顯特征的圖像,該方法計算 量大,處理耗時,匹配精度低,難以獲得高精度實時的測量結(jié)果。同時由于該方法對環(huán)境光 比較敏感,受周圍環(huán)境影響較大,應用范圍受到限制。但是由于不需要額外光源使該方法具 有應用范圍廣的優(yōu)點,該方法不僅能應用于室內(nèi)小場景的深度測量,也可以用于室外大場 景的深度數(shù)據(jù)獲取,目前常用的被動式測量方法有立體視覺法、單目視覺法、陰影測量法 等。
[0006] 主動式測量方法與被動式測量方法不同,在主動測量中通常使用額外光源向待測 場景中投射一定的模板圖像,并通過待測場景中物體表面調(diào)制形成相應的形變信息,通過 攝像機獲得的場景圖像進行解碼得到待測物體的深度數(shù)據(jù)。這種測量方法相比于被動式方 法增加了場景中可以提取的信息,具有較高的測量精度。測量精度與實時是一對矛盾,很難 同時滿足。根據(jù)測量原理不同,主動式測量方法主要包括激光掃描法、飛行時間法和結(jié)構(gòu)光 在眾多主動式測量方法中,結(jié)構(gòu)光法具有結(jié)構(gòu)簡單、測量精確等優(yōu)點,其中的三幀相移法測 量獲得的深度數(shù)據(jù)可以和真實深度數(shù)據(jù)相媲美。但是由于三幀相移法中采用傳統(tǒng)的洪水法 進行相位解纏繞,使得整個三幀相移法的處理過程很耗時。因此傳統(tǒng)的三幀相移法只適合 靜態(tài)場景的深度獲取,而很難應對動態(tài)場景的深度獲取。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的在于這對上述現(xiàn)有技術的不足,提出一種基于De序列混合編碼的目 標物體深度?目息獲取方法,以解決傳統(tǒng)二幀相移中的相位解纏繞問題,提尚在動態(tài)場景下 獲取深度信息的分辨率和精確度以及速度。
[0008] 本發(fā)明的技術方案是:對已有的三幀相移法進行改進,在三張正弦模板中加入相 同的De序列模板從而生成一種新的混合模板,使用投影儀將生成的混合模板投射到實際場 景中,相機拍攝被混合模板照射后的場景,根據(jù)拍攝到的場景的變形條紋圖案從而求解出 每個像素點的截斷相位,并利用De序列編碼信息對截斷相位進行相位延拓,得到每個像素 點在模板中匹配點的位置坐標,進而獲得物體的深度信息。其實現(xiàn)步驟包括如下:
[0009] (1)設計需要投射的三張 De序列混合編碼模板T1、Τ2、Τ3:
[0010] la)設計三張正弦相位模板/?/ν,計算每一張正弦相位模板中每個像素點的 灰度值:
[0011]
[0012]其中m=l,2,3,A為直流分量,B為振幅,T為正弦條紋的周期,每張正弦相位模板中 的初始相位分別)
[0013] Ib)設計De序列模板Id,計算De序列模板中每個像素點ID(x,y)的灰度值:
(x,y)點處為0基元
[001^ 以,;7)點處為1基元
[0015]其中T為la)中正弦條紋的周期,N為De序列編碼中像素灰度值的最大值,De序列由 基元0和基元1組成,基元0在一個周期中表示成一個線性遞增函數(shù),基元1在一個周期中表 示成一個線性遞減函數(shù);
[0016] Ic)設計三張混合模板Tm,計算每張混合模板中每個像素點Tm(x,y)的灰度值:
[0017] = (χ,χ)+ Ιη(Λ\γ),
[0018] 其中!11=1,2,3,1?&,5〇由兩部分構(gòu)成,其中/,,,(.^')表示正弦相位模板中像素點 的像素值,I D(x,y)表示De序列模板中像素點的像素值;
[0019] (2)將投影儀P與攝像機C水平放置,并使兩者光軸平行,用投影儀P將混合模板圖 像T1、T2、T3依次投射到目標物體上;
[0022]其中m=l,2,3, i(x,j;)為形變圖案t的直流分量,i_,:K)c〇s[>(Xv) + ^J形變圖案
[0020] (3)相機同步采集由混合模板Tm照亮目標后的圖像&中每個像素點(x,y)處的灰度 值為:
[0021] t的交流分量。
[0023] (4)計算截斷相位圖Φ中每個像素點的截斷相位Φ (x,y):
[0024]
[0025] (5)計算畸變后De序列編碼中周期數(shù)η;
[0026] (6)根據(jù)步驟(4)和(5)的結(jié)果,計算絕對相位圖W中每個像素點的絕對相位
[0027] = φ(Λ\ν) + 2πη{χ. v);
[0028] (7)根據(jù)三角測距原理與(6)中獲得的絕對相位圖f,計算目標物體三維深度圖Z。
[0029] 本發(fā)明與現(xiàn)有技術相比具有以下優(yōu)點:
[0030] 第一,本發(fā)明對傳統(tǒng)的三幀相移法進行改進,不需要增加模板的數(shù)量和額外的物 理設備即可提高相位延拓的計算速度,實現(xiàn)簡單。
[0031] 第二,本發(fā)明所述的混合編碼方法結(jié)合了相移編碼和De序列編碼,得益于De序列 的性質(zhì),巧妙的解決了相位延拓的二義性,并且保證了深度信息獲取的準確性和高分辨率。 [0032]第三,本發(fā)明中對每個像素點的處理步驟、流程都一樣,而且互不相關,因此可以 通過GPU實現(xiàn)并行計算。
【附圖說明】
[0033]圖1為本發(fā)明使用的系統(tǒng)組成圖;
[0034]圖2為本發(fā)明的實現(xiàn)流程圖;
[0035]圖3為本發(fā)明中設計的三幅De序列混合編碼模板;
[0036] 圖4為本發(fā)明中求解的截斷相位圖;
[0037] 圖5為本發(fā)明中得到的De序列解碼圖;
[0038]圖6為用本發(fā)明獲得的目標物體的深度圖和三維重構(gòu)圖。
【具體實施方式】
[0039] 本發(fā)明是對傳統(tǒng)相移法的改進,不需要增加額外的測量設備和測量步驟。以下參 照附圖對本發(fā)明作進一步詳細描述。
[0040] 參照圖1,本發(fā)明使用的三維掃描系統(tǒng)包括:待測量的目標物體、投影儀P和相機C。 投影儀P將設計好的混合模板投射到目標物體上,相機C同步拍攝由模板照亮后的目標,并 將圖像數(shù)據(jù)傳送至計算機。
[0041 ]參照圖2,本發(fā)明的實現(xiàn)步驟如下:
[0042] 步驟1、設計需要投射的三張 De序列混合編碼模板T1J2J3d
[0043] la)設計三張正弦相位模板&,計算每一張正弦相位模板中每個像素點 的灰度值:
[0044]
[0045]其中m=l,2,3,A為直流分量,B為振幅,T為正弦條紋的周期,每張正弦相位模板中 的初始相位分別為I
[0046] Ib)設計De序列模板Id,計算De序列模板中每個像素點ID(x,y)的灰度值:
(x,_y)點處為:0基元.
[0047] _(x,.y)點處為_1基元
[0048]其中,N為De序列編碼中像素灰度值的最大值,De序列由基元0和基元1組成,基元0 在一個周期中表示成一個線性遞增函數(shù),基元1在一個周期中表示成一個線性遞減函數(shù);
[0049] Ic)設計三張混合模板Tm,計算每張混合模板中每個像素點Tm(x,y)的灰度值:
[0050] = (.\\y)+ In(x,y),
[0051] 其中m=l,2,3,Tm(x,y)由兩部分構(gòu)成,其中表示正弦相位模板中像素點 的像素值,ID(x,y)表示De序列模板中像素點的像素值;
[0052]按上述步驟計算出每張混合模板圖像中每一個像素點的灰度值,得到的混合模板 圖像T1、T2、T3,如圖3所示,其中圖3 (a)為第一幅模板圖像T1、圖3 (b)為第二幅模板圖像T2、圖 3(c)為第三幅模板圖像T3。
[0053] 步驟2、將投影儀P與攝像機C水平放置,并使兩者光軸平行,用投影儀P將三張混合 模板圖像T1、T 2、T3依次投射到目標物體上。
[0054] 步驟3、由混合模板Tjf、亮目標,產(chǎn)生形變圖像么,利用相機同步采集該形變圖像 t,其每個像素點(X,y)處的灰度值為:
[0055]
[0056] 其中m=l,2,3, j(.v,.r)為直流分量,左(..\%.)〇〇^[0(..\%.)0 + 爐",]為交流分量。
[0057] 步驟4、計算形變圖像之中每個像素點的截斷相位Φ (X,y)。
[0058] 由于中的歲\);;),名〇^;),&,7)為三個常量,因此可以通過聯(lián)立線性方 程組對其進行求解得:
[0059]
[0000] 按照上述步驟計算每一個點的截斷相位Φ (x,y),可以得到截斷相位圖Φ,如圖4 所示。
[0061]步驟5、從畸變后的De序列編碼中解碼出周期數(shù)n,以對步驟4中求解的截斷相位進 行周期延拓。
[0062] 5a)累加三張形變的圖像名,尤,得到變形的De序列圖案4,計算4中每個像 素點(1,5〇處的灰度值/ £)(^):
[0063]
[0064] 其中C(x,y)是一個常數(shù),由于減去一個常數(shù),并不會影響后續(xù)求解&梯度圖的過 程,因此在實際處理中C(x,y)被忽略;
[0065] 5b)為了解碼出形變后De序列圖案4中的基元0和基元1,需要計算匕的梯度圖 Grad:
[0066] Grad = ?? ? Mg ;
[0067] 其中Mg為水平方向梯度模板,?為圖像的二維卷積操作;
[0068] 5c)沿著水平方向遍歷梯度圖Grad的每一個像素點(x,y),如果該像素點的梯度值 大于〇則將該像素點標記為De序列的基元0,否則將該像素點標記為De序列的基元1,由于相 機采集的過程中存在噪聲的干擾,因此需要采用投票機制對上述標記的結(jié)果進行校正,在 一個De序列條紋中,將投票占有多數(shù)的基元碼值標定為正確的碼值;
[0069] 5d)將每一個De序列條紋與該條紋相鄰的兩個De序列條紋組成碼值進行解碼,得 到該條紋對應的序號N,即碼值為000時N為0,當碼值為001時N為1,當碼值為011時N為2,當 碼值為111時N為3,當碼值為110時N為4,當碼值為101時N為5,當碼值為010時N為6,當碼值 為100時N為7。
[0070] 按上述5a)至5d)步驟計算得到的De序列解碼結(jié)果如圖5所示;
[0071] 5e)計算條紋圖像中B點對應的De序列周期延拓數(shù)S:
[0072] 5el)計算編碼模板上點F在三維坐標系下的坐標(Fx,F(xiàn)y,F(xiàn) z):
[0073]
[0074]其中Dr為參考平面的距離,f為相機的焦距,(Cx,Cy,C z)為相機光心的三維坐標值, (Bx,By,Bz)為形變圖像中的一個像素點的三維坐標值;
[0075] 5e2)計算編碼模板上點F在模板中的二維坐標UF,yF):
[0076]
[0077] 其中K為相機內(nèi)部參數(shù)矩陣,Φ為外部旋轉(zhuǎn)矩陣,這兩個參數(shù)矩陣可以通過相機的 標定過程獲得,w為齊次坐標下的比例系數(shù);
[0078] 5e3)根據(jù)5e2)得到條紋圖像中B點對應的De序列周期延拓數(shù)S為:
[0079]
[0080] 其中,T為De序列中條紋的寬度,L·」為向下取整算子;
[0081] 5f)根據(jù)5d)和5e)的結(jié)果計算畸變后De序列編碼中周期數(shù):
[0082] n = N+8S。
[0083] 步驟6、根據(jù)步驟(4)和(5)的結(jié)果,計算絕對相位圖P中每個像素點的絕對相位 妒:
[0084] φ(χ,}'} = φ(χ,}'} + 2πη(χ. \,) 0
[0085] 步驟7、根據(jù)三角測距原理與(6)中獲得的絕對相位圖0,計算目標物體三維深度圖 Z0
[0086] 7a)沿著絕對相位圖F的水平方向,遍歷P中的每一個像素點(x,y),計算出該點的 視差d(x,y):
[0087]
[0088] 7W枏捉二鉬》1!?日庖裡,計算三維深度圖Z中每個像素點的深度Z(X,y):
[0089]
[0090]其中f表示相機焦距,b表示攝像機光心和投影儀光心間的基線距離。
[0091] 本發(fā)明的效果通過如下仿真進一步說明:在3dMAX平臺上進行仿真實驗,通過上述 步驟得到的目標物體的三維信息,對目標物體進行仿真重構(gòu),其效果如圖6所示,其中圖6 (a)為仿真得到的深度圖,圖6(b)為三維重構(gòu)圖。
[0092] 從圖6中可以看到,本發(fā)明重構(gòu)出的目標物體精度高,處理耗時少,因此本發(fā)明提 出的基于De序列混合編碼的目標物體深度信息獲取方法具有精度高、分辨率高、速度快的 優(yōu)點。
[0093]以上描述僅是本發(fā)明的一個具體事例,并不構(gòu)成對本發(fā)明的任何限制。顯然對于 本領域的專業(yè)人員來說,在了解了本
【發(fā)明內(nèi)容】
和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu) 的情況下,進行形式和細節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變 仍在本發(fā)明的權(quán)利要求保護范圍之內(nèi)。
【主權(quán)項】
1. 一種基于De序列混合編碼的目標物體Ξ維信息獲取方法,包括: (1) 設計需要投射的Ξ張 De序列混合編碼模板Τι、Τ2、Τ3: la)設計Ξ張正弦相位模板/,,,,,計算每一張正弦相位模板中每個像素點托y)的灰度 值:其中m=l,2,3,A為直流分量,B為振幅,T為正弦條紋的周期,每張正弦相位模板中的初 始相位分別為巧=^,終 化)設計De序列模板Id,計算De序列模板中每個像素點lD(x,y)的灰度值:其中T為la)中正弦條紋的周期,N為De序列編碼中像素灰度值的最大值,De序列由基元 0和基元1組成,基元0在一個周期中表示成一個線性遞增函數(shù),基元1在一個周期中表示成 一個線性遞減函數(shù); Ic)設計Ξ張混合模板Tm,計算每張混合模板中每個像素點Tm(x,y)的灰度值: 7;,, (-、-,分=/pm (X,y) + 4林,切, 其中111=1,2,3,1"山7)由兩部分構(gòu)成,其中/0"批,乂>表示正弦相位模板中像素點的像素 值,Id (X,y)表示De序列模板中像素點的像素值; (2) 將投影儀P與攝像機C水平放置,并使兩者光軸平行,用投影儀P將混合模板圖像Τι、 Τ2、Τ3依次投射到目標物體上; (3) 相機同步采集由混合模板Tm照亮目標后的形變圖像t中每個像素點(x,y)處的灰度 值為:其中m= 1,2,3,^托J,)為直流分量,y) cosWO, W +巧,,]為交流分量。 (4) 計算截斷相位圖Φ中每個像素點的截斷相位Φ (x,y):(5) 計算崎變后De序列編碼中周期數(shù)η; (6) 根據(jù)步驟(4)和巧)的結(jié)果,計算絕對相位圖夢中每個像素點的絕對相位<Kx,.v): 抑ΛΓ'.ν)=抑ΛΓ'.ν) + 2兀"(.\-,.1·) (7) 根據(jù)Ξ角測距原理與(6)中獲得的絕對相位圖夢,計算目標物體Ξ維深度圖Ζ。2. 根據(jù)權(quán)利要求1所述的基于De序列混合編碼的目標物體Ξ維信息獲取方法,其中所 述步驟(5)中計算崎變后De序列編碼中周期數(shù)n,按如下步驟進行: 5a)累加 Ξ張形變的圖像??,馬,?,得到變形的De序列圖案4,計算么中每個像素點 (X,y)處的灰度值托>');其中C(x,y)是一個常數(shù),根據(jù)De序列模板的性質(zhì),在實際處理中C(x,y)被忽略; 5b)計算形變后De序列圖案么的梯度圖Grad:其中Mg為梯度模板,?為圖像的卷積操作; 5c)沿著水平方向遍歷梯度圖Grad的每一個像素點(x,y),如果該像素點的梯度值大于 0則將該像素點標記為De序列的基元0,否則將該像素點標記為De序列的基元1;在一個De序 列條紋中,將投票占有多數(shù)的基元碼值標定為正確的碼值; 5d)將每一個De序列條紋與該條紋相鄰的兩個De序列條紋組成碼值進行解碼,得到該 條紋對應的序號N,即碼值為000時N為0,當碼值為001時N為1,當碼值為011時N為2,當碼值 為111時N為3,當碼值為110時N為4,當碼值為101時N為5,當碼值為010時N為6,當碼值為100 時N為7; 5e)計算條紋圖像中B點對應的De序列周期延拓數(shù)S: 5el)計算編碼模板上點F在Ξ維坐標系下的坐標(Fx,F(xiàn)y,F(xiàn)z):其中Dr為參考平面的距離,f為相機的焦距,(Cx,Cy,Cz)為相機光屯、的S維坐標值,(Bx, By, Bz)形變圖像中的一個像素點的Ξ維坐標值; 5e2)計算編碼模板上點F在模板中的二維坐標(XF,yF):其中K為相機內(nèi)部參數(shù)矩陣,Φ為外部旋轉(zhuǎn)矩陣,W為齊次坐標下的比例系數(shù); 5e3)根據(jù)5e2)得到條紋圖像中B點對應的De序列周期延拓數(shù)S為:其中,T為De序列中條紋的寬度,為向下取整算子; 5f)根據(jù)5d)和5e)的結(jié)果計算崎變后De序列編碼中周期數(shù): n = N+8S。3.根據(jù)權(quán)利要求1所述的基于De序列混合編碼的目標物體Ξ維信息獲取方法,其中所 述步驟(7)中求解目標物體Ξ維深度圖Z,按如下步驟進行: 7a)沿著絕對相位圖巧的水平方向,遍歷0中的每一個像素點(x,y),計算出該點的視差 d(x,y):7b)根據(jù)Ξ角測距原理,計算Ξ維深度圖Z中每個像素點的深度Z(x,y):其中f表示相機焦距,b表示攝像機光屯、和投影儀光屯、間的基線距離。
【文檔編號】G06T7/00GK105844623SQ201610158109
【公開日】2016年8月10日
【申請日】2016年3月21日
【發(fā)明人】李甫, 高哲峰, 石光明, 李若岱, 牛毅, 竇平方, 張寶譽
【申請人】西安電子科技大學