王 盛 王魏平 張 真
(長春理工大學(xué) 吉林 長春 130022)
異形投影曲面顯示系統(tǒng)給人們帶來了更佳的臨場沉浸感和增強現(xiàn)實感,而且異形投影曲面的空間顯示特性也極大地激發(fā)了視覺感受,其被廣泛應(yīng)用于虛擬現(xiàn)實、藝術(shù)表演、文化展示、科技普及、創(chuàng)新創(chuàng)意等眾多領(lǐng)域。伴隨著投影顯示系統(tǒng)視覺表現(xiàn)力的提升,異形投影曲面顯示系統(tǒng)對深度信息的還原度依賴變得較為嚴(yán)苛,深度信息的獲取質(zhì)量將直接影響到投影顯示畫面的呈現(xiàn)效果。如果將采集得到的原始深度信息直接應(yīng)用于異形投影曲面顯示系統(tǒng),則勢必會影響到后續(xù)幾何校正階段的可靠性。
借助于RGB-D深度相機可以實時地采集投影曲面的深度信息,但由于受到RGB-D深度相機自身缺陷、采集環(huán)境、采集距離、被測曲面固有屬性等因素影響,使得其采集得到的深度信息會出現(xiàn)表面區(qū)域丟失、深度值抖動、空間分辨率不足等重要問題。眾多研究學(xué)者已經(jīng)針對空洞填充及深度優(yōu)化等方面開展了大量工作,各種研究成果某種程度地提高了深度信息的可用性[1]。在基于濾波理論的深度信息修補算法中,主要利用待修補區(qū)域周圍的鄰域深度信息或結(jié)合彩色圖像來估計相關(guān)深度值[2-3]。當(dāng)此類深度信息修補算法被使用時,如果待修補區(qū)域周圍的深度信息相似度較高,則會出現(xiàn)深度信息的過修補現(xiàn)象;如果待修補區(qū)域處于RGB-D深度相機采集的邊緣部分,則無法保證修補后深度信息的準(zhǔn)確性。
Tomasi等[4]提出了基于非線性雙邊濾波的深度信息修補算法,結(jié)合使用空域信息和灰度相似性,實現(xiàn)了深度信息的平滑修補和保邊降噪。Petschnigg等[5]提出了基于聯(lián)合雙邊濾波的深度信息修補算法,借助彩色圖像引導(dǎo)深度信息的修補,某種程度上解決了深度信息修補過程中出現(xiàn)邊緣模糊的問題。Jung等[6]提出了基于聯(lián)合三邊濾波的深度信息修補算法,以深度信息與彩色圖像的區(qū)域相似度為切入點,實現(xiàn)了深度信息的修補和彩色圖像的增強。Esfahani等[7]充分考慮了待修補區(qū)域深度信息與像素信息之間的關(guān)系,結(jié)合雙邊濾波有效地實現(xiàn)了較小區(qū)域深度信息的修補處理。Deng等[8]結(jié)合使用像素濾波和中值濾波進行深度信息修補,達到了平滑深度信息和保邊降噪的目的。
異形投影曲面深度信息的三維形態(tài)直接影響著異形投影曲面顯示系統(tǒng)的畫面呈現(xiàn)效果,雖然多數(shù)深度信息修復(fù)算法都能做到對空洞填補、曲面平滑、深度插值等處理,但深度信息的修復(fù)結(jié)果往往會存在過修復(fù)、失真等問題[9-10]。由于深度信息的缺失和抖動將嚴(yán)重影響幾何形變的校正處理結(jié)果,而導(dǎo)致異形投影顯示畫面無法滿足人們的正常視覺觀感,因此對深度信息的修復(fù)可用性將對異形投影顯示畫面校正至關(guān)重要。圖1所示為基于異形曲面擬合引導(dǎo)的深度信息修復(fù)算法系統(tǒng)構(gòu)成圖。
圖1 基于異形曲面擬合引導(dǎo)的深度信息修復(fù) 算法系統(tǒng)構(gòu)成圖
基于異形曲面擬合引導(dǎo)的深度信息修復(fù)算法系統(tǒng)主要由計算機、RGB-D深度相機、投影機、異形投影曲面構(gòu)成,其中:異形投影曲面用于接收投影機投射的格雷碼序列圖像;投影機用于投射格雷碼序列圖像;RGB-D深度相機用于采集異形投影曲面RGB-D空間的深度信息、異形投影曲面接收的格雷碼序列圖像;計算機用于獲取RGB-D深度相機采集的數(shù)據(jù)信息、傳輸格雷碼序列圖像給投影機。本文深度信息修復(fù)算法將被分解為兩個解算處理過程,即:異形曲面引導(dǎo)形態(tài)估計和曲面擬合引導(dǎo)深度信息修復(fù)。
為了更加合理地對異形曲面進行深度信息修復(fù),本節(jié)將借助格雷碼序列圖像來體現(xiàn)異形曲面的形態(tài)變化情況。如果僅使用原始深度信息進行異形曲面的空間形態(tài)修復(fù),則只能利用待修復(fù)區(qū)域周圍的已知深度信息對其進行處理,而且原始深度信息自身存在的不穩(wěn)定性也會直接影響深度信息修復(fù)的優(yōu)化結(jié)果。由于多數(shù)情況的異形投影曲面并不存在彩色紋理,因此無法利用彩色紋理圖像對深度信息的修復(fù)進行引導(dǎo)輔助。而本文將格雷碼序列圖像投射于異形投影曲面,這樣不僅有利于為深度信息修復(fù)過程提供擬合引導(dǎo)參照,還有利于根據(jù)條紋圖像的輔助作用確定有效投影區(qū)域范圍。首先,根據(jù)格雷碼編碼原理、所需條紋數(shù)量來確定格雷碼編碼圖像序列;然后,將格雷碼編碼圖像序列投射于異形投影曲面,利用相機采集受異形投影表面調(diào)制的格雷碼編碼形變圖像序列;再對編碼條紋中心線進行提取識別,并得到每個編碼條紋中心線的格雷碼碼值;最后,利用最小二乘曲線擬合方法對編碼條紋形成的邊界離散點進行劃分,從而達到進行異形曲面形態(tài)估計的目的。
由于任意兩個相鄰的格雷碼編碼值僅有1位二進制數(shù)不同,因此它具有錯誤最小化的編碼特性。圖2所示為格雷碼序列的像素化示意。異形投影曲面的接收表面往往缺少形態(tài)特征而無法為深度信息修復(fù)提供參考,故需要利用格雷碼編碼圖像序列對異形投影曲面進行三維形態(tài)的主動紋理映射。
圖2 格雷碼序列的像素化示意
根據(jù)格雷碼編碼序列的二進制數(shù)排列形式可知,格雷碼編碼圖像序列所包含的編碼圖像數(shù)量將由投影分辨率、編碼條紋寬度共同決定。如果投影分辨率保持不變,編碼條紋寬度越大則所需編碼圖像數(shù)量越少,編碼條紋寬度越小則所需編碼圖像數(shù)量越多,也就是說,投影分辨率不變的前提下,編碼條紋寬度與編碼圖像數(shù)量成反比。
根據(jù)式(1)即可計算得到格雷碼編碼圖像序列所含圖像數(shù)目為:
式中:n表示格雷碼編碼圖像序列所包含的編碼圖像數(shù)量;Sp表示投影機投射分辨率;Sn表示編碼條紋所占像素寬度值。
根據(jù)格雷碼編碼序列的二進制數(shù)排列形式,生成t幅格雷碼編碼圖像序列GCPs={GCPs1,GCPs2,…,GCPst}。通過投影機依次將格雷碼編碼圖像序列GCPs的每幅編碼圖像投射于異形曲面,同時使用RGB-D深度相機單元依次采集投射于異形投影曲面的每幅編碼圖像,得到RGB-D深度相機采集的t幅格雷碼編碼圖像序列CGCPs={CGCPs1,CGCPs2,…,CGCPst}、RGB-D深度相機采集的t組深度信息值序列DGCPs={DGCPs1,DGCPs2,…,DGCPst},編碼圖像序列CGCPs與深度信息值序列DGCPs具有對齊關(guān)系,且深度信息值序列DGCPs對齊于編碼圖像序列CGCPs。
通過相機采集得到格雷碼編碼形變圖像序列后,需對編碼條紋進行提取及解碼以獲取各編碼條紋的格雷碼值。為了準(zhǔn)確地對序列編碼條紋進行中心線提取與識別,需利用色彩空間轉(zhuǎn)換將格雷碼編碼圖像序列CGCPs={CGCPs1,CGCPs2,…,CGCPst}輸出為YUV色彩空間的Y通道編碼圖像序列YGCPs={YGCPs1,YGCPs2,…,YGCPst},其具體色彩空間的轉(zhuǎn)換過程可通過式(2)實現(xiàn)。正因亮度信息分量Y更好地表達了各像素點的亮度等級信息,所以對序列編碼條紋中心線的提取過程將使用亮度信息分量Y進行。
式中:Y(i,j)、U(i,j)、V(i,j)、R(i,j)、G(i,j)、B(i,j)分別表示某圖像中第i行第j列像素點的Y、U、V、R、G、B通道信息分量值。
由于序列編碼條紋中心線位于波形曲線的波峰和波谷處,因此需要使用線性平滑濾波器對Y通道編碼圖像序列YGCPs進行平滑處理,使對序列編碼條紋中心線的提取結(jié)果更加準(zhǔn)確[11-12]。另外需要注意:對橫向序列編碼條紋進行平滑處理時,需使用縱向線性平滑濾波器;對縱向序列編碼條紋進行平滑處理時,需使用橫向線性平滑濾波器。
格雷碼編碼圖像序列所包含編碼條紋的碼值是由二進制值決定的,因此提取出序列編碼條紋中心線后還要對Y通道編碼圖像序列YGCPs進行二值化處理,再利用二值化圖像即可對各個序列編碼條紋進行解碼識別。本文算法的序列編碼條紋由橫條紋和縱條紋構(gòu)成,根據(jù)格雷碼解碼原理對Y通道編碼圖像序列YGCPs進行解碼處理后,即可得到所有序列編碼條紋中心線各像素點的格雷碼值,并且每個中心線像素點均具有橫向和縱向兩個格雷碼值。根據(jù)解碼碼值與編碼碼值之間的關(guān)系,得到各中心線像素點之間的對應(yīng)歸屬關(guān)系,從而為離散點曲線擬合過程提供基礎(chǔ)。
一般情況而言,網(wǎng)格曲面區(qū)域的平緩程度可通過其區(qū)域邊界曲線反映出來,即:異形曲面區(qū)域較平緩則其邊界曲線曲率較小、異形曲面區(qū)域起伏較大則其邊界曲線曲率較大。上述序列編碼條紋的提取識別過程相當(dāng)于將異形曲面進行了網(wǎng)格劃分,由于異形曲面形態(tài)起伏未知且復(fù)雜多樣,為了能夠更好地表達異形曲面各網(wǎng)格區(qū)域形態(tài)變化趨勢,并為后續(xù)異形平緩曲面區(qū)域的合并劃分提供基礎(chǔ),則預(yù)先對各異形曲面網(wǎng)格區(qū)域的邊界曲線進行離散點擬合[13-14]。
最小二乘法曲線擬合能夠使樣本回歸計算值與已知樣本數(shù)據(jù)值的總體誤差最小,而多項式函數(shù)曲線擬合形式也更加符合邊界曲線的函數(shù)表達,因此將使用多項式函數(shù)結(jié)合最小二乘法對邊界曲線進行擬合估計,該多項式函數(shù)可由式(3)表示。
y=lnxn+ln-1+…+l1x+l0
(3)
式中:ln表示多項式函數(shù)的第n個參數(shù)值。
因為異形曲面區(qū)域的邊界曲線應(yīng)具有最簡曲線函數(shù)形式,為了確保多項式函數(shù)曲線擬合結(jié)果符合于曲面邊界曲線,并且能夠有效地降低曲線擬合算法復(fù)雜性和減少擬合過程累積誤差,對邊界曲線的擬合估計過程將使用二次多項式函數(shù)。利用離散點曲線擬合方式,即可得到所有異形曲面區(qū)域的邊界曲線方程。
為了實現(xiàn)對異形投影曲面的深度信息修復(fù),則需要合理地利用已采集到的原始深度信息和曲面形態(tài)特征,并使用異形投影曲面形態(tài)特征為原始深度信息的修復(fù)過程提供參照。利用三維曲面數(shù)理模型準(zhǔn)確擬合出平緩曲面區(qū)域的異形曲面方程,再根據(jù)各異形曲面方程分別對其內(nèi)部的所有坐標(biāo)點進行深度信息重計算,進而實現(xiàn)利用曲面擬合引導(dǎo)的異形曲面深度信息修復(fù)處理[15]。
雖然序列編碼條紋已將異形投影曲面進行了網(wǎng)格劃分,但這些被網(wǎng)格劃分的單元曲面區(qū)域并不能很好地表達異形曲面形態(tài)變化趨勢[16],也就是說,局部曲面區(qū)域形態(tài)并不能合理地表示整體曲面形態(tài)變化趨勢,因此更為準(zhǔn)確的計算過程便是:將具有相似邊界曲線方程的單元曲面區(qū)域劃歸為同一異形平緩曲面區(qū)域。
通過對各單元曲面區(qū)域邊界曲線的離散點曲線擬合,可以估計得到每個單元曲面區(qū)域的四個外部邊界曲線方程,上邊界曲線方程、下邊界曲線方程、左邊界曲線方程、右邊界曲線方程可分別表示為BCU、BCD、BCL、BCR。由于使用每個單元曲面區(qū)域的外圍邊界曲線方程作為平緩曲面區(qū)域劃分依據(jù),因此各邊界曲線方程計算值的相似度對異形平緩曲面區(qū)域劃分極為關(guān)鍵。
兩個二次多項式邊界曲線方程的相似度可利用SPD距離進行評判,由式(4)可表示SPD距離的計算過程,其中:SPD(A,B)表示曲線方程A與曲線方程B的對應(yīng)點對距離之和;ai表示曲線方程A的第i個坐標(biāo)值、bi表示曲線方程B的第i個坐標(biāo)值;d(ai,bi)表示坐標(biāo)值ai與坐標(biāo)值bi之間的歐氏距離。
假設(shè)存在SF1、SF2兩個單元曲面區(qū)域,如果在指定取值區(qū)間內(nèi)SF1與SF2的各個邊界曲線方程都對應(yīng)具備相似性,則可以認(rèn)定二者屬于同一個異形平緩曲面區(qū)域,否則二者分屬不同異形平緩曲面區(qū)域。通過對整體異形投影曲面進行平緩曲面區(qū)域劃分,將使得各異形平緩曲面區(qū)域的曲面擬合方程更為有效和合理。
由于異形平緩曲面區(qū)域?qū)で蟮那孢^渡態(tài)勢要盡可能避免復(fù)雜形變,因此曲面擬合方程形式為最基本的二次曲面方程表達。當(dāng)對每個異形平緩曲面區(qū)域進行二次方程擬合時,根據(jù)二次曲面擬合表達式(5)并利用最小二乘擬合法,估計得到與每個異形平緩曲面區(qū)域相對應(yīng)的二次曲面方程擬合參數(shù)序列SFPVs,且SFPVs={{S01,S11,S21,S31,S41,S51},{S02,S12,S22,S32,S42,S52},{S0c-1,S1c-1,S2c-1,S3c-1,S4c-1,S5c-1},{S0c,S1c,S2c,S3c,S4c,S5c}},其中:{S0c,S1c,S2c,S3c,S4c,S5c}表示第c個異形平緩曲面區(qū)域的擬合參數(shù)值。
z=S0x2+S1y2+S3xy+S3x+S4y+S5
(5)
式中:x、y、z分別表示異形平緩曲面區(qū)域中各像素點對應(yīng)的三維空間X軸坐標(biāo)值、Y軸坐標(biāo)值、Z軸坐標(biāo)值。經(jīng)過對原始異形平緩曲面區(qū)域進行離散點曲面擬合處理后,極可能會出現(xiàn)擬合曲面與三維空間離散點存在較大誤差等情況,此時則需要再次對出現(xiàn)異常擬合的異形平緩曲面區(qū)域進行重劃分[17]。對異形平緩曲面區(qū)域進行重劃分采用的規(guī)則為:如果某個單元曲面區(qū)域內(nèi)各離散點Z軸坐標(biāo)值與其所屬平緩區(qū)域曲面擬合計算得到的對應(yīng)Z軸坐標(biāo)值之間所有離散點的誤差之和均值大于設(shè)定的最大容差值,則將該單元曲面區(qū)域從其所屬平緩區(qū)域剔除,并再次對重劃分的平緩區(qū)域進行曲面擬合;而對于被剔除的單元曲面區(qū)域來說,將它與其周圍八個相鄰的單元曲面區(qū)域組合,再使用離散點曲面擬合方式得到該單元曲面區(qū)域的二次曲面方程。通過使用異形平緩曲面區(qū)域重劃分規(guī)則對全部曲面區(qū)域進行優(yōu)化處理,直到每個被區(qū)域劃分的異形平緩區(qū)域離散點曲面擬合誤差均能達到合理范圍之內(nèi),進而擬合得到最優(yōu)的二次曲面方程參數(shù)序列SWPVs,且SWPVs={{WS01,WS11,WS21,WS31,WS41,WS51},{WS02,WS12,WS22,WS32,WS42,WS52},…,{WS0c,WS1c,WS2c,WS3c,WS4c,WS5c}。
利用已擬合得到的二次曲面方程參數(shù)序列SWPVs和二次曲面擬合表達式,即可根據(jù)每個異形平緩曲面區(qū)域內(nèi)所有像素點的三維空間x、y坐標(biāo)值,計算得到各像素點對應(yīng)的三維空間z坐標(biāo)擬合優(yōu)化值,從而實現(xiàn)對異形投影曲面的深度信息優(yōu)化修復(fù)。
本文算法將格雷碼編碼圖像序列投射于異形曲面,通過主動引導(dǎo)的方式實現(xiàn)異形投影曲面的形態(tài)檢測、平緩曲面區(qū)域劃分、平緩曲面區(qū)域擬合以及區(qū)域深度信息修復(fù)等操作,從而達到異形曲面擬合引導(dǎo)的深度信息修復(fù)目的。
為了檢驗本文所提算法的可行性及有效性,在編碼序列圖像和深度信息采集階段,使用C++編程語言和RGB-D傳感器(Kinect v2.0)實現(xiàn)初始數(shù)據(jù)的采集存儲操作;在編碼條紋提取識別、分段離散點曲線擬合、平緩曲面區(qū)域劃分、區(qū)域離散點曲面擬合等處理階段,采用Python編程語言并結(jié)合Plotly、Numpy等類庫支持實現(xiàn)修復(fù)算法處理過程的具體操作。由于本文算法強調(diào)了異形曲面擬合對深度信息修復(fù)的引導(dǎo)性作用,故將以具有普適性的隨機異形投影曲面為算法驗證環(huán)境,而不是使用特殊布置的規(guī)則性投影表面為算法驗證環(huán)境。
分別將橫縱兩組格雷碼編碼圖像序列投射于異形投影曲面,從而使得異形曲面具有被動紋理特征,以達到對異形投影曲面進行幾何形態(tài)感知的目的。圖3所示為投射了橫向格雷碼編碼圖像的異形投影曲面。圖4所示為投射了縱向格雷碼編碼圖像的異形投影曲面。
圖3 投射橫向格雷碼圖像的異形投影曲面
然后使用RGB-D深度相機中彩色圖像傳感器采集到的橫縱格雷碼序列圖像,并根據(jù)格雷碼解碼原理即可得到所有序列編碼條紋對應(yīng)像素點的格雷碼碼值,再結(jié)合序列編碼條紋對整體異形投影曲面的網(wǎng)格化分割關(guān)系,便可以得到每個單元曲面區(qū)域中四個邊界曲線的平面離散點坐標(biāo)值。
在已知邊界曲線離散點集的確切歸屬前提下,即可利用多項式函數(shù)表達式(3)對各個邊界曲線離散點集進行多項式曲線函數(shù)擬合,從而得到每個單元曲面區(qū)域中四個邊界曲線的多項式函數(shù)描述,以確定各單元曲面區(qū)域的異形平緩曲面區(qū)域劃分歸屬目的。圖5所示為多項式邊界曲線函數(shù)擬合樣例。式(6)為圖5中多項式邊界曲線函數(shù)擬合方程。
圖5 多項式邊界曲線函數(shù)擬合樣例
y=0.000 671 4×x2-0.164 3×x2+156
(6)
利用所有單元曲面區(qū)域的多項式邊界曲線擬合方程結(jié)果,再根據(jù)邊界曲線的SPD相似度計算匹配關(guān)系,即可得到每個異形平緩曲面區(qū)域的劃分歸類及其包含的像素點集合。接著利用RGB-D深度相機中深度信息傳感器對各異形平緩曲面區(qū)域的所有像素點進行三維空間映射,便可以得到每個平緩曲面區(qū)域中各離散像素點的三維空間坐標(biāo)值。
再結(jié)合使用二次曲面擬合表達式(5)對平緩曲面區(qū)域的離散空間點集進行最小二乘估計,計算得到每個異形平緩曲面區(qū)域的二次曲面方程,而后將離散空間點的X軸坐標(biāo)值、Y軸坐標(biāo)值傳入它對應(yīng)的二次曲面方程,即可計算得到異形曲面擬合引導(dǎo)的深度信息修復(fù)值。圖6所示為異形平緩曲面區(qū)域的二次曲面擬合修復(fù)樣例1。式(7)為圖6中平緩曲面區(qū)域的二次曲面擬合方程。
(a) 原始樣例 (b) 修復(fù)后樣例圖6 異形平緩曲面區(qū)域的二次曲面擬合修復(fù)樣例1
z=.48×x2-0.81×xy+2.66×y2-
4.94×x-1.14×y+2.71
(7)
圖7所示為異形平緩曲面區(qū)域的二次曲面擬合修復(fù)樣例2。圖8所示為異形平緩曲面區(qū)域的二次曲面擬合修復(fù)樣例3。
(a) 原始樣例 (b) 修復(fù)后樣例圖7 異形平緩曲面區(qū)域的二次曲面擬合修復(fù)樣例2
(a) 原始樣例 (b) 修復(fù)后樣例圖8 異形平緩曲面區(qū)域的二次曲面擬合修復(fù)樣例3
圖9-圖10所示為本文算法與雙邊濾波算法修復(fù)結(jié)果的樣例對比。經(jīng)過對修復(fù)后深度值與基準(zhǔn)深度值之間的差異進行定量分析得到:誤差最大值約為1.463 6 cm,誤差最小值約為0.06 cm,誤差中值約為0.235 7 cm,誤差中位值約為0.152 5 cm。從異形平緩曲面區(qū)域的二次曲面擬合修復(fù)樣例結(jié)果可以看出,本文算法雖未使用過多復(fù)雜的數(shù)理計算模型,而只是使用了最基本的多項式函數(shù)、二次曲面函數(shù)進行擬合估計計算,但是卻得到了非常理想的深度信息擬合修復(fù)效果。
(a) 未修復(fù)樣例 (b) 本文算法修復(fù)樣例 (c) 雙邊濾波修復(fù)樣例圖10 算法修復(fù)對比樣例2
本文針對異形曲面的深度信息修復(fù)問題,提出了基于異形曲面擬合引導(dǎo)的深度信息修復(fù)算法。在進行異形曲面深度信息修復(fù)過程中,該算法不僅可以做到異形投影曲面幾何形態(tài)的變化趨勢表達,還可以做到異形投影曲面的平緩曲面區(qū)域劃分、異形投影曲面的三維曲面擬合等操作,從而達到異形曲面擬合引導(dǎo)的深度信息修復(fù)目的。本文算法通過格雷碼序列圖像的編碼條紋形變來表達異形曲面幾何變化趨勢,再根據(jù)異形曲面的幾何形態(tài)變化趨勢對平緩曲面區(qū)域進行劃分,最后利用三維曲面數(shù)理模型擬合出的曲面方程對原始深度信息進行平滑修復(fù)。本文深度信息修復(fù)算法根據(jù)異形曲面的形態(tài)擬合,能夠?qū)崿F(xiàn)對深度信息的原始值優(yōu)化和缺失區(qū)域填補,提高了異形曲面深度信息的可用性、保真度、合理性等,雖然如此,但關(guān)于此領(lǐng)域的研究仍有提升空間。