多点触控手势识别算法的研究
- 格式:doc
- 大小:23.50 KB
- 文档页数:8
手势识别算法总结手势识别算法是指通过计算机视觉和模式识别技术,对人的手势进行实时检测和分类的过程。
手势识别算法在人机交互、虚拟现实、智能监控等领域具有广泛的应用前景。
本文将对手势识别算法的基本原理、分类方法、应用领域等进行综述。
手势识别算法的基本原理是利用图像或视频中的人手部分进行检测和分类。
首先,通过图像或视频的采集设备(如摄像头)获得人手的图像序列。
然后,对获得的图像进行预处理,包括背景减除、手势分割、噪声过滤等。
接着,对预处理后的图像进行特征提取,常用的特征包括颜色特征、纹理特征、形状特征等。
最后,通过训练分类器对提取的特征进行分类,得到手势的类别。
手势识别算法可以分为基于2D图像和3D模型的方法。
基于2D图像的方法是指在2D平面上对手势进行检测和分类。
常用的算法包括基于背景减除的方法、基于模板匹配的方法、基于统计学的方法等。
基于背景减除的方法通过建模背景和前景来实现手势分割,然后对分割的手势进行特征提取和分类。
基于模板匹配的方法是指事先构建一系列模板,然后将待识别手势与模板进行匹配,选择匹配最好的模板作为识别结果。
基于统计学的方法是指通过统计的方法计算手势与训练样本之间的相似性,然后选取相似性最高的样本作为识别结果。
基于3D模型的方法是指在3D空间中对手势进行检测和分类。
常用的算法包括基于深度摄像机的方法、基于传感器的方法、基于模型拟合的方法等。
基于深度摄像机的方法通过获取物体与摄像机之间的深度信息,从而实现对手势的精确定位和分类。
基于传感器的方法是指通过手持传感器(如陀螺仪、加速度计等)获取手势的运动轨迹和姿态信息,然后对这些信息进行处理和分类。
基于模型拟合的方法是指通过建立手势模型,然后将待识别手势与模型进行拟合,选取拟合效果最好的模型作为识别结果。
手势识别算法在许多领域具有广泛的应用。
在人机交互中,手势识别可以替代传统的鼠标和键盘输入,提供更直观、自然的交互方式。
在虚拟现实中,手势识别可以实现用户的身体感知和控制,增强虚拟场景的沉浸感。
基于深度学习的手势识别算法研究随着人工智能技术的不断发展,手势识别作为一种自然交互方式,得到了广泛应用。
成为当前研究的热点之一。
本文将介绍基于深度学习的手势识别算法的研究现状和主要方法。
目前,基于深度学习的手势识别算法主要分为两个阶段:手部检测和手势分类。
手部检测是指在图像或视频中准确定位手部区域的过程,通常采用卷积神经网络(CNN)进行。
CNN通过学习大量手部图像数据,能够提取出手部的特征信息,从而实现手部的准确检测。
手势分类是指对检测到的手部图像进行分类,判断手势的类别。
常用的手势分类方法包括卷积神经网络、循环神经网络(RNN)和深度信念网络(DBN)等。
在手部检测方面,研究者们提出了一些有效的方法。
例如,基于深度学习的手部检测算法可以通过训练一个深度卷积神经网络,从而实现对手部的快速、准确的检测。
此外,还有一些算法采用了目标检测器,如Faster R-CNN和YOLO等,结合深度学习技术,实现了对手部的高效检测。
手势分类是手势识别算法的核心部分。
卷积神经网络是目前最常用的手势分类方法之一。
卷积神经网络通过学习手部图像的特征,可以将手势图像分类到不同的类别中。
此外,循环神经网络也被广泛应用于手势分类任务中。
循环神经网络能够处理序列数据,对于一些需要考虑时间信息的手势识别任务,循环神经网络具有较好的效果。
深度信念网络则是一种无监督学习方法,在手势分类中也有一定的应用。
基于深度学习的手势识别算法研究取得了显著进展,但仍然存在一些挑战。
例如,手势识别算法对于光照变化、遮挡和手势形变等因素较为敏感,需要进一步改进。
此外,由于深度学习算法的复杂性,对于硬件资源和计算能力的要求较高,也需要进一步优化。
总之,基于深度学习的手势识别算法是当前手势识别领域的研究热点,通过深度学习技术的应用,可以实现对手势的准确、高效识别。
随着深度学习技术的不断发展,相信基于深度学习的手势识别算法将会有更广泛的应用前景。
基于深度学习技术的手势识别算法研究一、背景手势识别是指通过对人的手部动作的分析和处理实现对人的意图的理解,从而加强人机交互。
随着科技的发展,人工智能技术不断提升,深度学习技术被广泛应用于手势识别领域,成为目前最具潜力和最有效的方法之一。
二、手势识别分类思路手势识别分为静态手势识别和动态手势识别两种方法。
1、静态手势识别静态手势识别是通过一次拍摄或照相,并对手势图像进行处理,最终对图像进行分类。
静态手势识别系统通常使用图像分类算法,包括传统算法和深度学习算法。
2、动态手势识别动态手势识别是通过采集到的手势运动序列信息来进行手势分类。
目前常用的方法是使用传感器来获取手部运动信息,包括加速度计、陀螺仪、电容等。
然后,将得到的序列数据输入到分类模型中,通过识别手势的方式对其进行分类。
三、深度学习技术在手势识别中的应用深度学习技术在手势识别中具有以下优势:1、对于数据的自动化特征提取和分类传统算法需要由人工提取和选择手势特征,这一过程比较费时且受到人的主观因素的影响。
而深度学习技术可以自动从原始数据中提取特征,并通过训练来选择最优的特征,从而实现对手势的分类。
2、动态数据的处理能力深度学习技术可以处理序列数据,从而实现对动态手势的分类和识别。
3、处理多种手势组合手势识别系统必须可以处理多种组合手势,以满足不同场景下的需求,而深度学习技术具有较强的泛化能力,可以适应不同的手势组合。
四、常用的深度学习算法1、卷积神经网络(CNN)卷积神经网络可以自动从原始数据中提取有用的空间特征,适用于2D和3D图像识别问题。
其优点是能够处理大量的图像数据,同时避免了人工提取特征的瓶颈。
对于静态手势识别问题,CNN可以对手部图像进行分类。
2、循环神经网络(RNN)循环神经网络可以处理时间序列数据,因此适用于动态手势识别问题。
RNN的一种变体LSTM可以有效处理长期依赖关系。
RNN通过重复使用网络中的单元,将当前状态和前一状态的隐藏层状态相关联,从而对序列数据进行学习和预测。
基于深度学习的手势识别算法设计与实现人类表达情感和交流信息的一种方式就是使用手势。
手势识别技术可以让计算机自动识别人类手势并转换成数字信息。
基于深度学习的手势识别算法设计与实现已经成为热门研究课题,本文将介绍其原理、应用和未来发展。
一、手势识别基本原理手势识别是一种计算机视觉技术。
计算机视觉指的是让计算机“看懂”图像、视频等视觉信息的技术。
手势识别的流程主要包括手势图像采集、特征提取、分类识别等步骤。
手势图像采集:手势图像采集是手势识别技术的第一步。
通常需要使用相机等设备将人类手势图像进行采集,以获取手势信息。
特征提取:特征提取是手势识别技术的关键步骤。
在这一步骤中,需要对手势图像进行处理,以提取出其中的特征。
特征可以是手势的轮廓、颜色等。
分类识别:分类识别是手势识别技术的最终目标。
在这一步骤中,需要将提取出的特征进行分类,并将其与预定义的手势类别相对应。
通常使用分类器算法进行分类。
二、基于深度学习的手势识别算法深度学习是一种使用多层神经网络进行学习的机器学习技术。
基于深度学习的手势识别算法使用多层神经网络进行特征提取和分类识别,相对于传统的手势识别算法,在准确性和鲁棒性上有很大提升。
基于深度学习的手势识别算法主要包括卷积神经网络(CNN)和循环神经网络(RNN)。
卷积神经网络是一种专门用于处理图像、声音等数据的神经网络。
该网络在结构上类似于视觉皮层,可以通过卷积操作实现对图像特征的提取。
循环神经网络是一种专门用于处理序列数据的神经网络。
该网络通过网络节点之间的循环结构实现对序列数据的处理和学习。
基于深度学习的手势识别算法可以使用各种神经网络结合进行构建,以实现不同的特征提取和分类识别。
三、手势识别算法的应用手势识别算法的应用广泛,包括但不限于:1、交互技术:手势识别技术可以用于人机交互,例如控制电脑、家电等。
2、虚拟现实技术:手势识别技术可以用于虚拟现实技术中的操作和交互。
3、医疗健康:手势识别技术可以用于医疗健康中,例如进行康复训练、姿势纠正等。
多点触控(Multi-Touch)屏幕技术综述多点触控(Multi-Touch)屏幕技术综述摘要:随着iPhone等触控手机和平板电脑的日益火爆,人机互动领域成为新时尚热点,人们追求这种效果华丽、科技感强大的触控技术产品。
多点触控技术,支持复杂的姿势识别,通过手势操作,可以实现放大缩小图像等功能。
从此,人们可以甩开鼠标键盘,用双手就可以浏览图片、拖拽文件,甚至大玩游戏,一点一拨之间就轻松体验到充满科技乐趣的全新产品。
本文将从多点触控技术的定义,发展,当前应用,主要的研究方法分类和发展前景这几个发面对多点触控技术进行综述。
关键词:多点触控;Multi-touch;多通道交互技术1、多点触控(Multi-Touch)屏幕技术定义多点触控(又称多重触控、多点感应、多重感应,英译为Multi-touch或Multi-touch)是一项由电脑使用者透过数只手指达至图像应用控制的输入技术。
是采用人机交互技术与硬件设备共同实现的技术,能在没有传统输入设备(如鼠标、键盘等)的情况下进行计算机的人机交互操作[1]。
多点触控系统特点:1、多点触控是在同一显示界面上的多点或多用户的交互操作模式,摒弃了键盘、鼠标的单点操作方式。
2、用户可通过双手进行单点触摸,也可以以单击、双击、平移、按压、滚动以及旋转等不同手势触摸屏幕,实现随心所欲地操控,从而更好更全面地了解对象的相关特征(文字、录像、图片、卫片、三维模拟等信息)。
3、可根据客户需求,订制相应的触控板,触摸软件以及多媒体系统;可以与专业图形软件配合使用。
2、多点触控(Multi-Touch)屏幕技术发展历史多点触控技术始于1982年由多伦多大学发明的感应食指指压的多点触控屏幕。
同年贝尔实验室发表了首份探讨触控技术的学术文献。
1984年,贝尔实验室研制出一种能够以多于一只手控制改变画面的触屏。
同时上述于多伦多大学的一组开发人员终止了相关硬件技术的研发,把研发方向转移至软件及界面上,期望能接续贝尔实验室的研发工作。
基于视觉信息的手势识别算法与模型研究共3篇基于视觉信息的手势识别算法与模型研究1近年来,随着科技的发展,手势识别技术已经成为了一个备受关注的研究领域。
手势识别技术可以在很多领域有着广泛的应用,例如人机交互、虚拟现实、智能手机等等。
而基于视觉信息的手势识别算法与模型也是其中的一个热门研究方向。
基于视觉信息的手势识别算法与模型,主要是指通过利用摄像头采集到的视频图像,把手部动作(即手势)转换成计算机能够识别和处理的信息。
相比于传统的手势识别技术,基于视觉信息的手势识别技术具有许多优势,例如:不需要外部设备、用户操作简单、输入自然等等。
因此,该技术受到了越来越多的关注和研究。
在基于视觉信息的手势识别中,图像处理是最核心的环节。
一方面,手势是一种比较复杂的视觉信号,包含许多不同的特征,如色彩、纹理、形状、大小等等。
因此,图像处理需要提取出这些特征,以便计算机能够识别和理解手势。
另一方面,视角和照射条件等因素也会对图像产生影响,因此,需要对图像进行预处理和校正,以确保识别的准确率和稳定性。
在手势识别算法中,机器学习是一种广泛应用的方法。
机器学习是指通过程序自动分析数据,以获取新的知识或技能,从而让计算机能够预测未来的结果。
在手势识别中,机器学习可以帮助计算机学习和识别不同的手势模式。
例如,支持向量机、决策树等算法可以用来训练分类器,从而判断手势的类型。
而在实际应用中,需要针对不同的任务选择不同的算法进行处理,以最大限度地提高识别准确率。
除了手势识别算法之外,手势识别模型也是一个十分关键的因素。
手势识别模型用于描述和分析手势的姿态和动作。
常用的手势识别模型包括基于规则、基于特征、基于计算机视觉等等。
其中,基于物体识别技术(如Haar级联分类器)的手势识别模型是应用最为广泛的一种,它可以根据人手的位置和大小等特征来识别手势。
虽然基于视觉信息的手势识别技术已经得到了广泛的研究和应用,但仍然存在一些问题和挑战。
例如,手势具有多样性和变化性,对图像处理和算法设计的要求较高。
多点触控原理多点触控技术是一种现代化的交互方式,它可以让用户通过手指在屏幕上的操作来完成各种任务。
多点触控技术的原理是基于电容屏幕的,通过感应手指的电荷来实现屏幕上的操作。
多点触控技术的原理是基于电容屏幕的。
电容屏幕是由一层导电玻璃和一层感应电极组成的,当手指接触到屏幕时,会形成一个电容,这个电容会改变感应电极的电场,从而产生一个电信号。
这个电信号会被传输到处理器中,处理器会根据这个信号来确定手指的位置和操作。
多点触控技术的实现需要借助于一些算法和软件。
这些算法和软件可以识别出手指的位置和操作,从而实现各种功能。
例如,当用户用两个手指在屏幕上滑动时,系统会识别出这个操作,并将其解释为缩放操作。
当用户用三个手指在屏幕上滑动时,系统会识别出这个操作,并将其解释为切换应用程序的操作。
多点触控技术的优点是显而易见的。
它可以让用户更加自然地与设备交互,从而提高用户的体验。
它还可以提高设备的可用性和可靠性,因为它可以减少用户误操作的可能性。
此外,多点触控技术还可以提高设备的安全性,因为它可以识别出不同的手指,从而防止他人非法操作设备。
多点触控技术的应用非常广泛。
它可以用于智能手机、平板电脑、笔记本电脑等各种设备上。
它还可以用于各种应用程序中,例如游戏、办公软件、浏览器等。
此外,多点触控技术还可以用于各种交互式展示系统中,例如博物馆、展览等。
总之,多点触控技术是一种非常先进的交互方式,它可以让用户更加自然地与设备交互,从而提高用户的体验。
它的原理是基于电容屏幕的,通过感应手指的电荷来实现屏幕上的操作。
多点触控技术的应用非常广泛,可以用于各种设备和应用程序中。
基于计算机视觉的手势识别算法研究一、引言计算机视觉技术的快速发展,不仅已经广泛应用于智能交通、安防监控、智能家居等领域,而且在手势识别、人脸识别等细分领域也有着广泛的应用。
在手势识别领域中,基于计算机视觉的手势识别算法能够高效准确地识别人的手势,从而大大提高了生活、办公、娱乐等方面的智能化水平。
二、手势识别技术的现状现有的手势识别技术主要分为基于传感器和基于摄像头两种。
基于传感器的手势识别技术主要通过加速度传感器、陀螺仪、磁力计等传感器来获取手势信息,但这种技术存在单一性、准确性不高、随身携带不便等问题。
相比之下,基于计算机视觉的手势识别技术具有成本低、无需外部硬件、可靠性高等优点。
然而,手势识别技术也存在一些问题。
例如,环境光线的变化、背景干扰、手势姿态多样性等问题会对识别效果产生影响。
因此,如何提高手势识别的精度和鲁棒性是目前该领域的研究热点。
三、基于计算机视觉的手势识别算法研究基于计算机视觉的手势识别算法主要分为以下几种类型:1. 基于轮廓的手势识别算法:这种算法基于手势的轮廓信息进行识别。
通过将手势的轮廓提取出来,然后获取轮廓的直线、曲线等特征,来进行手势的分类。
2. 基于特征点的手势识别算法:这种算法基于手势上的特征点进行识别。
通过深度学习等方法提取手势上的特征点,并对这些特征点进行分类识别,从而实现手势的识别。
3. 基于深度学习的手势识别算法:这种算法运用深度学习方法对手势进行分类识别。
其中,卷积神经网络(CNN)是常用的神经网络模型之一,可以从海量数据中学习手势特征,从而实现手势的识别。
以上算法各有优缺点,也有适用场景的区别。
例如,基于特征点的手势识别算法适用于手势变化较小的情况,而基于深度学习的手势识别算法适用于手势变化较大的情况。
四、手势识别技术的应用基于计算机视觉的手势识别技术已经广泛应用于生活、办公、娱乐等领域,例如:1. 智能家居:通过手势识别技术,人们可以实现家庭智能化控制,例如调整灯光、控制家电等。
手势识别算法的优化与实现随着智能设备的普及,手势识别技术越来越受到关注。
手势识别技术可以让人们通过手势来控制设备和应用程序,不用再依赖鼠标和键盘。
手势识别技术的核心是算法,这里我们将讨论手势识别算法的优化和实现。
一、基础算法手势识别算法的基础是模式识别。
在模式识别中,我们需要将输入的数据映射到一个确定的类别。
手势识别中,输入的数据是手势,映射的类别是手势所代表的含义。
基础算法包括分类器和特征提取器。
分类器是判断输入数据属于哪个类别的算法,常见的分类器包括支持向量机、k-近邻算法和朴素贝叶斯分类器。
其中,支持向量机在手势识别中应用最广泛,它能够快速准确地识别手势。
特征提取器则是将输入数据转换成一组特定的特征集合。
常见的特征包括手势的形状、速度、方向和加速度等。
特征提取器是手势识别算法的关键,正确选择特征可以大大提高识别准确率。
二、优化算法目前手势识别算法存在几个问题,如误识别、灵敏度不足、处理速度慢等。
为了解决这些问题,需要对算法进行优化。
1.数据采集和标记手势识别算法的准确率与数据质量和数量有直接关系。
数据采集时需要保证手势的全面性、多样性和真实性。
标记时需要注意分类标准、标记方式和标记者的一致性。
2.特征选择和提取特征选择和提取是手势识别算法的关键。
正确选择特征可以大大提高识别准确率。
其中,形状、速度、方向和加速度等特征对于手势识别至关重要。
同时,还需要注意特征的不变性和可区分性,以克服不同手势之间的相似性。
3.模型优化和参数调整手势识别算法中需要考虑模型结构、参数调整和算法框架等方面的优化。
模型结构的优化包括选择合适的模型结构和关键参数,以克服模型过拟合和欠拟合问题。
参数调整则是通过调整模型参数来平衡模型的准确性和泛化能力。
4.深度学习深度学习算法是近年来广泛应用于手势识别领域的一种新技术。
与传统的机器学习算法相比,深度学习算法具有更强的自适应性和非线性表达能力。
通过采用深度学习算法,可以大大提高手势识别的准确率和鲁棒性。
电容式触摸屏的工作原理与多点触控技术电容式触摸屏作为当今最常用的触摸屏技术之一,广泛应用于智能手机、平板电脑和其他电子设备中。
它通过感应人体手指的电荷来实现触摸操作,并且可以支持多点触控技术,实现多点操作和手势识别。
本文将详细介绍电容式触摸屏的工作原理和多点触控技术。
一、电容式触摸屏的工作原理电容式触摸屏由触摸面板和控制电路两部分组成。
触摸面板一般由导电的玻璃或薄膜材料制成,上面涂有透明的导电层。
传感器阵列或电容传感芯片则作为控制电路的核心。
当手指触摸触摸屏表面时,由于人体的电荷,手指和导电层会形成一个电容。
控制电路会传递微弱的电流到导电层,此时,形成的电场会发生改变。
通过测量这个电容变化,触摸屏可以确定手指的位置。
具体来说,电容式触摸屏采用了两种不同的工作方式:静电感应和电荷耦合。
1. 静电感应:静电感应是电容式触摸屏的基本工作原理。
触摸屏上的导电层形成了一个电场,当有物体进入此电场时,导电层上的电荷会发生变化,从而检测到触摸位置。
2. 电荷耦合:电荷耦合是一种更现代化的电容式触摸屏技术。
触摸面板和导电层之间有一层绝缘层,电荷通过绝缘层传递到导电层,然后被检测到。
相比静电感应,电荷耦合可以提供更高的灵敏度和精确度。
二、多点触控技术电容式触摸屏支持多点触控技术,使用户可以实现多个手指同时操作屏幕。
这种技术的实现依赖于两种主要方法:基于电容耦合和基于传感器阵列。
1. 基于电容耦合的多点触控:在基于电容耦合的触摸屏上,屏幕表面的导电层是横向和纵向形成交叉的电容线圈。
当多个手指同时触摸屏幕时,每个手指会影响到不同的电容线圈,通过检测这些线圈的电荷变化,触摸屏可以确定多个手指的位置。
2. 基于传感器阵列的多点触控:基于传感器阵列的触摸屏将传感器分布在整个屏幕下方。
当手指触摸屏幕时,每个触摸点都可以检测到对应的位置。
通过分析多个触摸点的位置和变化,触摸屏可以实现多点触控和手势识别。
三、电容式触摸屏的优势和应用电容式触摸屏相比其他触摸屏技术具有以下几个优势:1. 灵敏度高:电容式触摸屏对触摸手势的反应速度非常快,可以实现流畅的滑动和操作。
基于图像处理的手势识别算法研究与实现随着计算机视觉技术的不断提升,基于图像处理的手势识别算法已经成为最为成熟的一种人机交互方式,被广泛应用于智能家居、虚拟现实、指令控制等领域。
然而,手势识别算法的实现不仅需要对图像处理技术进行深入研究,还需要综合运用机器学习、深度学习等多种算法进行优化,才能达到理想的识别精度和响应速度。
一、图像处理技术在手势识别算法中的应用在手势识别中,图像处理技术起着至关重要的作用。
其主要包括图像去噪、边缘检测、滤波、二值化等步骤。
其中,图像去噪是为了提高图像的信噪比,边缘检测用于提取目标轮廓,滤波和二值化则是为了让图像更容易被计算机识别。
图像处理的流程大致可以分为三步:首先,对输入的图像进行预处理,包括图像大小的规范化、亮度均衡化、噪声去除等操作;接着,通过人工特征提取来获取手势的形状、大小、位置等信息;最后,在建立数学模型的基础上,使用机器学习或深度学习算法来进行手势的分类和识别。
二、基于机器学习的手势识别算法研究在手势识别算法中,机器学习算法被广泛应用于训练分类器,从而实现自动识别手势的目的。
它通过定义一组特征向量,并通过不断优化算法参数来调整分类器的准确性和泛化能力。
这些特征通常取决于具体的手势应用,例如,对于手指识别,特征向量通常包括手指的长度、宽度、曲率等。
机器学习算法主要包括支持向量机(SVM)、人工神经网络(ANN)、决策树(DT)和随机森林(RF)等。
其中,SVM算法基于最大间隔分离准则,可以在高维特征空间中找到一个超平面,将不同分类样本集合分开。
ANN算法基于神经元结构,可以处理大量非线性特征并具有良好的泛化性。
DT算法则是一种将特征空间分成互不重叠的矩形区域的方法,通过分支操作逐层深入直到分类任务完成。
RF算法则是将多个决策树进行投票产生最终分类结果。
三、基于深度学习的手势识别算法研究深度学习算法在图像处理领域中的应用已经发展到了非常成熟的阶段,它可以自动从数据中学习特征,极大地方便了手势识别中特征提取的操作。
Computer Knowledge and Technology 电脑知识与技术人工智能及识别技术本栏目责任编辑:唐一东第8卷第6期(2012年2月)多点触摸概述与手势实现陈旸(厦门大学,福建厦门361005)摘要:多点触摸随着iphone 的推出风靡全球,是当今最炙手可热的人机交互方式。
该文对多点触摸的原理和编程模型进行简要的介绍,并给出了一些触摸手势的C#编程实现。
关键词:多点触摸;手势;C#中图分类号:TP311文献标识码:A 文章编号:1009-3044(2012)06-1387-031概述多点触摸作为一种全新的人机交互方式随着iphone 的推出风靡全球。
它允许人们直接使用双手作为输入设备控制我们的手机或者电脑,我们可以使用双指或者多根手指进行复杂的操作,大家都爱上了这种生动、多样、灵活、自然的交互体验。
Google 的Android 、微软的Windows 7、Window Phone 7以及即将推出的Windows 8都加入了对多点触摸的支持,多点触摸成为现在最炙手可热的人机交互技术。
2多点触摸原理目前我们的电脑或者手机都是通过感应电容触摸屏(以下简称电容屏)实现多点触摸的。
电容屏的玻璃表面贴有一层透明的特殊金属导电物质,当手指触碰时触点的电容会发生变化,从而可以获知触点的位置。
电容屏又分为两类,自电容感应和互电容感应。
1)自电容感应自电容感应的感应单元是分立的行和列,他们分别检测行和列上面的电容变化。
如果只有一个触摸点的时候,行列上面都只有一个电容最大值,因此可以准确获得触摸的位置。
但是当有两个触摸点的时候,行列上面会有两个电容最大值,这个时候就会产生“鬼点”现象,无法准确获得触摸点的位置,如图1所示。
不过由于可以判断出两个手指的运动方向,所以依然可以进行缩放、平移、旋转等多点手势操作。
图12)互电容感应互电容感应是目前主流的电容屏技术。
由于它对每行每列交叉点都进行单独扫描检测,所以它可以识别到触摸的具体位置,没有自电容感应的“鬼点”现象。
多点触摸技术多点触摸顾名思义就是识别到两个或以上手指的触摸。
多点触摸技术目前有两种:Multi-Touch Gesture和Multi-Touch All-Point。
通俗地讲,就是多点触摸识别手势方向和多点触摸识别手指位置。
1 识别手势方向我们现在看到最多的是Multi-Touch Gesture,即两个手指触摸时,可以识别到这两个手指的运动方向,但还不能推断出详细位置,可以举行缩放、平移、旋转等操作。
这种多点触摸的实现方式比较容易,轴坐标方式即可实现。
把ITO分为X、Y轴,可以感应到两个触摸操作,但是感应到触摸和探测到触摸的详细位置是两个概念。
XY轴方式的可以探测到第2个触摸,但是无法了解其次个触摸确实切位置。
单一触摸在每个轴上产生一个单一的最大值,从而断定触摸的位置,假如有其次个手指触摸屏面,在每个轴上就会有两个最大值。
这两个最大值可以由两组不同的触摸来产生,于是系统就无法精确推断了。
有的系统引入时序来举行推断,假设两个手指不是同时放上去的,但是,总有同时触碰的状况,这时,系统就无法猜想了。
我们可以把并不是真正触摸的点叫做“鬼点”,1所示。
Multi-Touch All-Point是近期比较流行的话题。
其可以识别到触摸点的详细位置,即没有“鬼点”的现象。
多点触摸识别位置可以应用于任何触摸手势的检测,可以检测到双手十个手指的同时触摸,也允许其他非手指触摸形式,比如手掌、脸、拳头等,甚至戴手套也可以,它是最人性化的人机接口方式,很适合多手同时操作的应用,比如嬉戏控制。
Multi-Touch All-Point的扫描方式是每行和每列交错点都需单独扫描检测,扫描次数是行数和列数的乘积。
例如,一个10根行线、15根列线所构成的触摸屏,用法 Multi-Touch Gesture的轴坐标方式,需要扫描的次数为25次,而多点触摸识别位置方式则需要150次。
第1页共5页。
多点触控手势识别算法的研究作者:方成艳孔伟青邓秀勤来源:《软件工程师》2014年第11期摘要:本文针对当下流行的多点触控设备,对多点触控手势识别算法进行了研究,通过类比计算机中的快捷键设计出了一系列的触控手势,并结合曲线识别算法提出了一种多点触控手势识别算法。
实验在当下流行的Android设备上进行,手势检测成功表明了识别算法的有效性。
关键词:多点触控;算法;手势识别中图分类号:TP391.4 文献标识码:A1 引言(Introduction)多点触控技术是一种全新的人机交互技术[1],相对于传统的单点触控技术而言,它能同时检测和识别多个触点的位置和数量,从而提供了功能更加丰富的交互技术[2]。
2007年,苹果公司的iPhone手机和微软公司的surface桌面式计算机两款新产品的发布,将多点触控技术引入主流消费品市场[2],让普通用户真正享受这一技术带来的便利。
2009年微软发布的操作系统Windows 7提供了对多点触控技术的支持,使多点触控进入人机交互新时代[3]。
2011年,搭载谷歌安卓系统的触屏手机进入了主流消费市场,在全球的市场份额首次超过塞班系统,多点触控技术成为主流的触控技术。
可以预见,在未来多点触控技术将逐步取代传统的键盘、鼠标,成为人机交互的主流技术。
但是,多点触控技术在国内发展的时间短,技术方案尚有欠缺,一些核心技术及专利屏障为多点触控技的进一步发展形成一定的阻碍。
触摸精度低,错误率高,手易疲劳性以及由于手势扩展麻烦等问题,这些都在一定程度上制约了基于多点触控的双手交互技术的发展[4]。
同时,针对移动设备触摸屏的多点触控手势识别算法十分匮乏,这严重的限制了多点操作的进一步应用。
本文针对多点触控技术中手势功能较少,借鉴计算机快捷键(Ctrl+A、Ctrl+V等),设计了一系列新的手势,并利用基于相对高度的曲线特征提取算法进行手势特征提取、识别,在移动设备触摸屏上实现了传统计算机中的相应的快捷键功能,帮助用户更好地从传统计算机到触控设备的过渡。
2 传统触控手势(Traditional touch gestures)目前的触控手势分为单点和多点两种,单点触摸手势主要有:单击(Tap)、双击(Double Tap)、拖拽(Drag)、轻弹(Fling)、按压(Press)等,多点触摸手势主要有:旋转(Rotate)、捏(Pinch)、展开(Spread)、按压并单击(Press and Tap)、按压并拖拽(Press and Drag),下表列出了这些手势的图示名称和动作描述[5]:表1 传统触控手势Tab.1 Traditional touch gestures从上表来看,相对于传统的单点触控技术而言,多点触控实现的功能更加丰富,但就目前情况而言,手势功能相对较少,并没有完全发挥多点触控的优势。
下一节中,本文将对计算机中使用频率较高的快捷键,设计新的触控手势,从而进一步丰富多点触控交互技术,帮助用户逐步摆脱对传统键盘、鼠标的依赖。
3 手势设计(Gesture design)3.1 计算机中快捷键用户在使用计算机过程中,不可避免地使用到快捷键,快捷键的使用使工作更加高效、快速、准确地完成,因此快捷键在办公、娱乐、文件管理等方面发挥着巨大作用。
计算机中的快捷键很多,且很多快捷键功能并不常用,表2中列出了Windows系统下几个使用频率较高的快捷键。
表2 Windows系统快捷键Tab.2 Shortcut keys in the windows system快捷键功能使用说明Ctrl+A 全选文档操作或文件管理中使用Ctrl+C 复制文档操作或文件管理中使用Ctrl+V 粘贴文档操作或文件管理中使用Ctrl+X 剪切文档操作或文件管理中使用Delete 删除文档操作或文件管理中使用Ctrl+Z 撤销文档操作中使用Ctrl+Y 恢复文档操作中使用Alt+F4 关闭当前窗口窗口界面中使用Ctrl+S 保存文档操作中使用Ctrl+N 新建文档操作中使用3.2 手势设计原则为了能更好地帮助用户进行人机交互,触控手势的设计应便于用户理解和使用,为此,设计时应遵循以下原则[6]:(1)直观性原则:所设计的手势应符合用户的直观印象,如对图片进行“展开(Spread)”操作表示对图片进行放大,对图片进行“捏(Pineh)”操作,表示对图片进行缩小。
(2)实用性原则:所设计的手势功能必须是用户使用频率最高、最常用的功能,以便用户更好地进行人机交互。
(3)简洁性原则:所设计的手势应尽量简洁,做到简单明了,设计的手势不涉及复杂的轨迹,以便用户快速地掌握并使用。
3.3 手势方案设计根据3.2中的原则,设计手势如表3所示。
表3 本文设计的手势Tab.3 The gestures designed in the pape考虑到快捷方式的使用频率,本文暂只设计以上几种手势。
4 手势识别算法设计(The design of the gesturerecognition algorithm)在触控设备中,所绘手势以二维点集的形式进入设备中,而多点触控手势则表现为多个点集,其中,i表示第i个触点,本文中i=1,2。
本文中,所设计的多点手势较为简单,识别时可分别对Ai代表的二维曲线进行识别,因此多点触控手势识别可看作多个单点触控手势识别。
特征提取算法多点触控手势分割成多个单点触控手势后,对于每个单点手势,本文采用基于相对高度的曲线特征提取算法[7]进行曲线特征提取,该算法描述如下:a.完整手势b.手势分割c.手势分割图1 手势分割Fig.1 Gesture segmentation(1)对于开曲线AB:第一步:求出离曲线的端点连线最远的点P和曲线的相对高度,并存放相对高度在二叉树的根节点。
第二步:不妨设曲线的起点为A、P分曲线为两段。
计算曲线AP的相对高度h1,并存放在相应左子树的根节点上。
计算曲线BP 的相对高度h2,存放在右子树根节点上。
第三步:if h1第四步:if h2(2)对于闭曲线,特征提取算法如下:第一步:初始化二叉树的根节点为0。
第二步:求出曲线的直径AB、左曲线和右曲线。
第三步:计算左曲线的相对高度,右曲线的相对高度,分别存放在左、右子树的节点。
左、右曲线的最高点分左、右曲线成4段。
第四步:对于每一段曲线,如果带有分割前曲线的起点,则相对高度放在其左子树的节点。
否则,存放在其右子树的节点。
如果相对高度小于某一常数,则终止这段曲线的分割。
否则,继续分割曲线,转第四步。
任何一条曲线,经过上述的曲线提取算法后都会转化为一棵二叉树。
二叉树的层数由事前设定的相对高度阈值const决定。
理论上,如果const取无穷小,那么曲线可以转化为一棵无穷大的二叉树。
为了进行比较的方便,按照完全二叉树的次序遍历节点。
对于空的节点,添补0。
5 实验及结果分析(Experiments and resultsanalysis)5.1 实验平台本实验基于Android平台,在Windows 7(64位)操作系统中,利用JDK+Eclipse+Android SDK搭建安卓开发环境。
(1)JDK:java程序的编译环境,包括java ME(移动版)、java SE(标准版)、javaEE (企业版)三个版本,没有jdk,java程序将无法进行编译。
本实验应用的是java SE,版本为1.7.0_52。
(2)Eclipse:著名的跨平台开源集成开发环境(IDE),最初主要用来进行Java语言开发(需要先装jdk),也可通过加入插件使其作为C++、Python、PHP等其他语言的开发工具(本实验中Android使用java语言开发)。
从2006年起,Eclipse基金会每年都会发布新版本的Eclipse,本文使用的是Eclipse 4.2。
(3)Android SDK:Android软件开发包,主要用于Android开发包的管理、Android虚拟设备的管理。
要运行Android SDK,需先安装JDK。
5.2 实验步骤实验平台搭建好后,接下来就开始进行实验。
一般情况下,Android软件可以在电脑上的模拟器中运行,也可以在实体机中运行。
但本实验中,由于涉及多点触控,而电脑鼠标只能输入单点,故本实验只能用支持多点触控的Android设备运行。
本实验中用到的是支持多点触控的Android 2.3.3设备。
本实验程序基于Android绘图功能,设计手势绘制界面,利用Android多点触控事件的支持,对触摸坐标进行记录,程序流程如图2所示。
图2 程序流程Fig.2 Experimental procedure程序界面:程序界面主要分为手势添加和手势识别。
添加手势:绘制需加入到手势库中的手势,经特征提取后,加入手势库。
手势识别:绘制需检测的手势。
算法处理:利用第4部分设计的算法对所绘手势进行处理。
进行识别:对所要识别的手势进行算法处理后,搜索手势库进行匹配。
5.3 识别流程本实验中,识别分为三步:触点采集、特征提取、手势识别。
(1)触点采集:此过程主要是得到触点集。
本实验中,利用Androi系统中提供的多点触摸事件处理函数onTouchEvent对触摸事件进行监测,利用getX()和getY()方法得到触摸点坐标。
(2)特征提取:此过程主要是利用第4部分提出的基于相对高度的曲线特征提取算法对手势进行特征提取,提取后的将相应的手势特征存储到手势库中。
(3)手势识别:此过程主要是对所绘手势进行特征提到后,与手势库中的手势进行匹配,若匹配成功,则输出相应的手势名称,否则匹配失败,程序结束。
图3 手势识别算法流程Fig.3 The process of gesture recognition algorithm5.4 结果分析程序总界面如图4所示,此时手势库中无任何手势。
点击“添加手势”按钮则进入手势添加界面(图5),图6中手势已经加入了手势库中,从理论上讲,加入到手势库中的手势并无数量限制。
点击“识别”按钮,程序则进入手势识别界面(图7)。
图4 程序开始界面图Fig.4 Beginning gestures图5 手势添加界面图Fig.5 Adding gestures图6 手势添加完成图Fig.6 Added gestures图7 识别手势绘制Fig.7 The drawing of recognizing gesture识别时,将所要进行识别的手势绘制在手势识别区域即可,手势识别结果如图8所示。
图8 手势识别效果图Fig.8 The effect drawing of gesture recognizing由以上检测可知,成功检测了在手势库中所增加的五种手势。
6 结论(Conclusion)当今社会技术日新月异,多点触控技术越来越受到关注,传统的计算机设备正在逐步被新技术所取代,因此应充分发挥多点触控技术以便更好地服务人类,是当前多点触控发展趋势。