掌桥专利:专业的专利平台
掌桥专利
首页

基于光流传感器的用户按压操作识别方法和系统

文献发布时间:2023-06-19 19:28:50


基于光流传感器的用户按压操作识别方法和系统

技术领域

本发明涉及通信技术领域,尤其是指一种基于光流传感器的用户按压操作识别方法和系统。

背景技术

现有按压识别的解决方案主要有硬件方案和软件方案两种,其中硬件方案是在按钮末端安装一个开关,利用开关的通断信号来判断用户的按压操作;但是该种方案在按钮末端增加开关,算法简单性能可靠,但需要额外占用cpu的管脚资源,同时额外占用内部的空间。软件方案是基于状态机的状态识别,例如通过状态机返回的dx与dy,让算法处于不同的状态,例如首次按下状态,首次释放状态等;但是该种方案需要维持的状态多,逻辑复杂,一般只能识别单击与长按,对双击、三击的识别准确率低。并且由于状态机可能返回噪声信号,按照状态机返回的dy值进行状态转换对噪声的容忍度较低,容易出现误识别。

发明内容

为此,本发明所要解决的技术问题在于克服现有技术中存在的多击识别准确率低以及由于噪声信号容易导致误识别的技术缺陷。

为解决上述技术问题,本发明提供了一种基于光流传感器的用户按压操作识别方法,包括:

S1:通过设置于按钮上的至少一个光流传感器,获取按钮在y方向上的位移量;

S2:根据所述按钮在y方向上的位移量,计算按钮在y方向上的位移量总和;

S3:判断所述位移量总和是否高于设定的阈值的高值;

若是,则记录一次按压开始,若否,则返回步骤S2;

S4:在记录一次按压开始后,判断已经按下且还没松开的状态是否大于设定的时间;

若是,则标记按压为长按,若否,则继续计算按钮在y方向上的位移量总和;

S5:判断所述位移量总和是否低于设定的阈值的低值;

若是,则记录按压结束,并将按压事件加入历史队列,若否,则返回步骤S4中继续计算按钮在y方向上的位移量总和;

S6:根据历史队列识别按压为单击或多击。

在本发明的一个实施例中,在步骤S2中,使用所述按钮在y方向上的位移量,计算按钮在y方向上的位移量总和的方法,包括:

对实时获取的按钮在y方向上的至少两个位移量进行累加求和,得到按钮在y方向上的位移量总和。

在本发明的一个实施例中,在根据历史队列识别按压为单击或多击的步骤前,对缓存的历史队列进行更新。

在本发明的一个实施例中,对缓存的历史队列进行更新的方法,包括:

判断历史队列中的按压事件的结束时间是否超过设定时间;

若是,则将所述按压事件从历史队列中清除,若否,则保留所述按压事件。

在本发明的一个实施例中,在步骤S6中,根据历史队列识别按压为单击或多击的方法,包括:

判断缓存的历史队列中是否有长按事件;

若是,则标记按压为长按事件,并清空历史队列;

若否,则判断历史队列最后的更新时间是否超过设定的时间阈值;

当历史队列最后的更新时间超过设定的时间阈值,则根据历史队列的长度识别按压为单击或多击。

在本发明的一个实施例中,根据历史队列的长度识别按压为单击或多击的方法,包括:

计算历史队列的长度;

若长度为一个单位长度,则识别按压事件为单击,若长度为两个单位长度,则识别按压事件为双击,若长度为三个或三个以上单位长度,则识别按压事件为三击。

此外,本发明还提供一种基于光流传感器的用户按压操作识别系统,包括:

获取模块,其用于通过设置于按钮上的至少一个光流传感器,获取按钮在y方向上的位移量;

计算模块,其用于使用所述按钮在y方向上的位移量,计算按钮在y方向上的位移量总和;

第一判断模块,其用于判断所述位移量总和是否高于设定的阈值的高值;

若是,则记录一次按压开始,若否,则返回所述计算模块中计算按钮在y方向上的位移量总和的步骤;

第二判断模块,其用于在记录一次按压开始后,判断已经按下且还没松开的状态是否大于设定的时间;

若是,则标记按压为长按,若否,则继续计算按钮在y方向上的位移量总和;

第三判断模块,其用于判断所述位移量总和是否低于设定的阈值的低值;

若是,则记录按压结束,并将按压事件加入历史队列,若否,则返回所述第二判断模块继续计算按钮在y方向上的位移量总和;

识别模块,根据历史队列识别按压为单击或多击。

在本发明的一个实施例中,还包括更新模块,所述更新模块用于在根据历史队列识别按压为单击或多击的步骤前,对缓存的历史队列进行更新。

在本发明的一个实施例中,在所述识别模块中,根据历史队列识别按压为单击或多击的方法,包括:

判断缓存的历史队列中是否有长按事件;

若是,则标记按压为长按事件,并清空历史队列;

若否,则判断历史队列最后的更新时间是否超过设定的时间阈值;

当历史队列最后的更新时间超过设定的时间阈值,则根据历史队列的长度识别按压为单击或多击。

在本发明的一个实施例中,根据历史队列的长度识别按压为单击或多击的方法,包括:

计算历史队列的长度;

若长度为一个单位长度,则识别按压事件为单击,若长度为两个单位长度,则识别按压事件为双击,若长度为三个或三个以上单位长度,则识别按压事件为三击。

本发明的上述技术方案相比现有技术具有以下优点:

本发明所述的一种基于光流传感器的用户按压操作识别方法和系统,其通过光流传感器返回的y方向上的位移量计算y方向上的位移量总和,通过位移量总和的变化以进行按钮按下与释放的识别,对噪声有较高的容忍度,有效避免误识别的问题。同时可以利用历史队列来识别长按、单击、双击、三击等,逻辑简单,算法复杂度低,性能可靠。

附图说明

为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明。

图1是本发明提出的一种基于光流传感器的用户按压操作识别方法的流程示意图。

图2是单击状态下的dy和dy_sum的变化示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

实施例一

参照图1所示,本发明实施例一提供了一种基于光流传感器的用户按压操作识别方法,包括以下步骤:

S1:通过设置于按钮上的至少一个光流传感器,获取按钮在y方向上的位移量;

S2:使用所述按钮在y方向上的位移量,计算按钮在y方向上的位移量总和;

S3:判断所述位移量总和是否高于设定的阈值的高值;

若是,则记录一次按压开始,若否,则返回步骤S2;

S4:在记录一次按压开始后,判断已经按下且还没松开的状态是否大于设定的时间;

若是,则标记按压为长按,若否,则继续计算按钮在y方向上的位移量总和;

S5:判断所述位移量总和是否低于设定的阈值的低值;

若是,则记录按压结束,并将按压事件加入历史队列,若否,则返回步骤S4中继续计算按钮在y方向上的位移量总和;

S6:根据历史队列识别按压为单击或多击。

本发明所述的一种基于光流传感器的用户按压操作识别方法,其通过光流传感器返回的y方向上的位移量计算y方向上的位移量总和,通过位移量总和的变化以进行按钮按下与释放的识别,对噪声有较高的容忍度,有效避免误识别的问题。同时可以利用历史队列来识别长按、单击、双击、三击等,逻辑简单,算法复杂度低,性能可靠。

上述y方向是指按钮被按下或松开后,按钮活动部产生位移的方向。

其中,在步骤S2中,使用所述按钮在y方向上的位移量,计算按钮在y方向上的位移量总和的方法,包括对实时获取的按钮在y方向上的至少两个位移量进行累加求和,得到按钮在y方向上的位移量总和。作为示例地,通过对实时获取的按钮在y方向上的位移量dy进行累加求和,得到按钮在y方向上的位移量总和dy_sum,通过dy_sum的变化以进行按钮按下与释放的识别,其对噪声有较高的容忍度,有效避免误识别的问题。

上述单击状态下的dy和dy_sum的变化如图2所示。单击操作包括按下按钮和松开按钮两个动作。可以看到,按下按钮,光流传感器返回的数据dy为正,dy_sum达到一个较大值。松开按钮,光流传感器返回的数据dy为负,dy_sum基本归零。

图2中的最上方的横线表示dy_sum的高阈值thr_high,当dy_sum高于thr_high时,则认为按钮已经按下,在缓存中记录按压开始,这样可以避免因转轴抖动、传感器噪声等导致的数据dy变化被误认为按压。在已经按下还没松开的状态时,需要判断已经按了多久,当按下未松开的状态长于设定的时间(例如3s),则认为发生了长按。

图2中的下方横线表示dy_sum的低阈值thr_low,当dy_sum低于thr_low时,则认为按钮已经松开,在缓存中记录按压结束,这样可以避免由于噪声导致dy_sum无法归零,而按压状态无法正常结束的情况。一次完整的按压松开作为一个按压事件,放入历史队列。

其中,在步骤S6中,根据历史队列识别按压为单击或多击的方法,包括:判断缓存的历史队列中是否有长按事件;若是,则标记按压为长按事件,并清空历史队列;若否,则判断历史队列最后的更新时间是否超过设定的时间阈值;当历史队列最后的更新时间超过设定的时间阈值,则根据历史队列的长度识别按压为单击或多击。在根据历史队列识别按压为单击或多击的步骤前,对缓存的历史队列进行更新。具体地更新方法为:判断历史队列中的按压事件的结束时间是否超过设定时间;若是,则将所述按压事件从历史队列中清除,若否,则保留所述按压事件。作为示例地,首先对缓存中的历史队列进行更新,将按压结束时间超过2s的按压事件从历史队列中删除。在缓存中没有长按且历史队列最后更新时间超过1s的情况下,根据历史队列的长度判断单击、双击、三击等。

上述根据历史队列的长度识别按压为单击或多击的方法,包括计算历史队列的长度;若长度为一个单位长度,则识别按压事件为单击,若长度为两个单位长度,则识别按压事件为双击,若长度为三个或三个以上单位长度,则识别按压事件为三击。

为了突出本发明提供的一种基于光流传感器的用户按压操作识别方法的有益效果,将本发明与现有的基于状态机的算法进行按压测试,统计不同情况下的按压识别率如下表1所示。

表1

/>

实施例

下面对本发明实施例二公开的一种基于光流传感器的用户按压操作识别系统进行介绍,下文描述的一种基于光流传感器的用户按压操作识别系统与上文描述的一种基于光流传感器的用户按压操作识别方法可相互对应参照。

本发明实施例二提供了一种基于光流传感器的用户按压操作识别系统,包括:

获取模块,其用于通过设置于按钮上的至少一个光流传感器,获取按钮在y方向上的位移量;

计算模块,其用于使用所述按钮在y方向上的位移量,计算按钮在y方向上的位移量总和;

第一判断模块,其用于判断所述位移量总和是否高于设定的阈值的高值;

若是,则记录一次按压开始,若否,则返回所述计算模块中计算按钮在y方向上的位移量总和的步骤;

第二判断模块,其用于在记录一次按压开始后,判断已经按下且还没松开的状态是否大于设定的时间;

若是,则标记按压为长按,若否,则继续计算按钮在y方向上的位移量总和;

第三判断模块,其用于判断所述位移量总和是否低于设定的阈值的低值;

若是,则记录按压结束,并将按压事件加入历史队列,若否,则返回所述第二判断模块继续计算按钮在y方向上的位移量总和;

识别模块,根据历史队列识别按压为单击或多击。

本发明所述的一种基于光流传感器的用户按压操作识别系统,其通过光流传感器返回的y方向上的位移量计算y方向上的位移量总和,通过位移量总和的变化以进行按钮按下与释放的识别,对噪声有较高的容忍度,有效避免误识别的问题。同时可以利用历史队列来识别长按、单击、双击、三击等,逻辑简单,算法复杂度低,性能可靠。

在本发明的一个实施例中,还包括更新模块,所述更新模块用于在根据历史队列识别按压为单击或多击的步骤前,对缓存的历史队列进行更新。

在本发明的一个实施例中,在所述识别模块中,根据历史队列识别按压为单击或多击的方法,包括判断缓存的历史队列中是否有长按事件;若是,则标记按压为长按事件,并将清空历史队列;若否,则判断历史队列最后的更新时间是否超过设定的时间阈值;当历史队列最后的更新时间超过设定的时间阈值,则根据历史队列的长度识别按压为单击或多击。

在本发明的一个实施例中,根据历史队列的长度识别按压为单击或多击的方法,包括计算历史队列的长度;若长度为一个单位长度,则识别按压事件为单击,若长度为两个单位长度,则识别按压事件为双击,若长度为三个或三个以上单位长度,则识别按压事件为三击。

本实施例的基于光流传感器的用户按压操作识别系统用于实现前述的基于光流传感器的用户按压操作识别方法,因此该系统的具体实施方式可见前文中的基于光流传感器的用户按压操作识别方法的实施例部分,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。

另外,由于本实施例的基于光流传感器的用户按压操作识别系统用于实现前述的基于光流传感器的用户按压操作识别方法,因此其作用与上述方法的作用相对应,这里不再赘述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

相关技术
  • 一种基于用户端的人脸识别方法及系统
  • 基于多传感器的用户操作识别方法和使用该方法的设备
  • 基于多传感器的用户操作识别方法和使用该方法的设备
技术分类

06120115925502