CN115951783A - 一种基于手势识别的计算机人机交互方法 - Google Patents
一种基于手势识别的计算机人机交互方法 Download PDFInfo
- Publication number
- CN115951783A CN115951783A CN202310055231.1A CN202310055231A CN115951783A CN 115951783 A CN115951783 A CN 115951783A CN 202310055231 A CN202310055231 A CN 202310055231A CN 115951783 A CN115951783 A CN 115951783A
- Authority
- CN
- China
- Prior art keywords
- gesture
- hand
- distance
- image
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明一种基于手势识别的计算机人机交互方法,使用选择配置惯用手势信息;按照系统提示和自身习惯分别作出不同动作的手势,并拍摄记录每帧图像中每个手势的信息,开启计算机摄像头,获取视频流;对视频流中的每一帧图像进行亮度和对比度增强;获取增强后的图像中的手部关键点坐标;根据手部关键点坐标,对实时视频进行多尺度距离统一映射,消除因手部与摄像头的距离造成的图像中手部关键点之间的距离误差;根据多尺度距离统一映射后的手部关键点坐标对手势进行分类,每个可识别的分类手势对应人机交互的一种设定操作;根据分类结果进行相应操作。本发明具有轻量级、低门槛、多功能、高实时性的特点。
Description
技术领域
本发明属于人工智能技术领域,特别涉及一种基于手势识别的计算机人机交互方法。
背景技术
随着计算机技术的蓬勃发展,以鼠标、键盘等设备为代表的传统接触式设备交互已无法满足人们的需要。如何让机器对人体本身的行为动作直接响应,并返回相应的结果,将对未来人机交互的发展产生至关重要的意义。当前各类基于计算机视觉的非接触式人机交互系统主要依赖于深度学习算法,这些算法模型较为复杂,且对计算资源要求较高,难以在普通计算机甚至嵌入式设备上应用,不利于用户进行便捷、实时的人机交互,用户体验较差。
典型的现有技术方案例如:中国专利CN115032640A公开了一种手势识别方法和终端设备,具体步骤为:(1)终端设备控制第一ToF传感器进行检测;(2)在检测到目标对象时,终端设备控制多个ToF(飞行时间)传感器同步发射光信号;(3)终端设备通过光信号,获取目标对象在每个ToF传感器的飞行时间信息和深度信息;(4)标定信息用于表示每个ToF传感器在不同距离下的飞行时间与距离之间的映射关系;终端设备基于深度信息,进行手势识别。
专利CN109753876A公开了一种三维手势特征提取和三维系统的构建,其是通过手势识别模型得到手部关键点建立二维坐标系后使用每三个向量表示一根手指,得到各个手指的向量数据后通过手势分类算法和大量预设样本进行对比,得到当前手势最可能所属的手势从而完成手势分类。
专利CN111414837A公开了一种手势识别方法、装置、计算机设备及存储介质,其手势识别方法为通过手势识别模型得到手部关键点后,根据关键点信息得到手部倾斜角度,矫正角度后根据比较手部关节关键点的纵坐标来简单定义手指的张合状态,从而进一步进行手势分类。
在借助人体其他部位进行人机交互方面,中国专利CN208421769U公开了一种基于眼电的人机交互系统,其具体步骤包括:(1)眼睛框架通过信号采集电极实现微弱眼电信号的感应(2)眼电信号通过屏蔽线缆输入到眼电信号处理电路,放大滤波并转化为数字信号并经过主控单元转换为控制信号。(3)受控设备通过通信单元接收到该控制信号,转换为受控设备中光标移动的方位和距离和光标点击动作。
当前大部分隔空操作计算机的方法采用外接传感器或高精度的深度镜头等特定设备或辅助装置读取身体数据,再通过复杂信号转换将数据转换为计算机可识别的控制信号从而进行人机交互,这些方法大都有较高的硬件门槛。如上述专利CN115032640A,该解决方案对硬件有硬性要求,即成组的ToF传感器或独立的ToF深度摄像头,在满足硬件条件下可以有效的提高手势识别的使用场景,但在不满足硬件要求的情况下则无法有效工作;上述专利CN208421769U实现了一个操作简单的受控设备的人机交互行为,但是同样需要特定外接设备,使用和学习成本较高,仅在虚拟操作鼠标方面表现良好,无法有效控制键盘等外设。与上述专利CN109753876A相比,其将三维手势关键点映射到二维坐标系并使用向量表示,丢失了一个维度的空间信息,会导致最终的手势分类结果会因为倾斜或手部方向等因素而不准确;且其需要经过两次机器学习模型分别识别手势信息、进行手势分类,才可计算出当前手势的具体分类,计算量较大,在硬件方面有较高的要求。与上述专利CN111414837A相比,因为其需要精确测量出手部正面的横向倾斜角度,所以需要使用者时刻手部正面对准摄像头,这增加了使用者的使用成本和使用难度,较大的限制带来了不好的使用体验。校正手部倾斜得到可识别图片后,该方法仅通过纵坐标比较来进行手指张合状态的判断,这无疑是有较大缺陷的,手部的倾斜有横向和竖向,在第一步校正竖向的倾斜后该方法并没有考虑竖向的倾斜就粗略的采用对比纵坐标的方法来判断手指张合,忽略了手势识别分类场景中无处不在的空间因素,最终导致使用起来有较大限制且识别率大打折扣。且仅对比纵坐标会对操作手势有更大的限制,无法支持复杂的手势,仅可支持其说明书中提到的少数手势,难以进行复杂的实时人机交互操作。
另有其他人机交互解决方案仅解决了基础的鼠标操作问题,难以满足人机交互时复杂工作的需求,如键盘控制、音量控制、亮度控制等等。
发明内容
为了克服上述现有技术的缺点,解决如上所述的现有非接触式人机交互解决方案所存在的较高硬件门槛、实时性差、较大实现及学习成本和功能较少、用户体验不佳、难以满足使用需求的问题中的至少之一,本发明的目的在于提供一种基于手势识别的计算机人机交互方法,并至少具有轻量级、低门槛、多功能、高实时性的特点之一。
为了实现上述目的,本发明采用的技术方案是:
一种基于手势识别的计算机人机交互方法,包括以下步骤:
步骤(1),首次使用选择配置惯用手势信息;
按照系统提示和自身习惯分别作出不同动作的手势,并拍摄记录每帧图像中每个手势的信息,用作后续拟合函数和手势分类;
步骤(2),开启计算机摄像头,获取视频流;
步骤(3),对所述视频流中的每一帧图像进行亮度和对比度增强;
步骤(4),获取增强后的图像中的手部关键点坐标;
步骤(5),根据所述手部关键点坐标,对实时视频进行多尺度距离统一映射,消除因手部与摄像头的距离造成的图像中手部关键点之间的距离误差;
步骤(6),根据多尺度距离统一映射后的手部关键点坐标对手势进行分类,每个可识别的分类手势对应人机交互的一种设定操作;
步骤(7),根据分类结果进行相应操作。
与上述专利CN115032640A相比,本发明无需使用成组的ToF传感器或独立的ToF深度摄像头,而是通过手部关键点以及设计多尺度下距离映射的算法实现了普通摄像头或普通视频下的手势识别方法,大大降低了人机交互的硬件门槛;而对比上述专利CN208421769U,本发明通过手势动作识别替代眼部运动进行人机交互,不需要特定眼镜框设备,降低了学习和使用成本的,同时扩展了其无法有效支持的键盘等外设控制的人机交互功能。
与上述专利CN109753876A相比,本发明通过多尺度下手部关键点距离的统一映射,将手部关键点信息在三维下进行识别分类,保留了更多的深度空间信息使得结果更加准确,且只需要经过一次神经网络模型进行手部关键点识别,后续通过关键点间空间关系的运算而无需神经网络模型即可完成手势的识别与分类,大大减少了计算量从而降低对使用者的硬件要求和使用成本。
与上述专利CN111414837A相比,本发明对手部面向摄像头的方向没有限制,使用起来更加方便,学习成本小,并且通过三维坐标对手指张合状态进行判断,在手部有竖向或横向倾斜是仍然可以有效的对手势进行分类,且可支持识别分类的手势更多,本方法鲁棒性更强,实用性更广。
其他现有的基于计算机视觉的手势识别方法需要将图像使用经深度学习训练后的复杂模型加以处理,而神经网络模型计算复杂,在普通计算机上无法做到实时检测识别,本发明通过设计基于手部几何特征和多尺度距离统一映射的手势动作识别算法,避免了使用复杂模型进行手势动作分类,实现了轻量级、低门槛的基于手势识别的非接触式人机交互,使得可以在普通计算机设备实现实时的、低延迟的人机交互,大大提高操作效率。
对比其他人机交互解决方案仅解决了基础的鼠标操作问题,难以满足人机交互时复杂工作的需求,本发明在鼠标控制的基础上解决了如键盘控制、音量控制、亮度控制、关机休眠等等操作,使得功能更加全面、操作更加贴合实际,更能满足复杂的人机交互需求。
附图说明
图1是本发明基于手势识别的计算机人机交互方法的流程图。
图2是本发明实施例中配置惯用手势信息的示意图。
图3是gamma矫正中α映射取值函数示意图。
图4是gamma矫正中γ映射取值函数示意图。
图5是MediaPipe手部识别模型流程图。
图6是21个手部关键点示意图。
图7是拟合手部真实距离与关键点图像距离的映射二次函数示意图。
图8是手势分类操作流程图。
图9是预设定手势示意图。
图10是本发明实施例中的手势动作识别操作效果示意图。
图11是本发明实施例中的手势控制音量效果示意图。
图12是本发明实施例中的手势控制亮度效果示意图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
各类隔空人机交互系统在功能实现方面虽然获得了较好的效果,但在实现方式有较大的硬件门槛,尤其是实现成本方面需要特定的外接设备或辅助装置或是购买特定品牌计算机才能实现。
为此,本发明通过了一种基于手势识别的计算机人机交互方法,基于手势识别的计算机人机交互方法,先仅需要利用一颗普通摄像头采集视频流信息,利用图像的计算机视觉特性对其进行预处理处理,消除环境干扰因素的影响,并基于MediaPipe框架或其它方式提取手掌骨架信息,通过设计的基于几何特征与多尺度距离统一映射的手势识别算法识别不同类别的手势,进而调用计算机的系统接口进行操作,最终实现轻量、便捷的计算机人机交互。
具体地,如图1所示,本发明的整体流程包括以下步骤:
(1),首次使用选择配置惯用手势信息。
按照系统提示和自身习惯,分别作出不同动作的手势,并拍摄记录每帧图像中每个手势的信息,用作后续拟合函数和手势分类。配置信息的主要目的是为了消除因距离原因和个人习惯原因而造成的识别分类误差。在本步骤中,图像采集仅利用单个普通摄像头即可实现,对硬件的需求较低。
在本发明的一个实施例中,配置惯用手势信息的过程以及结果如图2所示。
(2),开启计算机摄像头,获取视频流。
本步骤中,直接利用了计算机摄像头采集图像。容易理解,视频流也可以采用外设摄像头获取,外设摄像头可以与处理器有线连接,也可以无线连接,
(3),对步骤(2)获取的视频流中的每一帧图像进行亮度和对比度增强。
在本发明的实施例中,首先对每一帧图像通过三通道值进行亮度检测,公式为:
其中,I为图片检测亮度,R为每个像素红色通道的数值,G为每个像素绿色通道的数值,B为每个像素蓝色通道的数值。
并针对亮度提升的需求程度设置两个阈值,分别为第一阈值和第二阈值,示例地,第一阈值取120,第二阈值取80。
3a),若低于第一阈值120,则判定亮度较低,对图片进行γ校正以增强图像亮度。本方面的实施例中,采用gamma校正法进行色彩还原,具体地,由亮度低于第一阈值120的程度,使用插值法拟合函数来确定γ校正的强度α和γ的取值。
gamma矫正中α映射取值函数和γ映射取值函数可参考图3、图4。上述公式中,light1是亮度第一阈值,light2是亮度第二阈值,alpha1、alpha2分是α强度调节范围的上下限,gamma1、gamma2分是γ强度调节范围的上下限
依据以下公式分别对R、G、B三通道数值加以调整
R′=α*R+γ,G′=α*G+γ,B′=α*B+γ
其中,R′为每个像素调整后红色通道的数值,G′为每个像素调整后绿色通道的数值,B′为每个像素调整后蓝色通道的数值,R为每个像素调整前红色通道的数值,G为每个像素调整前绿色通道的数值,B为每个像素调整前蓝色通道的数值。
3b),若低于第二阈值80,则判定亮度过低,采用Retinex算法进行色彩还原。
log[R(x,y)]=log[I(x,y)]-log[L(x,y)]
其中I(x,y)是被观察或照相机接收到的图像信号,由照度图像与反射图像组成。L(x,y)代表环境光的照射分量;R(x,y)表示携带图像细节信息的目标物体的反射分量。L(x,y)是不能够直接求得的,只能近似求出。可以用I(x,y)和一个高斯核的卷积G(x,y)来近似表示L(x,y)。
由亮度低于第二阈值的程度,使用插值法拟合函数来确定σ的取值,为了能够保证实时处理视频帧,设定σ不超过2.0。通过g(x,y)得出每个像素点的加权权重后乘以像素点的灰度值,对于彩色图像需要对RGB三通道分别处理。处理完成后得到高斯滤波图G(x,y)。
所以R(x,y)可用下式表示
log[R(x,y)]=log[I(x,y)]-log[I(x,y)*G(x,y)]
得到log[R(x,y)]后在(0,255)上进行归一化处理。
其中,dstR表示图像矩阵中任意一点归一化后的值,min,max分别代表图像矩阵中的最小值和最大值,min′,max′分别表示放缩的目标范围中的最小值和最大值。
实际计算中min′为0,max′为255。得到亮度和对比度增强后的图片。
(4),对步骤(3)增强处理好的图像,获取其中的手部关键点坐标。
在本发明的实施例中,参考图5,采用MediaPipe框架,获得21个手部关键点坐标,过程如下:
4a),通过手掌检测模型扫描全图,若存在手部,则标记手掌所处位置的矩形边界框。在实时追踪的场景中,当前帧的手部定位框可以从上一帧的手部关键点坐标预测中推导出来,这样能够避免在每一帧上运行手掌检测模型。
4b),将手部位置矩形边界框切割成单独的图片,并输入到手部关键点检测模型中,手部关键点检测模型为一个回归模型,首先将图片卷积为256*256的RGB图片,然后将其输入到特征提取神经网络,得到具有21个手部关键点坐标信息,如图6所示。
(5),根据手部关键点坐标,对实时视频进行多尺度距离统一映射,消除因手部与摄像头的距离而造成的图像中手部关键点之间的距离误差,从而优化识别率。
在本发明中,为了保证人机交互过程的实时性,并没有引入复杂的深度学习模型,而使用MediaPipe完成手部关键点提取后,进而根据所设计的基于手部几何特征与多尺度距离统一映射手势识别算法进行手势分类,以达到实时的低延迟、高效率的手势识别和控制效果。
在本发明中,为了防止因为环境因素或人为因素等外部干扰,使得手势识别到非人机交互操作人的手部,使用如下方法:
先实时记录手部与摄像头的距离d,并根据五指根部的坐标取均值计算出手掌大致中心位置坐标s=(x,y),若d、s与上一帧比较均发生突变,则认为是误识别为非人机交互操作人的手部,放弃识别该手部并且重新扫描识别当前视频中的手部,若在150帧内在原距离与坐标附近检测到手部则认为重新识别到人机交互操作人的手部。
在本发明的一个实施例中,所述的对实时视频进行多尺度距离统一映射的过程如下:
5a),基于手部关键点,根据单目视觉成像原理,固定手部距摄像头一定距离后,由以下公式可计算得出摄像头焦距:
其中W为手部的真实长度,P为图像中手部的像素长度,D为手部与摄像头的真实距离,F为摄像头焦距。
通过得到的焦距即可实时计算手部与摄像头的真实距离:
以此实现实时跟踪锁定使用者的手部,有效防止人为因素下的手部误识别发生率。
5b),结合5a)中实时估算手部距离的方法,根据配置记录一组手部距摄像头距离和图像中手部两固定点位的像素长度,基于最小二乘法进行曲线拟合,得到一个一元二次方程如下:
其中,f(xi)是基于xi预测的手部图像中手部两固定点位的像素长度,即,通过xi对yi进行预测,期望预测结果f(xi)无限接近于yi,S为预测值f(xi)与记录的真实值yi的误差平方和。
设定配置惯用手势信息时记录的一组手部距摄像头距离数据表示为x0~xn,记录的一组图像中手部两固定点位的像素长度数据表示为y0~yn,n是组数。则xi是第i个手部距摄像头距离数据,yi是第i个图像中手部两固定点位的像素长度数据。θ0、θ1、θ2是一元二次方程中的系数。
为使误差平方和S取得最小值,对各项系数求导后转化为矩阵形式,则有:
即得相应的θ0、θ1、θ2。
在实时检测分类手部姿态时,通过需要判定的两点之间的距离与所记录固定点位按比例换算后代入如下方程:
之后,根据当前测量距离的结合配置信息计算出可能出现的偏差ki,并计算出可判定为操作手势的阈值thresholdi。
thresholdi=(θ0+θ1*d+θ2*d2+ki)*ratioi
其中,d为当前帧手部距摄像头的距离,xj为满足d*0.9<xi<d*1.1的配置信息中的手部距摄像头距离,yj是xj对应的手部两固定点位的像素长度,m是满足条件的xj的数量,f()为前文拟合的函数曲线。
当本帧的手势判定两关键点位距离di小于上述阈值thresholdi时,判定为进行操作,即可消除因手部距摄像头的距离而造成的在图像中手部关键点之间的距离误差,从而优化识别率。本发明拟合手部真实距离与关键点图像距离的映射二次函数如图7所示。
(6),根据多尺度距离统一映射后的手部关键点坐标对手势进行分类,每个可识别的分类手势对应人机交互的一种设定操作。
在本发明的一个实施例中,参考图8,分类过程如下:
6a),根据手部关键点坐标信息,判定手指的张合状态,以此组合分类。
本发明按照系统提示和自身习惯提前记录手势信息,使用记录的多组的距离信息拟合相应映射函数和进行手势分类,以消除因距离原因和个人习惯原因而造成的识别分类误差。
本实施例中,根据手部关键点坐标信息,通过L2范数计算各点连线向量的位置关系得出手指的张合状态,具体方法为:
其中distance为两关键点间连线向量的长度,(x1、y1)为第一关键点的纵横坐标,z1为其深度信息,(x2、y2)为第二关键点的纵横坐标,z2为其深度信息。判断标准为:
对于大拇指,计算大拇指间关节与小拇指根组成的连线向量的L2范数d1,大拇指尖与小拇指根组成的连线向量的L2范数d2,若d1<d2则判定大拇指张开,若d1>d2则判定大拇指闭合;对于其余四指,分别计算其指间关节与手腕组成的向量的L2范数dx,其指尖与手腕组成的向量的L2范数dy,若dx<dy则判定手指张开,若dx>dy则判定手指闭合。
根据上述原理,设计如图9所示的手势以对应人机交互中的相应操作。
6b),根据6a)所述原理,大拇指间关节与小拇指根组成的向量的L2范数d1,大拇指尖与小拇指根组成的向量的L2范数d2,d1<d2,则判定大拇指张开。食指指间关节与手腕组成的向量的L2范数d3,食指指尖与手腕组成的向量的L2范数d4,d3<d4,则判定食指张开。对于其余三指,分别计算指间关节与手腕组成的向量的L2范数dx,以及指尖与手腕组成的向量的L2范数dy,dx>dy,则手指闭合。且食指指尖与大拇指指尖的距离满足:
则判定手势为预设定手势(1),即单击预备。
其中distancehand为手部与摄像头间距离;f()为5b)中拟合的函数曲线;dclick为配置中的设定手势(2)数据;dstandard为配置中的标尺距离,取值为设定配置时多组手势的食指指根与中指指根的距离均值;ρ′为防止误差的调整参数,默认取值为1.4。
若并无提前配置信息,则若食指指尖与大拇指指尖的距离d′>20,则判定手势为预设定手势(1)。
6c),根据6a)所述原理,在手势(1)的基础上,若食指指尖与大拇指指尖的距离d′变化至满足:
则判定手势为预设定手势(2),即单击。
若并无提前配置信息,则若食指指尖与大拇指指尖的距离d′<20,则判定手势为预设定手势(2)。
6d),根据6a)所述原理,大拇指间关节与小拇指根组成的向量的L2范数d1,大拇指尖与小拇指根组成的向量的L2范数d2,d1>d2,则判定大拇指闭合,食指指间关节与手腕组成的向量的L2范数d3,食指指尖与手腕组成的向量的L2范数d4,d3<d4,则判定食指张开,中指指间关节与手腕组成的向量的L2范数d5,中指指尖与手腕组成的向量的L2范数d6,d5<d6,则判定中指张开,对于其余两指,分别计算指间关节与手腕组成的向量的L2范数dx,指尖与手腕组成的向量的L2范数dy,dx>dy,则手指闭合。若食指指尖与中指指尖的距离满足:
则判定手势为预设定手势(3),即右击预备。
其中drigh_click为配置中的设定手势(4)数据;ρ”为防止误差的调整参数,默认取值为1.2。
若并无提前配置信息,则若食指指尖与中指指尖的距离d”>40,判定手势为预设定手势(3)。
6e),根据6a)所述原理,在手势(3)的基础上,若食指指尖与中指指尖的距离d”变化至满足:
则判定手势为预设定手势(4),即右击。
若并无提前配置信息,则若食指指尖与中指指尖的距离d”<40,判定手势为预设定手势(4)。
6f),根据6a)所述原理,食指指间关节与手腕组成的向量的L2范数d3,食指指尖与手腕组成的向量的L2范数d4,d3<d4,则判定食指张开,对于其余四指,分别计算指间关节与手腕组成的向量的L2范数dx,指尖与手腕组成的向量的L2范数dy,dx>dy,则手指闭合。若食指指尖与食指第一指间关节间的距离满足:
则判定手势为预设定手势(5),即移动鼠标。
其中dchoos为配置中的设定手势(9)数据;ρ”’为防止误差的调整参数,默认取值为1.5。
若并无提前配置信息,则若食指指尖与食指第一指间关节的距离d”’>26,判定手势为预设定手势(5)。
6g),根据6a)所述原理,若判定大拇指张开、食指张开、中指张开且其余两指闭合,此时判定手势为预设定手势(6),即拖拽。
6h),根据6a)所述原理,若判定大拇指张开、食指张开、小拇指张开且其余两指闭合,判定手势为预设定手势(7),即虚拟键盘。
6i),根据6a)所述原理,若判定中指张开、无名指张开、小拇指张开且其余两指闭合,判定手势为预设定手势(8),即多功能面板。
6j),根据6a)所述原理,在手势(1)的基础上,若食指指尖与食指第一指间关节间的距离d”’变化至满足:
则判定手势为预设定手势(9),即功能选择。
若并无提前配置信息,则若食指指尖与食指第一指间关节的距离d”’<26,则判定手势为预设定手势(9)。
6k),根据6a)所述原理,若判定大拇指闭合,其余四指张开,判定手势为预设定手势(10),即鼠标滚轮下滑。
6l),根据6a)所述原理,若判定五指张开,判定手势为预设定手势(11),即鼠标滚轮上滑。
在本发明的另一实施例中,提供了判定手指张合状态的另一种方法,步骤如下:
(1)通过MediaPipe得到手部区域位置;
(2)分割出手部区域,将图像转换为二值图,然后对图像先进行腐蚀操作,后中值滤波;
(3)提取手部轮廓,以序号为横坐标、轮廓与手部质心的距离为纵坐标绘制边缘-质心距离序列曲线;
(4)提取边缘-质心距离序列曲线的尖峰,计算尖峰幅值大于阈值的尖峰数量,作为手指数目;
(5)根据手指数目确定当前手势。
并且,当采用方式二时,手势动作识别及进行人机交互的过程如下:
(1)通过MediaPipe得到手部区域位置;
(2)分割出手部区域,采集到手的轮廓区域。利用凸包的数学几何方法,获得凸包集的顶点以及顶点的坐标信息,得到表示手形状的特征轮廓,取特征轮廓的中心点0为基点;求得基点和凸包上任意点的距离值r,从而得到一个以距离值r为组成单位的特征向量;对各种类型的手势采集后存储到手势特征库,并进行特征提取得到特征向量集合F;
(3)对特征向量集合F应用K-means聚类方法生成检索关键词词典集合D,容量为d,每个类对应的关键词g由该类内所有特征向量f取平均值得到,每一个关键词g对应一个组块的执行指令,其与组块操作指令关键值的映射关系,存储到存储模块中;
(4)交互过程为用户将手放置于感应装置前,摆出手的操作姿势并保持静止,手势感应装置通过采集用户的手势姿态来进行特征提取,对于输入的待识别的静态手势指令,按照(1)和(2)的方法得到一个n维的特征向量m;
(5)在关键词词典集合D中,寻找与特征向量m之间Manhattan距离最小的关键词g,如果该距离小于指定的阅值,则f为匹配的向量,其对应的指令为要执行的指令,并将m归属到该关键词对应的类中,将该类的特征描述更新为
(7)根据分类结果进行相应操作。
确定手势动作识别分类后,程序根据分类结果调用Windows API进行相应操作。基本操作界面支持如鼠标移动、单击、右击、拖拽、滚轮上下滑、虚拟键盘、回到桌面等操作,并能够通过特定手势进入复杂功能面板,支持手势控制如声音调节、亮度调节、关机、休眠等。
具体地,本步骤操作或控制的实现过程如下:
7a)鼠标移动:程序锁定食指指尖,根据食指指尖在虚拟方框内的位置等比例映射为鼠标在计算机显示器的相对位置并对鼠标做移动处理。鼠标移动时借助smooth变量实现平滑处理,实现公式为:
其中finalX、finalY为本帧图像中鼠标移动到的位置的X、Y坐标,lastX、lastY为上一帧图像中鼠标的位置的X、Y坐标,destX、destY为指尖位置映射到显示器中的鼠标最终目标位置的X、Y坐标,smooth为根据目标与当前位置偏差而设置的平滑变量。
7b),鼠标单击:由单击预备手势锁定鼠标位置,大拇指与食指间距离达到阈值后由单击手势触发按下鼠标左键或右键动作,退回阈值之外后回到单击预备手势触发放松鼠标左键或右键动作。
7c),拖拽:建立在鼠标单机动作的基础上,由拖拽手势触发按下鼠标左键动作,且此时鼠标可自由移动进行鼠标按下拖拽,由6a)所述方法控制鼠标实时移动。
7d),滚轮:由鼠标滚轮上滑/下滑手势触发,可设定每次滑动30行。
7e),虚拟键盘:由虚拟键盘手势触发,扫描计算机当前所有进程并关闭TabTip相关进程,重启TabTip进程呼出虚拟键盘。
在本发明的实施例中,操作的效果如图10所示。
7f),多功能面板:由多功能面板手势触发,进入功能面板后有声音调节、亮度调节、关机、休眠等功能,通过选择手势进行功能选择。点击“返回”虚拟按钮退出功能面板。
7f-1),音量控制:张开大拇指和食指,其余三指闭合,使用两指指尖来控制音量。根据5c),所述方法实时检测食指与中指两指指尖的相对真实距离,并使用插值法等方法拟合出对应的音量数值,通过调用Windows API和该数值来调节音量。点击“返回”虚拟按钮退出至功能面板。在本发明的实施例中,音量控制的效果如图11所示。
食指与大拇指尖距离d若满足:
其中distancehand为手部与摄像头间距离;为配置中的设定手势控制数据;dstandard为配置中的标尺距离,取值为设定配置时多组手势的食指指根与中指指根的距离均值;ρ1、ρ2为防止误差的调整参数,默认取值为ρ1=0.8、ρ2=1.2。
若并无提前配置信息,则使用插值法将50到200拟合映射0到100之间,并使用映射结果作为音量控制的调整参数。
7f-2),亮度控制与6f-1),类似,鉴于笔记本电脑与台式计算机调节亮度的API不同,故在调节前会进行检测并分别处理。在本发明的实施例中,音量控制的效果如图12所示。
7f-3),关机操作通过选择虚拟按钮开启。休眠、重启操作类似。
在本发明的另一个方案中,还适应性地提供了对于人机交互方法的手势动作识别模块,具体包括:
预处理单元:针对光照环境不佳的使用场景,使用预处理方案对实时视频进行增强以便后续任务的进行;
提取单元:利用MeidaPipe框架从实时视频中提取手部骨架及关键点的三维坐标;
多尺度距离映射单元:使用所设计的方案对不同尺度手部关键点间的距离进行映射,控制在统一的阈值控制下进行手势分类,消除手部与设备间的距离而造成的误差影响;
手势动作识别单元:通过所设计的方案,根据手势几何特征对映射在统一尺度下的手部关键点坐标进行计算与分类,获得手势识别动作。
Claims (10)
1.一种基于手势识别的计算机人机交互方法,其特征在于,包括以下步骤:
步骤(1),首次使用选择配置惯用手势信息;
按照系统提示和自身习惯分别作出不同动作的手势,并拍摄记录每帧图像中每个手势的信息,用作后续拟合函数和手势分类;
步骤(2),开启计算机摄像头,获取视频流;
步骤(3),对所述视频流中的每一帧图像进行亮度和对比度增强;
步骤(4),获取增强后的图像中的手部关键点坐标;
步骤(5),根据所述手部关键点坐标,对实时视频进行多尺度距离统一映射,消除因手部与摄像头的距离造成的图像中手部关键点之间的距离误差;
步骤(6),根据多尺度距离统一映射后的手部关键点坐标对手势进行分类,每个可识别的分类手势对应人机交互的一种设定操作;
步骤(7),根据分类结果进行相应操作。
2.根据权利要求1所述基于手势识别的计算机人机交互方法,其特征在于,所述步骤(3),对所述视频流中的每一帧图像通过三通道值进行亮度检测;并针对亮度提升的需求程度设置第一阈值120和第二阈值80,若低于第一阈值120,则判定亮度较低,对图片进行γ校正以增强图像亮度;若低于第二阈值80,则判定亮度过低,采用Retinex算法进行色彩还原。
3.根据权利要求1所述基于手势识别的计算机人机交互方法,其特征在于,所述步骤(4),利用MediaPipe框架获得21个手部关键点坐标,过程如下:
步骤4a),通过手掌检测模型扫描全图,若存在手部,则标记手掌所处位置的矩形边界框;在实时追踪的场景中,当前帧的手部定位框从上一帧的手部关键点坐标预测中推导得到;
步骤4b),将手部位置矩形边界框切割成单独的图片,并输入到手部关键点检测模型中,手部关键点检测模型为一个回归模型,首先将图片卷积为256*256的RGB图片,然后将其输入到特征提取神经网络,得到具有21个手部关键点坐标信息。
4.根据权利要求1所述基于手势识别的计算机人机交互方法,其特征在于,所述步骤(5),先实时记录手部与摄像头的距离d,并根据五指根部的坐标取均值计算出手掌大致中心位置坐标s=(x,y),若d、s与上一帧比较均发生突变,则认为是误识别为非人机交互操作人的手部,放弃识别该手部并且重新扫描识别当前视频中的手部,若在150帧内在原距离与坐标附近检测到手部则认为重新识别到人机交互操作人的手部;其中d与s的突变判定为:d与上一帧比较差值大于60;s与上一帧的s’的L2范数计算结果||distance||2大于视频整体对角线长度的40%。
5.根据权利要求1或4所述基于手势识别的计算机人机交互方法,其特征在于,所述步骤(5),对实时视频进行多尺度距离统一映射的过程如下:
步骤5a),基于手部关键点,固定手部距摄像头一定距离,由以下公式计算摄像头焦距:
其中W为手部的真实长度,P为图像中手部的像素长度,D为手部与摄像头的真实距离,F为摄像头焦距;通过得到的焦距实时计算手部与摄像头的真实距离,实现实时跟踪锁定使用者的手部;
步骤5b),配置记录一组手部距摄像头距离和图像中手部两固定点位的像素长度,基于最小二乘法进行曲线拟合,得到一元二次方程如下:
配置惯用手势信息时记录的一组手部距摄像头距离数据表示为x0~xn,记录的一组图像中手部两固定点位的像素长度数据表示为y0~yn,n是组数,xi是第i个图像中手部距摄像头距离数据,yi是第i个图像中手部两固定点位的像素长度数据,θ0、θ1、θ2是一元二次方程中的系数;f(xi)是基于xi预测的手部图像中手部两固定点位的像素长度,即,通过xi对yi进行预测,期望预测结果f(xi)无限接近于yi,S为预测值f(xi)与记录的真实值yi的误差平方和;
在实时检测分类手部姿态时,通过需要判定的两点之间的距离与所记录固定点位按比例换算后代入如下方程:
根据当前测量距离的结合配置信息计算出可能出现的偏差ki,并计算出可判定为操作手势的阈值thresholdi:
thresholdi=(θ0+θ1*d+θ2*d2+ki)*ratioi
其中,d为当前帧手部距摄像头的距离,xj为满足d*0.9<xi<d*1.1的配置信息中的手部距摄像头距离,yj是xj对应的手部两固定点位的像素长度,m是满足条件的xj的数量;
当本帧的手势判定两关键点位距离di小于阈值thresholdi时,判定为进行操作。
6.根据权利要求5所述基于手势识别的计算机人机交互方法,其特征在于,所述步骤(6),过程如下:
步骤6a),根据手部关键点坐标信息,判定手指的张合状态,以此组合分类;
步骤6b),若判定大拇指张开、食指张开且其余三指闭合,则计算食指指尖与大拇指指尖的距离d’,若满足:
则判定手势为预设定手势(1),即单击预备;
其中distancehand为手部与摄像头间距离;f()为所述拟合的函数曲线;dclick为配置中的设定手势(2)数据;dstandard为配置中的标尺距离,取值为设定配置时多组手势的食指指根与中指指根的距离均值;ρ’为防止误差的调整参数;
如果无提前配置信息,则若d’>20,判定手势为预设定手势(1);
步骤6c),在手势(1)的基础上,当d’变化至满足:
则判定手势为预设定手势(2),即单击;
若并无提前配置信息,则若d’<20,则判定手势为预设定手势(2);
步骤6d),若判定食指张开、中指张开且其余三指闭合,则计算食指指尖与中指指尖的距离d”,若满足:
则判定手势为预设定手势(3),即右击预备;
其中dright_click为配置中的设定手势(4)数据;ρ”为防止误差的调整参数;
若并无提前配置信息,则若d”>40,判定手势为预设定手势(3);
步骤6e),在手势(3)的基础上,若d”变化至满足:
则判定手势为预设定手势(4),即右击;
若并无提前配置信息,则若d”<40,判定手势为预设定手势(4);
步骤6f),若判定食指张开且其余四指闭合,则计算食指指尖与食指第一指间关节间的距离d”’,若满足:
则判定手势为预设定手势(5),即移动鼠标;
其中dchoose为配置中的设定手势(9)数据;ρ”’为防止误差的调整参数;
若并无提前配置信息,则若d”’>26,判定手势为预设定手势(5);
步骤6g),若判定大拇指张开、食指张开、中指张开且其余两指闭合,此时判定手势为预设定手势(6),即拖拽;
步骤6h),若判定大拇指张开、食指张开、小拇指张开且其余两指闭合,判定手势为预设定手势(7),即虚拟键盘;
步骤6i),若判定中指张开、无名指张开、小拇指张开且其余两指闭合,判定手势为预设定手势(8),即多功能面板;
步骤6j),在手势(1)的基础上,若d”’变化至满足:
则判定手势为预设定手势(9),即功能选择;
若并无提前配置信息,则若d”’<26,则判定手势为预设定手势(9);
步骤6k),若判定大拇指闭合,其余四指张开,判定手势为预设定手势(10),即鼠标滚轮下滑;
步骤6l),若判定五指张开,判定手势为预设定手势(11),即鼠标滚轮上滑。
7.根据权利要求6所述基于手势识别的计算机人机交互方法,其特征在于,所述步骤6a),通过如下方式之一判定手指的张合状态:
方式一:通过L2范数计算两关键点间连线向量,公式如下:
其中distance为两关键点间连线向量的长度,(x1、y1)为第一关键点的纵横坐标,z1为其深度信息,(x2、y2)为第二关键点的纵横坐标,z2为其深度信息;
对于大拇指,计算大拇指间关节与小拇指根和大拇指尖与小拇指根组成的两个连线向量的L2范数d1、d2,若d1<d2则大拇指张开,若d1>d2则大拇指闭合;对于其余四指,分别计算其指间关节与手腕组成的向量的L2范数dx,其指尖与手腕组成的向量的L2范数dy,若dx<dy则手指张开,若dx>dy则手指闭合;
方式二,步骤如下:
(1)通过MediaPipe得到手部区域位置;
(2)分割出手部区域,将图像转换为二值图,然后对图像先进行腐蚀操作,后中值滤波;
(3)提取手部轮廓,以序号为横坐标、轮廓与手部质心的距离为纵坐标绘制边缘-质心距离序列曲线;
(4)提取边缘-质心距离序列曲线的尖峰,计算尖峰幅值大于阈值的尖峰数量,作为手指数目;
(5)根据手指数目确定当前手势。
8.根据权利要求7所述基于手势识别的计算机人机交互方法,其特征在于,当采用方式二时,手势动作识别及进行人机交互的过程如下:
(1)通过MediaPipe得到手部区域位置;
(2)分割出手部区域,采集到手的轮廓区域。利用凸包的数学几何方法,获得凸包集的顶点以及顶点的坐标信息,得到表示手形状的特征轮廓,取特征轮廓的中心点0为基点;求得基点和凸包上任意点的距离值r,从而得到一个以距离值r为组成单位的特征向量;对各种类型的手势采集后存储到手势特征库,并进行特征提取得到特征向量集合F;
(3)对特征向量集合F应用K-means聚类方法生成检索关键词词典集合D,容量为d,每个类对应的关键词g由该类内所有特征向量f取平均值得到,每一个关键词g对应一个组块的执行指令,其与组块操作指令关键值的映射关系,存储到存储模块中;
(4)交互过程为用户将手放置于感应装置前,摆出手的操作姿势并保持静止,手势感应装置通过采集用户的手势姿态来进行特征提取,对于输入的待识别的静态手势指令,按照(1)和(2)的方法得到一个n维的特征向量m;
9.根据权利要求5所述基于手势识别的计算机人机交互方法,其特征在于,所述步骤7),根据分类结果调用Windows API进行相应操作,基本操作界面支持鼠标移动、单击、右击、拖拽、滚轮上下滑、虚拟键盘以及回到桌面操作,并能够通过特定手势进入多功能面板,支持声音调节、亮度调节、关机和休眠的手势控制。
10.根据权利要求9所述基于手势识别的计算机人机交互方法,其特征在于,所述操作或控制的实现如下:
鼠标移动:程序锁定食指指尖,根据食指指尖在虚拟方框内的位置等比例映射为鼠标在计算机显示器的相对位置并对鼠标做移动处理;
鼠标单击:由单击预备手势锁定鼠标位置,大拇指与食指间距离达到阈值后由单击手势触发按下鼠标左键或右键动作,退回阈值之外后回到单击预备手势触发放松鼠标左键或右键动作;
拖拽:建立在鼠标单机动作的基础上,由拖拽手势触发按下鼠标左键动作,且此时鼠标可自由移动进行鼠标按下拖拽,控制鼠标实时移动;
滚轮:由鼠标滚轮上滑/下滑手势触发;
虚拟键盘:由虚拟键盘手势触发,扫描计算机当前所有进程并关闭TabTip相关进程,重启TabTip进程呼出虚拟键盘;
多功能面板:由多功能面板手势触发,进入功能面板后有声音调节、亮度调节、关机、休眠功能,通过选择手势进行功能选择;
音量控制:张开大拇指和食指,其余三指闭合,使用两指指尖来控制音量;实时检测食指指尖与中指指尖的相对真实距离,并拟合出对应的音量数值,通过调用Windows API和该音量数值调节音量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310055231.1A CN115951783A (zh) | 2023-02-04 | 2023-02-04 | 一种基于手势识别的计算机人机交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310055231.1A CN115951783A (zh) | 2023-02-04 | 2023-02-04 | 一种基于手势识别的计算机人机交互方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115951783A true CN115951783A (zh) | 2023-04-11 |
Family
ID=87289297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310055231.1A Pending CN115951783A (zh) | 2023-02-04 | 2023-02-04 | 一种基于手势识别的计算机人机交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115951783A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116766213A (zh) * | 2023-08-24 | 2023-09-19 | 烟台大学 | 一种基于图像处理的仿生手控制方法、系统和设备 |
-
2023
- 2023-02-04 CN CN202310055231.1A patent/CN115951783A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116766213A (zh) * | 2023-08-24 | 2023-09-19 | 烟台大学 | 一种基于图像处理的仿生手控制方法、系统和设备 |
CN116766213B (zh) * | 2023-08-24 | 2023-11-03 | 烟台大学 | 一种基于图像处理的仿生手控制方法、系统和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019128508A1 (zh) | 图像处理方法、装置、存储介质及电子设备 | |
Zhou et al. | A novel finger and hand pose estimation technique for real-time hand gesture recognition | |
JP5077956B2 (ja) | 情報端末装置 | |
JP6079832B2 (ja) | ヒューマンコンピュータインタラクションシステム、手と手指示点位置決め方法、及び手指のジェスチャ決定方法 | |
Hasan et al. | RETRACTED ARTICLE: Static hand gesture recognition using neural networks | |
Nair et al. | Hand gesture recognition system for physically challenged people using IOT | |
CA2395886C (en) | Method for video-based nose location tracking and hands-free computer input devices based thereon | |
US11715231B2 (en) | Head pose estimation from local eye region | |
CN108595008B (zh) | 基于眼动控制的人机交互方法 | |
KR101612605B1 (ko) | 얼굴 특징점 추출 방법 및 이를 수행하는 장치 | |
WO2011007390A1 (ja) | 画像処理装置、及びインターフェース装置 | |
KR100862349B1 (ko) | 제스처 인식 기능을 이용한 반투과 거울 기반 사용자인터페이스 시스템 | |
JP2002342756A (ja) | デジタル画像において目と口の位置を検出する方法 | |
CN108197534A (zh) | 一种人头部姿态检测方法、电子设备及存储介质 | |
Vishwakarma et al. | Hand gesture recognition in low-intensity environment using depth images | |
Ranawat et al. | Hand gesture recognition based virtual mouse events | |
CN115951783A (zh) | 一种基于手势识别的计算机人机交互方法 | |
CN109375833B (zh) | 一种触控指令的生成方法及设备 | |
Vezhnevets | Face and facial feature tracking for natural human-computer interface | |
CN111460858A (zh) | 图像中指尖点的确定方法、装置、存储介质及电子设备 | |
Abdallah et al. | An overview of gesture recognition | |
KR20070103895A (ko) | 손 제스쳐 인식 시스템 및 방법 | |
Khan et al. | Computer vision based mouse control using object detection and marker motion tracking | |
Simion et al. | Finger detection based on hand contour and colour information | |
CN108255298B (zh) | 一种投影交互系统中的红外手势识别方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |