发明内容
基于此,有必要针对上述技术问题,提供一种能够提高控制操作效率的手势控制方法、装置、计算机设备和存储介质。
一种手势控制方法,所述方法包括:
在显示媒介中显示与应用程序标识对应的待选择的列表内容;
读取视频帧图像,在所述视频帧图像中检测对应的手势动作信息;
当检测到起始手势动作时,则进入实时选择过程;
在所述实时选择过程中,根据预设的控制策略,变更所述列表内容中被选中的选项,并刷新所述显示媒介中的显示内容;
当检测到结束的手势动作时,则结束所述列表内容的选择过程,并记录结束时用户选定的所述列表内容中的项目。
在其中一个实施例中,所述起始手势动作为预设手势;
所述当检测到起始手势动作时,则进入实时选择过程,包括:
当检测到包含所述预设手势的视频帧图像数量在预设时间内达到预设比率时,则判定检测到起始手势动作,进入实时选择过程。
在其中一个实施例中,所述手势动作信息包括手掌外接矩形的宽度信息和以及手掌外接矩形的中心点信息;所述中心点信息包括中心点坐标信息;
检测到结束的手势动作的方式,包括:
获取所述进入实时选择过程的时刻对应的第一中心点坐标信息;
获取当前时刻对应的第二中心点坐标信息;
将所述第一中心点坐标信息与所述第二中心点坐标信息进行运算,得到对应的差值;
将所述差值与所述进入实时选择过程的时刻对应的手掌外接矩形的宽度信息进行比较;
当所述差值的绝对值大于所述宽度信息时,则判定检测到结束的手势动作。
在其中一个实施例中,所述手势动作信息包括手势动作的中点的位置信息;
所述根据预设的控制策略,变更所述列表内容中被选中的选项,并刷新所述显示媒介中的显示内容,包括:
根据所述位置信息,调节在显示媒介中列表指针的位置,并根据所述列表指针的位置实时刷新所述显示媒介中的显示内容。
在其中一个实施例中,所述根据所述列表指针的位置实时刷新所述显示媒介中的显示内容包括:
将所述列表指针指向的选项位置在所述显示媒介中进行标记显示,并将所述选项位置附近的预设数量选项在所述显示媒介中显示。
在其中一个实施例中,所述方法还包括:
判定是否出现结束的手势动作;
若是,则结束所述列表内容的选择过程;
若否,则继续根据所述位置信息,调节在所述显示媒介中列表指针的位置,并根据所述列表指针的位置实时刷新所述显示媒介中的显示内容。
在其中一个实施例中,所述手势动作的中点的位置信息包括横坐标信息和纵坐标信息;
所述根据所述位置信息,调节在所述显示媒介中列表指针的位置,包括:
计算所述横坐标信息或者纵坐标信息对应的偏移量数值;
根据所述偏移量数值和所述进入实时选择过程的时刻对应的手掌外接矩形的宽度信息,计算得到所述列表指针的速度信息;
对所述速度信息进行积分计算,得到所述列表指针对应的位移信息;
根据所述位移信息,调节在显示媒介中所述列表指针的位置。
在其中一个实施例中,所述方法还包括:
获取预先配置的刹停规则,根据所述刹停规则,计算当前时刻所述横坐标信息或者纵坐标信息对应的偏移量数值;
计算所述偏移量数值与所述进入实时选择过程的时刻对应的手掌外接矩形的宽度信息的比值;
获取所述进入实时选择过程的时刻到所述当前时刻中所述比值的绝对值的最大值;
当所述比值的绝对值的最大值大于预设第一阈值,且所述当前时刻对应的比值的绝对值小于预设第二阈值时,则调节所述进入实时选择过程的时刻为所述当前时刻;其中,所述预设第一阈值为预设的比值的最大值;所述预设第二阈值是根据预设的刹停系数和所述比值的绝对值的最大值得到的;
根据调节后的所述进入实时选择过程的时刻,对所述列表指针的速度信息进行积分计算,得到所述列表指针对应的位移信息。
一种手势控制装置,所述装置包括:
显示模块,用于在显示媒介中显示与应用程序标识对应的待选择的列表内容;
读取模块,用于读取视频帧图像,在所述视频帧图像中检测对应的手势动作信息;
检测模块,用于当检测到起始手势动作时,则进入实时选择过程;
变更模块,用于在所述实时选择过程中,根据预设的控制策略,变更所述列表内容中被选中的选项,并刷新所述显示媒介中的显示内容;
记录模块,用于当检测到结束的手势动作时,则结束所述列表内容的选择过程,并记录结束时用户选定的所述列表内容中的项目。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在显示媒介中显示与应用程序标识对应的待选择的列表内容;
读取视频帧图像,在所述视频帧图像中检测对应的手势动作信息;
当检测到起始手势动作时,则进入实时选择过程;
在所述实时选择过程中,根据预设的控制策略,变更所述列表内容中被选中的选项,并刷新所述显示媒介中的显示内容;
当检测到结束的手势动作时,则结束所述列表内容的选择过程,并记录结束时用户选定的所述列表内容中的项目。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在显示媒介中显示与应用程序标识对应的待选择的列表内容;
读取视频帧图像,在所述视频帧图像中检测对应的手势动作信息;
当检测到起始手势动作时,则进入实时选择过程;
在所述实时选择过程中,根据预设的控制策略,变更所述列表内容中被选中的选项,并刷新所述显示媒介中的显示内容;
当检测到结束的手势动作时,则结束所述列表内容的选择过程,并记录结束时用户选定的所述列表内容中的项目。
上述手势控制方法、装置、计算机设备和存储介质,通过在显示媒介中显示与应用程序标识对应的待选择的列表内容,读取视频帧图像,在视频帧图像中检测对应的手势动作信息。当检测到起始手势动作时,则进入实时选择过程。在实时选择过程中,根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。当检测到结束的手势动作时,则结束列表内容的选择过程,并记录结束时用户选定的列表内容中的项目。由此使得,通过引入预设的控制策略,即列表指针与用户手势动作信息之间的映射关系,用户可以通过控制手势动作在视频帧画面中的位置完成对选项速度切换的调节,以便能够准确快速地选择到目标选项。同时,无需用户触碰设备就可以完成列表选项选择操作,避免了一系列繁琐的操作,从而有效提高了用户的控制操作效率。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种手势控制方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,在显示媒介中显示与应用程序标识对应的待选择的列表内容。
智能终端是一类嵌入式计算机系统设备,软件结构可以分为系统软件和应用软件。在智能终端的软件结构中,系统软件主要是操作系统和中间件,常见的智能终端操作系统有IOS、Android、WebOS、开源的MeeGo及Windows等。使用不同操作系统智能终端的用户均可以通过智能终端中的应用市场界面下载多种类型的应用程序,例如目前常见的视频播放应用程序、在线购物应用程序以及通讯应用程序等。在用户与智能终端进行交互的过程中,当智能终端需要用户从一个列表中选取其中的某一个选项的时候,智能终端便可以启动列表选项选择过程,与用户进行实时交互。
具体的,以列表选项选择过程为例。列表选项选择过程可以被封装为终端系统中的一个服务程序或者一个程序库,不同的应用程序可以通过进程间通信或者程序接口调用的方式与列表选项选择过程进行交互(含触发等动作),进程间通信的方式可以采用多种方式。例如,预先将列表选项选择过程封装成一个服务程序运行于终端设备的操作系统上,使用WebSocket通信协议(进程间通信的其中一种方式)与应用程序进行交互,应用程序通过WebSocket通信协议与列表选项选择过程服务建立通信链路,应用程序在该通信链路上将“触发”报文发送给列表选项选择过程服务,则列表选项选择服务可以根据收到报文执行对应的操作。其中,WebSocket是指一种在单个TCP连接上进行全双工通信的协议。即终端可以接收到不同的应用程序发送的调用列表选择服务的请求,并根据请求中携带应用程序标识,在显示媒介中显示与应用程序标识对应的待选择的列表内容。其中,显示媒介是指显示感觉媒体的设备,用于通信中电信号和感觉媒体间产生转换用的各类媒体。显示媒介是计算机用于输入输出信息的媒体,如键盘、鼠标、光笔、显示器、扫描仪、打印机、数字化仪等。本申请中的显示媒介可以为显示屏。应用程序标识用于标识唯一的应用程序。待选择的列表内容是指将待选择的信息以列表的方式显示在显示媒介中,以使得用户可以根据需求进行选择。
步骤104,读取视频帧图像,在视频帧图像中检测对应的手势动作信息。
终端接收到不同的应用程序发送的调用列表选择服务的请求之后,终端可以根据请求中携带的应用程序标识,在显示媒介中显示与应用程序标识对应的待选择的列表内容。其中,终端设备中安装有摄像头。摄像头可以对使用终端设备用户的手势动作进行实时拍摄,生成对应的实时视频流数据。终端可以读取摄像头采集的视频流数据,并对视频流数据进行视频解码,得到具有统一图片格式的多帧图像。进一步的,终端可以实时读取视频帧图像,在视频帧图像中检测对应的手势动作信息。其中,视频帧图像是指视频流数据中按序排列的多帧图像。手势动作信息是指用户的手部做出一系列动作过程的信息。具体的,终端可以根据摄像头采集的视频流数据,实时读取视频帧图像,通过卷积神经网络等方法在视频帧图像中检测对应的手势动作信息。例如,终端可以利用训练好的分类器检测多帧视频帧图像中是否有相应的目标手势动作的存在,即终端在视频帧图像中检测对应的手势动作信息,获取到每一帧图像中用户的手势动作信息。
步骤106,当检测到起始手势动作时,则进入实时选择过程。
终端可以实时读取视频帧图像,在视频帧图像中检测对应的手势动作信息。当终端检测到起始手势动作时,则进入实时选择过程。其中,起始手势动作可以是预设的某种手势动作,也可以是用户自定义的起始手势动作,例如V手势。V手势是指手心对外,将食指和中指竖起分开,形成“V”字。具体的,终端可以对多帧视频帧图像的空间重合度进行检测。当空间重合度达到预设的阈值时,则确定检测到相应目标起始手势动作,即终端检测到相应起始手势动作时,则进入实时选择过程。
步骤108,在实时选择过程中,根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。
当终端检测到起始手势动作时,则进入实时选择过程,在进行实时选择的过程中,终端可以根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。其中,控制策略是指对列表选择过程进行控制的策略和方法。例如,控制策略中可以包括预先设置的刹停规则以及列表指针与用户手势动作信息之间的映射关系。终端可以根据控制策略中的刹停规则以及列表指针与用户手势动作信息之间的映射关系,实时变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。
步骤110,当检测到结束的手势动作时,则结束列表内容的选择过程,并记录结束时用户选定的列表内容中的项目。
在进行实时选择的过程中,终端可以根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。当终端检测到结束的手势动作时,则终端结束列表内容的选择过程,并记录结束时用户选定的列表内容中的项目。其中,结束的手势动作可以是预设的某种手势动作,也可以是用户自定义的手势动作,例如V手势。即结束的手势动作可以与预设的起始手势动作不同。例如,手拉远定义为结束,画面中出现了另一只手定义为结束,手握拳定义为结束等。设置的结束手势动作的基本依据是为了操作的方便性和实现的便利。
本实施例中,通过在显示媒介中显示与应用程序标识对应的待选择的列表内容,读取视频帧图像,在视频帧图像中检测对应的手势动作信息。当检测到起始手势动作时,则进入实时选择过程。在实时选择过程中,根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。当检测到结束的手势动作时,则结束列表内容的选择过程,并记录结束时用户选定的列表内容中的项目。由此使得,通过引入预设的控制策略,即列表指针与用户手势动作信息之间的映射关系,用户可以通过控制手势动作在视频帧画面中的位置完成对选项速度切换的调节,以便能够准确快速地选择到目标选项。同时,无需用户触碰设备就可以完成列表选项选择操作,避免了一系列繁琐的操作,从而有效提高了用户的操作效率。
在一个实施例中,起始手势动作为预设手势,当检测到起始手势动作时,则进入实时选择过程的步骤包括:
当检测到包含预设手势的视频帧图像数量在预设时间内达到预设比率时,则判定检测到起始手势动作,进入实时选择过程。
终端可以实时读取视频帧图像,在视频帧图像中检测对应的手势动作信息。当终端检测到起始手势动作时,则进入实时选择过程。其中,起始手势动作可以是预设的某种手势动作,也可以是用户自定义的起始手势动作,例如V手势。V手势是指手心对外,将食指和中指竖起分开,形成“V”字。如图2所示,为某场景下的产品侧示意图。以中液晶显示屏为显示媒介,通讯录中联系人列表为被选择的列表为例。如图2所示,图中有一台摄像机负责采集用户的手势动作视频数据流,一台显示器作为显示媒介为用户展示待选的列表内容,用户通过在摄像头前做出V手势动作,进入列表的实时选择过程。即食指与中指举起形成“V”字,其他手指跟握拳时一样曲折起来,俗称剪刀手。如图2所示,当前被选中的选项(图2中的选项“2.lisi”)被突出标记,以方便用户判断当前哪个选项被选中了。具体的,当终端检测到包含预设手势的视频帧图像数量在预设时间内达到预设比率时,则判定检测到起始手势动作,进入实时选择过程。例如,可以预先设置时间阈值为T=1s以及预设判定比率为80%。若当前程序处理图像的帧率为25fps,那么在T=1s的时间内,就有25帧图像,若终端检测到这25帧图像中有超过20(25*80%=20)帧图像中包含V手势,即达到预设的判定比率80%,则终端可以判定当前用户做出的是起始手势动作,即V手势动作,终端进入实时选择过程。由此使得,通过检测是否起始手势动作,判定是否进入实时选择过程,无需用户触碰设备就可以完成列表选项选择操作,避免了一系列繁琐的操作,从而有效提高了用户的操作效率。
在一个实施例中,如图3A所示,手势动作信息包括手掌外接矩形的宽度信息和以及手掌外接矩形的中心点信息,中心点信息包括中心点坐标信息,检测到结束的手势动作方式的步骤,包括:
步骤302,获取进入实时选择过程的时刻对应的第一中心点坐标信息。
步骤304,获取当前时刻对应的第二中心点坐标信息。
步骤306,将第一中心点坐标信息与第二中心点坐标信息进行运算,得到对应的差值。
步骤308,将差值与进入实时选择过程的时刻对应的手掌外接矩形的宽度信息进行比较。
步骤310,当差值的绝对值大于宽度信息时,则判定检测到结束的手势动作。
在进行实时选择的过程中,终端可以根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。当终端检测到结束的手势动作时,则终端结束列表内容的选择过程,并记录结束时用户选定的列表内容中的项目。具体的,终端读取视频帧图像,在视频帧图像中检测对应的手势动作信息,其中,手势动作信息包括手掌外接矩形的宽度信息和以及手掌外接矩形的中心点信息,中心点信息又包括中心点坐标信息。如图3B所示,为摄像头画面中的变量示意图。假设起始手势动作设置为V手势。用户对着摄像头做出V手势动作,且V手势动作持续时长超过Tv_duration(Tv_duration默认值为1秒,可配置)。起始动作完成时刻是指用户对着摄像头做V手势动作的持续时长达到Tv_duration的时刻,也即终端判定出现了起始手势动作的时刻。选项实时选择过程是指用户通过调整手指在画面中的位置,来实时选择列表中的选项的过程。选项实时选择过程的开始时刻tsl_start与上述“起始动作完成时刻”是同一时刻。
如图3B所示,为摄像头画面中的变量示意图。摄像头画面中关键变量的定义如下:首先定义一个图像坐标系,该坐标系的原点在图像的左上角,x轴方向指向画面的右侧,y轴的方向指向画面的下方,对于图像中任意一点P(x,y),x是P点距离图像左边界的距离,y是P点距离图像上边界的距离。每帧图像中整个手掌(含手指)在画面中的外接矩形为图中的虚线框,该外接矩形的宽为Whand,该外接矩形的中心点为M(xm,ym),食指指尖在画面中的位置为B(xb,yb),中指指尖在画面中的位置为C(xc,yc),食指指尖与中指指尖的连线的中点在画面中的位置为Q(xq,yq)。
本申请中将“某一时刻”的“某个变量”的值写为“某个变量(某一时刻)”,如xb(tsl_start)表示食指指尖在画面中的位置的x坐标在tsl_start时刻的值。终端可以获取进入实时选择过程的时刻对应的第一中心点坐标信息,即tsl_start时刻对应的手的外接矩形的中心点的x坐标为xm(tsl_start)。进一步的,终端可以获取当前时刻对应的第二中心点坐标信息,即tnow时刻对应的手的外接矩形的中心点的x坐标为xm(tnow),终端将第一中心点坐标信息与第二中心点坐标信息进行运算,得到对应的差值,并将差值与进入实时选择过程的时刻对应的手掌外接矩形的宽度信息进行比较。当差值的绝对值大于宽度信息时,则判定检测到结束的手势动作。即tsl_start时刻对应的手的外接矩形的中心点的x坐标为xm(tsl_start),tsl_start时刻对应的外接矩形的宽度信息为Whand(tsl_start),当前手的外接矩形的中心点的x坐标为xm(tnow),当终端检测到[xm(tnow)-xm(tsl_start)]的绝对值大于Whand(tsl_start)时,则终端判定检测到结束的手势动作。因为y方向上的动作会影响到最终输出的选项,所以设计结束手势动作的时候,结束动作要尽量没有带来y方向上的位移,以避免用户在做出结束手势时,导致选中的选项发生了偏移,故本实施例中定义的结束手势动作只涉及手在x方向上的动作,相对于传统方式中,以手势形状的方式确定结束手势动作,而本实施例中通过手的位置信息确定结束手势动作,即直接使用手的位置来定义结束手势动作,使得定位结果具有更好的鲁棒性,以便能够准确快速地选择到目标选项,从而有效提高用户的操作效率。
在其中一个实施例中,手势动作信息包括手势动作的中点的位置信息,根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容的步骤,包括:
根据位置信息,调节在显示媒介中列表指针的位置,并根据列表指针的位置实时刷新显示媒介中的显示内容。
在进行实时选择的过程中,终端可以根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。具体的,终端读取视频帧图像,在视频帧图像中检测对应的手势动作信息,其中,手势动作信息包括手掌外接矩形的宽度信息、手势动作的中点的位置信息以及手掌外接矩形的中心点信息。
具体的,如图3B所示,为摄像头画面中的变量示意图。画面中V手势动作的中点的位置信息即为Q(xq,yq)。终端可以根据当前手势动作的中点的位置信息即Q(xq,yq),调节在显示媒介中列表指针的位置,并根据列表指针的位置实时刷新显示媒介中的显示内容。其中,可以预先对列表中的选项进行编号,并将其映射到一个数轴上,每个选项与数轴上的一个自然数对应,默认选项编号为0,默认选项的上一个选项编号为-1,默认选项的下一个选项编号为1,依此类推,如图3C所示,为显示器显示的内容及相关变量示意图。以图3C中的省份选项列表为例,默认选项为河北省,广东省是河北省的向上方向的第4个选项,所以广东省的编号为-4。即当前选中列表指针的位置Spos由用户通过手势进行控制,列表指针的位置Spos的值是一个浮点数,每个浮点数与数轴上的编号数值具有映射关系。由此使得,能够根据用户手势动作的中点的位置信息,动态调节列表指针在显示媒介中的位置,即通过列表指针与用户手势动作信息之间的映射关系,用户可以通过控制手势动作在视频帧画面中的位置完成对选项速度切换的调节,以便能够准确快速地选择到目标选项。
在其中一个实施例中,根据列表指针的位置实时刷新显示媒介中的显示内容的步骤,包括:
将列表指针指向的选项位置在显示媒介中进行标记显示,并将选项位置附近的预设数量选项在显示媒介中显示。
在进行实时选择的过程中,终端可以根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。具体的,终端可以根据实时检测到的手势动作信息,调节列表指针在显示媒介中的位置,并根据列表指针的位置实时刷新显示媒介中的显示内容,即终端可以将列表指针指向的选项位置在显示媒介中进行标记显示,并将选项位置附近的预设数量选项在显示媒介中显示。即终端可以将Spos指针指向的自然数编号对应的列表选项作为当前被选中的选项,并将该选项在显示媒介中标记显示,如高亮显示、特殊颜色显示或下划线显示等。该选中的目标选项附近的几个选项也可以通过显示媒介显示出来,以方便用户进行选择。例如,如图3C示例中,Spos指针指向的自然数编号-4对应的列表选项为“广东省”,则“广东省”是当前被选中的选项,终端将“广东省”选项加粗加黑地高亮显示,同时“广东省”选项附近的几个选项“上海市”、“山东省”以及“江苏省”也在显示媒介中进行显示。由此使得,能够给用户提供更加便捷的列表选项选择过程的实现方案,有效的提高了用户的操作效率。
在一个实施例中,如图4A所示,判定是否出现结束的手势动作的步骤包括:
步骤402,判定是否出现结束的手势动作。
步骤404,若是,则结束列表内容的选择过程。
步骤406,若否,则继续根据位置信息,调节在显示媒介中列表指针的位置,并根据列表指针的位置实时刷新显示媒介中的显示内容。
在进行实时选择的过程中,终端可以实时读取每帧视频帧图像,并在视频帧图像中检测对应的手势动作信息。具体的,终端在视频帧图像中检测对应的手势动作信息时,判定当前视频帧图像中是否出现结束的手势动作。若是,则终端结束列表内容的选择过程;若否,则终端继续根据位置信息,调节在显示媒介中列表指针的位置,并根据列表指针的位置实时刷新显示媒介中的显示内容。例如,如图4B所示,为某个应用程序标识对应的列表选项选择过程的流程图。进入列表选项选择过程之后,终端会不断地从摄像头中获取图像帧,并通过卷积神经网络等方法,获取到每一帧图像中的手部基本信息。其中,如图3B所示,手部的基本信息可以包括Whand、M(xm,ym)、B(xb,yb)、C(xc,yc)、Q(xq,yq)以及是否是起始手势动作(比如V手势)。其中,Q(xq,yq)的位置可以通过B(xb,yb)和C(xc,yc)两个端点的位置计算得到,计算公式如下:
假设将握拳手势设置为实时选择过程的结束的手势动作,则终端通过持续分析每一帧画面中的手势动作信息是否为握拳手势,判定用户是否做出了结束手势动作。在终端判定用户做出了结束的手势动作之后,则终端结束列表内容的选择过程,并记录结束时用户选定的列表内容中的项目。若否,终端继续根据位置信息,调节在显示媒介中列表指针的位置,并根据列表指针的位置实时刷新显示媒介中的显示内容。由此使得,通过手的位置信息确定结束手势动作,即直接使用手的位置来定义结束手势动作,使得定位结果具有更好的鲁棒性,以便能够准确快速地选择到目标选项,从而有效提高用户的操作效率。
在一个实施例中,如图5所示,手势动作的中点的位置信息包括横坐标信息和纵坐标信息,根据位置信息,调节在显示媒介中列表指针的位置的步骤包括:
步骤502,计算横坐标信息或者纵坐标信息对应的偏移量数值。
步骤504,根据偏移量数值和进入实时选择过程的时刻对应的手掌外接矩形的宽度信息,计算得到列表指针的速度信息。
步骤506,对速度信息进行积分计算,得到列表指针对应的位移信息。
步骤508,根据位移信息,调节在显示媒介中列表指针的位置。
终端读取视频帧图像,在视频帧图像中检测对应的手势动作信息,其中,手势动作信息包括手掌外接矩形的宽度信息、手势动作的中点的位置信息以及手掌外接矩形的中心点信息,手势动作的中点的位置信息包括横坐标信息和纵坐标信息。如图3B所示,为摄像头画面中的变量示意图。每帧图像中整个手掌(含手指)在画面中的外接矩形为图中的虚线框,该外接矩形的宽为Whand,该外接矩形的中心点为M(xm,ym),食指指尖在画面中的位置为B(xb,yb),中指指尖在画面中的位置为C(xc,yc),食指指尖与中指指尖的连线的中点在画面中的位置为Q(xq,yq)。当前手势的中点的位置信息即为Q(xq,yq)。
具体的,以V手势为起始手势动作为例。假设将V手势设置为实时选择过程的起始手势动作,则终端通过持续分析每一帧画面中的手势动作信息是否为V手势,判定用户是否做出了起始手势动作。在终端判定用户做出了起始手势动作之后,终端得到进入实时选择过程时刻对应的tsl_start值。同时,初始化列表指针Spos=0,进入实时选择过程。在进行实时选择的过程中,终端可以根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。具体的,终端可以根据当前手势动作的中点的位置信息,即当前V手势动作的中点的位置信息Q(xq,yq),计算Q点对应的横坐标信息或者纵坐标信息对应的偏移量数值。进一步的,终端可以根据上述偏移量数值和进入实时选择过程的时刻对应的手掌外接矩形的宽度信息,计算得到列表指针的速度信息。终端对速度信息进行积分计算,得到列表指针对应的位移信息,并根据位移信息,调节在显示媒介中列表指针的位置。以计算纵坐标信息(即y坐标)对应的偏移量数值为例。计算公式如下:
yoffset(t)=yq(t)-yq(tsl_start) (3)
其中,公式(3)中yoffset(t)表示当前时刻t对应的y坐标的值yq(t),与实时选择过程的开始时刻tsl_start对应的y坐标的值yq(tsl_start)的差,yoffset(t)即为Q点纵坐标信息对应的偏移量数值,yoffset(t)是一个随时间变化的函数。公式(4)中R(t)表示当前时刻t对应的偏移量数值yoffset(t),与实时选择过程的开始时刻tsl_start对应的手在画面中的宽度的值Whand(tsl_start)的比值,R(t)也是一个随时间变化的函数。公式(5)中vpos(t)表示当前列表指针Spos变化的速度,是一个随时间与R(t)的值变化的函数。其中,Vmax为设置的常量,表示允许的vpos(t)的最大值;Rstop为设置的常量,当R(t)的绝对值小于Rstop的值时,则vpos(t)为零;Rmax_v为设置的常量,表示当vpos(t)达到最大值时对应的R(t)的值。公式(6)中Spos(t)表示从实时选择过程的开始时刻tsl_start到当前时刻t,这段时间内对指针Spos变化的速度进行积分得到的列表指针Spos对应的位移值。即终端可以根据上述公式(1)~(6)进行计算,得到列表指针Spos对应的位移信息,并根据得到的位移信息,调节在显示媒介中列表指针的位置。例如,如图3C所示,终端可以根据上述公式(1)~(6)进行计算,得到列表指针Spos对应的位移值即Spos(t)的值为-4,则终端调节Spos列表指针指向自然数编号-4对应的列表选项为“广东省”,即“广东省”是当前被选中的选项,终端可以将“广东省”选项加粗加黑地高亮显示,同时“广东省”选项附近的几个选项“上海市”、“山东省”以及“江苏省”也在显示媒介中进行显示。
由此使得,在判定用户做出了起始手势动作之后,终端可以得到进入实时选择过程的时刻即tsl_start值。在进行实时选择的过程中,终端可以实时根据yq的值得到对应的速度vpos的函数,然后根据速度vpos的函数对时间的积分算出列表指针Spos对应的位移值即Spos(t)的值,再根据Spos(t)的值在显示屏中进行刷新显示。相较于传统的手势控制方式中,由于画面中yq的值域有限(受限于人的动作幅度与摄像头的视角),进而导致Spos的值域有限,Spos的值域需要与列表中的所有选项进行映射,如果列表选项过多,则每个选项对应的Spos的区间就很小,操作时选项跳动过快,手指一个轻微的动作就可能导致Spos变化,进而导致选中的项目变更,即难以锁定某个固定的选项。如果列表选项过少,则会对应用程序造成限制。而本实施中,通过在yq与Spos之间引入速度vpos的时间函数,使得用户既能稳定得选中选项,选项的列表长度也不会受到限制,同时配合刹停规则,当用户看到自己期望的选项时,只要让手指往yq(tsl_start)所在的方向移动一定幅度,即可立即让Spos的速度变为0,用户可以通过控制手势动作在视频帧画面中的位置完成对选项速度切换的调节,以便能够准确快速地选择到目标选项。同时,无需用户触碰设备就可以完成列表选项选择操作,避免了一系列繁琐的操作,从而有效提高了用户的操作效率。
在其中一个实施例中,如图6A所示,动态调节进入实时选择过程的时刻的步骤包括:
步骤602,获取预先配置的刹停规则,根据刹停规则,计算当前时刻横坐标信息或者纵坐标信息对应的偏移量数值。
步骤604,计算偏移量数值与进入实时选择过程的时刻对应的手掌外接矩形的宽度信息的比值。
步骤606,获取进入实时选择过程的时刻到当前时刻中比值的绝对值的最大值。
步骤608,当比值的绝对值的最大值大于预设第一阈值,且当前时刻对应的比值的绝对值小于预设第二阈值时,则调节进入实时选择过程的时刻为当前时刻。其中,预设第一阈值为预设的比值的最大值,预设第二阈值是根据预设的刹停系数和比值的绝对值的最大值得到的。
步骤610,根据调节后的进入实时选择过程的时刻,对列表指针的速度信息进行积分计算,得到列表指针对应的位移信息。
终端可以实时读取视频帧图像,在视频帧图像中检测对应的手势动作信息。当终端检测到起始手势动作时,则进入实时选择过程。在进行实时选择的过程中,终端可以根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容。具体的,终端可以获取预先配置的刹停规则,根据刹停规则,计算当前时刻手势动作的中点的位置信息的横坐标信息或者纵坐标信息对应的偏移量数值。进一步的,终端计算该偏移量数值与进入实时选择过程的时刻对应的手掌外接矩形的宽度数值的比值。终端可以获取进入实时选择过程的时刻到当前时刻中比值的绝对值的最大值。当终端检测到该比值的绝对值的最大值大于预设第一阈值,且当前时刻对应的比值的绝对值小于预设第二阈值时,则终端调节进入实时选择过程的时刻为当前时刻。其中,预设第一阈值为预设的比值的最大值,预设第二阈值是根据预设的刹停系数和比值的绝对值的最大值得到的。终端可以根据调节后的进入实时选择过程的时刻,对列表指针的速度信息进行积分计算,得到列表指针对应的位移信息。例如,终端可以根据手势动作的中点的位置信息,即当前手势动作的中点的位置信息Q(xq,yq),计算Q点对应的横坐标信息或者纵坐标信息对应的偏移量数值。以计算纵坐标信息(即y坐标)对应的偏移量数值为例。此外,以Q(xq,yq)点的yq(即y坐标)为基础计算Spos对应的数值,也可以使用xq(即x坐标)替代yq来计算Spos对应的数值,相应的,计算过程中涉及的其他点的y坐标,也将被替换成对应的x坐标。具体计算公式如上述的公式(3)(4)(5)(6)。
由于每一帧图像的yq终端均可以通过上述方法计算出来,因此终端可以计算出每一帧图像的yq(t),也就是说,上述公式中yq(t)是已知的。其中,Vmax、Rstop和Rmax_v均为常量,均可配置,推荐值为:Vmax=4/秒,Rstop=0.1,Rmax_v=1.0。除了上述的公式定义的Spos的计算过程之外,同时终端可以根据刹停规则,动态调节进入实时选择过程的时刻。刹停规则可以视为本申请中的一个选配件,用户也可以自行选择是否需要启用刹停规则。即终端可以通过改变tsl_start,从而改变Spos的计算过程。刹停规则的具体内容可以包括:当前时刻为tnow,实时选择过程的开始时刻为tsl_start,在tsl_start到tnow这段时间内,假设R(t)的绝对值的最大值为Rabs_max,当Rabs_max大于Rmax_v时,且|R(tnow)|小于(Kbreak*Rabs_max),则将tsl_start设置为tnow,然后继续按照上述公式(6)计算Spos对应的数值。其中,Kbreak为刹停系数,可配置,Kbreak推荐值为0.5。可以理解的是,以Q(xq,yq)点的yq(即y坐标)作为对应的偏移量数值计算Spos对应的数值,也可以使用xq替代yq来计算Spos对应的数值,只需要将计算过程中涉及的其他点的y坐标,相应的替换成对应的x坐标对应的数值即可。
由此,每一次计算Spos对应的数值之前都会运行一次“刹停规则”,并根据规则在满足预设第一阈值条件(即Rmax_v)和第二阈值条件(即Kbreak*Rabs_max)时对tsl_start进行更新。上述公式(1)~(6)与刹停规则共同决定了每一个时刻Spos对应的值,显示器将根据Spos对应的值,将与该Spos(t)的值对应的项目显示出来,供用户查看。进一步的,当终端判定用户出现结束手势动作时,结束上述流程,并将用户最终选中的选项返回给上层的调用者。至此,列表选项的选择过程结束。由此使得,通过设置刹停规则,能够提升用户使用该功能时的舒适度,给用户带来便捷。由于Spos进入最高速度变化的状态时,终端上显示的列表选项会刷新地非常快,用户期望选中的选项会高速地在终端显示屏上滚动刷新,当用户看到自己的期望选项的时,用户需要立刻让Spos的刷新速度变为0,后续再慢慢微调至自己期望的选项,若没有采用刹停规则,那么这时用户需要做出让yq回到yq(tsl_start)的手势,由于用户做出的手势容易出现偏差,进而导致Spos还保持了一定的速度继续刷新,使得用户无法立刻让列表指针Spos停下来,导致用户的操作效率较低。而本实施例中,通过启用刹停规则,当用户看到自己期望的选项时,只要让手指往yq(tsl_start)所在的方向移动一定幅度,即可立即让Spos的速度变为0,用户可以通过控制手势动作在视频帧画面中的位置完成对选项速度切换的调节,以便能够准确快速地选择到目标选项。同时,无需用户触碰设备就可以完成列表选项选择操作,避免了一系列繁琐的操作,从而有效提高了用户的操作效率。
在一个实施例中,如图6B所示,为终端系统处理的流程图。在一个涉及人机交互的系统中,当有应用程序需要用户从一个列表中选择一个选项的时候,该应用程序就会触发对应的列表选项选择过程。其中,人机交互是指人通过机器上特定的输入设备或者传感器,对机器进行控制或者设置的过程。比如触摸手机屏幕对手机的控制以及在机器的摄像头前面通过手势动作对机器进行控制等。列表选项选择过程是指机器通过屏幕或者其他显示媒介,向用户展示一个列表,并要求用户从列表中选择一项内容的过程。比如,从通讯录列表中选择一个联系人的过程、从功能菜单列表中选择一个功能选项的过程等。
在智能终端与用户交互的过程中,当智能终端需要用户从一个列表中选取一个选项的时候,智能终端便可以启动列表选项选择过程,与用户进行交互。具体的,列表选择过程的程序会根据用户在摄像头前的手势动作,得到用户最终选择的选项,并将该选项回馈给该应用程序。即智能终端通过显示媒介向用户显示被选择的列表的内容,并通过高亮等突出显示的方式将当前选中的选项标示出来。智能终端实时读取摄像头采集的画面数据进行处理,识别用户当前的手势动作,并根据预设的控制策略,变更当前选中的选项,刷新显示媒介的显示内容。当用户做出选择结束的动作时,智能终端结束本次列表选项选择过程,并记录结束时用户选定的列表中的项目,然后执行该项目对应的后续其他操作。其中,智能终端是指能够通过键盘等输入设备和摄像头等传感器设备获取用户的指令,并完成用户期望的操作,最终向用户返回用户需要的结果的设备终端。由此,用户可以在不直接接触机器的情况下完成列表选项选择过程,避免了一系列繁琐的操作,使得用户能够快速并准确地完成列表选项选择过程,极大的提升了人机交互的效率。
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种手势控制装置,包括:显示模块702、读取模块704、检测模块706、变更模块708和记录模块710,其中:
显示模块702,用于在显示媒介中显示与应用程序标识对应的待选择的列表内容。
读取模块704,用于读取视频帧图像,在视频帧图像中检测对应的手势动作信息。
检测模块706,用于当检测到起始手势动作时,则进入实时选择过程。
变更模块708,用于在实时选择过程中,根据预设的控制策略,变更列表内容中被选中的选项,并刷新显示媒介中的显示内容;
记录模块710,用于当检测到结束的手势动作时,则结束列表内容的选择过程,并记录结束时用户选定的列表内容中的项目。
在一个实施例中,该装置还包括:判定模块。
判定模块用于当检测到包含预设手势的视频帧图像数量在预设时间内达到预设比率时,则判定检测到起始手势动作,进入实时选择过程。
在一个实施例中,该装置还包括:获取模块和比较模块。
获取模块用于获取进入实时选择过程的时刻对应的第一中心点坐标信息;获取当前时刻对应的第二中心点坐标信息。比较模块用于将第一中心点坐标信息与第二中心点坐标信息进行运算,得到对应的差值,将差值与进入实时选择过程的时刻对应的手掌外接矩形的宽度信息进行比较,当差值的绝对值大于宽度信息时,则判定检测到结束的手势动作。
在一个实施例中,该装置还包括:调节模块。
调节模块用于根据位置信息,调节在显示媒介中列表指针的位置,并根据列表指针的位置实时刷新显示媒介中的显示内容。
在一个实施例中,显示模块还用于将列表指针指向的选项位置在显示媒介中进行标记显示,并将选项位置附近的预设数量选项在显示媒介中显示。
在一个实施例中,判定模块还用于判定是否出现结束的手势动作,若是,则结束列表内容的选择过程;若否,则继续根据位置信息,调节在显示媒介中列表指针的位置,并根据列表指针的位置实时刷新显示媒介中的显示内容。
在一个实施例中,该装置还包括:计算模块。
计算模块用于计算横坐标信息或者纵坐标信息对应的偏移量数值,根据偏移量数值和进入实时选择过程的时刻对应的手掌外接矩形的宽度信息,计算得到列表指针的速度信息,对速度信息进行积分计算,得到列表指针对应的位移信息。调节模块还用于根据位移信息,调节在显示媒介中列表指针的位置。
在一个实施例中,计算模块还用于获取预先配置的刹停规则,根据刹停规则,计算当前时刻横坐标信息或者纵坐标信息对应的偏移量数值,计算偏移量数值与进入实时选择过程的时刻对应的手掌外接矩形的宽度信息的比值。获取模块还用于获取进入实时选择过程的时刻到当前时刻中比值的绝对值的最大值。调节模块还用于当比值的绝对值的最大值大于预设第一阈值,且当前时刻对应的比值的绝对值小于预设第二阈值时,则调节进入实时选择过程的时刻为当前时刻。计算模块还用于根据调节后的进入实时选择过程的时刻,对列表指针的速度信息进行积分计算,得到列表指针对应的位移信息。
关于手势控制装置的具体限定可以参见上文中对于手势控制方法的限定,在此不再赘述。上述手势控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种手势控制方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各个方法实施例的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。