许嘉琳,朱耀麟,武 桐
(西安工程大学 电子信息学院,陕西 西安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.