基于运动传感器操作虚拟钥匙的方法和相应的用户终端
技术领域
本发明一般涉及便携式用户终端,特别是涉及可使用运动传感器来进行交互操作的便携式用户终端。
背景技术
运动传感器包括多维加速度计和陀螺仪,现在很多智能设备都带有这些传感器用来记录和监测设备的运动情况,或者是实现手势动作交互操作。
在先前的专利申请201610914471.2中,公开了基于虚拟钥匙和虚拟钥匙包技术的物体访问权限管理方法及相应的后台系统、访问控制装置和用户终端。在随后的先前专利申请201610937762.3中,又公开了使用手指手势操作在尺寸紧凑的带触摸显示屏用户终端上进行虚拟钥匙包和虚拟钥匙数据的查看、选择、管理等交互操作的方法和相应的用户终端。然而,没有运动传感器与虚拟钥匙应用程序代码结合使用的技术方案。
注:一些现有技术方案提供了诸如使用手机摇一摇进行蓝牙开锁/开门操作的方法,但功能简单有限,而且摇一摇的操作很容易跟其它应用混淆。
发明内容
本发明的第一个目的是提供一个根据用户操纵用户终端运动产生的动作矢量来触发使用虚拟钥匙完成操作的方法和相应的用户终端。具体的方法包括:
利用运动传感器监测用户操作用户终端在垂直、水平、前后三个维度方向的运动方向和速度,当匹配到预定义动作时,触发执行预定义的虚拟钥匙相关操作;
所述虚拟钥匙相关操作包括:使用虚拟钥匙开锁、使用虚拟钥匙上锁、使用虚拟钥匙反锁、显示附近访问控制装置关联物体的联络界面、显示当前虚拟钥匙包关联物体的控制中心界面。
优选地,对应使用虚拟钥匙开锁操作的预定义动作包括:
用户终端设备机身向前方接近伸直,然后顺时针旋转60度以上(此动作是模仿插入实体钥匙进锁孔,然后顺时针旋转钥匙开锁的动作);
用户终端设备正面面向用户视角,机身朝上,然后机身朝前方下倾60度以上(此动作是仿真在河上放下吊桥的动作)。
优选地,对应使用虚拟钥匙上锁操作的预定义动作包括:
用户终端设备机身向前方接近伸直,然后逆时针旋转60度以上(此动作是模仿插入实体钥匙进锁孔,然后逆时针旋转钥匙上锁的动作);
用户终端设备机身接近水平放置,机身正面朝上,然后机身朝用户视角方向上翻60度以上(此动作是仿真收起在河上吊桥的动作)。
优选地,对应使用虚拟钥匙反锁操作的预定义动作包括:
用户终端设备正面朝向用户视角,然后机身以垂直方向为旋转轴,顺时针方向旋转约90度,快速逆时针旋转回原位置,并再次快速顺时针方向旋转约90度并逆时针旋转回原位置(此动作是模仿一般实体钥匙进行反锁操作时要多次转动钥匙的动作)。
之所以将开锁、上锁和反锁的动作定义成这样,是为了方便用户形象化地记忆,减少学习困扰。不像其它一些开锁技术方案中采用摇一摇的动作,本发明的开锁、上锁和反锁动作更形象更好记更好学,而且开锁、上锁和反锁兼顾。
优选地,对应显示附近访问控制装置关联物体的联络界面的预定义动作包括:
用户终端设备机身正面朝向用户视角,然后用户终端机身以垂直方向为旋转轴向前方旋转超过120度然后再旋转回初始用户终端方向(实际操作时只需要手腕向外转动然后再收回即可);
用户终端设备正面面向用户视角,机身接近垂直方向,然后机身朝前方下倾60度以上,然后返回机身接近垂直方向,此动作重复两次或两次以上(实际操作时,只需要手心面向用户视角,然后手腕向下转动,最后手腕再收回原来位置,并重复动作即可)。
之所以选择这样的动作,是因为用户只需要转动手腕就可以完成操作,而不需要挥动手臂。
优选地,在一些实施例中,如果没有搜到附近可用的访问控制装置,就显示最近常用的虚拟钥匙包关联物体的联络界面。在一些实施例中,如果搜到附近的访问控制装置,用户终端中却没有与之匹配的虚拟钥匙包,用户终端从后台系统获得临时使用的虚拟钥匙包,然后显示所述虚拟钥匙包关联物体的联络界面。
优选地,对应显示当前虚拟钥匙包关联物体的控制中心界面的预定义动作包括:用户终端设备正面朝向用户视角,然后机身朝用户身体外侧运动,形成类似甩出动作,然后动作停止。这个动作也只需要转动手腕就可以完成,而这个动作有点像从实体钥匙包中甩出一串钥匙。
优选地,在一些实施例中,预定义动作的匹配由不同维度的范围阈值进行控制,并可由用户调教和设定。用户终端上的虚拟钥匙应用程序提供用户界面供用户对动作进行学习与调教,以获得更精确的范围阈值参数,提高动作识别准确率。
本发明的第二个目的是提供一种利用运动传感器识别用户终端动作矢量,并将虚拟钥匙数据以二维码形式显示在显示屏上供访问控制装置进行锁命令操作的方法以及相应的用户终端。具体方法是:
优选地,对应以二维码形式显示用于附近访问控制装置的虚拟钥匙,预定义动作方法包括:
用户终端设备机身正面朝向用户视角,然后机身沿垂直方向竖直往复一次以上,显示的二维码用于开锁;
用户终端设备机身正面朝向用户视角,然后机身以前后方向为旋转轴先顺时针旋转超过60度,再旋转回初始位置,并往复一次以上,显示的二维码用于上锁;
用户终端设备机身正面朝向用户视角,然后机身以前后方向为旋转轴先逆时针旋转超过60度,再旋转回初始位置,并往复一次以上,显示的二维码用于反锁。
本发明的第三个目的是提供一种利用运动传感器识别用户终端动作矢量,以实现单手操作快速进行虚拟钥匙包浏览交互操作的方法和相应的用户终端。具体方法是:
优选地,对应以图标形式显示当前虚拟钥匙包所在分类的虚拟钥匙包图标阵列,预定义动作方法是:用户终端设备正面朝向用户视角,然后机身朝用户身体内侧运动,形成类似收回动作,然后动作停止;如果在虚拟钥匙应用程序中,当前已经处于以图标形式显示虚拟钥匙包组,则先判断是否还有下一组虚拟钥匙包组的图标阵列可供显示,如果有,就显示下一组。
对大多数的用户来说,用户终端中的虚拟钥匙应用程序中一般只有一两个虚拟钥匙包,用卡片形式显示就足够了,但对某些用户来说逐个翻看虚拟钥匙包卡片就会比较麻烦。该方法特别适合同时拥有多个访问控制装置访问权的管理服务人员,用来快速切换所选的虚拟钥匙包。在一些实施例中,这些管理服务人员同时服务同一小区内不同的楼栋,可以通行不同楼栋单元的门禁设备。
需要注意的是,在用户终端的实施例中,使用这些预定义动作之前,用户终端应该要被用户激活/解锁,特别是在一些实施例中,用户终端具有指纹识别单元,可以通过用户指纹就完成用户终端的解锁。
这样以用户终端运动动作进行交互操作的方式可以让用户很方便地快速进行开锁、上锁、联络、查看控制中心等操作,而不需要观看用户终端的显示屏后再进行动作,而且是单手就可以完成操作。熟练使用此程序的用户,习惯了这些动作交互操作之后,操作效率可以大大提高。
综上所述,本发明所设计的交互操作方法充分利用了不同的手腕转动和手臂简单移动动作,以易学易记的操作方式实现了单手操作便携式用户终端进行开锁、上锁等常用虚拟钥匙相关操作。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1 是一种实施例中用户终端的系统框图;
图2 是一种实施例中用户操作用户终端运动,进行开锁操作的示意图;
图3 是一种实施例中用户操作用户终端运动,进行上锁操作的示意图;
图4 是一种实施例中用户操作用户终端运动,进行反锁操作的示意图;
图5 和图6是一些实施例中用户操作用户终端运动,进行显示附近访问控制装置关联物体的联络界面操作的示意图;
图7 是一种实施例中用户操作用户终端运动,进行显示当前虚拟钥匙包关联物体的控制中心界面操作的示意图;
图8 是一种实施例中用户操作用户终端运动,进行二维码形式显示用于附近访问控制装置的虚拟钥匙开锁的示意图;
图9 是一种实施例中用户操作用户终端运动,进行二维码形式显示用于附近访问控制装置的虚拟钥匙上锁的示意图;
图10 是一种实施例中用户操作用户终端运动,进行二维码形式显示用于附近访问控制装置的虚拟钥匙反锁的示意图;
图11 是一种实施例中用户操作用户终端运动,进行以图标形式显示当前虚拟钥匙包所在分类的虚拟钥匙包图标阵列的示意图;
图12 是一种实施例中运动动作处理单元中对运动传感器数据进行检测识别处理的流程图;
图13 是一种实施例中运动动作处理单元中对预定义动作进行初始化处理的流程图;
图14 是一种实施例中运动动作处理单元中对运动传感器数据与预定义动作进行匹配识别处理的流程图;
图15 是一种实施例中运动动作处理单元中处理收到的运动传感器数据的流程图。
具体实施方式
下面的描述被给出以使本领域技术人员能够实现并使用实施例,并且下面的描述是在特定的应用及其要求的情况下提供的。对所公开的实施例的各种修改对本领域技术人员来说应当是显而易见的,并且本文所定义的一般原理在不脱离本公开内容的精神和范围的情况下可以应用于其他实施例和应用。因而,本发明并不限于所示出的实施例,而是应当符合与本文所公开的原理和特征一致的最广泛的范围。
在具体实施方式部分所描述的数据结构和代码通常存储于计算机可读存储介质上,该存储介质可以是能够存储由计算机系统使用的代码和/或数据的任意器件或介质。计算机可读存储介质包括,但不限于,易失性存储器、非易失性存储器、磁存储器件和光存储器件(例如,盘驱动器、磁带、CD(光盘)、DVD(数字通用盘或数字视频盘)或者现在已知的或以后开发的能够存储代码和/或数据的其他介质。
在具体实施方式部分所描述的方法和处理能够被实现为代码和/或数据,该代码和/或数据能够存储于以上所描述的计算机可读存储介质内。当计算机系统读取并执行存储于计算机可读存储介质上的代码和/或数据时,计算机系统执行被实现为数据结构和代码并被存储于计算机可读存储介质内的方法和处理。
而且,本文所描述的方法和处理能够包含于硬件模块或装置内。这些模块或装置可以包括,但不限于,专用集成电路(ASIC)芯片、场可编程门阵列(FPGA)、在特定的时间执行特定的软件模块或一段代码的专用的或共用的处理器、和/或现在已知的或以后开发的其他可编程逻辑器件。当硬件模块或装置被激活时,它们执行包含于它们之内的方法和处理。
图1示出了根据一种实施例中用户终端300。用户终端300可以为各种移动终端、智能手机、平板电脑、笔记本电脑、智能手表、智能眼镜、车载电脑等。参照图1,中央处理单元313负责控制和管理处理器301所有处理单元的工作。网络模块303用于用户终端300连接后台系统100,通过登录注册处理单元316完成对后台系统100的登录后,就可以访问后台系统100的服务,并接收来自后台系统100的虚拟钥匙更新消息。如果接收到来自后台系统100的虚拟钥匙更新消息,消息处理单元314将消息交由虚拟钥匙处理单元311进行处理,虚拟钥匙处理单元311先对消息进行校验,校验成功后更新到装置本地存储器302加密保存的虚拟钥匙库中。输入模块305接收用户的操作输入,其中就包括触摸屏幕显示器中的触敏处理器件。输出模块304将反馈输出给用户。用户交互处理单元315通过输入模块305和输出模块304完成与用户的交互,比如虚拟钥匙包的选择和查看、成员管理、虚拟钥匙的管理和添加授权等交互操作,再经虚拟钥匙处理单元311、虚拟钥匙请求单元312、网络连接处理单元317、网络模块303向后台系统100发送虚拟钥匙请求。登录后台系统100后从本地存储器302中解密保存的虚拟钥匙包数据,如果没有找到,就向后台系统100发送获取虚拟钥匙包请求。通过短距通讯模块306,可以把虚拟钥匙数据发送给访问控制装置200,进行开锁、上锁、反锁等锁命令操作。
在此实施例中,输入模块305还包括运动传感器单元330,用于检测三维加速度计和陀螺仪数据。检测到的运动传感器数据由运动动作识别单元310进行动作识别匹配处理。中央处理单元313根据运动动作处理单元310的识别出的预定义动作结果执行对应预定义操作。
在一些实施例中,短距通讯模块306包括NFC近场通讯单元、低功耗蓝牙通讯单元。短距通讯处理单元319负责处理这些短距通讯的连接、通讯。在先前的专利申请201610932849.1中,公开了通过NFC近场通讯方式和蓝牙通讯方式进行虚拟钥匙锁命令操作的方法。
在一些实施例中,输出模块304包括了显示屏,二维码形式的虚拟钥匙被输出到显示屏上,然后被访问控制装置200所识别和处理。在先前的专利申请201610936846.5中,公开了以二维码方式进行虚拟钥匙锁命令操作的方法。
图2给出了用于例示根据一种实施例中用于虚拟钥匙开锁操作的预定义动作的示意图。参照图2,其中图2A是模拟实体钥匙顺时针旋转动作的动作;图2B是仿真在河上放下吊桥的动作。
图3给出了用于例示根据一种实施例中用于虚拟钥匙上锁操作的预定义动作的示意图。参照图3,其中图3A是模拟实体钥匙逆时针旋转动作的动作;图3B是仿真在河上收起吊桥的动作。
图4给出了用于例示根据一种实施例中用于虚拟钥匙反锁操作的预定义动作的示意图。参照图4,首先,用户终端处于图4A所示的状态,然后以垂直方向为轴顺时针旋转约90度,用户终端呈现如图4B所示的状态;然后以垂直方向为轴,逆时针旋转回如图4A所示的初始状态;然后再以垂直方向为轴顺时针旋转约90度,用户终端再次进入如图4B所示的状态;然后以垂直方向为轴,逆时针旋转回如图4A所示的初始状态,动作结束。此动作是模仿一般实体钥匙进行反锁操作时要多次转动钥匙的动作。
图5给出了用于例示根据一种实施例中用于显示附近访问控制装置关联物体的联络界面操作的预定义动作的示意图。参照图5,首先,用户终端处于图5A所示的状态,然后以垂直方向为轴顺时针旋转约180度,用户终端呈现如图5B所示的状态,机身背面朝向用户视角;然后以垂直方向为轴,逆时针旋转回如图5A所示的初始状态,动作结束。
图6给出了用于例示根据另一种实施例的用于显示附近访问控制装置关联物体的联络界面操作的预定义动作的示意图。参照图6,首先,用户终端处于图6A所示的状态,然后机身朝前方下倾60度以上,用户终端呈现如图6B所示的状态;然后机身向上抬起,回到如图5A所示的初始状态,动作结束。
图7给出了用于例示根据一种实施例中用于以二维码形式显示用于附近访问控制装置开锁的虚拟钥匙操作的预定义动作的示意图。参照图7,首先,用户终端处于图7A所示的状态,然后沿垂直方向向上运动,用户终端呈现如图7B所示的位置和状态;然后再沿垂直方向向下,回到如图7A所示的初始状态;然后再沿垂直方向向上运动,用户终端再次进入如图7B所示的位置和状态;然后再沿垂直方向向下,回如图7A所示的初始状态,动作结束。
图8给出了用于例示根据一种实施例中用于以二维码形式显示用于附近访问控制装置上锁的虚拟钥匙操作的预定义动作的示意图。参照图8,首先,用户终端处于图8A所示的状态,然后以前后方向为旋转轴顺时针旋转超过60度,用户终端呈现如图8B所示的位置和状态;然后再以前后方向为旋转轴逆时针旋转回到如图8A所示的初始状态;然后以前后方向为旋转轴顺时针旋转超过60度,用户终端再次进入如图8B所示的位置和状态;然后再以前后方向为旋转轴逆时针旋转回到如图8A所示的初始状态,动作结束。
图9给出了用于例示根据一种实施例中用于以二维码形式显示用于附近访问控制装置反锁的虚拟钥匙操作的预定义动作的示意图。参照图9,首先,用户终端处于图9A所示的状态,然后以前后方向为旋转轴逆时针旋转超过60度,用户终端呈现如图9B所示的位置和状态;然后再以前后方向为旋转轴顺时针旋转回到如图9A所示的初始状态;然后以前后方向为旋转轴逆时针旋转超过60度,用户终端再次进入如图9B所示的位置和状态;然后再以前后方向为旋转轴顺时针旋转回到如图9A所示的初始状态,动作结束。
图10给出了用于例示根据另一种实施例中用于显示当前虚拟钥匙包关联物体的控制中心界面操作的预定义动作的示意图。参照图10,首先,用户终端处于图10左边所示的位置和状态,然后机身朝用户身体外侧运动,形成类似甩出动作,用户终端到达右边的位置和状态,动作结束。
图11给出了用于例示根据另一种实施例中用于以图标形式显示当前虚拟钥匙包所在分类的虚拟钥匙包图标阵列操作的预定义动作的示意图。参照图11,首先,用户终端处于图11右边所示的位置和状态,然后机身朝用户身体内侧运动,形成类似收回动作,用户终端到达左边的位置和状态,动作结束。
图12给出了用于例示根据一种实施例中运动动作处理单元中对运动传感器数据进行检测识别处理的流程图。该识别处理是基于贝叶斯分类算法来把收到的运动传感器数据逐一与预定义动作进行匹配计算,然后找出匹配值最高的动作并返回,如果没有匹配的动作,将返回失败。参照图12,首先,先对所有预定义动作进行一次匹配计算,并统计出贝叶斯分母值。在步骤1200、1202、1204、1206之间的循环体中对每个预定义动作进行匹配计算,得出的匹配可能性值乘上预定义动作默认可能性值(步骤1204),然后累加到贝叶斯分母值中(步骤1206)。然后,从步骤1208开始再遍历一次所有预定义动作,将预定义动作计算出的匹配可能性值乘上它的默认可能性值再除以贝叶斯分母值(步骤1210),根据该结果来找出匹配可能性最高的预定义动作。如果最后没有找到匹配的预定义动作,返回失败;否则将返回预定义动作的对象。
运动动作处理单元330识别出预定义动作后,用户终端300的中央处理单元313就可以执行该预定义动作对应的预定义操作。
图13给出了用于例示根据一种实施例中运动动作处理单元中对预定义动作进行初始化处理的流程图。参照图13,首先,对于每个预定义动作,匹配前先从预定义动作库文件中加载预定义动作的数据,并使用该数据对该动作进行训练。步骤1300、1302、1304、1306之间的循环体就是逐一把预定义动作数据从存储器中加载,然后进行训练。训练方法是:将运动传感器数据进行量化处理(采用Kmeans聚类算法),得到离散序列数据(步骤1304);然后将离散序列数据传给单向隐马尔科夫模型算法进行机器学习,得到动作匹配模型数据和动作默认可能性值(步骤1306)。
图14给出了用于例示根据一种实施例中运动动作处理单元中对运动传感器数据与预定义动作进行匹配识别处理的流程图。执行该流程处理前,应先按图13所述步骤对预定义动作进行初始化和训练。参照图14,首先,将运动传感器数据进行量化处理(采用Kmeans聚类算法),得到离散序列数据(步骤1400);然后将离散序列数据传给单向隐马尔科夫模型算法进行前向序列匹配计算,得到匹配可能性值(步骤1402)。
有关Kmeans聚类算法、隐马尔科夫模型算法和贝叶斯分类算法,可以参考有关资料,这些算法只是一种实施例中所采用的算法,这里就不做详细解释。
图15给出了用于例示根据一种实施例中运动动作处理单元处理收到的运动传感器数据的流程图。当用户终端被激活并接收到运动传感器传来的数据时,该处理流程被调用,以进行数据预处理和决定是否进入识别状态或进行识别或记录新收到的数据。参照图15,首先,步骤1500、1502、1504组成的循环体先对收到的传感器数据进行过滤处理。此实施例中,使用了可扩展的过滤器类来对传感器数据进行处理。根据过滤目的不同,可以有用于过滤处于空闲状态的数据的过滤器,还可以有用于过滤相同运动方向的细微差异数据的过滤器等等。经过滤处理完成后,到达步骤1506,检查是否还有数据。如果没有数据剩下来,就直接到达步骤1530,处理完成。否则,进入步骤1508,判断是否当前处于训练(调教)状态,如果是,那么进入步骤1528,将数据添加到动作训练数据中,然后进入步骤1530,处理完成。如果不是训练状态,那么进入步骤1510,根据过滤后的传感器数据检查是否处于运动状态。然后,进入步骤1512,判断当前是否处于识别状态。如果还未处于识别状态,那么进入步骤1520,否则进入步骤1514。在步骤1520,先判断当前是否处于运动状态,如果不是,那么就进入步骤1530,处理完成;否则就进入步骤1522,开始识别并进入识别状态,然后将新数据添加到动作识别数据中(即步骤1524)。在步骤1514中,判断当前是否处于运动状态,如果还在运动,就将新数据添加到动作识别数据中(步骤1516),否则就进入步骤1518,退出识别状态,对动作识别数据进行识别(即根据图12所示的处理流程进行动作识别和处理)。步骤1516和1518完成后,就进入步骤1530,处理完成。
一些实施例中,用户通过用户交互界面选择要进行调教的预定义动作,然后就可以进入训练状态。训练并测试通过后,可以将用户调教过的动作数据保存起来。
本领域的技术人员应该明白,上述的本发明实施例所提供的装置的各组成部分,以及方法中的各步骤,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上。可选地,它们可以用计算装置可执行的程序代码来实现。从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明之较佳实施例,但其并不限制本发明的实施范围,即不偏离本发明的权利要求所作之等同变化与修饰,仍应属于本发明之保护范围。