許嘉琳,朱耀麟,武 桐
(西安工程大學(xué) 電子信息學(xué)院,陜西 西安710048)
隨著《奇幻漂流》、《時(shí)空悍將》等一系列科幻影片的問世與廣受好評(píng),虛擬現(xiàn)實(shí)技術(shù)展現(xiàn)了其強(qiáng)大的商業(yè)價(jià)值,其中數(shù)字摳圖技術(shù)和圖形合成技術(shù)的應(yīng)用展現(xiàn)了其強(qiáng)大的潛在價(jià)值.數(shù)字摳圖技術(shù)不僅可以實(shí)現(xiàn)虛擬現(xiàn)實(shí)技術(shù),還可以實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)技術(shù).摳圖即從圖片或視頻中提取出需要部分的過程.目前有很多學(xué)者在數(shù)字摳圖方面進(jìn)行了研究[1-8],無論是多種圖片的自然摳圖并得到的圖片穩(wěn)定,噪聲較小的摳圖效果如文獻(xiàn)[1-6],還是視頻的圖像摳圖算法,文獻(xiàn)[7-8]能夠獲得較優(yōu)的視頻摳圖效果,數(shù)字摳圖技術(shù)應(yīng)用前景廣闊.但是這些算法都是后期處理的操作,過程比較復(fù)雜,不具有實(shí)時(shí)性,人機(jī)交互繁瑣.本文提出利用Kinect攝像頭對(duì)人物進(jìn)行識(shí)別跟蹤,實(shí)時(shí)提取人物信息,將人物的深度信息轉(zhuǎn)化為彩色信息,從而進(jìn)行摳圖的算法.該算法解決了摳圖中人機(jī)交互繁瑣的問題,對(duì)以摳圖為基礎(chǔ)的電影特效等行業(yè)有很大幫助.
Kinect for Windows是微軟推出的一款體感設(shè)備,由麥克風(fēng)和攝像頭構(gòu)成其輸入系統(tǒng),Kinect結(jié)構(gòu)如圖1所示.攝像頭主要由彩色攝像頭、紅外發(fā)射裝置和紅外攝像頭組成.其中彩色攝像頭可以直接捕捉外界的彩色圖片和視頻,紅外發(fā)射裝置和紅外接收裝置組成的3D深度感應(yīng)裝置是摳圖的基礎(chǔ),其現(xiàn)場(chǎng)是金字塔形狀[9],水平視場(chǎng)角57°,垂直視場(chǎng)角43°.Kinect還可以借助麥克風(fēng)點(diǎn)陣采集聲音數(shù)據(jù),并提供了更為強(qiáng)大的人機(jī)交互方式.
本文在Kinect SDK和OpenNI的VS2010平臺(tái)上對(duì)數(shù)據(jù)流進(jìn)行相關(guān)處理操作,最終得到所需要的信息并進(jìn)行信息的處理應(yīng)用.其中,彩色數(shù)據(jù)流系統(tǒng)提供32位RGB格式和16位YUV格式兩種格式,其中YUV要求分辨率為640×480.當(dāng)Kinect連接到計(jì)算機(jī),為保證30FPS的數(shù)據(jù)幀率,將捕捉得到1 280×1 024分辨率的彩色數(shù)據(jù)流壓縮轉(zhuǎn)換成RGB格式后通過數(shù)據(jù)線傳遞,并在應(yīng)用前解壓數(shù)據(jù).
圖1 Kinect結(jié)構(gòu)Fig.1 Kinect structure
圖2 物體深度值 Fig.2 depth value of the object
深度數(shù)據(jù)流提供的深度圖像幀中的像素點(diǎn)表示物體與Kinect攝像頭平面的笛卡爾距離[10](單位:mm),物體深度值如圖2所示.深度圖像幀中的每個(gè)像素占16位,其中深度值占13位,用戶索引占3位,深度幀像素如圖3所示.若深度值為0,則表示對(duì)象超過Kinect的識(shí)別距離.本文深度數(shù)據(jù)流分辨率為320×240.
本文采用Kinect SDK開發(fā)包中的NuiInitialize函數(shù)和NuiImageStreamOpen函數(shù)對(duì)Kinect進(jìn)行初始化,使Kinect可以接受彩色數(shù)據(jù)流、深度數(shù)據(jù)流和骨骼數(shù)據(jù)流,并設(shè)置圖像的分辨率.本文采用LockRect函數(shù)對(duì)Kinect捕捉到的紋理進(jìn)行鎖定,進(jìn)而對(duì)紋理表面的任意像素點(diǎn)進(jìn)行讀寫操作,即可以繪制出任意一個(gè)像素.Kinect捕捉到的數(shù)據(jù)流組成一個(gè)一個(gè)幀,幀序列現(xiàn)實(shí)形成視頻影像,為不斷得到新的視頻信息,通過NuiImageStreamGetNextFrame函數(shù)進(jìn)行幀提取操作,如圖4所示.
本文的主要核心思想是提取含有用戶ID信息的人物像素并對(duì)其進(jìn)行遍歷繪制渲染.通過Kinect的3D深度感應(yīng)裝置得到深度數(shù)據(jù)流,將深度數(shù)據(jù)進(jìn)行整合得到一幅完整的深度圖像并進(jìn)行計(jì)算處理,繪制一幅深度信息圖像,其中黑色代表無窮遠(yuǎn),白色代表無窮近,不同程度的灰色則代表物體到傳感器的物理距離.在深度圖像中尋找可能是人的物體(類似“大”字型的物體).然后,對(duì)該景深圖像中的所有像素進(jìn)行先輪廓后細(xì)節(jié)的像素級(jí)評(píng)估[11],分出該景深圖像的特征變量,并以優(yōu)化的預(yù)處理縮短響應(yīng)時(shí)間,最終判斷得出是人物,將屬于人物的像素設(shè)置ID信息,進(jìn)行提取工作.由于深度數(shù)據(jù)處理要耗費(fèi)大量的計(jì)算機(jī)資源,因此采用OpenCV(Open Source Computer Vision)處理,并采用邏輯運(yùn)算的方法提取深度信息中的用戶ID信息,即將得到的深度數(shù)據(jù)與0x07進(jìn)行運(yùn)算,最終通過把具有ID信息的像素進(jìn)行遍歷并繪制,得到人物的摳圖圖像.
圖3 深度幀像素Fig.3 The pixel of the depth frame
本文實(shí)現(xiàn)了Kinec摳圖效果.該方法摳圖過程如圖5~8所示,其中圖7中將提取出的人物像素顏色統(tǒng)一設(shè)置為白色,背景像素顏色統(tǒng)一設(shè)置為黑色,進(jìn)而將含有用戶ID信息的人物和背景區(qū)分.
但在摳圖過程中會(huì)產(chǎn)生彩色圖像和深度圖像不對(duì)齊的現(xiàn)象.主要由于Kinect的紅外攝像頭與彩色攝像頭不在同一位置,產(chǎn)生的影像不能疊加到一起,致使深度數(shù)據(jù)影像的象元不能轉(zhuǎn)換到彩色中,即使兩者有相同的分辨率.為實(shí)現(xiàn)Kinect的實(shí)時(shí)摳圖效果,實(shí)時(shí)的將彩色數(shù)據(jù)和深度數(shù)據(jù)對(duì)齊是本文研究的難點(diǎn).為此采用輪詢機(jī)制,在渲染時(shí)把深度像素點(diǎn)位置一一對(duì)應(yīng)到彩色像素點(diǎn)位置,進(jìn)而得到最終人物摳圖.本文主要采用NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolution函數(shù)將深度數(shù)據(jù)流的坐標(biāo)轉(zhuǎn)換為彩色數(shù)據(jù)流坐標(biāo).
圖4 提取用戶ID摳圖算法Fig.4 The matting algorithm to pick up the user ID
圖5 彩色數(shù)據(jù)圖Fig.5 Color stream image
圖6 深度數(shù)據(jù)圖Fig.6 Depth stream image
圖7 人物與背景區(qū)分圖Fig.7 The distinction between figures and background image
圖8 第二種方法摳圖 Fig.8 The second method cutout
近年來科幻電影層出不窮,電影特效的基礎(chǔ)工作就是摳圖技術(shù).傳統(tǒng)的數(shù)字摳圖技術(shù)在進(jìn)行拍攝時(shí)對(duì)光線明暗、背景顏色、人物服裝顏色等有一定的要求.在滿足以上要求下進(jìn)行摳圖操作時(shí),要求操作者在圖像上指出前景區(qū)域、背景區(qū)域及不確定區(qū)域三分圖法[12],雖然算法固定,但是對(duì)于視頻一幀一幀的交互操作將使工作量無限放大,并且不具備實(shí)時(shí)性.而由Kinect進(jìn)行的摳圖則直接跳過了三分圖步驟,將含用戶ID的像素直接遍歷渲染,實(shí)現(xiàn)人物實(shí)時(shí)摳圖效果,該方法對(duì)背景、光線明暗沒有要求,由于摳圖是建立在深度信息基礎(chǔ)上,而深度信息則有紅外裝置捕捉產(chǎn)生.因此,即使在較暗的地方也能實(shí)現(xiàn)摳圖工作.該方法通過Kinect攝像頭和相關(guān)程序運(yùn)行產(chǎn)生摳圖效果,避免了人機(jī)交互繁瑣的問題.另外,由于Kinect的幀同步功能(即將彩色數(shù)據(jù)幀和深度數(shù)據(jù)幀同步以致同時(shí)到達(dá)),基于Kinect的摳圖具有實(shí)時(shí)性.將此人物與背景視頻相結(jié)合形成電影特效效果算法簡(jiǎn)單,并且摳圖效果穩(wěn)定,實(shí)用性強(qiáng).
(1)采用深度數(shù)據(jù)進(jìn)行人物和背景的區(qū)分工作,排除了環(huán)境光線明暗等對(duì)摳圖的影響,使摳圖過程更加穩(wěn)定.
(2)采用一臺(tái)Kinect就能達(dá)到摳圖效果,使得摳圖過程更加簡(jiǎn)單,并且減低了人機(jī)交互的繁瑣性,更具實(shí)時(shí)性,有利于相關(guān)程序的開發(fā),對(duì)娛樂、教學(xué)等行業(yè)有一定的商業(yè)價(jià)值.
(3)本設(shè)計(jì)在提取人物輪廓時(shí)有一些鋸齒狀噪聲,改進(jìn)了人物輪廓的精確查詢.
[1] 鄭曉,宋旻英.Closed form摳圖算法的研究與改進(jìn)[J].青年與社會(huì),2013,529(19):279-280.ZHENG Xiao,SONG Minying.Research and improvement of closed form matting algorithm[J].Youth and Society,2013,529(19):279-280.
[2] 黃睿,王翔.改進(jìn)的自然圖像魯棒摳圖算法[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(12):136-139.HUANG Rui,WANG Xiang.Improved robust matting algorithm for nature image[J].Computer Engineering and Applications,2013,49(12):136-139.
[3] 楊仙魁.閉合型摳圖的研究與應(yīng)用[D].昆明:云南大學(xué),2013:12-16.YANG Xiankui.The research and application of image matting based on closed-form solution[D].Kunming:Yunnan U-niversity,2013:12-16.
[4] 藺杉.基于Split Bregman方法的摳圖算法研究[D].青島:青島大學(xué),2010:6-8.LIN Shan.The research of matting algorithm based on Split Bregman method[D].Qingdao:Qingdao University,2010:6-8.
[5] 費(fèi)炳超.數(shù)字圖像摳圖算法研究[D].成都:電子科技大學(xué),2012:15-18.FEI Bingchao.Research on digital image matting algorithm[D].Chengdu:Electronic Science and Technology University,2012:15-18.
[6] 呂巨建,戰(zhàn)蔭偉.一種改進(jìn)的Bayes摳圖算法[J].計(jì)算機(jī)工程,2010,36(3):213-214.LYU Jujian,ZHAN Yinwei.Improved Bayes matting algorithm[J].Computer Engineering,2010,36(3);213-214.
[7] 彭浩浩.視頻摳圖算法的研究[D].廣州:廣東工業(yè)大學(xué),2013:22-26.PENG Haohao.Research on video matting algorithm[D].Guangzhou:Guangdong University of Technology,2013:22-26.
[8] 李聞,韓國(guó)強(qiáng),顧艷春,等.一種魯棒視頻摳圖算法[J].計(jì)算機(jī)應(yīng)用研究,2010,27(1):358-360.LI Wen,HAN Guoqiang,GU Yanchun,et al.Robust video matting algorithm[J].Application Research of Computers,2010,27(1):358-360.
[9] 申曉霞,張樺,高贊,等.基于 Kinect和金字塔特征的行為識(shí)別算法[J].光電子·激光,2014,25(2):357-363.SHEN Xiaoxia,ZHANG Hua,GAO Zan,et al.Human behavior recognition based on Kinect and pyramid features[J].Optoelectronics Laser,2014,25(2):357-363.
[10] RAVISHANKAR Sivalingam,ANOOP Cherian,JOSHUA Fasching,et al.A multi-sensor visual tracking system for behavior monitoring of at-risk children[C].Proceedings of IEEE International Conference on Robotics and Automation(ICRA),Saint Paul,MN,2012:1345-1350.
[11] LU Xia,CHEN Chiachih,AGGARWAL J K.Human detection using depth information by kinect[C]//Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops(CVPRW).Tianjin:Colorado Springs,CO,2011:15-22.
[12] 鄭加明,陳昭炯.摳圖技術(shù)中三分圖生成算法的研究[J].信息系統(tǒng)工程,2010,23(11):73-76.ZHENG Jiaming,CHEN Zhaojiong.Research on third graph generation algorithm in matting technology[J].Information Systems Engineering,2010,23(11):73-76.