自用文献综述

发布时间 2023-05-03 17:22:13作者: lisyr

人机交互是实现用户与计算机之间进行信息交互的通路(张凤军 等,2016),随着计算机硬件的发展和软件的更迭,人机交互的方式得到了不断的更新和发展。最初,人们依赖在纸带上打孔来实现信息向第一代电子管计算机的输入,这种串行的输入操作较为复杂且速度缓慢;之后,随着命令行界面的出现(CLI),用户得以通过键盘输入特定指令,机器读取后执行计算并在界面上返回结果,该方法在现代PC机上以CMD的形式仍得以保留;图形用户界面在上个世纪由Xerox(施乐)首先发明,并由Apple(苹果)电脑公司大规模推广,其显著特征是允许用户使用鼠标等输入设备操纵屏幕上的图标、菜单等选项;近二十年来,计算机相关技术得到了迅猛发展,人机交互技术层出不穷,其包括但不仅限于触摸屏、语音输入、手势识别甚至是脑机接口(NeuralLink)。人机交互最基本的功能,就是人能够通过适当的动作完成输入,控制系统能将抽象的行为数据准确地转化为计算机能够理解的具体的指令;让人机交互变得容易且自然,也是它的一个重要发展目标。
手势作为一种重要的、含义丰富的人体动作,在人机交互中产生着重要作用,使用手势控制的人机交互系统正在近几年逐渐得到重视。对于手部数据的采集能够通过在手上放置传感设备或使用摄像头来实现。其中,使用手上传感器的最为典型的方法是数据手套,它能够精准地反馈手部姿态,但需要额外的硬件支持,且会限制手部的移动,因此在一定程度上制约了它的发展,硬件方法在本论文就不做赘述。使用摄像头的方法能够很大程度上解决前者的限制运动的问题,专用的硬件外设有微软Kinect、Leap Motion控制器、华硕Xtion等,它们能通过自身的额外硬件弥补视觉方法在手势识别方面的不足,如:感兴趣区域、背景分割、光线问题、摄像头视角等,它们在手势识别上的具体应用将通过后文逐一举例。随着近几年机器学习算法的不断发展,前文提到的诸多问题正逐渐通过鲁棒的算法克服,并达到更高的精准度,使用单目摄像头的纯视觉方法正不断得到重视。
得益于Kinect for Windows SDK工具包提供的成熟稳定的开发接口,基于Kinect传感器的手势控制方式在过去的几年应用广泛。这款由微软公司针对XBOX推出的体感设备包含RGB摄像头、红外线发射器和红外线接收器,这能有效改进采用肤色空间进行手势分割、建模算法受光照影响较大的问题,Kinect最主要的功能是产生三维数据,用户能对由Kinect获取到的三维数据进行进一步处理、实现相关功能。如可以通过双层深度图像信息和K曲率算法结合,实现静态手势识别;或采用DTW算法,实现动态手势识别(王松林,2014)。
Kinect2.0是微软于2014年发布的深度传感器,它是一个TOF相机,即一种低成本的深度测量硬件设施,与前代相比具有更高的精度。其准确性和鲁棒性使它能被应用于更多领域。
除了Kinect以外,Leap Motion也是较为流行的体感设备之一,二者之间较大的区别是:Kinect是基于XBOX和其游戏开发,同时兼容PC机,摆放方式为直立摆放、面朝使用者,而Leap Motion基于Windows、MacOS和Linux开发,摆放方式为平放、位于用户手部下方。
Leap Motion可以面向C++,C#,Java,JavaScript,Object-C, Python开发。不同于Kinect的RGB摄像头和红外发射器及摄像头的解决方案,Leap Motion使用到了两个超广角的高帧率快门传感器和红外灯及滤光片,它在近距离对用户手势识别的精度更高。Leap Motion在追踪手势时,主要采用了TBD算法:它从视频信息中提取手势开始到结束的帧数据,计算出计算机可识别的手势模型(黄俊 等,2015)。
此外还有由华硕开发的Xtion,英特尔开发的RealSense。它们往往采用特有的硬件和软件,以此来提高识别准确度,弥补在复杂环境条件下可能出现的识别问题。同时,这些设备的售价较为高昂,从最便宜的79美元的RealSense,到稍贵的89美元的Leap Motion,再到价格更高,售价分别为159美元和269美元的Kinect和Leap Motion,都为手势控制系统的实现提出了较高的实现门槛。
除了专用硬件或双目摄像头,基于单目视觉的手势交互系统由于其应用部署简单的特性(它往往能在手机前置摄像头、PC端的Web摄像头得到应用),在近几年正得到重视。基于单目视觉的手势交互系统使用单目RGB相机采集手势图像序列,对采集的二维手势图像进行特征分析以识别手势语义信息(田秋红 等,2020)。在该领域,裘索基于运动预测的自适应粒子滤波进行改进,提出了基于单目摄像头的智能电视手势交互系统(裘索,2014),姚圆圆提出了一种基于SVM预测B参数的改进HMM动态手势识别算法(姚圆圆,2016),唐亚若使用类光流特征提取网络(TVNet)提出了基于RGB视频流的实时动态手势识别研究(唐亚若,2021)。
近几年,深度学习得到了较大的重视和发展,一些经典的机器学习算法被应用于手势识别中,如卷积神经网络(CNN)、适应性卷积神经网络(ADCNN)、循环神经网络(RNN)等(Yashas J et al.,2019)。
MediaPipe(Lugaresi et al.,2019)是由美国Google公司开源的一款机器学习库,提供了包括面部检测、手势识别、目标检测在内的多种API,其底层为TensorFlow,而TensorFlow基于上文提到的卷积神经网络。本论文采用的是MediaPipe库中的手势解决方案,它提供了现成的手掌监测模型,能够同时对最多四只手进行检测,并以3D格式返回21个关键点每只手返回坐标。目前,MediaPipe以其轻量、准确度高、兼容性强的特性,被众多开源项目使用,具体可见MediaPipe官方社区和GitHub。在最近的研究中,(王如斌 等,2022)将其应用于挖掘机遥操作控制,(Harris et al.,2021)将MediaPipe应用于用户引导程序,(Adhikary et al.,2021)将MediaPipe应用于印度手语识别。
在本次毕业设计中,使用到了MediaPipe作为关键点位置的捕捉,后续的动态手势识别和控制操作仍需要进一步编程实现,本论文将提出了多种手势追踪在个人计算机上的应用,证明在MediaPipe的帮助下仅依赖单目相机和轻量CPU推理完成实时手势追踪控制系统的可行性。相较于前文提到的众多手势识别的专用硬件,本论文提出的使用MediaPipe库与控制软件结合的手势控制方式能够极大地降低使用成本,提高软件运行效率和兼容性。总而言之,该研究为使用软件代替专用硬件完成手势识别控制系统提供了思路,具有一定的理论研究价值,同时在手势识别方向也具有较高的应用价值。