福建师范大学信息技术学院 陈 威
基于普通PC摄像头的手势识别系统
福建师范大学信息技术学院 陈 威
该文从PC端手势识别应用的需求出发,对常用的手势识别技术进行了分析。通过对普通家用低分辨率摄像头的手势识别进行设计,实现通过普通摄像头识别人的手势动作,转化为特定指令,嵌入其他应用软件或游戏中,在不增加硬件成本下带给用户更多的体验。
手势识别 摄像头 图像捕捉 智能匹配
随着信息时代的来临,传统的人机交互系统不足以满足信息时代智能化发展的需要。诸多产品的多媒体应用需求更多元、更方便、更智能的操作方式,基于摄像头操作的应用由此而生。目前手势操作在手机上大量使用,但在PC上应用极少(如微软的Kinect[1]、SoundWave等)。其原因,或是因需要昂贵的专用摄像头,或应用范围狭小、只能实现简单的功能,或还处于实验室阶段、误差大无法进行推广。因此,使用普通摄像头实现常规手势操作的正式产品目前在市面上难以找到。
基于普通摄像头的手势识别技术的技术难点主要在于用户环境的多变性,不同时间、位置引起的光照强弱、角度改变以及使用者的衣着变化,都会对图像的识别、捕获和追踪产生影响。为解决此问题,本系统从使用者的具体应用角度出发,让系统不仅能够动态捕捉和分析用户手势,转换为指令嵌入其他软件,同时通过对时间、空间的分析,还能够提取用户历史数据以自动匹配和优化相关参数,提高手势识别的准确率。
目前在PC端的手势识别技术在常规电脑操作、办公、绘图等日常应用上,和鼠标、键盘相比,并不具有优势,手势识别的真正需求主要集中于专业应用和家庭游戏两类。专业应用的场合如展厅、会议室、医院等,这类应用因操作者不方便操作鼠标键盘,又有对PPT、视频、音乐播放、图片等远程操作的需求,比如手术过程中医生需要临时查看病人的X光图片或其他资料,戴着消毒手套不方便操作,助手协助操作又往往配合度不佳,此时即可使用手势进行图片的浏览和缩放,找到自己需要的资料。
游戏应用上,体感游戏目前方兴未艾,但专业的动作捕捉设备又过于昂贵,同时支持这类设备的游戏软件种类也比较少,如果能够通过普通摄像头分析用户体感动作,转换为游戏操作的指令,就可以将众多操作并不复杂的射击、跳跃、闯关类游戏,如愤怒的小鸟、切水果、雷神之锤等,转换为体感游戏,增强用户体验。
目前市场上已有少量手势识别的软件应用,同时也有大量文章对这类技术进行分析,但因为都是人手皮肤颜色识别,受周围环境干扰较大,因此在实际应用上误差较大,无法投入商业应用。同时,现有软件能够支持的操作指令也比较少,只能完成简答的PPT翻页、鼠标移动等操作。
为提高手势识别的成功率,本系统的视频捕捉对象可以不再是裸手,而是让使用者带上双色指套(远距离操作则可以选择手套或袖套。颜色材质都没有特殊要求,如今天用户穿红色衣服,则可以选择食指带蓝色指套,大拇指带黄色指套),即可进行操作。考虑到系统的具体需求,对专业应用场合,一般操作较为简单、应用固定,单色的手套或裸手即可满足使用要求;对游戏玩家,虽然游戏操作比较复杂,但为获得更好的用户体验,他们并不会介意使用双色的指套进行操作。因此,以上操作设计,可以满足用户的要求。
系统分为服务器端和客户端,客户端采用Dephi实现,服务器端使用ASP.NET+SQL2008实现。客户端供用户免费下载,除了提供系统默认自带了对PPT、媒体播放器、图片浏览器、音乐播放器等一些常用软件和愤怒的小鸟等几款游戏的手势操作支持外,还提供系统配置和在线操作等功能,其系统功能模块见图1。
图1 多乐控客户端
其中,手势捕捉界面平时隐藏在后台,在用户初次使用或改变使用环境时可调出此界面进行手动辅助操作,提高系统识别率;传输服务用于设置和服务器端相关的信息;参数设置则用于对系统色素误差、灵敏度、偏差纠正等参数的调整,以适应用户使用习惯;指令脚本方案的设计和保存供用户针对各款软件和游戏定制对应操作的手势指令集合(一个手势可以对应一个鼠标或键盘的操作,也可以是一系列有序操作的集合);脚本方案可以在申请账号后通过上传管理发送到服务器端以私有、共享、销售三种方式进行保存;下载和购买功能则提供用户以获取其他用户上传的指令脚本方案;在线升级服务可用于系统的免费升级。
服务器端用于发布最新版本软件和免费手势脚本;收集和分析用户设计和上传手势脚本,选择优秀作品提供用户下载或购买;商业广告信息配置和发布等,其具体功能模块见图2。
图2 多乐控服务器端
本系统的技术难点在客户端的手势识别和环境自适应算法上。基于视觉的手势识别是由分析者根据观察到的手势动作流,对比其大脑中的手势含义知识,转换为特定的含义进行解析,以得到手势的实际意义。
基于PC摄像头的动态手势识别与此类似,则是通过摄像头每秒拍摄一定数量的连续图片,然后从图片中进行分析,提取手指指尖位置坐标的变化特征规律,建立手指的动作模型,并和数据库中建立的动作模型进行匹配,识别出动作含义,转换为计算机指令,并发送给终端程序进行解析,并驱动程序执行特定功能[2]。
根据对目前用户需求的分析,本系统将追踪到的手指数量定为两个,其他手指的动作自动屏蔽。其原因是因为两个手指的动作表现含义已经可以满足用户调查中所提出的需求。默认配置下,系统追踪的是使用者的食指和大拇指。食指的移动轨迹即为鼠标的移动轨迹;水平方向食指和大拇指并拢为按下鼠标左键;分开为放开鼠标左键;垂直方向则对应右键的操作。以上设置已经可以满足计算机的基本操作。此外,只伸出一根手指进行操作又可以引申出食指和拇指的两套动作指令集和,这样,指令的数量上已经能够满足大部分的实际应用要求。
系统目前识别的手势动作除了上面描述过的默认配置下的常规动作外,提供用户自定义指令脚本操作的主要指令集如表1所示。
表1 主要手势动作特征表
采用双指识别的另一个优势是摄像头远程识别时,无法精确最终单手手指运动轨迹,此时可通过追踪双手(或双袖、双脚、单脚单手)的运动轨迹,转换为预设的拇指和食指的指令,以实现PC软件操作和体感游戏体验。
动态手势的识别设计时间参数和空间参数的计算,目前此方面研究多采用隐马尔科夫模型(HMM)和动态时间规整(DTW)为基础,并对其进行扩展和优化。HMM[3]是从语音识别领域发展而来的,它是一种基于统计学习的模型,随着手势识别研究的深入,在此基础上,又提出了基于HMM的语义网络模型(SNM)、转移可变隐马尔科夫模型(VTHMM)、三层转移可变隐马尔科夫模型(HVT-HMM)等,此方法具有自动分割和分类的能力,具有尺度不变性,保持了概率论的框架优点,比较适合进行连续的手势识别。而DTW[4]是一种动态的模版匹配算法,目前这方面的研究多集中在手势语音和词汇匹配转换方面,但对每一个范围内变量需要建立大量的参照模版进行比较。除了这两个技术外,还有一些相关技术也被应用于手势识别方面,如人工神经网络等。
在实际应用中,以上算法遇到的主要问题是复杂的背景对手势轨迹提取造成严重的干扰、复杂的算法在普通家用PC机上产生严重时延,降低了分析的效率,类似颜色的物体导致手势提取误差增大。另外,随着使用者、使用设备、使用时间和使用地点的改变,即使是同一个手势在采集和识别上会产生不同结果。
为解决以上问题,本系统以HMM为基础,在轨迹追踪方面,加入了预判算法,以加快系统的分析。
如图3所示,某操作手势从A点经过B点向D滑动,时间TA提取图片分析食指色块位于B点,时间TB提取图片分析食指色块位于B点,时间Tc则预判食指可能位于坐标C(XA+2*(XB-XA),YA+2*(YB-YA)),此时根据图3(c)的轨迹,提取C点及C点周围(XC-k,YC-k)、 (XC+k,YC-k)、(XC-k,YC+k)、(XC+k,YC+k)……共N个点(搜索精度值k和N可以在配置中进行调整),获取这些点的色彩均值,通过对比B点的色彩,判断此点是否为Tc时刻食指所在位置。如果不是,则再以B为中心,根据图3(d)的轨迹依次扩大搜索半径,以矩形方式采用上述算法进行搜索。
图3 轨迹预判
在搜索过程中,如果目标对象偶尔漂移,无法通过上述算法检测到,则在算法上,根据运动轨迹,系统运用数据对比法、剩余误差观察法、不同公式计算标准误差比较法和计算数据比较法处理误差,自动补充丢失坐标。如连续多帧无法检测,则系统调整回手势的检测初始状态,并对连续的整幅图像进行对比检测,判断手指可能位置。
最终,系统能够得到以时间顺序排列的指尖轨迹坐标,并对轨迹进行平滑纠正,纠正后的轨迹根据用户当前应用,在配套的脚本方案中进行轨迹匹配,确定手势指令,并发送对应控制信号给应用,完成一个控制过程,同时系统抛弃无关动作图像,回到输入图像跟踪手势位置的指令识别初始状态,继续进行下一个指令的分析。
在客户环境的自适应算法方面,考虑到使用者大部分情况下都是在某个特定时间段进行某类特定操作,比如某游戏玩家,一般会在每天晚上21时至23时以及周日白天9时至12时在家里玩游戏,此时环境背景相对固定,操作内容变化也不大。因此系统会根据用户计算机的IP地址,对用户使用地点进行分析,每个IP地址建立独立的一套环境档案,并根据日期和时间的编号对光照度进行预设,在用户开启系统时,给出提示并让用户选择确认其使用环境,以提高用户手势识别的成功率,降低外部环境变化产生的干扰。
和目前类似软件相比,本系统创意新颖,在不增加用户成本情况下,使用普通摄像头实现各类应用软件、游戏的操作,提升了使用者的人机交流感受,实现更智能化的操控体验。本系统所采用的算法,通过对捕捉到的图像数据进行对比、误差纠正、偏移量预估等处理,并通过具有时间、空间智能匹配功能,使得系统分析准确、高效、快速,提高了被操作应用程序响应的流畅度, 带给使用者生动、真实的操作感。
[1] Greg Borenstein.格物智知:3D图形与人机交互技术应用[M]. 北京:人民邮电出版社,2013.
[2] MitraS,AcharyaT.Gesture recognition A survey[J]. IEEE Transactions on Systems, Man and Cybernetics, 2007, 37(3):311-324.
[3] Hyeon-KyuLee, Jin H.Kim. An HMM-based threshold model approach for gesture recognition[J]. IEEE Transations on Pattern Analysis and Machine Intelligence,1999,21(10): 961-973.
[4] 任海兵,祝远新,徐光祐.复杂背景下的手势分割与识别[J].自动化学报,2000,28(2):78-85.