所有提交的EM系统将被重定向到网上投稿系统.作者被要求将文章直接提交给网上投稿系统各自的日志。

用手势控制计算机系统的光标

Pravin R Futane1, R. V. Dharaskar博士2和V. M. Thakare博士3.
  1. 印度马哈拉施特拉邦,阿姆拉瓦蒂大学计算机工程系
  2. 计算机工程系,MPGI机构集团,nand,马哈拉施特拉邦,印度
  3. 阿姆拉瓦蒂大学计算机科学系,阿姆拉瓦蒂,马哈拉施特拉邦,印度
有关文章载于Pubmed谷歌学者

更多相关文章请访问国际计算机与通信工程创新研究杂志

摘要

人类主要通过视觉和声音进行交流;因此,如果更多地利用视觉和音频识别,人机界面将更加直观。另一个优点是用户不仅可以从远处进行交流,而且不需要与计算机进行物理接触。雷竞技网页版然而,与音频命令不同,视觉系统在嘈杂的环境或声音会引起干扰的情况下更可取。手势识别可以被视为计算机开始理解人类肢体语言的一种方式,从而在机器和人类之间建立了一个更丰富的桥梁,而不是原始的文本用户界面甚至gui(图形用户界面),这些界面仍然限制了鼠标的大部分输入。在本文中,我们确定了一个替代鼠标命令,特别是参考光标控制应用程序。两种应用场景的案例;一种是用手势,另一种是用免提接口,即面部手势,讨论了算法使用如凸包,支持向量机和基本的数学计算。它们已被应用于发出命令,并通过使用手势而不是鼠标来执行打开任何便签本、办公工具软件等活动。该系统在不同的人的手势和闪电条件下进行测试,在手势/手势元素的识别和跟踪方面给出了合理的结果。 Then those identified gestures are applied to application designed. At last, the results obtained convey us that there is a good alternative to mouse that is by using gestures.



关键字

手势,凸包,支持向量机。

简介

当前计算机技术的发展已经设想了一个先进的机械世界,其中人类生活被人工智能增强。事实上,这一趋势已经推动了机器智能的积极发展。以计算机视觉为例,HCI旨在复制人类的视觉。几乎所有的人都在工作或业余时间使用电脑。多年来,为了方便计算机和人类之间的交流,人们设计了特殊的输入和输出设备,其中最著名的是键盘和鼠标。每一种新设备都可以被看作是使计算机更智能,使人类能够与计算机进行更复杂的通信的尝试。这是由于计算机专业人员为创建成功的人机界面所做的以结果为导向的努力。
人机交互(HCI)是研究、规划和设计人(用户)与计算机之间的交互。它通常被认为是计算机科学、行为科学、设计和其他几个研究领域的交叉学科。用户与计算机之间的交互发生在用户界面,其中包括软件和硬件;例如,由软件在个人电脑显示器上显示的字符或物体,通过键盘和鼠标等硬件外设从用户接收的输入,以及用户与飞机和发电厂等大型计算机系统的其他交互。所以这篇论文主要关注的是一种替代的交流模式——手/脸手势。本文组织结构如下。下一节简要介绍了通过手势控制光标的应用背景,然后介绍了两个案例研究;一个处理手势,另一个通过面部手势及其架构、方法/算法和实现细节。从应用的角度对结果进行了讨论,并给出了研究结论。

动机和背景

没有投稿或出版费用。人类主要通过视觉和声音进行交流,因此,人机界面如果更多地利用视觉和音频识别[1]将会更加直观。另一个优点是用户不仅可以从远处进行交流,而且不需要与计算机进行物理接触。雷竞技网页版然而,与音频命令不同,视觉系统在嘈杂的环境或声音会引起干扰的情况下更可取。手势识别可以被视为计算机开始理解人类肢体语言的一种方式,从而在机器和人类之间建立了一个更丰富的桥梁,而不是原始的文本用户界面甚至gui(图形用户界面),这些界面仍然限制了鼠标的大部分输入。点击方法是基于图像密度,并要求用户将鼠标光标停留在所需的点上很短一段时间。通过定义一个屏幕来实现鼠标按钮的单击,使单击发生[1],[2],[3]。参考[5]仅使用指尖控制鼠标光标并单击。因此,在这里,我们介绍了两个应用案例,参考计算机系统的光标控制与手势的两个不同方面。一个使用“双手接口”,另一个使用HCI中的“免提接口”,这是一种主要用于残疾人使用的辅助技术。
In hands- Interface应用程序,它突出显示通过手势控制光标,而不使用鼠标/键盘,但通过手势执行类似的活动。这种免提界面将帮助他们通过自主的动作,如头部运动,来控制电脑,并通过定制的教育软件或表情构建程序进行交流。实现这一目标的一种方法是用网络摄像头捕捉所需的特征,并监控其动作,以便将其转换为与计算机通信的一些事件。在我们的应用程序中,我们使用面部特征与计算机交互。所述鼻尖被选择为指向装置;这一决定背后的原因是鼻子的位置和形状;由于它位于脸的中间,因此使用它作为移动鼠标指针并定义其坐标的功能会更舒服。眼睛被用来模拟鼠标点击,所以用户可以在眨眼时触发他们的事件。这将帮助他们使用自主运动,比如头部运动;通过定制的教育软件或表情构建程序控制电脑和交流。 People with severe disabilities can also benefit from computer access to take part in recreational activities, use the Internet or play games. This system can also be chosen to test the applicability of „Hands-free Interface‟ to gaming, as it is an extremely popular application on personal computers.
这项工作的目的是使用户能够更自然地与他们的计算机交互,通过简单的手/脸手势来移动鼠标和执行任务。任何熟悉电脑和相机的人都应该能够充分利用这项工作。

应用案例分析- I:手势光标控制通信模式

答:介绍

手势在手势识别中起着至关重要的作用。本节重点介绍如何使用手势来控制计算机系统,只需执行简单的命令,而无需使用传统的控制设备模式,如鼠标或键盘。该系统首先对输入图像进行采集,然后对输入图像进行预处理,将其转换为二值图像,实现手与背景的分离。然后计算手的中心和计算手的半径。使用凸壳算法计算指尖点。所有的鼠标移动都是用手势控制的。
一旦我们从相机获得图像,图像将从颜色空间RGB转换为YCbCr,如图1所示。然后,我们定义一个颜色范围为“肤色”,并将这些像素转换为白色;所有其他像素都转换为黑色。然后,计算手部背侧区域的中心。一旦确定了手,我们就会找到最适合这个区域的圆,并将这个圆的半径乘以某个值,以获得“非手指区域”的最大范围。从手的二值图像中,我们得到每个手指凸包的顶点。根据顶点和慢跑距离,我们得到了活动手指的位置。然后,通过扩展任意一个顶点,我们可以控制鼠标的移动。
为了识别手指是否在手掌区域内,我们使用了凸包算法。基本上,凸包算法是用来解决包含所有顶点的最大多边形的问题。利用该算法的这一特性,我们可以检测到手上的指尖。我们将使用这个算法来识别手指是否折叠。为了识别这些状态,我们将手半径值乘以2,并检查中心与凸包集中的像素之间的距离。如果距离比手的半径还长,那么一根手指就是摊开的。此外,如果结果中存在两个或两个以上有趣的点,则我们将最长的顶点视为食指,当结果顶点个数为两个或两个以上时,则单击手势。凸包算法的结果是一个包含所有顶点的顶点集合。因此,有时一个顶点被放置在其他顶点附近。这种情况发生在指尖的一角。 To solve this problem, we deleted a vertex whose distance is less than 10 pixels when comparing with the next vertex. Finally, we can get one interesting point on each finger

B.算法

凸包算法在手部检测和手势识别中有着广泛的应用。由于YCrCb颜色模型能有效地区分肤色,因此该模型优于RGB和HSV模型。为了更有效的检测,实现了一个背景减法算法来区分皮肤类物体和真实的皮肤颜色。首先,只抓取场景中有背景的一帧,之后,对于每抓取的一帧,都将新帧中的每个像素与初始帧中的对应像素进行比较,如果根据特定的算法计算超过一定的阈值,则认为该像素来自人体,并将其绘制在具有原始颜色的新帧中。如果这个像素低于阈值,那么这两个像素被认为是相同的,它们被认为是背景,因此对应的像素将在第三帧中采用零颜色。在对所有帧的像素重复此操作后,现在我们将拥有一个只有一个人出现在其中的新帧,并且所有背景的颜色都为0。
现在我们已经有了如图2和图3所示的检测手,我们在这个手对象上应用了一个有效的手势识别算法,在这个手对象上画一个凸包,并计算这个凸包中的缺陷数量,如果没有发现缺陷,那么它是一只闭合的手,如果发现五个缺陷,那么有五个手指在挥舞,以此类推。

C. GUI和实现细节

我们已经使用OpenCV库实现了这个应用程序[6,7]。在GUI中,我们提供了三种命令模式,如图4所示。使用的命令如下所述:
o应用程序启动模式-用于启动或运行各种应用程序,如记事本、Microsoft Word和命令提示符等。
o鼠标移动模式-此模式支持鼠标操作,例如双击、右键和移动光标等。
o系统控制模式—用于控制系统关机、注销和系统重启活动。

应用案例研究- ii:通过免提手势的光标控制通信模式

答:介绍

在这个场景中,我们展示了一个通过面部手势控制计算机系统的应用程序。这里我们使用了支持向量机(SVM)。
支持向量机(svm)[11]是一种流行的机器学习方法,用于分类、回归和其他学习任务。它是一种新型的最大裕度分类器。LIBSVM是作为支持向量机库开发的一个包。因此LIBSVM是支持向量机(svm)的库。人脸检测过程使用该数据库进行模板匹配。Libsvm将所有必要的信息存储在由训练创建的“模型”文件中。它知道要使用什么内核和参数。您只需要提供模型文件和测试数据。支持向量机(SVM)模型是经典多层感知器神经网络的近亲。使用核函数,SVM是多项式、径向基函数和多层感知器分类器的另一种训练方法,其中网络的权重是通过解决线性约束的二次规划问题来找到的,而不是像标准神经网络训练那样通过解决非凸、无约束的最小化问题来找到的。 In the parlance of SVM literature, a predictor variable is called an attribute, and a transformed attribute that is used to define the hyperplane is called a feature. The task of choosing the most suitable representation is known as feature selection. A set of features that describes one case (i.e., a row of predictor values) is called a vector. So the goal of SVM modeling is to find the optimal hyper plane that separates clusters of vector in such a way that cases with one category of the target variable are on one side of the plane and cases with the other category are on the other size of the plane. SVM takes as an input training data samples, where each sample consists of attributes and a class label (positive or negative). The vectors near the hyper plane are the support vectors or in other words the data samples that are closest to the hyper plane are called support vectors.

B.使用的基本术语

下面给出了算法中使用的基本术语
1) SSR滤波器:
SSR滤波器代表:六个分段矩形滤波器[12],如图5所示
每个扇区中像素s2的总和记为S,并记为扇区号。
2)整体形象:
为了便于SSR滤波器的使用,使用了一种中间图像表示,称为积分图像,如图6所示。在这种表示中,位置x, y的积分图像包含像素x, y上方和左侧的像素之和,其每个扇区像素数的计算如图7所示。
3)支持向量机:
SVM以输入训练数据样本作为输入,每个样本由属性和一个类标签(正或负)组成。最接近超平面的数据样本称为支持向量。超平面通过平衡正支持向量和负支持向量之间的距离来定义,以获得训练数据集的最大裕度。我们已经使用SVM来验证“眉心之间”模板。
4)肤色型号:
人体皮肤像素值将在特定的固定值之间变化。为了找到肤色模型,从数据库中采集的771张人脸图像中每一张提取了735个皮肤像素样本。从这些样本中设置皮肤像素的阈值来识别像素是否为皮肤像素。

C.使用的人脸检测算法

[8],[9],[10]和[12]中讨论了一种好的人脸检测机制。其概述如图8所示
参考以上,主要算法流程如下:
1)寻找候选面孔:
为了找到候选人脸,SSR滤波器将以以下方式使用,如图9所示:
1.1利用公式对视频帧进行一次遍历,计算积分图像:
S (x,y) =a(x,y-1) + i(x,y)
Ii (x,y)= Ii (x-1,y) + s(x,y)
1.2将SSR滤波器左上角放置在图像的每个像素上,只在滤波器完全落在图像边界内的像素上。
1.3放置SSR滤波器,使理想位置下眼睛落在S1和S3扇区,鼻子落在S5扇区,如图9所示。
1.4对于每个位置,用公式检查条件:
S1 < S2
S2 > S3
S1 < s4 && s3 < s6
1.5在满足条件的情况下,将滤波器中心视为候选面。
2)聚类人脸候选:
所使用的聚类算法如下:
2.1图像从左上角传递到右下角;对于每个面部候选人fc:
·如果所有邻居都不是face candidate,则为fc分配一个新标签。
·如果其中一个邻居是候选人脸,将其标签分配给fc。
·如果有几个邻居是face candidate,将其中一个的标签分配给fc,并注意标签是相等的。
2.2在完成第一次传递后,我们将进行另一次传递,为每组相等的标签分配一个唯一的标签,因此最终的标签将成为集群的标签。
2.3用以下公式设置每个足够大的聚类中心:
X = [Σ X (i)]/n
Y = [Σ Y (i)]/n

3)寻找学生候选人:

为了提取BTE模板,我们需要定位小学生的候选人,因此对于每个人脸候选人聚类:
3.1将SSR过滤器置于该聚类的中心。
3.2用一定阈值对扇区进行二值化,找到属于暗区的像素。
3.3如果阈值只产生一个聚类,则计算聚类中下半部分扇区的面积,如果大于指定的阈值,则下半部分的中心为瞳孔,否则对上半部分进行同样的计算,否则省略扇区,没有瞳孔。
3.4如果有多个集群:
-找到扇区中最大、最暗、最接近暗像素的聚类。-如果左边或右边的瞳孔候选人没有找到,跳过集群。
4)提取BTE模板:
在找到每个聚类的学生候选人后,提取BTE模板,以便将它们传递给支持向量机。在提取模板后,我们以特定的比例将其缩小,我们得到一个具有训练模板的大小和对齐方式的模板。
4.1通过除以23上左右学生候选人之间的距离(训练模板中左右学生之间的距离),得到scale rate (SR)。
4.2提取大小为35*SR * 21*SR的模板

5)分类模板:

5.1将提取的模板传递给支持向量机。
5.2将每个阳性结果乘以其模板所代表的聚类面积。
5.3如果所有分类结果均为阴性,则使用较小的SSR滤波器尺寸重复人脸检测过程。
5.4选择结果最高的人脸作为最终检测人脸后,将提取该结果的模板所用的两个学生候选人设置为检测眼睛。
找到鼻尖:
6.1提取感兴趣区域(ROI)
6.2使用宽度为双眼距离一半的SSR滤波器定位感兴趣区鼻梁点(NBP)。
6.3如果中心扇区比侧面扇区亮,则SSR滤波器中心为NBP候选扇区:
S2 > S1
S2 > S3

7)霍夫变换:

我们的眉毛检测算法采用了霍夫变换。假设我们有一组点,我们需要找到尽可能多地经过这些点的直线。在霍夫变换中,直线有两个属性:Θ和τ
为了检测出经过点集的直线,Hough变换算法的步骤为:
对于集合中的每个点:
1.求出从这一点经过的直线。
2.求出每一行的Θ和τ。
3.对于每一行:
o如果它已经存在(有一行具有相同的Θ和τ,并且从另一个点传递),则将其计数器增加1。
o如果是新行;创建一个新计数器并将值1赋给它。
D.使用的人脸跟踪算法
1)设置特点ROI:
被跟踪特征在过去两帧(时刻t-1和t-2)中的位置被用来预测它在当前帧(时刻t)中的位置。为此,计算特征模板在帧t-2和t-1之间所做的移位值,并将当前帧中特征的ROI从特征在帧t-1中的最后位置(时刻t-1)移位。ROI位置的设置方式是完全停留在视频帧的边界内。
2)模板匹配:
该特性的新位置将在ROI中找到。在ROI上扫描具有特征模板大小的窗口,并计算模板和当前窗口之间的SSD(和平方差)。扫描整个ROI后,选择SSD最小的窗口作为模板的匹配点,将其位置视为特征的新位置。为了达到更快的效果;在计算SSD时,如果它的值仍然小于目前最小的SSD,我们继续计算它;否则我们跳到ROI中的下一个窗口,因为我们确定当前SSD不会是最小的SSD。
•选择特征模板进行匹配
在每一帧中应用与特征的第一个模板和前一帧的模板匹配的模板;通过这种方式,与第一个模板的匹配将确保我们跟踪的是正确的特征(例如,如果它在遮挡后重新出现),至于与前一帧模板的匹配,它确保我们在状态变化时仍然跟踪相同的特征。
跟踪鼻尖将通过ROI内部的模板匹配来实现。
•检测眉毛
为了检测眉毛,在眼睛的预期位置上方取一个小区域,并对其进行阈值,因为眼睛上方的区域只包含眉毛和前额,阈值的结果应该是代表眉毛的点。为了从阈值点集合中找到眉线,使用霍夫变换。
•运动检测
为了检测某一区域的运动,我们将该区域的像素从前一帧的相同像素中减去,在给定位置(x, y),如果减去的绝对值大于某个阈值,我们就认为该像素处有运动。
•眨眼检测
为了检测眨眼,我们在眼睛的ROI中应用运动检测;如果感兴趣区运动像素的数量大于某个阈值,我们认为检测到眨眼,因为如果眼睛是静止的,并且我们检测到眼睛的感兴趣区有运动,这意味着眼睑在移动,这意味着眨眼。
•眼球追踪
为了获得更好的眼球跟踪结果,我们将使用BTE(一个被良好跟踪的稳定特征)作为我们的参考点。在定位到BTE和眼睛后的每一帧,我们计算眼睛与BTE的相对位置;在定位BTE后的下一帧中,我们假设眼睛保持了它们与BTE的相对位置,因此我们将眼睛的roi置于与当前帧的新BTE相同的相对位置。为了在ROI中找到眼睛的新模板,我们结合了两种方法:第一种方法使用模板匹配,第二种方法在ROI中搜索最深的区域(因为眼睛瞳孔是黑色的),然后我们使用两个找到的坐标之间的平均值作为眼睛的新位置。

E. GUI和实现细节

1)等待帧GUI:

这是用户一运行应用程序就会显示的帧。当系统在后端被处理时,等待屏幕和等待游标如图12所示。

2)主框架GUI:

图13是应用程序的主GUI。在等待帧之后,只有当所需的网络摄像头连接并检测到时,才会显示该帧。如果应用程序在运行时没有找到所需的网络摄像头,将显示一个错误消息。该帧由一个视频捕获空间组成,用户的视频在其中被捕获。它由四个按钮组成,有四种不同的功能:
“检测面部”这个按钮将捕捉用户的视频,屏幕上现在将覆盖检测到的面部特征,如眼睛、鼻子。这些特性由用户可见的黑色矩形标记。随着用户移动,这些特征将不时被检测到。因此,我们期望用户在进行人脸检测时和检测后都不会做出快速的动作,如图14所示。
启用可视化—这个按钮将在计算机屏幕的右上角为用户提供一个小预览窗口,以便检查功能是否被正确跟踪。
刷新—此按钮将在需要时为用户刷新整个特征检测过程。
停止跟踪—此按钮将停止跟踪特征,视频上标记的黑色矩形将消失
框架还包括各种复选框,显示眼睛,鼻子,BTE, ROI,眨眼,运动和眉毛。这使用户能够选择他/她希望应用程序在屏幕上显示的功能。例如,如果选择了显示眼睛和显示鼻子,视频将只显示用矩形标记的眼睛和鼻子。
这个GUI显示了按下检测按钮后的主要框架。当用户从复选框列表中选择了显示眼睛,显示鼻子和显示眉毛时,这些各自的特征被准确地标记出来。
如图15所示,这个图形用户界面显示了启用视图按钮时的预览窗口。

结果与讨论

A.应用案例研究-I

下图16左边是人类的手势,右边是分割后的手。此手势用于选择第一种模式,即应用程序启动模式。选择第一种模式后,可以根据手势打开各种应用程序。
在选择应用程序启动模式后,用户可以选择任何一个手势并启动相应的应用程序。在图17中,只使用一个手指的手势来打开记事本。用两根手指打开微软Word。像这样,提供了4个选项来启动各种应用程序
下图18显示了第二种模式,即鼠标移动模式的选择。在这种模式下,用户可以使用鼠标的功能,如双击,右键和光标移动。

B.应用案例研究-II:

所设计的图形界面在不同的人脸和雷电条件下进行了测试,获得了合理的人脸检测精度。一旦人脸被检测到,它就被用来取代鼠标/键盘,通过人脸来实现光标控制。下图显示了系统在不同人员和光照条件下的测试结果,如图19所示,在明亮光照条件下测试了A人脸,在图20中测试了B人脸,在低光照条件下测试了C人脸,如图21所示。

结论

对手势检测系统进行了研究,提出了一种提高系统适应性的技术。讨论了两种应用场景,参考光标控制计算机系统与替代传统鼠标。一个应用案例是使用手势,另一个是用手,即面部手势。所采用的算法在该系统上进行了验证,并应用于控制系统,取得了合理的精度。免提人机界面是手势识别的一个重要方面,具有广泛的应用前景。对于眼睛和鼻尖特征的识别,使用了几种方法,但模板匹配技术和使用SSR滤波器和支持向量机通过简单的数学计算和逻辑为我们提供了有效的精度。在保持光照条件不变和背景颜色均匀的约束下,得到了所需精度的最小值

鸣谢

作者要感谢在这项研究工作中给予帮助的UG学生。

数字一览

数字 数字 数字 数字 数字
图1 图2 图3 图4 图5
数字 数字 数字 数字 数字
图6 图7 图8 图9 图10
数字 数字 数字 数字 数字
图11 图12 图13 图14 图15
数字 数字 数字 数字 数字
图16 图17 图18 图19 图20
数字
图21

参考文献













全球科技峰会