著录项信息
专利名称 | 轻击手势 |
申请号 | CN200510109726.X | 申请日期 | 2005-09-13 |
法律状态 | 权利终止 | 申报国家 | 暂无 |
公开/公告日 | 2006-04-12 | 公开/公告号 | CN1758205 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F3/0354 | IPC分类号 | G;0;6;F;3;/;0;3;5;4;;;G;0;6;F;3;/;0;4;1查看分类表>
|
申请人 | 微软公司 | 申请人地址 | 美国华盛顿州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 微软技术许可有限责任公司 | 当前权利人 | 微软技术许可有限责任公司 |
发明人 | E·K·里马斯-里比考司卡斯;J·W·佩蒂洛斯;L·B·基利;M·R·勒纳;R·邓肯;R·J·贾勒特;S·维基 |
代理机构 | 上海专利商标事务所有限公司 | 代理人 | 张政权 |
摘要
描述了一种用于确定是否发生轻击手势的系统和方法。轻击手势是可被容易地检测的简单手势,且以最小化与其它应用程序或手势的冲突为特征。
1.一种用于识别由定点设备创建的手势的方法,包括以下步骤:
检测所述定点设备的运动;
确定所检测到的运动是轻击手势,所述确定步骤包括:
确定发生所述运动的多个轻击区域中的一个轻击区域或发生的运动的方向;
确定所述定点设备的速率在一短暂时间间隔中没有下降初始速率的一个预定百分比;
提供指示用户刚执行的轻击手势的识别和与轻击手势关联的方向或轻击区域的动画反馈给用户,且所述动画反馈还指示了正在将有关轻击手势的消息发送给操作系统或计算应用程序。
2.如权利要求1所述的方法,其特征在于,所述定点设备包括鼠标,且所述由所述定点设备的运动确定的步骤包括确定在定点设备与计算机生成的显示的表面的接触之后是否发生所述定点设备的运动,其中所述接触包括鼠标按键的操作。
3.如权利要求1所述的方法,其特征在于,所述手势包括:
按下和按住手势;
双重激励手势;以及
轻击手势。
4.如权利要求3所述的方法,其特征在于,所述手势还包括按住和拖曳操作。
5.如权利要求3所述的方法,其特征在于,所述双重激励手势是鼠标键的双击。
6.如权利要求3所述的方法,其特征在于,所述双重激励手势是指示笔的双敲。
7.一种用于识别由定点设备创建的手势的方法,包括以下步骤:
确定所述定点设备在与计算机生成的显示接触后发生的运动距离是否超过第一运动阈值;
确定所述定点设备的速率在一短暂时间间隔中没有下降初始速率的一个预定百分比;
以及
基于所述两个确定步骤,提供动画反馈给用户,所述动画反馈指示了用户刚执行的手势的识别、轻击手势的方向,且所述动画反馈还指示了正在将有关手势的消息发送给操作系统或计算应用程序。
8.如权利要求7所述的方法,其特征在于,所述定点设备包括鼠标,且接触包括鼠标按键的操作。
9.如权利要求7所述的方法,其特征在于,所述定点设备包括指示笔,且接触包括与所述计算机生成的显示的表面的物理接触。
10.如权利要求7所述的方法,其特征在于,所述定点设备包括用户的手指,且接触包括与所述计算机生成的显示的表面的物理接触。
11.如权利要求7所述的方法,其特征在于,所述速率确定步骤包括:确定所述速率是否减少到第一速率阈值以下。
12.如权利要求7所述的方法,其特征在于,所述方法还包括以下步骤:
确定所述手势的路径的平直性,
其中,所述手势是基于所述平直性判定被确定发生的。
13.如权利要求7所述的方法,其特征在于,所述方法还包括以下步骤:
确定所述手势的开始是否在可涂墨区域中发生,
其中,当所述手势没有在所述可涂墨区域发生时,所述手势被确定为已经发生。
14.一种用于识别由定点设备创建的手势的系统,包括:
用于确定所述定点设备在与计算机生成的显示接触后的运动距离是否超过第一运动阈值的装置;
用于确定所述定点设备的速率是否没有下降的装置;以及
用于基于所述用于确定运动距离的装置和所述用于确定速率的装置执行的确定,来确定发生手势的装置;以及
用于提供动画反馈给用户的装置,所述动画反馈指示了用户刚执行的手势的识别、手势的方向,且所述动画反馈还指示了正在将有关手势的消息发送给操作系统或计算应用程序;
其中所述用于确定速率的装置包括用于确定所述速率在一短暂时间间隔中没有下降初始速率的一个预定百分比的装置。
15.如权利要求14所述的系统,其特征在于,所述定点设备包括鼠标,且接触包括鼠标按键的操作。
16.如权利要求14所述的系统,其特征在于,所述定点设备包括指示笔,且接触包括与所述计算机生成的显示的表面的物理接触。
17.如权利要求14所述的系统,其特征在于,所述定点设备包括用户的手指,且接触包括与所述计算机生成的显示的表面的物理接触。
18.如权利要求14所述的系统,其特征在于,所述用于确定速率的装置包括:用于确定所述速率是否减少到第一速率阈值以下的装置。
19.如权利要求14所述的系统,其特征在于,还包括:
用于确定所述手势路径平直性的装置,其中,所述手势是基于所述平直性判定来确定已经发生的。
20.如权利要求14所述的系统,其特征在于,所述系统还包括:
用于确定所述手势的开始是否在可涂墨区域中发生的装置,其中,当所述手势没有在所述可涂墨区域中发生时,所述手势被确定为已经发生。
轻击手势\n技术领域\n[0001] 本发明的各方面涉及计算系统。更具体地,本发明的各方面涉及确定何时发生手写手势的过程。\n背景技术\n[0002] 计算系统接受各种输入。某些计算机应用程序接受由定点设备形成的手势,以使能够更容易地控制和导航应用程序。然而,使用常规手势识别器的难点是,它们提供太多的假肯定和假否定。当用户正使用一定点设备(例如,指示笔或基于指示笔的计算机的手指或鼠标)时,系统可以将定点设备的正常动作解释为手势,并实现与该手势相关联的功能来迷惑用户。同样,当用户试图执行手势而计算系统没有将用户的行为识别为手势时,用户会感到灰心。在某些情况下,手势被移交给一单独的操作,在该操作中,在手势被识别前用户被迫更改系统的模式。例如,Opera浏览器(由挪威的Opera Software ASA of Oslo提供)允许鼠标手势用于控制浏览器的操作。类似的鼠标手势可通过Firefox浏览器(由加利福尼亚州芒廷维尤的Mozilla Organization提供)的插件来获得。尽管这些浏览器识别手势,但是要求用户切换浏览器的操作模式来明确地通知浏览器将要执行手势。在Opera和Firefox浏览器中,操作模式通过用户在执行手势之前点击鼠标右键(或辅助的鼠标按键)来切换。这里的问题是,必须执行多个步骤来完成所有的手势,即,按下鼠标右键然后拖动鼠标。当使用指示笔时,这些浏览器要求指示笔进入一个备选输入模式,即按下指示笔按键(如果该指示笔有指示笔按键)。这些多个步骤使手势变得麻烦。而且,尽管当压下鼠标或指示笔按键时,这些浏览器可以识别由直线构成的手势,但是在浏览器上可接受的手势通常在更多的环境中不可用,因为当应用于非只读环境(例如,文字处理环境)中时,它们会生成太多的假肯定。\n[0003] 在识别手势并向其分配功能的计算机系统或计算机应用程序中,通常单独使用形状来确定是否发生了手势。单独使用形状的一个问题是,使用慢速指示笔和鼠标的用户可能倾向于执行可被识别为手势的动作,尽管用户的意图是相反的。\n[0004] 标记菜单(也被称为环行菜单)是可以通过与定点设备的交互而访问的菜单。加拿大安大略省多伦多市Alias Systems公司的Maya和Alias应用程序提供了标记菜单的示例。尽管因为它们都包括开始和停止位置,标记菜单类似于手势,但是标记菜单被认为是菜单,因为用户输入的相关部分是按键放开或指示笔放开事件的位置,而不是到该位置的实际路径的形状。\n[0005] 需要能够由手势识别器容易地识别而用户仍能容易执行的改进的手势。\n发明内容\n[0006] 本发明的各方面解决上述的一个或多个问题,从而提供健壮地识别手势的过程。\n附图说明\n[0007] 本发明是通过示例来示出的,且不限于附图,附图中,同样的参考标号指示类似的元素,在附图中:\n[0008] 图1根据本发明的各方面示出了一个通用计算环境的说明性示例。\n[0009] 图2根据本发明的各方面示出了一个图形输入板计算机的说明性示例。\n[0010] 图3根据本发明的各方面示出了其中可以确定发生了轻击手势的多个区域。\n[0011] 图4根据本发明的各方面示出了用于确定是否发生轻击手势的过程。\n[0012] 图5根据本发明的各方面示出了用于向用户提供指令的说明性教学过程。图6根据本发明的各方面示出了可以与手势识别器一同使用的各种说明性组件。\n具体实施方式\n[0013] 本发明的各方面涉及识别轻击手势。\n[0014] 本文档被分成多个章节来帮助读者。这些章节包括:墨迹特征、术语、通用计算环境、手势、轻击手势、轻击手势的确定、训练和说明性实现方式。\n[0015] 注意,在下面的描述中描述了元素之间的各种连接。注意,这些连接一般(除非另外特指)可以是直接的或间接的,且该说明书不旨在限于这方面。\n[0016] 墨迹特征\n[0017] 正如使用墨水笔的用户所知,物理墨迹(使用带有墨水囊的笔在纸上涂写的那一种)可以比由线段连接的一连串坐标传达更多的信息。例如,物理墨迹可以反映笔的压力(通过墨水的浓度来反映)、笔的角度(通过线段或曲线段的形状和围绕离散点的墨迹的形态来反映)、以及笔尖的速度(通过平直性、线宽、以及随线条或曲线的行进而变化的线宽来反映)。更多的示例包括,墨水被吸收至纸张纤维或它所沉积到其上的其它表面的方式。\n这些微妙的特征也有助于传达以上列出的属性。因为这些额外的属性,与使用点之间统一线宽相比,能够更瞬时地传达情感、个性、强调等等。\n[0018] 电子墨迹(或墨迹)涉及当用户使用基于指示笔的输入设备时捕捉电子信息和对所捕捉的电子信息的显示。电子墨迹指的是,顺序或任意随机的笔划集合,其中每一笔划包括一连串点。笔划可以同时绘制或收集,或者可以在独立时间和位置上为独立的原因绘制或收集。点可以使用各种已知技术来表示,包括笛卡尔坐标(X,Y)、极坐标(r,Θ)和本领域中已知的其它技术。电子墨迹可以包括对真实墨迹的属性,包括压力、角度、速度、颜色、指示笔大小和墨迹不透明度等的表示。电子墨迹还可以包括其它属性,包括墨迹沉积到页面上的顺序(对大多数西方语言,是从左到右然后向下的光栅图)、时间标记(指示何时墨迹沉积)、墨迹作者的指示、以及发端装置(从其上汲取墨水的机器的标识和用来沉积墨迹的笔的标识中的至少一个)。\n[0019] 术语\n[0020] 墨迹 带有属性的笔划序列或笔划集。笔划序列可以包括有序形[0021] 式的笔划。该序列可以按捕捉时间来排序,或按笔划在页[0022] 面上出现的地方来排序,或在协作的情况下按墨迹的作者[0023] 来排序。其它顺序是可能的。笔划集可以包括笔划序列或[0024] 未排序的笔划或其任何组合。此外,某些属性对每一笔划[0025] 或该笔划中的点是唯一的(例如,压力、速度、角度等)。\n[0026] 这些属性可以在笔划级或点级储存,而不是在墨迹级储存。\n[0027] 墨迹对象 存储带有或不带有属性的墨迹的数据结构。\n[0028] 笔划 捕捉的点序列或点集。例如,当呈现时,点序列可以用线[0029] 条来连接。或者,笔划可以被表示为一个点和指向下一点[0030] 的方向的向量。简言之,笔划旨在包含与墨迹有关的点和[0031] 线段的任何表示,而不考虑点和/或连接点的物质的底层表[0032] 示。\n[0033] 点 定义空间中的位置的信息。例如,点可以相对于捕捉空间[0034] (例如,在数字化仪上的点)、虚拟墨迹空间(向其中放[0035] 置捕捉到的墨迹的空间中的坐标)和/或显示空间(显示设[0036] 备的点或像素)来定义。\n[0037] 文档 任何含有可查看表示和内容的电子文件。文档可以包括网[0038] 页、文字处理文档、便条页或便条本、电子表格、可视演[0039] 示、数据库记录、图像文件及其组合。\n[0040] 轻击 计算机系统的定点设备的短的、快速的、直线的运动。在[0041] 定点设备是指示笔或手指的情况下,轻击可以在启用指示[0042] 笔的计算机的表面上或在其表面上方发生。在定点设备是[0043] 鼠标的情况下,运动可以随按下鼠标按键或没有按下鼠标[0044] 按键而发生。轻击可以创建上述的笔划。注意,轻击也可[0045] 以由其它活动来创建,这些活动包括,但不限于,使用定[0046] 点设备的绘制或上墨。使用指示笔来执行轻击手势的优点[0047] 是,它允许结合启用笔的计算机(使用活动的笔和静态笔)[0048] 来使用轻击手势。使用鼠标来执行轻击手势的优点是,鼠[0049] 标容易使用且通常能够在大多数计算机中找到。使用手指[0050] 来执行轻击手势的优点是,某些用户相对于基于笔的计算[0051] 机上的指示笔而言更偏好使用手指——允许用户使用他们[0052] 的手指来执行轻击向他们提供轻击的功能而不需使用额外[0053] 的硬件。\n[0054] 通用计算环境\n[0055] 图1示出了可在其上实现本发明的合适的计算系统环境100的示例。计算系统环境100只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。\n[0056] 本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。\n[0057] 本发明可在诸如由计算机执行的程序模块等的计算机可执行指令的通用语境下描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。本发明也可以在分布式计算环境下实现,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。\n[0058] 参考图1,用于实现本发明的一个示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展的ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。\n[0059] 计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机\n110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机110访问的任何其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。\n[0060] 系统存储器130包括易失性或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程,它通常存储在ROM 131中。\nRAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。\n作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。\n[0061] 计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器\n141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。\n[0062] 以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。除监视器以外,计算机也可以包括其它外围输出设备,诸如扬声器197和打印机196,它们可以通过输出外围接口195连接。\n[0063] 计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的网络环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。\n[0064] 当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至局域网171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内部或外部的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。\n[0065] 在某些方面,提供了笔数字化仪165和附属的笔或指示笔166以数字化地捕捉手画线输入。尽管示出了笔数字化仪165和用户输入接口160之间的直接连接,但在实际上,笔数字化仪165可以使用包括无线技术在内的任何技术,直接地、通过并行端口或其它接口以及系统总线130来耦合至处理器单元110。而且,笔166可以含有与之相关联的照相机,以及用于将由该照相机所捕捉到的图像信息无线地发送到与总线130交互的接口的收发器。而且,笔可以含有除照相机之外的或代替照相机的其它传感系统,用于确定电子墨迹的笔划,包括加速计、磁强计和陀螺仪等。可以理解,示出的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它技术。假定诸如TCP/IP、以太网、FTP、HTTP等各种公知协议的存在,且系统能够在客户机一服务器配置中操作以允许用户从基于web的服务器中检索网页。可使用各种常规web浏览器的任何一种来显示和处理网页上的数据。\n[0066] 图2示出了根据本发明的各方面能够使用的说明性图形输入板PC 201。图1的系统中的任何或所有特征、子系统以及功能能够被包含在图2的计算机中。图形输入板PC \n201包括大显示表面202,例如数字化平板显示器,较佳的是液晶显示(LCD)屏,在其上显示多个窗口203。使用指示笔204,用户能够在数字化显示表面202上选择、加亮和/或书写。\n合适的数字化显示表面202的示例包括诸如Mutoh或Wacom笔数字化仪等电磁笔数字化仪。也可以使用其它类型的笔数字化仪,例如光学数字化仪。图形输入板PC 201解释使用指示笔204做出的手势,以处理数据、输入文本、创建绘图和/或执行诸如电子表格、文字处理程序等的常规计算机应用程序任务。\n[0067] 指示笔204可以配备一个或多个按键或其它特征来增加其选择能力。在一个实施例中,指示笔204能够被实现为“铅笔”或“钢笔”,其中,一端构成了书写部分,而另一端构成了“橡皮”端,且当“橡皮”端在显示器上移动时,指示了显示器上要擦除的部分。能够使用其它类型的输入设备,诸如鼠标、跟踪球等。另外,用户自己的手指可以作为指示笔204,且用于在触敏显示器或邻近性敏感显示器上选择和指示所显示的图像的各部分。因此,如此处所使用的术语“用户输入设备”旨在拥有广泛的定义且包括诸如指示笔204等公知输入设备的众多变体。区域205显示允许用户确定指示笔204在哪里与显示表面202接触的反馈区域或接触区域。\n[0068] 在各种实施例中,该系统提供一种墨迹平台,作为应用程序能够用来捕捉、处理和存储墨迹的一组COM(组件对象模型)服务。一种服务使得应用程序能够使用所揭示的墨迹表示来读出和写入墨迹。该墨迹平台也可以包括标记语言,包括如可扩展标记语言XML等语言。而且,该系统可以使用DCOM作为另一种实现。可以使用其它更多的实现,包括微软公司的Win32编程模型和.Net编程模型。\n[0069] 手势\n[0070] 手势是调用动作的方式,类似于点击工具栏按键或键入键盘快捷键。手势可以使用定点设备(包括但不限于,鼠标、指示笔和/或手指)来执行。手势拥有与之相关联的形状。形状可以如点一般简单(例如,点击鼠标按键)或如一系列运动般复杂。手势也拥有与之相关联的位置。位置可以用来指示手势的范围、目标和/或含义。\n[0071] 轻击手势\n[0072] 多年以来手势用于计算系统中。然而,因为由手势所造成的困难和复杂性,众多开发者和终端用户禁用了手势。例如,手势识别引擎遭受在识别手势时难以接受的大量假肯定和假否定。这些假肯定(当用户输入不打算作为手势时,系统确定用户输入是手势)和假否定(当用户试图执行手势时,系统确定用户输入不是手势)使开发者和终端用户都感到灰心。\n[0073] 如此处所述,轻击手势是包含定点设备的单个运动的简单手势。轻击手势对用户而言是容易记忆和执行的。一旦用户掌握了轻击手势,它能够在多个方向上应用以完成不同任务。而且,轻击手势对于系统而言是容易识别且容易与其它动作(包括拖动、选择等)区分。\n[0074] 开发者和/或用户可以将操作与轻击手势相关联。这些操作可以包括向前导航、向后导航、向上或向下滚动、改变应用程序、右击(可以总是或不总是在基于指示笔的系统中存在)和任意的应用程序命令。任意的应用程序命令是与应用程序有关的命令,它们对于那些应用程序是专用的,而在其它应用程序上一般不可用。而且,轻击手势不需要拥有预定义的含义,而是可以由开发者或用户来定制以实现一个键或键组合,以使用户可以拥有对键盘快捷键或宏的快速访问。启用手势的一个好处是,它使用户在不使用键盘时能够感觉能做更多的事,来克服不能做事的感觉。\n[0075] 轻击手势在操作系统中的所有应用程序上与其相关联的功能中可以是一致的。或者,轻击手势在与之相关联的功能中可以是取决于环境的(其中,与轻击手势绑定的最后得到的操作根据在其中发生该轻击手势的应用程序而变化)。\n[0076] 而且,轻击手势可以专用于应用程序中的位置(例如,在标题栏中)或者是否作出一选择(例如,手势可以执行剪切、复制、粘贴和/或选择性粘贴操作)。另外或可替换地,计算机的状态可以用于确定应当执行与轻击手势相关联的哪个动作。例如,当前选中的对象的颜色、哪一用户登录到系统中、是否有外部监视器连接至系统等一简而言之,计算系统或对象的任何状态或状态组合一可以用于确定响应于轻击手势将要执行什么动作。\n[0077] 而且,不同的输入设备可以修改与轻击手势相关联的动作。例如,当由指示笔执行时,第一组动作可以与轻击手势相关联。当由另一定点设备执行时,第二组动作可以与轻击手势相关联。动作组的数目可以按照不同的输入设备的数目而改变。\n[0078] 而且,可以启用或不启用断字区,在断字区中,轻击可能拥有另一操作。断字区可以包括显示器的特定区域和/或环行菜单。\n[0079] 轻击手势可以是方向不相关的或可以是方向专用的。如果是方向专用的,则该轻击所进入的方向会确定结果。轻击手势的特征可以根据或不根据方向而改变。例如,系统可以仅拥有一组参数,用于识别轻击手势。或者,系统可以拥有任何数量的参数,这些参数取决于轻击的方向而变化,以适应惯用左手或惯用右手、指示笔的角度等等。可以修改这些参数以偏向于在某些方向执行轻击手势的简易性。\n[0080] 一旦用户知道如何执行轻击手势,她仅需知道链接到每一可用方向的动作。与每一方向相关联的动作可以是可定制的,从而允许用户拥有个性化的或最优化的经历。\n[0081] 轻击手势可以被单独使用。或者,轻击手势可以被组合来执行另外的动作。例如,向上的轻击手势可以执行向上翻页的动作,而两个向上的轻击手势可以执行移动至文档顶部的移动动作。\n[0082] 在另一实施例中,可以通过按下指示笔上的按键或按下鼠标上的鼠标右键(辅助鼠标按键)来启用轻击手势,而仍旧满足任何移动或时间阈值。然而,轻击手势的一个优点是,它可以使用鼠标左键点击或使用指示笔或手指来执行而不改变模式。轻击手势可以提高用户的生产率,且允许他们在比先前可用的更有效的级别上与其桌面和应用程序交互。\n设计手势,使得用户仅需最小级别的训练/记忆来获取显著的益处;一旦用户掌握了手势,他们仅需知道方向和动作的关联。可以基于置于轻击手势上的各种标准和约束来作出对正常鼠标或指示笔运动和轻击手势之间的区分。\n[0083] 轻击手势可以允许用户使用有目标的滚动条或导航按键来实施。这可以包括使用或不使用超链接来阅读文档或导航文档。可以在线和离线地阅读该类型的文档。另外,可以使用轻击手势来执行常见的动作,包括剪切、复制和粘贴。\n[0084] 轻击手势确定\n[0085] 用户可以通过对着屏幕轻击他们的笔来简单地执行轻击手势;可以使用笔的任何活动部分,取决于实现方式(顶端或底部)。轻击手势可以在自然模式中执行,而不必要求用户进入任何模式——尽管可以做出模式要求,例如,要求用户在执行轻击手势时按住笔的按键。轻击手势能够在(例如)8个方向上作出,每一轻击属于8个方向中的一个。可以根据物理或逻辑的x和y的坐标的概图和对照时间制成图表的压力(或位置)来确定轻击手势的发生。简而言之,可以用来确定是否发生轻击手势的三个基本特征包括轻击的方向、轻击的运动以及轻击的时间选择。例如,运动阈值可以大于1cm,而时间阈值大于0.2ms长。\n这些过程的值可以变化以适应所有的用户。使用这些特征,系统可以计算出轻击的其它方面,这些方面可能更容易与阈值进行比较。例如,系统可以计算速率、加速度、曲率、升程等,并使用这些导出的值或值的集合来确定用户是否执行了轻击手势。\n[0086] 轻击手势可以与其它动作无关地确定,这些动作包括双重激励(双敲或双击)、按下和按住、按住和拖曳以及其它手势。\n[0087] 也可以使用诸如神经网络等其它方法来试图根据从三个基本特征导出的输入特征的组合来对轻击手势分类。\n[0088] 使用这些准则来确定是否发生轻击手势的一个好处是,在最小化轻击手势的检测时间的同时最小化了假肯定和假否定。结合起来,这些好处提供整体改进的系统响应性。例如,可以组织用于确定是否发生轻击的过程,来快速确定轻击不满足轻击手势的资格,并允许输入设备的运动作为正常的输入设备运动来对待。\n[0089] 本发明的各方面可以包括,当系统确定轻击是否的确是轻击手势时,呈现与正常输入设备动作相关联的轻击运动和/或动作。或者,本发明的各方面可以包括在系统确定是否发生轻击手势之前防止输入信息(从操作该定点设备的用户处接收)被处理或呈现。\n尽管后一方法可能会引起对用户的反馈中的轻微的视觉延迟,但是,它可以改进用户在存在可以用正常输入来处理的对象的情况下执行轻击手势的能力。例如,对于对象执行轻击可能被处理为正常输入,导致拖放该对象,尽管可能打算的是轻击手势。因此,本发明的这些替换方面可以保持数据包(可能是或不是轻击手势),直到系统确定它们是否为轻击手势。\n[0090] 图3示出可以用于轻击手势的各种说明性方向。所有方向的组如区域301所示。示出了四个基本区域302-305以及四个对角区域306-309。系统可以相对于轻击手势向哪一方向行进的确定,同等地对待所有八个区域。或者,可以偏向某些区域(例如,基本区域),以将用户输入分类为优先于对角区域而落入这些方向中的一个。不同方向的数量可以是固定的或可更改的。例如,可以作为替代地使用6个或者12个或者任何数量的方向作为对用户可用的方向的数量。\n[0091] 为了确定轻击的方向,下笔点表示了一个圆心,围绕圆心可以有8个同样形状且彼此隔开的区域,例如每一个圆占据圆的45度部分。这些区域不依赖于图形输入板的定向,当图形输入板旋转时随之旋转。\n[0092] 区域不必局限于45度,取决于应用,可以更大或更小。然而,遍及整个系统默认地使用的区域被初始设置为45度。\n[0093] 根据定义,轻击手势在图3所示的圆心开始,因为下笔(或鼠标左击)点是圆心;\n称作为轻击的短的、快速的、笔直的笔划从下笔点拉出。根据轻击的定义,它短且笔直的,会落入区域中的一个。它被划入哪一个区域可以确定所引起的动作。轻击区域是通过连接同屏幕接触的笔划的起点和终点来确定的,只要笔划满足轻击的性质(可以包括或不包括此处所述的平直性、长度和速度要求)。如果轻击落入分隔区域的精确的线条,那么该轻击可以默认属于非对角区域的区域,即表示水平或垂直方向的那些区域。\n[0094] 在成功识别了轻击手势之后,可以向用户提供或不提供反馈,其中反馈指示用户刚才执行的轻击手势已经被识别,以及正在向操作系统或应用程序发送消息。反馈也可以指示引起的动作。该反馈并不意味着会发生动作,仅仅意味着已经识别出一个成功的轻击且正在发送。例如,如果用户继续执行向下翻页的轻击手势,一旦她达到了页面的底部,她仍然会获得正确的反馈,尽管因为不能再下滚动页面而没有引起任何动作。\n[0095] 一旦识别了一个成功的手势,就会出现该反馈,且反馈会持续一段短的时间(500ms左右),然后消失。或者,可以不提供任何反馈。而且,在其它替换方面,反馈可以制成动画,以更容易地通知用户已经识别了一个成功的轻击手势。动画可以向用户提供或不提供与所识别的轻击手势相关联的方向的反馈。\n[0096] 图4示出用于确定是否发生轻击的过程。在步骤401处,发生了下笔或按下按键事件。下一步在步骤404处,系统确定是否存在超过运动阈值的运动(例如,超过0.2-0.5cm)。\n如果不存在,那么如步骤405所示,系统可以确定接收到的输入是某个其它动作或选择。如果在步骤404处存在超过阈值的运动,那么系统确定输入设备的速率是否降低到速度阈值以下(例如,最高速率的20%或更低,或每秒5cm或更低)。该降低可以对于短暂时间间隔(10-200ms)中的速率下降是敏感或不敏感的。或者,该过程可以确定所接收到的手势的速率是否不在下降。\n[0097] 如果对步骤406为“否”,那么在步骤407确定另一动作或选择。如果对步骤406为“是”,那么在步骤408确定发生了一个轻击手势。当前位置可以被认为是沿着该轻击的路径的任何位置,包括但不限于,指示笔或手指从屏幕上抬起或鼠标键被放开的位置。\n[0098] 下文描述了图4的过程的可任选的添加。从步骤401处,系统可以确定一下笔位置是否在上墨区域中。如果是,则如步骤403所示,系统可以相信下笔事件与墨迹的创建有关。这可以包括或不包括附加的操作(例如,实际创建墨迹、选择或擦除墨迹)。\n[0099] 另一可任选步骤包括步骤409。在步骤409处,系统确定可能的轻击手势的路径是否相对较直。这可以包括对手势中的所有点是否位于从初始接触点出发的预先定义的角度中的判断。初识角度可以包括45°或更小。如果否,那么该方法可以在步骤410中得出结论:该输入不是轻击手势。\n[0100] 又一组可任选的步骤(411和412)包括,在定点设备接触屏幕之前和/或之后分析该定点设备的运动。例如,通过注意到指示笔尖离开屏幕后,指示笔继续在直线上行进某一距离,可以进一步改进检测算法的精度。步骤409和412的方法有助于快速除去不是轻击手势的那些轻击。或者,尽管步骤409和411的方法更复杂且功能上更慢(因为该替换方法可以将轻击解释为以前拒绝的轻击手势),然而它们对于用户运动可以更宽容。\n[0101] 一旦发生成功的轻击,系统可以向系统或应用程序的其它方面警告发生了轻击手势。可以发送消息,使得应用程序可以执行与该动作相关联的行为,如果不存在已分配的行为,那么轻击体系结构可以发送一默认值以供应用程序解释。例如,如果向应用程序发送后退命令,则这可以被解释为浏览器中的后退命令,或被解释为数据库应用程序中的前一条目。更具体地,各种不同的方法可以应用于处理轻击手势。首先,轻击手势可以由操作系统解释并处理。从一给定方向到语义的映射可以由系统执行或可以被省略。第二,轻击到轻击动作的映射可以在操作系统中做出,但是被发送到一个或多个应用程序以供处理。系统可以仅将轻击的原始方向传递(或者通过指示预定义的区域或者轻击的所检测到的精确角度)到一个或多个应用程序、它可以传递语义、或传递两者。第三,系统可以向将轻击解释为轻击手势的一个或多个应用程序发送该轻击。该一个或多个应用程序可以解释预定义的区域、精确角度、语义消息或三者的某种组合。该一个或多个应用程序然后能够处理该轻击手势或将其发送回操作系统以供处理。\n[0102] 轻击手势可以应用于轻击的下笔位置或当前的焦点、前台应用程序、或光标位置。\n轻击手势不仅限于导航,而且也可以用于执行其它操作。例如,用户可能想让一轻击手势执行在指示笔接触屏幕位置处的右击操作。\n[0103] 开发者可能能够在其应用程序中或其应用程序中诸如滚动条等特定区域中关闭轻击手势。另外,可以防止开发者定制轻击手势,或者可以能够定制轻击手势以在其应用程序中采取特定的动作。此外,也可以允许或不允许轻击手势提供应用程序中的自定义反馈。\n[0104] 训练\n[0105] 图5示出了用于训练用户以使其能够执行轻击手势的说明性过程。可以理解,可以使用任何数量的过程来训练用户以执行轻击手势,其中多个过程使用指示或可任选步骤在图5中示出。而且,系统可以实现如此处所述的轻击手势,而不提供关于如何执行轻击手势的训练。\n[0106] 在步骤501处,系统开始教学过程。在步骤505处,系统确定用户是否执行了一轻击手势N次(大约5次或10次)。如果是,那么系统在步骤510处结束该教学过程。如果对步骤505为“否”,那么该系统为了试图训练用户而请求更多的轻击手势。或者,可以在步骤509处允许用户决定退出更多的训练。\n[0107] 图5也示出了可以包括在训练步骤中的多个附加的可任选成分。在步骤502处,系统可以提供用户能够在其中练习轻击的区域。在步骤503处,系统可以教导用户如何执行轻击手势。在步骤504和508处,系统可以更改图4的阈值,以使轻击手势的识别变得更容易,或更精密地对用户执行的动作建模。在步骤506处,系统可以请求用户重复该手势。\n或者,或除步骤506处重复手势的请求之外,系统可以显示手势被正确执行的指示。在步骤\n507处,系统可以向用户重复关于如何正确地执行轻击手势的指令。该指令可以是通用的,或可以包含根据先前的一次或多次对执行轻击手势的尝试用户能够作出的特定改进的解说。例如,该过程可以指示,该轻击手势被正确地执行了,或向用户提供成功地执行轻击的有帮助的提示(例如,更快地轻击或更直地轻击等)。\n[0108] 说明性实现\n[0109] 图6示出了如何将手势识别器与其它组件集成的说明性示例。图6示出了可以试图实时处理来自指示笔或其它输入设备的输入的实时指示笔组件601。\n[0110] 实时指示笔(RTS)是提供给定窗口输入矩形内的给定窗口手柄上的实时指示笔事件的对象。该实时指示笔也能够被认作是一种框架,可以向其添加处理附加功能的插件对象。该插件对象可以根据所需实时指示笔功能的改变而被添加或移除。实时指示笔可以拥有一个或多个接口。在两个接口的情况下,这些接口可以是一个同步接口和一个异步接口。这些接口提供插件可以被连接至实时指示笔的位置。这些接口仅用于说明性的目的。\n也可以使用其它接口。\n[0111] 插件可以连接至同步和异步接口。插件是可以被添加至实时指示笔对象的功能组件。如果插件被连接至实时指示笔对象的同步接口,则它可以被称为同步插件。如果一个插件被连接至实时指示笔对象的异步接口,则它可以被称为异步插件。\n[0112] 插件可以被组合成集合。一个或多个组中的插件集合被连接至RTS。当存在两个集合,它们可以分别同RTS的同步和异步接口相关联。每一集合可以顺序执行。当存在两个或更多的集合,因为它们可以连接至一个或多个RTS的不同接口,因此它们可以彼此独立地执行。在由每一插件处理之后,数据返回到RTS。集合中插件的顺序可能会影响集合的输出。\n[0113] 实时指示笔组件601可以包括同步插件602-604和异步插件605-606。插件可以被组合成插件集合。同步插件602-604(例如包括动态呈现器)涉及需要快速处理输入的插件。异步插件605-606涉及实时指示笔601的异步线程上的插件。异步插件605-606可以在异步基础上处理来自实时指示笔的信息。\n[0114] 轻击手势识别器可以被置于手势识别器605中,且在异步线程上处理。或者,轻击手势识别器可以与其它同步插件一起被置于同步线程上。当被置于同步线程上,轻击手势识别器603能够在来自实时指示笔的的输入被附加的插件处理和发送给异步线程之前快速地处理该信息。没有被识别为轻击手势的手势应该由异步线程上的手势识别器605识别。\n[0115] 本发明是按照其较佳且示例性的实施例所描述的。本领域的普通技术人员可以从该揭示的阅读中想到在所附权利要求书范围和精神之内的众多其它实施例、修改和变化。
法律信息
- 2020-09-01
未缴年费专利权终止
IPC(主分类): G06F 3/0354
专利号: ZL 200510109726.X
申请日: 2005.09.13
授权公告日: 2013.03.27
- 2015-05-20
专利权的转移
登记生效日: 2015.04.28
专利权人由微软公司变更为微软技术许可有限责任公司
地址由美国华盛顿州变更为美国华盛顿州
- 2013-03-27
- 2007-10-17
- 2006-04-12
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
1998-06-24
|
1997-03-26
| | |
2
| | 暂无 |
1995-11-17
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |