王 奎, 安 平,2, 張兆楊,2, 程 浩, 李賀建
(1.上海大學(xué)通信與信息工程學(xué)院,上海200072;2.新型顯示技術(shù)及應(yīng)用集成教育部重點(diǎn)實(shí)驗(yàn)室,上海200072)
Kinect深度圖像快速修復(fù)算法
王 奎1, 安 平1,2, 張兆楊1,2, 程 浩1, 李賀建1
(1.上海大學(xué)通信與信息工程學(xué)院,上海200072;2.新型顯示技術(shù)及應(yīng)用集成教育部重點(diǎn)實(shí)驗(yàn)室,上海200072)
深度提取是基于“紋理+深度”自由立體視頻系統(tǒng)的關(guān)鍵技術(shù),而立體視頻實(shí)際應(yīng)用系統(tǒng)需要高效快速的深度圖提?。岢鲆环N針對Kinect提取深度圖的快速修復(fù)算法.首先,對Kinect提取的彩色紋理圖和深度圖進(jìn)行對齊裁剪,并采用背景填充算法對裁剪后的深度圖進(jìn)行初步修復(fù);然后,對初步修復(fù)后的深度圖進(jìn)行基于顏色匹配的快速修復(fù),得到質(zhì)量較好的可用深度圖.實(shí)驗(yàn)結(jié)果表明,本算法能有效修復(fù)原始深度圖中由于遮擋而引起的空洞,獲取的深度圖整體平滑度好、邊緣清晰;在普通PC機(jī)上達(dá)到25~30幀/s的處理幀率,實(shí)現(xiàn)了深度圖的實(shí)時(shí)提取.
深度圖修復(fù);實(shí)時(shí)獲取;顏色匹配;Kinect;立體視頻
Abstract:Depth extraction is a key step in 3D video system based on texture plus depth.Real application systems require high efficiency and fast depth extraction.This paper presents a fast inpainting algorithm for Kinect depth map.This paper clips and aligns the origin color and depth images captured by Kinect,and partially fill holes in the clipped depth image using a background based method.Then this paper uses a fast inpainting algorithm based on color match to fill the remaining holes in the depth image to obtain a better depth image.Experimental results show that the proposed algorithm can efficiently repair errors in the original depth map such as holes caused by occlusion.Finally we obtain a smooth depth map with clear edges.The processing speed can reach 25~30 frame/s by using an ordinary desktop computer to realize real-time depth map extraction.
Key words:depth map inpainting;real-time capture;color match;Kinect;stereo video
隨著立體顯示技術(shù)和視頻處理技術(shù)的發(fā)展,3D視頻技術(shù)成為近年來的研究熱點(diǎn)[1].3D視頻技術(shù)研究首先要解決3D信息的表示問題,即采用何種方式來描述3D場景.目前主要有兩種方案:一種是采用多視方案,用攝像機(jī)陣列拍攝3D場景,在立體顯示器上顯示出來;另一種是“紋理+深度”的方案[1],用彩色紋理圖描述3D場景的紋理信息,用深度圖描述3D場景的深度信息,在終端采用基于深度圖的繪制(depth image based rendering,DIBR)技術(shù)繪制虛擬視點(diǎn),將虛擬視點(diǎn)在立體顯示器上顯示出來.第一種方案由于拍攝的視點(diǎn)數(shù)較多,數(shù)據(jù)的編碼、存儲(chǔ)以及傳輸成為技術(shù)瓶頸.第二種方案由于有了場景的深度信息,在拍攝過程中只需要捕獲很少的視點(diǎn),因此數(shù)據(jù)量相對第一種方案少了很多,便于數(shù)據(jù)的編碼存儲(chǔ)和傳輸;并且在顯示端可以利用DIBR技術(shù)進(jìn)行一定范圍內(nèi)的任意視點(diǎn)繪制[2],從而產(chǎn)生更好的視覺效果.基于“紋理+深度”3D信息描述的多視點(diǎn)+深度(multi-video+depth,MVD)系統(tǒng)以其傳輸帶寬小、易于虛擬視點(diǎn)繪制等優(yōu)點(diǎn)而被認(rèn)為是一種有應(yīng)用前途的3D視頻方案[2],已成為當(dāng)前的研究熱點(diǎn).
但是基于“紋理+深度”的立體視頻系統(tǒng)中,3D場景深度信息的獲取是十分困難的.目前對深度信息的獲取主要有兩種方法[3]:①采用立體匹配算法被動(dòng)獲取深度信息,一般利用雙目相機(jī)拍攝3D場景信息,用立體匹配算法提取場景中物體的視差,再根據(jù)相機(jī)參數(shù)計(jì)算出深度信息.這種方案中的算法實(shí)現(xiàn)復(fù)雜度高,很難做到深度實(shí)時(shí)提取,同時(shí)這種方法受輸入場景以及遮擋問題影響非常大;②采用測距設(shè)備主動(dòng)獲取場景的深度信息,即使用深度相機(jī)直接獲取深度信息.深度相機(jī)目前分為兩類,一類是TOF(time of flight)相機(jī),另一類是Kinect,它們都是通過發(fā)射和接收反射光來計(jì)算深度信息以實(shí)現(xiàn)深度信息的實(shí)時(shí)提?。沁@種深度提取設(shè)備價(jià)格昂貴,且獲取的深度圖分辨率低,給實(shí)際應(yīng)用帶來困難.
TOF相機(jī)的優(yōu)點(diǎn)是其發(fā)射和接收的傳感器較密集,輸出深度圖質(zhì)量較好.但深度圖中的空洞或者深度錯(cuò)誤會(huì)對虛擬視點(diǎn)繪制質(zhì)量帶來較大的影響,這些錯(cuò)誤通常發(fā)生在遮擋區(qū)域,即深度圖不連續(xù)的地方.文獻(xiàn)[4]提出了使用高斯濾波來平滑深度圖,隨后一些文獻(xiàn)也給出了對高斯濾波的改進(jìn)算法,如文獻(xiàn)[5]提出了一種非對稱高斯濾波算法.這些算法都只利用了空域信息(即單幀圖像局部區(qū)域),對深度圖的修復(fù)效果有限.文獻(xiàn)[6]針對TOF相機(jī)深度圖空域跳動(dòng)的問題,提出了一種利用時(shí)域和空域信息來減少其跳變的方法.文獻(xiàn)[7]則提出了一種結(jié)合立體相機(jī)紋理數(shù)據(jù)的深度圖分辨率提升算法,通過結(jié)合深度圖對應(yīng)的紋理圖來提升深度圖的質(zhì)量.然而,TOF相機(jī)存在獲取深度圖分辨率低、價(jià)格昂貴等缺點(diǎn).
Kinect是微軟研發(fā)的一種可以獲取場景深度的設(shè)備,主要應(yīng)用在人機(jī)交互(如Xbox游戲機(jī))、3D場景重建、機(jī)器視覺等領(lǐng)域[8].Kinect可以同時(shí)采集場景紋理和深度,相對于TOF深度提取設(shè)備,Kinect價(jià)格便宜,可以提取較高分辨率的深度圖.但是Kinect提取的深度圖質(zhì)量較差,在遮擋區(qū)域、光滑物體表面存在較大的深度信息缺失空洞,必須進(jìn)行填充修復(fù)處理.
在三維場景中,由于背景被前景遮擋或者前景的個(gè)別部分距Kinect過近使該部分不在紅外光場之內(nèi)等因素,部分Kinect發(fā)射的紅外光無法反射回來而產(chǎn)生背景或者前景空洞,顯然,當(dāng)前景距相機(jī)比較近時(shí)產(chǎn)生的空洞問題更嚴(yán)重.這些空洞可以采用圖像修復(fù)算法進(jìn)行修復(fù),但是對于大空洞,如果單純依靠空域圖像修復(fù),不僅修復(fù)非常耗時(shí),而且修復(fù)效果也不好.由于Kinect出現(xiàn)的空洞大部分是場景中的背景部分,因此可以利用場景中的背景對空洞進(jìn)行初步修復(fù),然后再結(jié)合彩色紋理信息對局部小空洞進(jìn)行二次修復(fù).
基于上述考慮,本研究的算法的主要步驟如下:
(1)對Kinect輸出的深度圖和紋理圖進(jìn)行對齊裁剪;
(2)利用幀差法結(jié)合原始深度圖估計(jì)背景,并對背景深度圖采用結(jié)合紋理顏色信息的方法進(jìn)行修復(fù);
(3)用背景填充算法對原始深度圖進(jìn)行初步修復(fù);
(4)結(jié)合紋理顏色信息對深度圖進(jìn)行二次修復(fù);
(5)對修復(fù)的空洞區(qū)域采用中值濾波去除噪聲.
研究顯示,侵犯行為與員工的情緒狀態(tài)有密切關(guān)系,許多負(fù)性情緒會(huì)導(dǎo)致侵犯行為,這些負(fù)性情緒包括:憤怒、苦惱、悲傷、緊張等。Hepworth[11]等(2004)研究顯示,在員工的憤怒情緒狀態(tài)和工作場所侵犯行為之間具有較強(qiáng)的一致性,憤怒情緒狀態(tài)是員工的侵犯行為的主要原因之一。對于為什么憤怒情緒會(huì)導(dǎo)致員工的侵犯行為,研究者認(rèn)為原因在于個(gè)體情緒對其理智和行為具有極大的影響力量,研究也顯示憤怒情緒會(huì)使員工處于失控狀態(tài),變得缺乏自知力,也喪失自控力,因而在實(shí)施侵犯行為時(shí)變得無所顧忌。[12]
2.1 紋理圖和深度圖的對齊裁剪
Kinect最大可輸出640×480分辨率的深度圖和紋理圖.如前所述,Kinect提取的深度圖質(zhì)量較差,在遮擋區(qū)域、光滑物體表面存在較大的深度信息缺失空洞;而且Kinect采集的原始深度圖與紋理圖雖然已作了匹配和對齊處理,但并不是完全對齊的,紋理圖相對于深度圖在大小上存在差異(見圖1(a)和圖1(b)).因此,本研究首先通過實(shí)驗(yàn)對采集的深度圖和紋理圖進(jìn)行裁剪處理,裁剪結(jié)果如圖1(c)和圖1(d)所示.
圖1 對齊裁剪處理結(jié)果Fig.1 Result after align and cut
2.2 背景紋理圖和深度圖的估計(jì)
將采集的第一幀深度圖和紋理圖作為初始的背景深度圖和紋理圖.對于深度圖背景的更新,可以直接使用深度圖幀差法進(jìn)行背景更新檢測,也可以用紋理圖幀差法進(jìn)行背景更新檢測.由于Kinect深度圖的穩(wěn)定性差、噪聲大,而幀差法[10]本身對噪聲非常敏感,因此本研究對紋理圖采用幀差法進(jìn)行背景更新檢測.
幀差法以視頻序列中相鄰兩幀之間基于像素的幀差來區(qū)分圖像中的運(yùn)動(dòng)部分和背景部分,即
式中,Dk(x,y)表示第 k幀的幀差圖,fk(x,y)和f(k-1)(x,y)分別表示第 k和第 k-1 幀中坐標(biāo)(x,y)處的像素值.
幀差圖中的噪聲和運(yùn)動(dòng)部分有明顯的差別,可以根據(jù)下式來濾除噪聲的干擾:
式中,Cthreshold是針對噪聲濾除設(shè)定的閾值(多次實(shí)驗(yàn)得出的經(jīng)驗(yàn)值為45),dk(x,y)=1 表示(x,y)處背景需要更新,dk(x,y)=0表示(x,y)處背景不需要更新.
用幀差法得到變化區(qū)域(dk(x,y)=1)后,比較當(dāng)前幀深度與背景深度,如果當(dāng)前幀深度值小于背景深度值,就以當(dāng)前幀深度值更新背景深度值,否則不進(jìn)行更新.在更新深度值時(shí),同時(shí)更新對應(yīng)位置的紋理圖,這樣就完成了深度圖和紋理圖背景的實(shí)時(shí)更新.
經(jīng)背景估計(jì)的初始幀會(huì)出現(xiàn)小范圍的空洞,此時(shí)采用下文所述的基于顏色匹配算法進(jìn)行修復(fù).估計(jì)的背景紋理圖和深度圖結(jié)果如圖2所示.
圖2 更新后的背景圖Fig.2 Background image after update
2.3 基于背景填充的深度圖初步修復(fù)
得到背景紋理圖和背景深度圖后,下面對深度圖進(jìn)行初步修復(fù),利用背景深度值去填充當(dāng)前幀中處于背景位置的空洞.首先,利用當(dāng)前幀的彩色紋理圖與背景紋理圖作幀差,檢測出背景與前景;然后,使用背景深度圖填充當(dāng)前幀深度圖中處于背景區(qū)域的空洞.
背景深度填充的表達(dá)式為
式中,dk(x,y)表示 Kinect提取的第 k幀深度圖,bk(x,y)表示第 k幀估計(jì)的背景深度,uk(x,y)表示根據(jù)幀差法檢測出背景更新區(qū)域和非更新區(qū)域,uk(x,y)=1 表示前景,否則表示背景.hk(x,y)=1表示第k幀深度圖的空洞區(qū)域,當(dāng)且僅當(dāng)(x,y)處深度為空洞,并且該處是背景區(qū)域時(shí),才進(jìn)行深度背景填充.
圖3給出了初步修復(fù)的結(jié)果,圖3(a)是經(jīng)過裁剪對齊后的原始深度圖,圖3(b)是經(jīng)過初步修復(fù)后的深度圖,可見,原始深度圖中的大部分空洞已被修復(fù).
圖3 初步修復(fù)結(jié)果Fig.3 Result after inpainting initially
2.4 基于紋理顏色匹配的深度圖二次修復(fù)及消噪處理
經(jīng)過背景深度填充算法修復(fù)后的深度圖空洞已經(jīng)大大減小,但是仍然存在前景空洞(如圖3(b)所示).針對這種空洞,本研究采用基于搜索提前終止的顏色匹配搜索算法進(jìn)行修復(fù).
基于顏色匹配的搜索算法根據(jù)空洞處紋理圖像的顏色,在紋理圖像中找出最佳顏色匹配點(diǎn),然后將該處的深度值作為空洞處的深度值.為提高處理速度,本算法沒有采用基于塊的匹配,而是直接采用基于像素的顏色匹配,并且設(shè)定匹配閾值為6(即當(dāng)前待修復(fù)深度處對應(yīng)的彩色像素與非空洞區(qū)域的顏色像素進(jìn)行比較匹配),以控制搜索長度.這樣雖然匹配點(diǎn)不一定是最佳的,但實(shí)驗(yàn)表明,這樣做可大幅提高空洞修復(fù)速度,同時(shí)兼顧了修復(fù)質(zhì)量.
基于像素的快速修復(fù)算法在修復(fù)區(qū)域會(huì)出現(xiàn)修復(fù)噪聲,本研究采用中值濾波器對修復(fù)后的圖像進(jìn)行中值濾波以去除噪聲.但僅對修復(fù)區(qū)域作中值濾波處理,對于非修復(fù)區(qū)域不進(jìn)行中值濾波處理,這樣一方面提高了中值濾波速度,同時(shí)也最大限度地保持了原始正確的深度值.
圖4給出了二次修復(fù)后的深度圖以及進(jìn)一步經(jīng)過中值濾波后的深度圖.
圖4 二次修復(fù)及消噪處理結(jié)果Fig.4 Result after the secondary inpainting and denoising
本研究對所提出的深度修復(fù)算法用C語言實(shí)現(xiàn),并在普通PC機(jī)(Intel E4800 3.0 GHz雙核CPU,2 G內(nèi)存)上進(jìn)行了效果和修復(fù)速度測試,圖5給出了幾組經(jīng)過裁剪后的場景的初始紋理圖(見圖5(a))和初始深度圖(見圖5(b))以及最終修復(fù)的深度圖(見圖5(c)),由圖5(c)可見,空洞幾乎已全部修復(fù).
圖5中場景從上到下分別記為場景1、場景2、場景3、場景4.這4個(gè)場景的處理耗時(shí)分別為24,32,26,34 ms,可見已達(dá)到 25 ~30 幀/s的實(shí)時(shí)修復(fù)要求.當(dāng)前景物體距離Kinect相對較遠(yuǎn)時(shí),可以實(shí)現(xiàn)30幀/s左右的修復(fù)速度;當(dāng)前景物體距離Kinect較近時(shí),Kinect輸出的原始深度圖存在非常大的空洞,可以實(shí)現(xiàn)25幀/s左右的修復(fù)速度.
圖5 多個(gè)場景的修復(fù)結(jié)果Fig.5 Inpainted result of a number of different scenarios
為了進(jìn)一步檢驗(yàn)本算法的修復(fù)效果,下面對修復(fù)后的深度圖以及對應(yīng)的紋理圖進(jìn)行虛擬視點(diǎn)繪制.繪制出左邊8路虛擬視點(diǎn)和右邊8路虛擬視點(diǎn)(相鄰視點(diǎn)間的視差為1 cm),并進(jìn)行8路虛擬視點(diǎn)交織,在裸眼立體顯示器上觀看,可以觀看到較好的立體效果.
圖6給出了利用修復(fù)后的深度圖和紋理圖繪制出來的左邊4路和右邊4路虛擬視點(diǎn).圖7給出了左邊8路虛擬視點(diǎn)合成的立體視.
圖7 虛擬視點(diǎn)交織得到的立體視Fig.7 Stereoscopic view by interlace
本研究提出一種針對Kinect提取的深度圖的快速修復(fù)算法,該算法主要利用了背景估計(jì)以及紋理圖的顏色等信息對Kinect輸出的帶有空洞的深度圖進(jìn)行修復(fù).首先,根據(jù)Kinect輸出深度圖中空洞的特點(diǎn),利用背景估計(jì)信息對深度圖中背景空洞進(jìn)行初步修復(fù);然后,結(jié)合紋理圖對深度圖進(jìn)行二次修復(fù).實(shí)驗(yàn)結(jié)果表明,本算法有效修復(fù)了原始深度圖的空洞等問題,同時(shí)在普通PC機(jī)上實(shí)現(xiàn)了25~30幀/s的修復(fù)速度.在以后的工作中,將致力于繼續(xù)提高深度圖的修復(fù)質(zhì)量并進(jìn)行多視繪制.
[1] 張兆楊,安平,張之江,等.二維和三維視頻處理及立體顯示技術(shù)[M].北京:科學(xué)出版社,2010:131-133.
[2] DARIBO I,SAITO H.A novel inpainting-based layered depth video for 3DTV [J].IEEE Transactions on Broadcasting,2011:533-541.
[3] UM G M,KIM T,BANG G.Multi-view 3D video acquisition using hybrid camera with beem spliter[C]∥3DTV Conference: The True Vision-Capture,Transmission and Display of 3D Video(3DTV-CON).2011:1-4.
[4] DARIBO I,TILLIER C,PESQUET-POPESCU B.Distance dependent depth flltering in 3D warping for 3DTV[C]∥Multimedia Signal Processing.2007:312-315.
[5] CHEN W Y,CHANG Y L,LIN S F,et al.Efficient depth image based rendering with edge dependent depth fllter and interpolation[C]∥ IEEE International Conference on Multimedia and Expo.2005:1314-1317.
[6] KIM S Y,CHO J H,KOSCHAN A,et al.Spatial and temporal enhancement of depth images captured by a time-of-flight depth sensor[C]∥ Pattern Recognition(ICPR).2010:2358-2361.
[7] ZHU JJ,WANG L,YANG R G,et al.Fusion of time-offlight depth and stereo for high accuracy depth maps[C]∥ Computer Vision and Pattern Recognition(CVPR2008).2008:1-8.
[8] WILSON A. Using a depth camera as a touch sensor[C]∥ ITS’10 ACM International Conference on Interactive Tabletops and Surfaces.2010:69-72.
[9] MATYUNIN S,VATOLIN D,BERDNIKOV Y.Temporal filtering for depth maps generated by kinect depth camera[C]∥ The True Vision-Capture,Transmission and Display of 3D Video(3DTV-CON).2001:1-4.
[10] JI X P,WEI Z Q,F(xiàn)ENG Y W.Effective vehicle detection technique for traffic surveillance systems[J].Visual Communication & Image Representation,2005,17(3):647-658.
Fast Inpainting Algorithm for Kinect Depth Map
WANG Kui1, AN Ping1,2, ZHANG Zhao-yang1,2, CHENG Hao1, LI He-jian1
(1.School of Communication and Information Engineering,Shanghai University,Shanghai 200072,China;2.Key Laboratory of Advanced Display and System Applications,Ministry of Education,Shanghai 200072,China)
TP 391.41
A
1007-2861(2012)05-0454-05
10.3969/j.issn.1007-2861.2012.05.003
2011-11-18
國家自然科學(xué)基金資助項(xiàng)目(60832003,61172096,61171084);上海市科委重點(diǎn)資助項(xiàng)目(10510500500);上海市教委重點(diǎn)資助項(xiàng)目(09ZZ90)
安 平(1968~),女,教授,博士生導(dǎo)師,博士,研究方向?yàn)閿?shù)字視頻處理及立體視覺.E-mail:anping@shu.edu.cn