許嘉琳,朱耀麟,武 桐
(西安工程大學 電子信息學院,陜西 西安710048)
隨著《奇幻漂流》、《時空悍將》等一系列科幻影片的問世與廣受好評,虛擬現實技術展現了其強大的商業價值,其中數字摳圖技術和圖形合成技術的應用展現了其強大的潛在價值.數字摳圖技術不僅可以實現虛擬現實技術,還可以實現增強現實技術.摳圖即從圖片或視頻中提取出需要部分的過程.目前有很多學者在數字摳圖方面進行了研究[1-8],無論是多種圖片的自然摳圖并得到的圖片穩定,噪聲較小的摳圖效果如文獻[1-6],還是視頻的圖像摳圖算法,文獻[7-8]能夠獲得較優的視頻摳圖效果,數字摳圖技術應用前景廣闊.但是這些算法都是后期處理的操作,過程比較復雜,不具有實時性,人機交互繁瑣.本文提出利用Kinect攝像頭對人物進行識別跟蹤,實時提取人物信息,將人物的深度信息轉化為彩色信息,從而進行摳圖的算法.該算法解決了摳圖中人機交互繁瑣的問題,對以摳圖為基礎的電影特效等行業有很大幫助.
Kinect for Windows是微軟推出的一款體感設備,由麥克風和攝像頭構成其輸入系統,Kinect結構如圖1所示.攝像頭主要由彩色攝像頭、紅外發射裝置和紅外攝像頭組成.其中彩色攝像頭可以直接捕捉外界的彩色圖片和視頻,紅外發射裝置和紅外接收裝置組成的3D深度感應裝置是摳圖的基礎,其現場是金字塔形狀[9],水平視場角57°,垂直視場角43°.Kinect還可以借助麥克風點陣采集聲音數據,并提供了更為強大的人機交互方式.
本文在Kinect SDK和OpenNI的VS2010平臺上對數據流進行相關處理操作,最終得到所需要的信息并進行信息的處理應用.其中,彩色數據流系統提供32位RGB格式和16位YUV格式兩種格式,其中YUV要求分辨率為640×480.當Kinect連接到計算機,為保證30FPS的數據幀率,將捕捉得到1 280×1 024分辨率的彩色數據流壓縮轉換成RGB格式后通過數據線傳遞,并在應用前解壓數據.

圖1 Kinect結構Fig.1 Kinect structure

圖2 物體深度值 Fig.2 depth value of the object
深度數據流提供的深度圖像幀中的像素點表示物體與Kinect攝像頭平面的笛卡爾距離[10](單位:mm),物體深度值如圖2所示.深度圖像幀中的每個像素占16位,其中深度值占13位,用戶索引占3位,深度幀像素如圖3所示.若深度值為0,則表示對象超過Kinect的識別距離.本文深度數據流分辨率為320×240.
本文采用Kinect SDK開發包中的NuiInitialize函數和NuiImageStreamOpen函數對Kinect進行初始化,使Kinect可以接受彩色數據流、深度數據流和骨骼數據流,并設置圖像的分辨率.本文采用LockRect函數對Kinect捕捉到的紋理進行鎖定,進而對紋理表面的任意像素點進行讀寫操作,即可以繪制出任意一個像素.Kinect捕捉到的數據流組成一個一個幀,幀序列現實形成視頻影像,為不斷得到新的視頻信息,通過NuiImageStreamGetNextFrame函數進行幀提取操作,如圖4所示.
本文的主要核心思想是提取含有用戶ID信息的人物像素并對其進行遍歷繪制渲染.通過Kinect的3D深度感應裝置得到深度數據流,將深度數據進行整合得到一幅完整的深度圖像并進行計算處理,繪制一幅深度信息圖像,其中黑色代表無窮遠,白色代表無窮近,不同程度的灰色則代表物體到傳感器的物理距離.在深度圖像中尋找可能是人的物體(類似“大”字型的物體).然后,對該景深圖像中的所有像素進行先輪廓后細節的像素級評估[11],分出該景深圖像的特征變量,并以優化的預處理縮短響應時間,最終判斷得出是人物,將屬于人物的像素設置ID信息,進行提取工作.由于深度數據處理要耗費大量的計算機資源,因此采用OpenCV(Open Source Computer Vision)處理,并采用邏輯運算的方法提取深度信息中的用戶ID信息,即將得到的深度數據與0x07進行運算,最終通過把具有ID信息的像素進行遍歷并繪制,得到人物的摳圖圖像.

圖3 深度幀像素Fig.3 The pixel of the depth frame
本文實現了Kinec摳圖效果.該方法摳圖過程如圖5~8所示,其中圖7中將提取出的人物像素顏色統一設置為白色,背景像素顏色統一設置為黑色,進而將含有用戶ID信息的人物和背景區分.
但在摳圖過程中會產生彩色圖像和深度圖像不對齊的現象.主要由于Kinect的紅外攝像頭與彩色攝像頭不在同一位置,產生的影像不能疊加到一起,致使深度數據影像的象元不能轉換到彩色中,即使兩者有相同的分辨率.為實現Kinect的實時摳圖效果,實時的將彩色數據和深度數據對齊是本文研究的難點.為此采用輪詢機制,在渲染時把深度像素點位置一一對應到彩色像素點位置,進而得到最終人物摳圖.本文主要采用NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolution函數將深度數據流的坐標轉換為彩色數據流坐標.

圖4 提取用戶ID摳圖算法Fig.4 The matting algorithm to pick up the user ID

圖5 彩色數據圖Fig.5 Color stream image

圖6 深度數據圖Fig.6 Depth stream image

圖7 人物與背景區分圖Fig.7 The distinction between figures and background image

圖8 第二種方法摳圖 Fig.8 The second method cutout
近年來科幻電影層出不窮,電影特效的基礎工作就是摳圖技術.傳統的數字摳圖技術在進行拍攝時對光線明暗、背景顏色、人物服裝顏色等有一定的要求.在滿足以上要求下進行摳圖操作時,要求操作者在圖像上指出前景區域、背景區域及不確定區域三分圖法[12],雖然算法固定,但是對于視頻一幀一幀的交互操作將使工作量無限放大,并且不具備實時性.而由Kinect進行的摳圖則直接跳過了三分圖步驟,將含用戶ID的像素直接遍歷渲染,實現人物實時摳圖效果,該方法對背景、光線明暗沒有要求,由于摳圖是建立在深度信息基礎上,而深度信息則有紅外裝置捕捉產生.因此,即使在較暗的地方也能實現摳圖工作.該方法通過Kinect攝像頭和相關程序運行產生摳圖效果,避免了人機交互繁瑣的問題.另外,由于Kinect的幀同步功能(即將彩色數據幀和深度數據幀同步以致同時到達),基于Kinect的摳圖具有實時性.將此人物與背景視頻相結合形成電影特效效果算法簡單,并且摳圖效果穩定,實用性強.
(1)采用深度數據進行人物和背景的區分工作,排除了環境光線明暗等對摳圖的影響,使摳圖過程更加穩定.
(2)采用一臺Kinect就能達到摳圖效果,使得摳圖過程更加簡單,并且減低了人機交互的繁瑣性,更具實時性,有利于相關程序的開發,對娛樂、教學等行業有一定的商業價值.
(3)本設計在提取人物輪廓時有一些鋸齒狀噪聲,改進了人物輪廓的精確查詢.
[1] 鄭曉,宋旻英.Closed form摳圖算法的研究與改進[J].青年與社會,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].計算機工程與應用,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] 楊仙魁.閉合型摳圖的研究與應用[D].昆明:云南大學,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].青島:青島大學,2010:6-8.LIN Shan.The research of matting algorithm based on Split Bregman method[D].Qingdao:Qingdao University,2010:6-8.
[5] 費炳超.數字圖像摳圖算法研究[D].成都:電子科技大學,2012:15-18.FEI Bingchao.Research on digital image matting algorithm[D].Chengdu:Electronic Science and Technology University,2012:15-18.
[6] 呂巨建,戰蔭偉.一種改進的Bayes摳圖算法[J].計算機工程,2010,36(3):213-214.LYU Jujian,ZHAN Yinwei.Improved Bayes matting algorithm[J].Computer Engineering,2010,36(3);213-214.
[7] 彭浩浩.視頻摳圖算法的研究[D].廣州:廣東工業大學,2013:22-26.PENG Haohao.Research on video matting algorithm[D].Guangzhou:Guangdong University of Technology,2013:22-26.
[8] 李聞,韓國強,顧艷春,等.一種魯棒視頻摳圖算法[J].計算機應用研究,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和金字塔特征的行為識別算法[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] 鄭加明,陳昭炯.摳圖技術中三分圖生成算法的研究[J].信息系統工程,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.