婁達平 王曉東 富顯祖 章聯軍
(寧波大學信息科學與工程學院 浙江 寧波 315211)
基于深度引導空洞填補的虛擬視點繪制方法
婁達平 王曉東 富顯祖 章聯軍
(寧波大學信息科學與工程學院 浙江 寧波 315211)
針對單視點繪制虛擬視點圖像存在的空洞問題,提出一種基于深度引導空洞修復的虛擬視點繪制方法。核心思想是通過對多個映射像素點的深度信息和空間位置信息進行加權插值操作來實現細小的空洞填充,并且分區(qū)域對大型空洞填補。在像素點插值的過程中,該方法首先考慮映射像素點的可靠性,剔除不可靠的像素點,從而減少錯誤的映射像素點。在填補大型空洞中,繼承基于樣本圖像修復算法的優(yōu)點,并引入深度信息來輔助空洞填補,以較為準確的方式來修復圖像。實驗結果表明,無論是主觀視覺效果,還是客觀值都要比Criminisi算法要好。
虛擬視點 基于深度圖的繪制 深度 空洞填補 像素插值
近年來,隨著計算機技術的不斷發(fā)展,數字圖像和視頻的傳輸及顯示技術獲得了快速的進步。普通的2D視頻正在逐步向3D視頻進行轉換[1-3]。為了從不同的視點觀看都能夠得到令人滿意的沉浸式感受,多視點圖像吸引了國內外學者的廣泛關注。自由視點視頻系統(FTV)作為多視點圖像設備中最重要的之一,能夠給用戶帶來全新的虛擬現實體驗。其中,基于深度圖像的繪制DIBR(depth-image-based rendering)技術在該系統的實現過程當中起著關鍵性的作用[4]。在理論上,它只要使用在發(fā)送端編碼傳輸過來的彩色圖像及其對應的深度圖像,就可以在接收解碼端繪制出給定任意視點的圖像,并且具有繪制速度快,所需要帶寬小等優(yōu)點,使處于不同位置上的觀眾都能夠體驗到立體視頻播放的逼真效果。
DIBR技術主要包括以下幾個步驟:三維圖像變換、像素插值和空洞填補。其中存在的一個主要問題是,繪制后的虛擬視點圖像往往存在空洞,即空洞問題[5]。根據空洞產生的原因,大致可以分為兩類:第一類空洞是由于參考視點采樣點不充分引起的,這類空洞通常會比較大。第二類空洞是由于深度圖像當中同一物體表面上的灰度值不連續(xù)引起的,這類空洞通常表現為細小的裂紋。
為了提高目標視點視圖的質量,國內外許多學者對此進行了研究。已有的方法可以分為3類[6]。第1類采用深度圖像分層技術(LDI)[7]。在構造LDI時,使得每一個像素點既包含了可見物體的彩色信息和深度信息,又保存了遮擋物體的信息。文獻[8]則從分層思想出發(fā),利用金字塔模型對空洞進行分層地填補,較好地修復了圖像。通過這種方式,能夠有效地避免目標視圖中大塊空洞現象,但同時也造成了采樣過程繁瑣和信息存儲量大的問題。第2類方法將深度圖像預處理技術和彩色圖像后處理技術相結合。通常做法是,通過高斯濾波器來平滑深度圖像,從而減少繪制視圖中的空洞;通過均值濾波和像素插值的方法來修復目標視圖中殘留的空洞。文獻[9]提出了采用高斯濾波器對深度圖像進行平滑濾波的方案,文獻[10]則選用高斯雙邊非對稱濾波器對深度圖像進行處理,文獻[11]采用A-Trous小波濾波器,能夠有效地保留對象邊緣深度信息,這類方法雖然能在一定程度上減少空洞甚至消除空洞,但是這類方法只適用于目標視點和參考視點距離較小時,即小基線距離情況;否則,需要使用強參數設置的高斯核函數,然而這樣會引起目標視圖中對象的幾何失真。第3類方法把二維圖像修復的方法引入到空洞填補當中。文獻[12]首次提出將基于樣本圖像修復的方法用來解決圖像中存在的空洞問題,文獻[13]以先修復深度圖像空洞再修復彩色圖像空洞的順序對圖像進行修復,文獻[14]利用深度信息引導圖像修復的順序,對目標視圖中的空洞進行修復,文獻[15]根據視頻圖像在時空域上的冗余性,將搜索范圍擴大,進一步提高了修復空洞的質量,文獻[16]同樣利用視頻在時空域上的關系,應用高斯混合模型提取出視頻的背景,使用背景來填補空洞,這類方法盡管能夠保持目標視圖的紋理和結構信息,圖像的質量也較高,但是對象邊界處會發(fā)生模糊和出現偽輪廓。
針對空洞填補環(huán)節(jié)的局限性,本文提出一種適用于單視點繪制的,基于深度引導空洞填補的虛擬視點繪制方法。該方法創(chuàng)新之處在于:(1)提出一種基于深度的像素插值算法。該算法主要解決細小空洞問題,從三維圖像變換產生空洞的原因入手,然后充分利用目標視點圖像中映射像素點的空間位置信息、深度信息以及映射點的分布統計信息,來對傳統的DIBR方法進行修正,從根本上避免了繪制過程中細小空洞的產生,從而節(jié)省了修復空洞的時間。(2)提出一種基于區(qū)域的空洞填補算法。該算法主要應用于大型空洞填補上,對由遮擋所引起的空洞,采用分區(qū)域的空洞填補方法,并且利用圖像梯度和深度信息以更加精確地方式引導空洞的修復,避免了物體及圖像邊界區(qū)域出現的偽影問題,進而得到質量較高的虛擬視點圖像。
在虛擬視點繪制技術中,三維圖像變換是一個重要的步驟,變換方式可分為2種:3D映射和1D映射[17]。3D映射是根據深度圖像、參考圖像和相機參數,將參考圖像中的像素點變換到世界坐標系下,再將世界坐標系的點變換到目標視圖上。通過這種方式可以繪制出任意視點下的虛擬視點視圖。1D映射也被稱為視點插值,其不同之處在于直接將參考圖像的像素點水平變換到目標視圖中同一行的對應位置,使用的是平行相機采集的圖像,適用于目標視點視角位于基線上的虛擬視點視圖。本文主要研究的是通過匯聚相機采集的視頻圖像,因此以3D映射來進行虛擬視點繪制。下面著重介紹3D映射方式,主要是通過以下兩個步驟:
1) 將2D平面上的像素點變換到世界坐標系上。令(x,y)為圖像上某一個像素點的坐標位置,(X,Y,Z)是其世界坐標系上的位置,Z是該像素點實際深度值,那么變換公式如下:
(1)
2) 將世界坐標系上的像素點變換到目標視圖的坐標上。同理,變換公式如下:
(2)
其中,Kvir、Rvir、tvir分別為目標相機內矩陣、旋轉矩陣和平移向量。那么坐標[u,v,w]T通過式(3)和式(4)計算就可以得到原像素點在目標視圖上的坐標(U,V),計算公式如下:
U=round(u/w)
(3)
V=round(v/w)
(4)
圖1(a)和(b)分別給出了Breakdancers序列的3號相機的第一幀圖像及其深度圖像,(c)是經過3D映射,投影到4號相機的虛擬圖像,其中黑色為出現空洞的部分。
圖1 虛擬視點繪制示意圖
針對DIBR技術中修復空洞問題方法的不足,在充分結合圖像的深度信息、映射點坐標的位置信息以及圖像的梯度信息的基礎上,本文提出一種基于深度引導空洞填補的虛擬視點繪制算法。
2.1 總體流程
圖2 本文的算法流程圖
算法的總體流程如圖2所示。該算法包括基于深度的像素插值算法、基于樣本圖像分區(qū)域的非遮擋空洞修復和偽輪廓后處理等三個模塊。
2.2 基于深度的插值算法
2.2.1 基本原理
在進行三維圖像變換的時候,參考圖像的像素點并不能準確地映射到整像素位置處,同一個位置可能存在多個像素點,也有可能一個像素點位置沒有任何像素值。這樣就導致了在目標圖像中存在大量的細小空洞。因此,從產生空洞的根本原因出發(fā),在三維圖像變換的過程中,記錄下目標視點圖像中,每一個像素位置附近(1個像素點大小距離內)的所有映射像素點的深度值、亮度值和相對于該位置水平和垂直距離值,如圖3所示。然后,再根據映射點的個數來進行處理,求出相應像素坐標位置的像素值。經過加權運算后,得到像素點坐標位置處的亮度值為:
W(x,y)=
(5)
圖3 像素插值示意圖
2.2.2 基于深度的插值流程
基于深度的插值算法流程如圖4所示。下面具體介紹該算法的流程。
圖4 基于深度的插值算法流程圖
1) 在開始進行三維圖像變換的時候,設置三個三維變量,它們的二維的信息用來存儲像素點的坐標(x,y)的值,第三維的信息用來存儲該點附近映射像素點的距離值,像素值以及深度值。并且,這樣很容易就能夠獲得每個像素位置附近映射點的個數N,經過大量實驗統計發(fā)現,映射像素點個數基本集中在[0,5]之間,大于5的概率非常低,通常只有在發(fā)生遮擋的邊界處才會出現。因此,在利用基于深度的插值算法當中最多只考慮5個映射像素點。
2) 找出N個映射像素點的深度最小值記為MinDepth。
3) 根據映射個數N來進行插值。若N=0,則說明該點周圍沒有任何映射像素點,那么就不進行操作,該點就為空洞點。若N=1,那么該點只有1個映射像素點,那么就簡單地進行賦值操作即可。若N=2,這種情況出現的概率比較大,一般會出現在同一物體表面上,只要對映射的兩個像素點進行求均值即可。若N=3或者N=4,先要確定映射像素點的可靠性,同一物體上的深度值一般是連續(xù)的,如果該映射點的深度值與最小的像素點不同,那么該點就有可能是錯誤,將它標記為不可靠像素點,在進行插值的時候剔除該點。即令ρi(x,y)=0。ρi的定義如下:
(6)
其中,MinDepth(x,y)=Min(D1(x,y),D2(x,y),…DN(x,y)),表示像素點坐標介于(x,y)之間的所有映射像素點中最小的深度值。然后,對所有的映射像素點進行加權求值。若N≥5,這類點基本上處于發(fā)生遮擋區(qū)域的邊界處,會有較多的像素點在該區(qū)域重疊,如果這里還采用基于深度的插值算法,容易造成該區(qū)域的模糊,因此這里只采用傳統的Z-buffer技術進行填充,即直接使用深度值小的像素點覆蓋深度值大的點,以保證前景像素不會被背景像素點所覆蓋。
2.3 基于區(qū)域的空洞填補算法
采用單視點參考進行繪制的虛擬視點通常會存在較大的空洞區(qū)域,這些都是由于在參考視點中不可見的區(qū)域,經過繪制后,在目標視點中成為可見區(qū)域。本文采用改進的基于樣本圖像修復算法分區(qū)域來填補空洞。修復流程如圖5所示。
圖5 基于區(qū)域的空洞填補算法流程圖
2.3.1 理論基礎
Criminisi算法是一種應用于圖像修復的經典算法,對于修復圖像中的空洞有較好的效果。主要包含以下三個步驟:
(1) 計算優(yōu)先級。首先標記出待填補的空洞區(qū)域,計算空洞邊緣每個像素點的優(yōu)先級,并按照優(yōu)先級進行排序。
(2) 尋找最佳匹配塊。將優(yōu)先級最大的塊作為當前待填補的塊,采用全局搜索的方法,將絕對誤差和作為匹配準則,在非空洞區(qū)域搜索與待填補塊相似度最大的匹配塊。尋找到最大匹配塊后,將匹配塊的像素值填補到空洞區(qū)域。
(3) 更新優(yōu)先級。每次填補后,空洞邊界像素點的優(yōu)先級都會發(fā)生變化,因此在每完成一次填補就對邊緣的優(yōu)先級進行更新。
重復上面的三個步驟,直到空洞區(qū)域全部非空,則修復完畢。
本文提出的基于區(qū)域的空洞填補算法是在Criminisi算法的基礎上,繼承并改進了該算法,使其更好地適用于空洞填補。本文算法關鍵解決4個問題:(1) 如何計算待填補塊的優(yōu)先級;(2) 如何確定搜索的區(qū)域;(3) 如何確定最佳匹配塊并填充;(4) 如何處理偽輪廓。
2.3.2 優(yōu)先級的計算
如圖6所示,在傳統的Criminisi算法當中,Ω表示空洞區(qū)域,φ表示樣本區(qū)域,那么優(yōu)先級的計算如式(7)所示:
P(p)=C(p)D(p)
(7)
其中,C(p)和D(p)分別稱為置信項和數據項,它們的定義如下:
(8)
(9)
圖6 Criminisi算法描述圖
P(p)=C(p)D(p)Z(p)
(10)
其中,C(p)和D(p)的定義和原先公式中的定義相同。Z(p)深度因子,能夠反映待修復塊中深度值的變化。Z(p)的定義如下:
(11)
其中,e(g,h)表示像素點g和h處的深度差值,α為歸一化因子,這里用最大的深度值(255)表示。
2.3.3 搜索區(qū)域的確定
搜索區(qū)域的選取將會直接影響到最終的空洞填補效果,現有方法大多是在當前圖像上進行搜索,然而繪制出來的虛擬視點圖像存在較多的空洞區(qū)域,如果對所有空洞區(qū)域都采用直接在繪制圖上進行搜索容易對前景像素點造成錯誤擴散的問題,空洞填補效果不是很好。因此,本文對空洞進行分區(qū)域的填補。如果空洞位于圖像邊緣區(qū)域,由于其紋理較為平坦,可以直接采用在原繪制圖像上進行搜索匹配塊。而其他區(qū)域,則采用在參考圖像上進行搜索匹配塊,這樣不但能夠填補由于缺失前景信息而造成的空洞,而且,又能夠較好地填補背景區(qū)域。
2.3.4 最佳匹配塊
(12)
其中,p1和q0分別代表待填補塊和匹配塊中的點,SAD代表塊Ψp和塊Ψq間的絕對誤差和,Grad代表圖像梯度絕對誤差和,其定義分別如下:
(13)
(14)
其中,β∈R,G,B表示彩色圖像中各個分量。而λ拉格朗日系數,它的定義如下:
(15)
其中,λb和λf為兩個常數,這里分別為0和10。
2.3.5 偽輪廓的后處理
經過大型空洞填補后的虛擬視點圖像仍然會存在一些瑕疵,這類偽輪廓通常是由于在填補背景空洞區(qū)域時選擇了錯誤的前景像素點而造成的,這里我們對這類偽輪廓像素點全部進行置空處理,再采用上述的以當前圖像為搜索區(qū)域的空洞填補方法進行填補,那么偽影就幾乎可以完全消除。
為驗證本文提出方法的有效性,我們采用了微軟研究院的交互視覺媒體組提供的3D測試序列[18]Breakdancers進行了實驗。這組測試序列由8個相機采集100幀彩色圖像和由軟件對應計算得到的深度圖像組成,圖像的分辨率是1 024×768像素,相鄰相機之間的水平距離是20 cm,并且以1維弧形擺放。實驗中,以3號相機為參考視點,4號相機為目標視點,將目標視點繪制得到的圖像同實際4號相機采集得到的圖像進行比較,利用兩者之間的峰值信噪比PSNR(peak signal to noise ratio)和結構相似度SSIM index(structural similarity index)分析虛擬視點繪制效果。實驗的硬件環(huán)境如下:主頻3.5 GHz的i3-4150處理器,8.00 GB內存。實驗的軟件環(huán)境如下:64位Win 7操作系統,測試平臺為vs 2010開發(fā)編譯環(huán)境,采用C++編程語言且代碼未做優(yōu)化。
圖7 Breakdancers第一幀主觀質量對比
本文選擇較為典型的Criminisi算法以及目前較新的Wang[14]算法作對比,圖7顯示本文算法與其余兩種算法繪制的虛擬視點圖像主觀質量對比,其中(a)為目標視點原圖;(b)為Criminisi算法的結果圖;(c)為Wang算法得到的虛擬視點圖;(d)為本文算法繪制的圖。觀察圖像中的標記區(qū)域,(b)和(c)中人物對象邊界處的偽輪廓和前景像素錯誤擴散問題比較嚴重,且圖像邊界部分存在著較為嚴重的錯誤填補現象,而本文提出的算法(d)沒有出現在物體的邊緣處和圖像的邊界部分幾乎不存在偽輪廓現象。
表1給出了三種算法的虛擬視點圖PSNR和SSIM值,這兩個值越高表示圖像質量越高。主觀視覺效果和客觀PSNR、SSIM數據都表明本文算法比Criminisi算法和Wang算法更為優(yōu)越。本文算法采用基于深度信息的填補,優(yōu)先采用背景區(qū)域對空洞進行填充,并采用分區(qū)域的空洞填補方法結合偽輪廓后處理技術,使得物體邊界和圖像邊界部分幾乎不存在偽輪廓現象,目標虛擬視點圖像主觀效果得到進一步提高,更加接近于真實圖像。
表1 三種算法PSNR、SSIM比較(dB)
本文提出一種基于深度引導空洞填補的虛擬視點繪制算法。該算法充分地考慮了在三維圖像變換過程中映射像素點的深度信息和位置信息,對像素點進行加權求取目標像素點的值,減少了錯誤映射的像素點個數;并且在大型空洞填補過程中,對修復優(yōu)先級和最佳匹配原則的改進以及分區(qū)域地進行修復,較好地消除了虛擬視點圖像中的偽輪廓現象。實驗結果同Criminisi算法和Wang算法相比,該方法繪制得到的虛擬視點圖像主客觀質量均較好。下一步的工作方向是進一步優(yōu)化匹配方式以及自適應地確定搜索區(qū)域,從而減少錯誤匹配和填補時間以滿足實時高質量的需求。
[1] Liu W, Wu Y, Guo F, et al. An efficient approach for 2D to 3D video conversion based on structure from motion[J].Visual Computer, 2015, 31(1): 55-68.
[2] Lai Y K, Chung Y C. Real-Time 3D Rendering Processor for 2D-to-3D Conversion of Stereoscopic Displays[C]//IEEE International Conference on Consumer Electronics, Las Vegas, 2014. USA: IEEE press, 2014:117-118.
[3] Lin Z, Park M, Metaxas D. Automatic stereoscopic video generation based on virtual view synthesis[J]. Neurocomputing, 2015, 151: 654-662.
[4] Fehn C, Barre R D L, Pastoor S. Interactive 3-DTV-Concepts and Key Technologies[J]. Proceedings of the IEEE, 2006, 94(3):524-538.
[5] 姚杰, 陳一民, 基于無空洞填補的DIBR方法[J]. 計算機應用與軟件, 2015,32(4): 222-224.
[6] 駱凱, 李東曉, 馮雅美, 等. 基于DIBR和圖像修復的任意視點繪制[J]. 中國圖象圖形報, 2010, 15(3): 443-449.
[7] Shade J, Gortler S, He L, et al. Layered depth images[C]// Proceedings of the 25th annual conference on Computer graphics and interactive techniques, New York, 1998. USA: ACM press, 1998: 231-242.
[8] Solh M, Alregib G. Hierarchical Hole-Filling For Depth-Based View Synthesis in FTV and 3D Video[J]. IEEE Journal of Selected Topics in Signal Processing, 2012, 6(5):495-504.
[9] Zhang L, Tam W J. Stereoscopic image generation based on depth images for 3D TV[J]. IEEE Transactions on Broadcasting, 2005, 51(2): 191-199.
[10] Lee P J. Nongeometric distortion smoothing approach for depth map preprocessing[J]. IEEE Transactions on Multimedia, 2011, 13(2):246-254.
[11] 高凱, 陳賀新, 趙巖, 等. 面向虛擬視點繪制的深度圖濾波及上采樣方法[J]. 中國圖象圖形學報, 2013, 18(9): 1085-1092.
[12] Criminisi A, Pérez P, Toyama K. Region filling and object removal by exemplar-based image inpainting[J]. IEEE Transactions on Image Processing, 2004, 13(9): 1200-1212.
[13] Xu X, Po L M, Cheung C H, et al. Depth-aided exemplar-based hole filling for DIBR view synthesis[C]//2013 IEEE International Symposium on Circuits and Systems (ISCAS), Beijing, 2013. China: IEEE press, 2013: 2840 - 2843.
[14] Wang D, Zhao Y, Wang Z, et al. Hole-Filling for DIBR Based on Depth and Gradient Information[J]. International Journal of Advanced Robotic Systems, 2015, 12.
[15] Schmeing M, Jiang Xiaoyi. Superpixel-based Disocclusion Filling in Depth Image Based Rendering[C]//Proceedings of the 22nd International Conference on Pattern Recognition, Washington D.C, 2014. USA: IEEE Press, 2014:1073-1078.
[16] Yao C, Tillo T, Zhao Y, et al. Depth Map Driven Hole Filling Algorithm Exploiting Temporal Correlation Information[J]. IEEE Transactions on Broadcasting, 2014, 60(2):394-404.
[17] Liu J, Liu Y, Qi H, et al. 3D Video Rendering Adaptation: A Survey[J]. 3d Research, 2015, 6(1): 1-13.
[18] Zitnick C L, Kang S B, Uyttendaele M, et al. High-quality video view interpolation using a layered representation[J]. Acm Transactions on Graphics, 2004, 23(3): 600-608.
A VIRTUAL VIEW RENDERING METHOD BASED ON DEPTH-GUIDED HOLE FILLING
Lou Daping Wang Xiaodong Fu Xianzu Zhang Lianjun
(CollegeofInformationScienceandEngineering,NingboUniversity,Ningbo315211,Zhejiang,China)
A virtual view rendering method based on depth-guided hole filling is proposed to solve the problem of the existence of hole of single point virtual view image. The core idea is to realize the small hole filling by weight interpolation of the depth information and spatial position information of the multiple mapping pixel points, and fill the large holes in the each region. In the process of pixel interpolation, this method first considers the reliability of the mapping pixels and excludes the unreliable pixels, thereby reduces the error mapping pixels. In the process of filling large holes, this method inherits the merits of exemplar-based hole filling, and uses depth information to assist the operation of hole filling in a more accurate way. Experimental results show that the proposed method is better than Criminisi algorithm in both subjective visual effect and objective value.
Virtual view Depth-image-based rendering (DIBR) Depth Hole filling Pixel interpolation
2016-06-30。國家自然科學基金重點項目(U1301257)。婁達平,碩士生,主研領域:多媒體信號處理。王曉東,副教授。富顯祖,碩士生。章聯軍,工程師。
TP391.4
A
10.3969/j.issn.1000-386x.2017.06.030