CN102981568A - 用于分析电子设备的运动的系统和方法 - Google Patents

用于分析电子设备的运动的系统和方法 Download PDF

Info

Publication number
CN102981568A
CN102981568A CN2012104601249A CN201210460124A CN102981568A CN 102981568 A CN102981568 A CN 102981568A CN 2012104601249 A CN2012104601249 A CN 2012104601249A CN 201210460124 A CN201210460124 A CN 201210460124A CN 102981568 A CN102981568 A CN 102981568A
Authority
CN
China
Prior art keywords
string
equipment
attitude
matrix
motion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012104601249A
Other languages
English (en)
Inventor
杰弗里·埃尔顿·休·道斯
西恩·巴塞洛缪·塞门斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of CN102981568A publication Critical patent/CN102981568A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1626Constructional details or arrangements for portable computers with a single-body enclosure integrating a flat display, e.g. Personal Digital Assistants [PDAs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开涉及一种用于分析手持电子设备的运动的系统和方法。所述系统包括:存储器;微处理器;第一模块,响应于所述设备的运动来产生运动数据;第二模块,向微处理器提供指令,以将运动数据映射到串表示,所述串表示与在与所述设备相关联的空间坐标系中的符号相关,并在存储器中存储所述串表示;以及第三模块。第三模块向微处理器提供指令,以相对于与姿态串相关的数据来分析与所述串表示相关的数据,所述姿态串表示与针对所述设备的命令相关的姿态,以确定所述姿态是否已被赋予所述设备;以及如果所述串表示与所述姿态串充分匹配,则在所述设备上执行与所述姿态相关联的命令。

Description

用于分析电子设备的运动的系统和方法
分案说明
本申请是申请日为2009年9月25日,申请号为200910211688.7,题为“用于分析电子设备的运动的系统和方法”的中国专利申请的分案申请。
技术领域
本发明一般涉及一种用于分析电子设备的运动的系统和方法。具体地,本发明涉及分析设备的运动以标识姿态作为该设备的输入信号。
背景技术
目前的无线手持移动通信设备执行各种功能,以使移动用户能够例如在其远离其桌面时与信息和通信保持同步,如电子邮件、企业数据以及组织者信息。这种设备具有显示器和复杂的操作系统,操作系统用于提供图形用户界面(GUI),图形用户界面向用户提供各种静态和运动图像。
用于手持设备的GUI的一种导航设备是轨迹球或滚轮。轨迹球或滚轮的运动通常被转换成光标的运动,其可以包含对图标进行突出显示。然而,固有地,使用轨迹球或滚轮并不直观。其他导航设备利用设备自身的运动。然而,用现有算法来解释这种运动是在计算上要求较高,而且需要相对较大的处理功率和存储空间,尤其是对于手持设备而言。
需要一种解决现有技术的缺陷的系统和方法。
发明内容
下面的描述和这里描述的实施例仅是以示意本公开原理的特定实施例的示例的方式来提供的。这些示例提供用于解释而不是限制本公开和这些原理。在下面的描述中,在整个说明书和附图中,用相同的相应附图标记来标注相同的部分。
在第一方面,提供了一种用于分析手持电子设备的运动的方法。所述方法包括:跟踪所述设备的运动数据;将运动数据映射到串表示;相对于姿态串来分析所述设备的串表示,所述姿态串表示与针对所述设备的命令相关的姿态,以确定所述姿态是否已被赋予所述设备;以及如果所述串表示与所述姿态串匹配,则在所述设备上执行与所述姿态相关联的命令。
在所述方法中,分析串表示可以利用所述设备先前的移动数据(如果可用)。
在所述方法中,串表示可以与阈值进行比较,以确定串表示是否与姿态串表示相匹配。
在所述方法中,运动可以被映射到布置在与所述设备相关联的空间坐标系中的枚举符号。
在所述方法中,所述空间坐标系可以提供从所述设备的坐标系原点开始的点的轨迹。点的覆盖可以具有关于所述设备的二十面体对称。
在所述方法中,将运动数据映射到串表示可以包括:将运动数据转换为表示运动的运动向量;计算所述设备的总加速度向量,所述总加速度向量包括所述设备的运动向量和倾斜向量;相对于空间坐标系映射所述总加速度向量,以标识枚举符号中与所述运动匹配的枚举符号。
在所述方法中,加速度计可以提供所述设备的运动数据。
在所述方法中,分析串表示可以利用阈值,所述阈值丢弃串表示中连续重复的枚举符号。
在所述方法中,可以相对于所述阈值,使用编辑距离算法来分析串表示,如Levenshtein编辑距离算法或Smith-Waterman算法。附加地或可选地,可以使用其它序列对齐算法。
在所述方法中,分析串表示可以包括:构造包含串表示和姿态串的数据的矩阵;通过遍历所述矩阵的子集以生成所述串表示中的值相对所述姿态串的匹配得分,来计算所述串表示相对所述姿态串的匹配得分。
在所述方法中,构造数据的矩阵可以使用所述设备先前的运动数据;并且计算匹配得分可以使用Smith-Waterman算法递归遍历所述矩阵的子集,直到遇到停止条件为止。
在所述方法中,所述矩阵可以是动态编程矩阵D(i,j)。所述矩阵可以具有m×n维,其中m是串表示的长度,以及n是姿态串的长度。所述矩阵可以具有使用m维来标识的串表示的分量,以及使用n维来标识的姿态串的分量。所述矩阵可以具有最左侧的列D(i,0)=0,其中i=0...m;以及顶行D(0,j)=0,其中j=0...n。所述矩阵中的其余元素可以被设置成0或以下之一中的最小值:
D(i,j)=max{0             [或]
D(i-1,j)+间隙罚分(gap penalty)  [或]
D(i,j-1)+间隙罚分  [或]
D(i-1,j-1)+替换矩阵的第i,j项}。
所述替换矩阵可以基于空间坐标系顶点间的几何关系。
在所述方法中,计算匹配得分可以使用串表示和先前的运动数据一起来确定所述姿态串是否跨越(straddle)串表示和先前的运动数据。
第二方面,提供了一种用于分析手持电子设备的运动的系统。所述系统包括:存储器存储设备;微处理器;第一模块,响应于所述设备的运动来产生所述设备的运动数据;第二模块,向微处理器提供指令,以将运动数据映射到串表示,所述串表示与布置在与所述电子设备相关联的空间坐标系中的枚举符号相关,并在存储器中存储所述串表示;以及第三模块。第三模块向微处理器提供指令,用于:相对于与姿态串相关的数据来分析所述设备的与串表示相关的数据和先前的运动数据(如果先前的运动数据可用),所述姿态串表示与针对所述设备的命令相关的姿态,以确定所述姿态是否已被赋予所述设备;以及如果串表示与阈值进行比较来确定所述串表示是否与所述姿态串匹配,则在所述设备上执行与所述姿态相关联的命令。
在所述系统中,第二模块可以:将运动数据转换为表示运动的运动向量;计算所述设备的总加速度向量(所述总加速度向量仍包括所述设备的运动向量和倾斜向量);相对于空间坐标系映射所述总加速度向量,以标识枚举符号中与所述运动匹配的枚举符号。
在所述系统中,第一模块可以包括加速度计,以提供所述设备的运动数据。
在所述系统中,第三模块可以相对于阈值,使用编辑距离算法来分析串表示,如Levenshtein编辑距离算法或Smith-Waterman算法。附加地或可选地,也可以使用其他序列对齐算法。
在所述系统中,第三模块向微处理器提供指令,用于:构造包含串表示和姿态串的数据的矩阵;通过遍历所述矩阵的子集以生成所述串表示中的值相对所述姿态串的匹配得分,来计算所述串表示相对所述姿态串的匹配得分。
在所述系统中,所述矩阵可以是动态编程矩阵D(i,j)。所述矩阵可以具有m×n维,其中m是串表示的长度,以及n是姿态串的长度。所述矩阵可以具有使用m维来标识的串表示的分量,以及使用n维来标识的姿态串的分量。所述矩阵可以具有最左侧的列D(i,0)=0,其中i=0...m;以及顶行D(0,j)=0,其中j=0...n。所述矩阵中的其余元素可以被设置成0或以下之一中的最小值:
D(i,j)=max{0  [或]
D(i-1,j)+间隙罚分 [或]
D(i,j-1)+间隙罚分 [或]
D(i-1,j-1)+替换矩阵的第i,j项}。
在所述系统中,第三模块可以利用串表示和先前的运动数据一起来确定姿态串是否跨越串表示和先前的运动数据。
在其他方面,提供了上述方面的集合和子集的各种组合。
一般而言,实施例提供了跟踪(手持)设备的运动并相对于所存储的、所关注的所选运动(这里称为“姿态”)的表示来评估运动的系统和方法。实施例利用了量化方案,使用三维坐标系以相对于该坐标系来映射设备的运动并存储姿态。该坐标系具有预定符号集来限定坐标系中的特定顶点。所述符号可以是任何预定义字符集,包括ASCII字符集,整数,或者任何其他枚举方案。对检测到的运动进行量化,其中运动被分解为段,每段被映射(至少作为近似)至坐标系中的顶点上。因此,作为通过每个所标识顶点的运动过程,可以使用运动来标识顶点的串。由于顶点具有符号(这里作为文本符号提供),对于运动,所映射的顶点处的符号提供了“文本串”,该文本串表示对坐标系映射的运动。同时,相对于坐标系,也对(输入)姿态的集合进行量化,每一个姿态表示被实现为设备的运动的命令,该运动由在设备上运行的应用来识别。因此,姿态与符号的离散序列相关联(再次地,符号可以由ASCII字符集,或整数,或者任何其他方便的枚举方案来表示)并在以下称作“模式串”。因此,术语“串表示”在这里用作标识与检测到的运动或姿态相关的坐标系顶点的任何串的一般术语。如前文所述,串表示可以由若干离散符号组成。可能有针对姿态的模式的串表示(即“模式串”)和/或针对检测到的设备运动的串表示。串表示可以映射用于分析设备运动的其他运动、偏移、默认位置等等。如这里所述,由于串表示由离散元素组成,因此可以使用数学函数对其元素进行处理和操作。为方便起见,“文本串”一词是在设备的坐标系中穿过所标识顶点的、检测到的运动的串表示的简短形式;“模式串”一词是在设备的坐标系中具有穿过所标识顶点的元素的姿态的串表示的简短形式。
姿态的模式串集合可以被存储或对设备可用,使得其可以与在文本串中编码的、设备的实时运动相比较。在特定实例中,设备近期检测到的运动(由文本串表示)可以与所存储的姿态集合(由所存储的模式串表示)相比较,以评估运动是否与所存储的姿态相匹配。基于基本Smith-Waterman算法的扩展可以用作评估的一部分。所述评估可以具有阈值,以设置与姿态和检测到的运动的偏差的容限。
附图说明
参考附图,仅以示例的方式来提供本公开,附图中:
图1为根据实施例的具有姿态分析系统和运动检测系统的电子设备的示意表示;
图2为图1中设备的特定内部组件和运动调整系统的框图;
图3为在处理图1中设备的运动中执行的功能的状态图;
图4A为表示由作用于图1中设备的重力而产生的加速度的加速度向量图的示意框图;
图4B为表示作用于图1中设备的适当加速度的加速度向量图的示意框图;
图4C为表示作用于图1中设备的重力及适当减速的加速度向量图的示意框图;
图5为具有图1中设备的运动的恒定加速度图的总加速度图;
图6A为图1中设备的示意框图,添加了具有坐标系的加速度向量图,示出了图4A中的重力向量;
图6B为图1中设备的示意框图,添加了具有图4A的坐标系的加速度向量图,示出了图4B中的加速度向量;
图6C为图1中设备的示意框图,添加了具有图4A的坐标系的加速度向量图,示出了图4C中的减速向量;
图7A为图1中设备的示意框图,添加了具有第二坐标系的加速度向量图,示出了在相对于地球轴倾斜的第一位置中的设备;
图7B为图1中设备的示意框图,添加了具有图6A的第二坐标系的加速度向量图,示出了在相对于地球轴倾斜的第二位置中的设备;
图7C为图1中设备的示意框图,添加了具有图6A的第二坐标系的加速度向量图,示出了在相对于地球轴倾斜的第三位置中的设备;
图8A-8D为图6A至6C中的运动的三维实现的框图;
图9A为图1中设备的实施例中使用的基于5频率(5V)二十面体的坐标模型的示意框图;
图9B为具有编号方案的二十面体的一部分,示出了图9A中的十个顶点;
图9C为与图9A中5V二十面体相对应的邻接矩阵的元素的快照的图形表示;
图9D为与图9A中坐标模型相对应的完整的邻接矩阵的框图;
图10A为根据实施例的通过相对于图1中设备的运动数据来评估所存储的模式姿态而得到的动态编程矩阵的框图;
图10B为根据实施例的通过相对于图1中设备的两组运动数据来评估所存储的模式姿态而得到的两个动态编程矩阵的框图;
图10C为根据实施例的作为图1中设备处理运动数据的一部分而生成的示例替换矩阵;
图10D为根据实施例,针对多个姿态,通过相对于图1中设备的运动数据来评估所存储的两个模式姿态而得到的动态编程矩阵的框图;
图11为图1实施例中两个运动检测系统的框图;以及
图12为图1实施例中备选运动检测系统的框图。
具体实施方式
这里提供了实施例的方面的示例性细节。首先,提供对在设备中提供的实施例的一般概念和特征进行描述。然后,提供了用于处理所检测到的设备运动并将运动与所存储的姿态表示进行比较的系统、数据和算法的进一步的细节。
因此,参照图1和图2,首先提供了设备的一些一般特征。图1提供了根据本公开实施例的用于接收电子通信的电子设备的一般特征,其总体标记为10。在本实施例中,电子设备10基于具备增强个人数字助理功能的计算平台,该增强个人数字助理具备蜂窝电话和电子邮件特征。然而,可以理解,电子设备10可以基于其它电子设备的构造设计和功能,如智能电话、台式计算机寻呼机或带有电话设备的膝上计算机。在本实施例中,电子设备10包括外壳12,LCD 14,扬声器16,LED指示器18,轨迹球20,ESC(“退出”)键22,小键盘24,包括耳塞26和麦克风28的电话耳机。轨迹球20和ESC键22可以沿着箭头A的路径向内按压,作为向设备10提供附加输入的装置。
可以理解,如本领域技术人员可以想到,外壳12可以由任意适合的材料制成,并可以被适合地形成为容纳和保持设备10的所有组件。
设备10用于使用任何已知的无线电话系统(如全球移动通信(GSM)系统,码分多址(CDMA)系统,CDMA 2000系统,蜂窝数字分组数据(CDPD)系统,以及时分多址(TDMA)系统)来进行无线电话呼叫。其它无线电话系统可以包括无线WAN(IMS),无线MAN(Wi-max或IEEE802.16),无线LAN(IEEE802.11),无线PAN(IEEE802.15及蓝牙)等,以及任何其它支持语音的系统。另外,可以支持蓝牙网络。其它实施例包括IP电话(VoIP)类型的数据流通信,其可以模拟电路交换的电话呼叫。耳塞26可以用于收听电话呼叫和其他声音消息,麦克风28可以用于向设备10说话和输入声音消息。
参考图2,示意图200中提供了设备10的功能组件。所述功能组件一般是电子的、结构的或电子机械设备。特别地,微处理器202被提供用于控制和接收几乎所有与设备10有关的数据、传输、输入和输出。微处理器202被示意性地示为与小键盘24及其它内部设备耦合。优选地,微处理器202控制设备10及其组件的整体操作。微处理器202的示例性微处理器包括在Data 950(商标)系列、6200(商标)系列及P4900(商标)系列中的微处理器,这些微处理器从英特尔公司可以同时得到。微处理器202通过一系列对其各个输入和输出引脚的电连接连接至设备10中的其它元件。微处理器202具有IRQ输入线,允许它从各个设备接收信号。提供适当的中断固件用以接收在IRQ线上检测到的信号并作出反应。运动检测模块204提供对输入信号的分析以确定设备10是否被移动或者其朝向是否被改变。
除了微处理器202之外,图2中示意性地示出了设备10的其它内部设备。这些设备包括:显示器14;扬声器16;小键盘24;通信子系统206;短距离通信子系统208;辅助I/O设备210;串行端口212;麦克风28;闪存216(提供数据的永久存储);随机存取存储器(RAM)218;用于对应用进行跟踪和同步的内部时钟220,以及其他设备子系统(未示出)。设备10优选地是具备语音和数据通信能力的双向射频(RF)通信设备。另外,设备10优选地具备通过如互联网之类的网络与其他计算机系统进行通信的能力。
微处理器202执行的操作系统软件优选地存储在计算机可读介质中(如闪存216),但也可以存储在其它类型的存储设备中,如只读存储器(ROM)或类似的存储元件。此外,系统软件、特定设备应用或其部分,可以暂时加载至易失性存储器中(如RAM 218)。移动设备接收的通信信号也可以存储至RAM 218。
微处理器202,除了其操作系统功能外,使软件应用能够在设备10上执行。控制基本设备操作的一组软件(和/或固件)应用(一般称为应用222),如语音通信模块222A和数据通信模块222B,可以在制造时安装在设备10上或在之后下载。同样,附加的软件模块(可以是例如个人信息管理器(PIM)应用),可以在制造时安装在设备10中或在之后下载。与每个应用相关联的数据可以存储在闪存216中。
电话应用222A(与图标304A相关联)提供允许设备10的用户在设备10上发起电话呼叫的接口。它还提供了GUI来存储和列出设备10进行的电话呼叫、接收的电话呼叫以及存储的语音邮件消息的记录。
电子邮件应用222B(与图标304B相关联)提供模块以允许设备10的用户在设备10上生成电子邮件消息,并将其发送至其收件人。应用222B还提供了GUI,用于提供所接收、起草、保存及发送的电子邮件历史列表。
日历222C(与图标304C相关联)跟踪与用户和设备10相关的约会和其他状态事务。它提供由用户输入的约会、会议和事件的每天/每周/每月的电子日程表。日历222C使用处理器202及内部时钟220来跟踪设备10的时间和日期数据。日程表包含与用户的当前可用性相关的数据。例如,它可以指示用户何时忙碌、不忙、可用或不可用。该应用还可为用户提供“请勿打扰”的时间窗口。有效地,日历222C允许设备10被设置为当中断事件发生时不通知用户,而不管在窗口中缺少任何已安排的约会。
地址簿222D(与图标304D相关联)使设备10能够存储个人和组织的联系信息。具体地,在链接的记录中存储姓名、地址、电话号码、电子邮件地址、手机号码及其他联系信息。数据被存储在非易失性存储器中,如数据库中设备10的存储器216。在使用中,数据库被组织为使得个人联系信息可以被访问并被交叉引用至相同或不同应用中的其它数据。
位置模块222E(与图标304E相关联)提供设备10的当前地理位置。在一个实施例中,它使用例如GPS模块和现有技术中的已知应用,从卫星系统接收并解释远程GPS信号,以对设备10的当前位置进行三角测量。在设备10上,GPS接口应用控制由位置模块222E检索到的GPS数据的存储。备选地,通过分析与设备10上执行的蜂窝电话呼叫相关的编码数据来确定位置信息。例如,可以检查编码数据流来标识正在与设备10进行通信的当前基站。
运动检测模块222F从运动模块接收数据,转换并存储数据,以便其他模块可以处理这些数据。以下将介绍模块222F的进一步细节。
姿态分析模块222G接收由运动检测模块222F提供并处理的运动数据,然后,相对于所存储姿态的表示来分析运动数据。如果得到匹配,则姿态分析模块可以激活信号或过程,以执行与所识别的姿态相关联的命令。该命令可以与在设备10上操作的另一应用相关。以下将介绍模块222G的进一步细节。
运动检测电路204、运动电路238和触发电路240提供了用于检测设备10的运动并为可检测的运动设置阈值的系统和设备。以下将介绍这些元件的进一步细节。
通信功能,包括数据及语音通信,是通过通信子系统206和短距离通信子系统208来执行的。子系统206和208共同为设备10所处理的所有通信技术提供信号级接口。各种应用222为后续处理提供操作控制并对通信进行日志记录。通信子系统206包括接收机224、发射机226以及一个或多个天线,如接收天线228和发射天线230所示。此外,通信子系统206还包括处理模块,如数字信号处理器(DSP)232和本地振荡器(LO)234。通信子系统206的特定设计和实现取决于设备10预期在其中操作的通信网络。例如,设备10的通信子系统206可以与Mobitex(商标)、DataTAC(商标)或通用分组无线业务(GPRS)移动数据通信网络一起操作;也可以与任何各种语音通信网络,如高级移动电话服务(AMPS)、时分多址(TDMA)、码分多址CDMA、个人通信服务(PCS)、全球移动通信系统(GSM)等等一起操作。其他种类的数据和语音(电话)网络,包括分离的和集成的,也可以与设备10一起使用。在任何情况下,通信子系统206为设备10提供了使用各种通信技术,包括实时消息收发(IM)系统、文本消息收发(TM)系统以及短消息服务(SMS)系统,来与其他设备进行通信的能力。
除了处理通信信号,DSP 232还提供了对接收机224和发射机226的控制。例如,接收机224和发射机226中应用于通信信号的增益可以通过DSP 232中实现的自动增益控制算法来自适应地控制。
在数据通信模式中,接收到的信号(如文本消息或下载的网页),由通信子系统206处理,然后作为输入提供给微处理器202。然后,接收到的信号由微处理器202进一步处理,然后,微处理器2020可以产生对显示器14或辅助I/O设备210的输出。设备用户也可以使用小键盘24、轨迹球20和/或一些其他辅助I/O设备210(如触摸板、摇臂开关、单独的指轮或一些其它输入设备等)来编写如电子邮件消息的数据项。然后,编写的数据项经由通信子系统206通过通信网络140传输。子系统206也可以检测其何时在其远程系统的通信范围之外。
在语音通信模式中,除了接收到的信号输出至扬声器16,以及用于发送的信号是由麦克风28产生之外,设备10的整体操作实质上类似于数据通信模式。备选的语音音频I/O子系统,如语音消息记录子系统,也可以在设备10上实现。此外,显示器14也可以用在语音通信模式中,例如,用于显示呼叫方的身份、语音通话持续时间或其他语音呼叫的相关信息。
短距离通信子系统208实现了设备10与其他邻近系统或设备(并不必须是类似设备)之间的通信。例如,短距离通信子系统可以包括红外设备及相关电路和组件,或者包括蓝牙(商标)通信模块以提供与具有类似能力的系统和设备间的通信。
电源236为移动手持通信设备的整个电子元件提供电源。优选地,电源236包括一个或多个电池。更优选地,电源236是单个电池组,尤其是可充电电池组。电源开关(未示出)为设备10提供“开/关”转换开关。在激活电源开关时,发起应用222以开启设备10。在去激活电源开关时,发起应用222以关闭设备10。对设备10的供电也可以由其他设备和软件应用222控制。
现在,对涉及检测运动和相对于预定姿态的表示来分析这种运动以确定运动是否与姿态相匹配的实施例中的特征提供进一步细节。
参照图3,状态图300提供了活动的示例性的进展,示为当设备10接收运动数据并对其进行处理以确定运动是否与所存储的姿态表示匹配时转入,转至或通过的状态。在实施例中,在状态中进行的动作由在设备10上操作的姿态分析模块222G和/或其他过程和模块来执行。由运动检测电路204、运动电路238和触发电路240中的一个或多个来提供运动数据。
该过程从步骤302开始,在该步骤中,设备10正在操作,然后前进至状态304,在状态304中对运动进行跟踪。由于运动可能在任何时候发生,该过程可以作为设备10的后台过程来操作。运动检测模块222F监控、跟踪并存储来自运动检测电路204、运动电路238和触发电路240中一个或多个的运动信号。以特定间隙(例如时间、读数或预定触发事件)将运动数据转换成规范化格式,然后在状态306提供给姿态模块222G。接下来,在状态308,接收数据帧并相对于预定姿态的表示对数据帧进行分析。如果运动与姿态匹配,则设备10转移到状态310,在状态310中执行与该姿态相关联的命令。该命令可以是在设备10上操作的特定应用。针对不同应用,或者甚至在同一应用的不同实例中,姿态可以具有不同的上下文。一旦完成命令,设备10返回状态304以跟踪其他运动。如果运动与姿态不匹配,则该设备返回状态304。以下将提供在状态308中进行的功能和处理的进一步细节。
作为运动数据分析的一部分,实施例使用坐标模型来跟踪和映射设备10的运动。下面提供示例模型的进一步细节。
物理学中的牛顿第二定律规定,物体速度的变化产生“固有(proper)”加速度。同样,在地球上,重力与重力加速度成正比。在数学上,加速度由向量表示,即:由相对于给定坐标系的幅度和方向组成的量。此外,在任何时刻,作用在物体(如设备10)上的总加速度是重力和固有加速度的向量和。
参照图4A至图4C,在三张时间快照中示出了作用在设备10上的固有、重力和总加速度的向量。对于这些示例,运动被映射到x-y平面中。在该二维平面中,向量用粗体小写字母及幅度来标示,或具有规则类型或被包围在绝对值符号中,如|v|。在图4A中,重力加速度g被示为单独作用在设备10上的向量402,其静止在地球表面400的固定朝向上。注意,重力加速度从表面400指向“上”,它是对抗向地心的重力拉力的向上的力。在图4B中,设备10被赋予侧向的力(如被用户移动)并以2.0m/s2向右加速,如向量404所示,表示由侧向力导致的固有加速度。作用在设备10上的净力由向量406示出,它是向量404的附有加速度与向量402的重力加速度之和,以幅度|g+a|示出,其中|g+a|由以下给出:
| g + a | = g 2 + a 2 = 10.0 m / s 2     等式1
其中g2=(9.81)2=96.2               等式2
而且a2=(2.0)2=4.0                 等式3
(加速度值保留三位有效数字)
最后,在图4C中,设备10被赋予与向量404相反方向的侧向力,并且设备10沿表面402经历减速(如向量408所示)。该时间快照中的结果向量410反映出施加在设备10上的力的变化。
参照图5,可以理解,根据其幅度和方向,固有加速度可以对设备10经历的总加速度具有最小或少量影响。例如,即使是+2.0m/s2的固有加速度的相对快的速率,对总加速度的幅度产生很小作用。当总加速度的幅度从9.8m/s2变化为10.0m/s2时,产生近似2%的差值。图4A示出了|g+a|对|a|的变化的相对不敏感性,其中与|g|参考线相比,针对|a|值的所示范围绘出了等式1。可以看到:
| g + a | ≅ | g | 其中|a|<<|g|    等式4
并且,即使在固有加速度|a|为重力加速度幅度的一半时,|g+a|与|g|的偏差略大于10%。
图6A至图6C示出了来自图4A到图4C的三个向量时间快照,添加了叠加的半径为|g|的半圆形外壳612,在所描述的运动的连续点处示出了总加速度向量的近似路径。三个时间快照中的运动以离散或“量化”的方式被编码或映射为枚举符号序列,该枚举符号序列示为总加速度向量602、606和610并用符号“A、B和C”来枚举。还示出了其它向量604和608。
为协助对设备10的运动序列进行编目,提供了运动的枚举符号序列。该序列被称为“文本串”T{m}。例如,描述从图6A至图6B至图6C的运动的文本串为T{m}={A,B,C}(其中m是串的长度,这里m=3)。预定义的文本串被称为“模式串”P{n},其中n是模式串的相关联长度索引。此外,在时间快照的时刻,编码过程应将总加速度向量映射至最接近的枚举符号。
可以理解,通过捕获或多或少的时间快照,可以将所描述的线性运动的量化方案改变为不同精确度。此外,总加速度向量的位置的标记可以使用字母、整数或任何其他方便的枚举。此外,根据实施例,分隔枚举符号的时间和距离间隔可以是均匀或非均匀的。
为了向设备10提供对运动的一致编目,特定坐标参考应当相对于设备10固定,包括使参考图(如半圆612)在绘图上固定至设备10,并使枚举符号固定至参考图上的预定位置。使用示例性固定坐标系,实施例可以在设备10不改变朝向地“固有”加速和/或减速时,通过选择不同的枚举符号,经由总加速度向量(固有向量与重力向量之和)来跟踪和映射“固有”加速度,如图6A至图6C所示。
现在,对实施例在模型中用于跟踪和映射设备10的运动的量化方案上的旋转运动和/或朝向变化的作用提供进一步的细节。
当枚举符号固定在半圆612上,并且半圆612固定至设备10的坐标时,运动的量化方案可以扩展至包括设备的朝向相对于地球的变化。
图7A至图7C示意了设备10的示例性倾斜运动的方面,该倾斜运动被编码为文本串T{m}={C,A,B}。首先参照图7A,提供轴714来表示设备10的垂直轴。轴714相对于地球表面700和轴716倾斜几度,使得总加速度向量708(在没有任何固有加速度的情况下仅为重力向量)在圆712上指向符号“C”。接下来,在图7B中,轴714旋转向几乎平的位置,其中总加速度向量的指向最接近符号“A”。最后,在图7C中,轴714的旋转继续至指向“B”。因此,旋转运动在三个时间快照中被编码为文本串T{m}={C,A,B}。因此,当设备10的参考轴714相对于重力旋转时,通过使重力向量选择不同的枚举符号,实施例可以跟踪和映射纯旋转运动。因此,通过向量相加,实施例可以跟踪和映射旋转和固有加速度的组合。
对实施例使用的用于设备10的三维运动的示例性映射方案提供了进一步细节。将实施例应用至三维旋转包括将设备10上所标记的点轨迹从固定的二维方案(如图6A至图6C的半圆612)扩展到三维空间方案。
参照图8A至图8D,在三维方案中,图6A至图6C中示出的二维运动可以映射如下。首先,围绕设备10定义三维空间,在设备10上,空间的表面用坐标系标记。该坐标系提供了从设备的原点的点的轨迹。该点的轨迹可以具有二十面体对称。在一个实施例中,提供球壳812用于定义围绕设备10的空间。球壳812是概念上固定至设备10的参考球壳,如关于图7A至图7C所述。壳812是表面上具有规则间隔的点818的布置。如以下所述,点818的布置是其它方案(如图9A中示出的壳912上的点918)的相关和简化版本。在另一实施例中,映射可以作为五(5)频率(V)或者5V二十面体壳来提供。5V二十面体壳在其表面上具有两百五十二(252)个点。为简明起见,示出了点818A、818B以及818C的标记。为了方便,壳可以归一化为单位半径。壳812可以具有二十面体对称。壳812上每一个点818都具有唯一标记(至少对局部而言)。如下所示,通过一个或多个点,如由壳812提供的表示中的点818,或者图9A中壳912上提供的特定点918,可以跟踪运动和姿态作为运动的分量(根据设备10检测到的总加速度向量)。
在图8A至图8D中,设备10的总加速度向量808源自壳812的原点该原点标记为“o”,处于设备10的中心。总加速度向量808可以指向封闭球壳812上的任何位置。与图6A至图6C中的二维运动相似,图8A至图8D的四幅图中的总体运动是沿着特定轴的固有加速接着是减速。在图8A中,设备10静止且加速度向量垂直指向点818A;这是图6A的三维类似物。在图8B中,设备10沿着轴(由平行于轴的四个箭头示出)加速,总加速度向量808是重力和固有加速度的向量和,并指向点818B;这是图6B的三维类似物。在图8C中,反向加速度导致总加速度向量808指向点818C;这是图6C的三维类似物。在图8D中,运动停止,总加速度向量808再一次指向点818A。
图8A至图8D的运动由文本串T{m}={A,B,C,A}表示,这是因为标记为A、B、C、再为A的顶点最接近在四幅(连续)时间快照中由加速度计提供的数据。
图8A至图8D中的示例运动可以扩展为推广至包括具有其固有加速度的设备10的坐标的旋转。在其他实施例中,采用更多或更少的顶点数和不同的对称性和/或顶点布置,可以使用其他球形覆盖方案。例如,可以使用由一系列经线和纬线相交而形成的点。对任何给定的覆盖方案,对每个运动,实施例提供了一种方案,用于计算、标识或选择与加速度计提供的数据中的特定姿态中的每个数据点最接近的顶点。因此,通过实施例,特定运动(即姿态)可以被转换为由文本串表示的顶点序列。
顶点的间隔和数目确定了映射的精确度,即在实施例中,由算法量化将姿态量化为串的精确度。顶点越多,顶点间的间隔越近,可以越精确地映射姿态,但是也导致给定运动的文本串更长。
通过所描述的示例性映射方案,对实施例用于在串编码的姿态中进行识别和区分的示例序列分析提供了进一步细节。这样的序列分析可以由姿态分析模块222G来提供,并且可以被提供用于实现图3中的状态308。
首先,由于检测到设备10的运动,部分运动被量子化为文本串。然后,相对于预定义姿态的模式串来分析该文本串。一旦确定文本串与模式串相匹配,则可以执行与该模式串相关联的命令。对文本串的匹配的确定包括与阈值进行比较。可以是模式的精确匹配或充分相似的匹配。一旦标识为匹配(符合匹配阈值准则),则姿态被视为是匹配姿态。可以理解,对于如何确定检测到的串是否与模式串充分相关,存在梯度以认定文本串与模式串匹配。
参照图9A,现在提供实施例进行的文本串处理的进一步细节。当设备10的运动被运动检测电路204、运动电路238以及触发电路240中的一个或多个检测到时,运动数据被处理并转换为“文本”流,其中文本中的每一个元素表示时间快照中球912上的位置,并且元素序列表示在给定时刻球上的位置序列。串T{m}提供了运动的表示。由运动检测电路204、运动电路238以及触发电路240中的一个或多个检测到的基本运动数据可以在数学上转换为运动向量,然后相对于所存储的、带有其点918的球912的数字表示来对其进行映射,以确定何时运动(或运动的一部分)穿过点918并因此指出该运动应被添加至串T{m}。
由于串T{m}是为设备10的运动而构建,可以将其与所存储的、编码为模式串P{n}的姿态签名进行比较。实施例相对于姿态来分析运动,并在将其值与模式串P{n}中捕获的姿态签名进行比较时,在其T{m}中串为运动提供一定程度的偏差。例如,对于具有签名P{n}={A,B,C,D,E,F}的姿态,示例运动T{m}={A,B,C,F,E,F}(与该示例具有“小”偏差,如在第四个位置上的符号“F”所示)可以认为是该姿态的可接受的匹配,但是第二示例运动T{m}={A,B,C,F,A,F}(与该示例具有确定的“明显”偏差,如在第四和第五个位置上出现“F,A”序列所示)则可能不是可接受的匹配。可以理解,偏差可以出现在运动中的位置。在该位置,偏差可以具有不同的值。运动中可以存在多于一个偏差。根据运动的可接受范围,每个偏差可以具有“明显”和/或“不明显”的容限。如下所述,这种可接受范围在替换矩阵中提供。
可以理解,姿态中不同点处的一个或多个偏差(具有不同大小)可以被认为是“小”或“明显”的偏差(或者不是)。根据任意数量的范式设定这样的阈值,包括例如通过姿态的定量测量和对预设姿态数目的统计分析。下面描述的算法提供了一个阈值来确定何时偏差被视为“明显”以及因此在姿态的可接受测量参数之外。同偏差的大小一样,在串中持续时间存在的位置可能是一个因素。
为执行这种分析,根据实施例的设备10具有用于尝试标识与姿态的P串“充分”相似的T{m}串片断的模块、算法、方法、步骤以及过程。
实施例使用局部序列对齐分析来检查和强调输入串与目标串之间的整体相似度。局部序列分析与编辑距离分析相关,但在实施例中可以找到两个输入串之间相似的最长序列(或充分长的序列),并计算归一化得分,而编辑距离可能有利于较短的匹配以满足其基于代价的算法。Levenshtein编辑距离算法是一种分析类型。Smith-Waterman分析是另一种类型。
局部序列对齐分析取决于三个变量。第一个是间隙罚分Γ;第二个是替换矩阵S(xi,yj);以及第三个是邻接矩阵A(i,j)。下面对每一个进行依次讨论。
间隙罚分Γ通过允许将空间隔策略性插入T{m}或P{n}来对齐提供灵活性,如果这种插入在T{m}和P{n}之间最大化总对齐得分。与Γ相关的惩罚是约束间隙的过度插入。下面将看到对齐算法中Γ的确切数学使用。替换矩阵在数学上直接从邻接矩阵导出:
S(i,j)=21(i,j)-E(i,j)-2A(i,j)    等式5
其中I为单位矩阵,并且E是全1矩阵。
算法中使用的替换矩阵基于球形覆盖上顶点之间的几何关系,表示为邻接矩阵A(i,j)。参照图9A至图9B,针对十个顶点,示出了特定的二十面体对称的球形覆盖(5V二十面体912)的编号方案。每个顶点918用后缀“-#”来标识。因此,第五个顶点标识为顶点918-5。为方便起见,可以丢弃参考标号918。可以看出,顶点918-5与顶点918-2、-3、-4、-6、-8以及-9邻接。在数学上,一个实施例以稀疏邻接矩阵的形式定义了这种拓扑,使得第m行定义了顶点“m”的邻接性,其中零(0)表示不邻接,一(1)表示邻接。因此,对于顶点m=5,A(5,2)=A(5,3)=A(5,4)=A(5,6)=A(5,8)=A(5,9)=1,并且沿着第五行的所有其他元素为零,即A(5,m)=0。
图9C提供了A(i,j)中前10x10个元素的矩阵,其中白色方块如A(1,4)指示在顶点1和顶点4之间没有邻接,黑色方块如A(1,3)指示这些顶点彼此邻接。图9D中示出整个252×252数组(与5V二十面体相关联)。邻接矩阵形成了接下讨论的替换矩阵的基础。
替换矩阵S(xi,yj)的一种使用是为姿态检测算法提供健壮性。通过提供与T{m}中哪些字符可能被其他字符替换(在阈值参数内)相关的信息,来实现与P{n}的更高匹配得分。换言之,替换矩阵可以标识T{m}中与编码并存储在由模式串P{n}编码的姿态签名中的运动充分相似的运动。
对于本公开,如上所述的直接邻接被称作“一阶”邻接,因为在串匹配算法中只能够替换那些直接相邻的顶点。在实施例中,一阶邻接可以被扩展。在一个扩展中,将邻接扩展到二、三直到N阶,其中,替换分别为次邻接、再次邻接、直到N次邻接的顶点而不罚分。在一种变型扩展中,更高阶邻接项的替换可以包括与距离或阶成正比(或某个其他函数)的罚分,替换候选顶点来自在模式串P{n}中编码的姿态签名的匹配点。
更高阶替换矩阵S(xi,yj)可以在类似于等式5的等式中从A(i,j)的更高次幂获得。值得注意的是,对于N的某个有限值,AN(i,j)将收敛于全1的E(i,j)矩阵。物理上,N的值是给定顶点可以距离任何其他顶点的最大步数。给定这个物理解释,算法或过程可以使用N在特定的不定评估循环中提供中断条件限制,从而为算法增添健壮性。AN(i,j)的收敛是由于其与Markov转移矩阵的关系。
如上所述,间隙罚分Γ通过允许空间隔的策略性插入而为对齐策略提供灵活性,如果这种插入最大化了总对齐得分。线性间隙罚分与所插入间隙数目成比例地减少总得分匹配,但是可以使用按照序列分析范式的备选间隙罚分。
在一个实施例中,通过递归过程来评估局部序列对齐。局部序列对齐可以是在图3的状态308中进行的评估的一部分。其中,提供了两个串T{m}和P{n},具有条目S(xi,yj)的替换矩阵和线性间隙罚分Γ。给定T{m}和P{n}之间的对齐度量,可以计算出动态编程矩阵D(i,j)。矩阵D(i,j)可以如下所述递归定义。
参照图10A,对用于比较文本串和模式串的算法提供进一步细节。为了提供对文本串的历史数据的跟踪,已经发现,可以修改Smith-Waterman算法并用于构建运动数据T{m}和姿态数据P{n}的矩阵。Smith-Waterman算法生成T{m}和P{n}之间的对齐得分,定义为动态编程矩阵D(i,j)中的最大值。该对齐得分可以作为对齐百分比来提供,即T{m}与P{n}相同的最大可能对齐的百分比。
在一个实施例中,设备10以预定义的规则速率生成与检测到的设备10的运动相关的数据。该数据用于构建文本串T{m}。在修改的算法中,将检测到的串T{m}和P{n}分别输入矩阵D(i,j)的左侧和顶部,其中m和n分别是T和P的长度。在实施例的一种实现中,T{m}和P{n}串用基16的整数枚举符号表示。D(i,j)最左侧的列和顶部的行分别初始化如下:
D(i,0)=0,i=0...m
D(0,j)=0,j=0...n
对其余矩阵元素进行递归计算,其中D(i,j)中的条目通过递归公式计算,该递归公式使用先前的行和/或列的值,并由S(xi,yj)的值或者间隙罚分Γ修改,从左到右填充当前行。D(i,j)的条目被如下设置为0或三个周围条目之一中的最小值:
D(i,j)=max{0
[或]D(i-1,j)+Γ
[或]D(i,j-1)+Γ
[或]D(i-1,j-1)+S(xi,yj)
}
其中i=1...m,j=1...n    等式6
图10A中示出了示例D(i,j),其中T{m}和P{n}中的枚举符号是基16的整数,并且:
Γ=-1/2;                                  等式7
T{m}={A2,FF,C7,C0,C2,A2,C2,BF,FF};等式8
P{n}={BF,C0,C2,C4,C7};                等式9
并且S(xi,yj)如图10C中所定义。
参照图10A,D(i,j)中找到的最大值是4.5,因此,定义对齐得分为4.5。给定S(xi,yj),其中每个对齐给对齐得分加1,与P{n=5}的最大(“最佳”)可能对齐将生成的得分为5,其中,文本串中接收到的符号与模式串中相应的五个元素精确匹配。因此,对齐得分4.5提供了与精确匹配90%的对齐(4.5/5)。可以理解,对齐得分可以是对Γ和S(xi,yj)的函数。考虑到实施例中特定的实时上下文,可以仔细选择这种值。针对实现方式,对齐得分的阈值可以被设置为任何适合的值。在实施例操作期间,阈值可以改变。
实施例相对于姿态签名P{n}来分析运动T{m},并相对于模式串P{n}中捕获到的姿态签名来给出运动T{m}的偏差程度。在等式7至9给出的上述示例以及图10C定义的S(xi,yj)的情况下,对齐得分4.5对应于10%的偏差。偏差与对齐如下相关:%偏差=(100-%对齐)。
从对等式6的观察可以理解,在计算中的任一点,只要在存储器中保存矩阵D(i,j)的当前行和先前行,这是因为,实施例只需要对齐的最终得分。这为计算资源提供了高效使用。因此,所需存储器的上限在2×n个整数。可以理解,在Smith-Waterman算法的标准实现中的n×m回溯矩阵(traceback matrix)对实施例并不是必须的,这是由于不需要物理对齐信息的细节以获得简单对齐得分。再一次,对于这种运动,存储器的上限在2×n。
可以理解,在动态编程矩阵的一次分析中,相对于运动可以分析多个姿态。下面提供这种分析的进一步细节。
周期性地,将数据长度为L的帧提供给运动检测模块222F,在运动检测模块222F中,将帧中每个数据依次转换成枚举符号。仅当符号不同于先前符号时才将该符号追加至T。因此可以理解,最终文本串T的长度可以因此比数据帧长度L短,即m≤L。
每个帧中连续重复的符号可以在运动模块222F中标识出并从文本串中将其丢弃。重复符号仅表示预先选择的加速度数据采样速率比实施例中运动的速率快。通过减少对执行姿态的速度的依赖性,丢弃重复的符号改进了算法的健壮性。丢弃连续重复的符号也减少了计算开销,尤其在静止或近似静止期间,此时只要静止或近似静止状态持续,文本串的长度可以趋于零。丢弃连续重复出现的符号也减小了文本串的长度。串现在的长度为“m”,该长度小于或等于数据帧的长度L,即m≤L。减小串长度的好处包括:减小动态编程矩阵D(i,j)的大小、对其执行的计算的数量以及姿态分析模块222G中进行这些计算所需要的存储器。
对跨越两个文本串T1{m’}和T2{m”}的姿态签名P{n}的分析提供进一步细节。
Smith-Waterman算法的标准应用将矩阵D(i,j)的顶行归零,同时丢弃所有先前的对齐数据。然而,实施例提供了搜索之间对先前对齐数据的保持。其中,可以一起处理两个运动文本串T1{m’}和T2{m”},使得在T1{m’}中获得的对齐信息被携带至T2{m”}的对齐评估。当检测到的姿态跨越两个连续文本串T1{m’}和T2{m”}时,这种保持是有用的。保持这种对齐数据避免了在处理T1{m’}后开始分析T2{m”}时不得不复位对齐状态,在现有技术的Smith-Waterman分析技术中会出现这种状况。
当姿态跨越两个连续的文本串时,实施例仍可以标识该姿态。通过将等式8中的示例串分为两段T1{m’}和T2{m”}来说明这一点,即:
T { m } = T 1 { m , } ⊕ T 2 { m , , } ; 等式10
其中:
Figure BDA00002407583400222
为串连接运算符。
索引惯例是m=m’+m”,其中m’=4;m”=5,并且其中:
T1{m’}={A2,FF,C7,C0};         等式11
T2{m’}={C2,A2,C2,BF,FF};     等式12
并且,其中P{n}和Γ分别在等式9和7中定义。替换矩阵S(xi,yj)仍如图10C中所定义。T1{m’}和T2{m”}的动态编程矩阵分别表示为D1(i,j)和D2(i,j)。
在实施例中,在矩阵对D1(i,j)和D2(i,j)中找到的最大矩阵元素与在连接的矩阵D(i,j)中找到的最大矩阵元素相同,这是对已知的Smith-Waterman算法的修改。实施例通过用D1(i,j)的最后一行来简单初始化D2(i,j)的顶行,即通过实现以下等式来处理矩阵:
D2(i=0,j)=D1(m=last,j)其中j=0...n    等式13
因此可以看出,实施例提供了时域组件来处理文本串(扩展了Smith-Waterman算法的特征)。
通过示例情况的处理来提供实施例进一步细节。
在示例中,实施例构造了两个矩阵D1(i,j)和D2(i,j),这种构造是通过沿着每个矩阵的侧边分别放置T1{m’}和T2{m”},以及沿着两个矩阵的顶部放置P{n},并根据等式6来计算元素。实施例使用前面的P{n}、Γ和S(xi,yj)的值来构建如图10B中所示的D1(i,j)和D2(i,j)。可以看到,与图10A中所示的单个D(i,j)矩阵相比,针对矩阵对D1(i,j)和D2(i,j)来计算相同的最大值(即图中所示的对齐得分)。
可以理解,以如上所述的方式,可以处理对文本串对的连续选择,以确保随着时间并持续地构建对齐得分,直到满足阈值时为止,并且,姿态分析模块激活信号或过程以执行与所识别的姿态相关联的命令。只有在这种时候才复位对齐得分。该算法可以应用于串1和串2,然后应用于串2和串3,以此类推。因此,在没有时间中断的情况下,串1中的对齐数据传播至串2、串3并以此类推。
可以理解,在其他实施例中,针对每个数据帧串T{m}可以同时提供多个对齐得分,其中,通过将D(i,j)的列数扩展至包含所有所需姿态签名P{},来提供同时姿态检测的高效率。
参照图10D,构造矩阵D(i,j),在左侧具有数据帧串T{m},沿顶部具有两个姿态签名P1{n}和P2{n’}。在姿态签名间插入一列零以提供正确结果。可以看出,P1{n}的最大对齐是4.5,对应的对齐百分比为90%(4.5/5),而P2{n’}的对齐百分比为100%(6/6),因此将选择P2{n}作为匹配模式。可以理解,以类似方式可以对矩阵D(i,j)进行扩展,以提供对实施例所需数目的姿态签名的处理。
参照图11,使用所描述的实施例中的一些算法,提供了关于如何通过运动检测模块204及其相关组件在设备10上实现实施例的方面的进一步细节。其中示出设备10的两个传感器的布置。电路1100A示出传感器238直接连接至微处理器202的中断和串行接口输入线。相应地,提供在微处理器202上操作的软件以选择性地监控来自传感器238的信号,以确定是否检测到设备10的可注意到的运动。传感器238和微处理器202之间的电路可以被认为是电路240的一个版本。微处理器202上操作的软件确定传感器238何时生成可注意到的信号。电路1100B示出连接至触发电路240A的传感器238,触发电路240A具有两个差分比较器1102A和1102B,然后其输出附着至模拟复用器704。根据微处理器202生成的控制信号,该复用器选择性地提供其输出。复用器1104的模拟输出由模数转换器1106转换成一组数字信号,然后将该输出提供给微处理器202。与其他实施例相同,微处理器202上操作的软件确定传感器238何时生成可注意到的信号。由软件确定的位置读数可以存储在存储器218或216中。软件还可以创建运动读数的平均读数。该平均读数可以用于确定设备10何时处于静止位置或其何时有效地处于静止位置(例如,其仅被移动了无关紧要的量)。
对于任何实施例,低gMEMS(微电机系统)加速度计可以用于运动传感器238。此外,该加速度计可以为几乎任何类型,包括电容、压电、压阻、或基于气体的加速度计。示例低g MEM加速度计是LIS302DL三轴数字加速度计,可以从瑞士日内瓦的STMicroelectronics获得。加速度计感测从运动(例如,倾斜、惯性或振动)或重力中检测到的加速度,并将其转换为电信号(产生相应的输出改变),并且可用于一、二或三轴配置中。加速度计可以生成数字或模拟输出信号。
当加速度计作为运动传感器238来使用时,为改善加速度计的灵敏度,可以校准其输出以补偿各个轴偏移及灵敏度变化。也可以在系统级执行校准,提供端到端的校准。也可以通过收集设备在不同朝向的较大集合的测量来执行校准。
参照图12,针对作为单轴模拟传感器来对齐的传感器238示出了备选电路240B。传感器238可以被定向为使其输出沿所需轴(例如,当设备垂直运动时的“Z”轴检测)检测运动。通过针对每一个附加轴复制电路240B,可以监控附加轴。简而言之,传感器238的输出提供给缓冲放大器1200。缓冲放大器1200的输出一起提供给比较器1202和1204。比较器1202和1204的其他输入取自电阻器阶梯1206上的不同抽头,电阻器阶梯1206包括电阻器1206A、1206B以及1206C。比较器1202和1204分别为传感器238的输出生成上限和下限比较信号。如果来自传感器238的信号的值大于比较器1302的参数设置的上限(将来自传感器238的信号与其来自电阻器阶梯1206的抽头进行比较)或者低于比较器1204的参数设置的下限(将来自传感器238的信号与其来自电阻器阶梯1206的抽头进行比较),则或门1208产生触发信号1210。可以理解,该限制可以用于定义传感器238检测到的信号范围,表示设备10何时不动(例如静止)或被移动。
可以理解,使用传感器、触发组件以及阈值检测器的不同组合的其它电路,可以用于提供传感器238和电路240的功能。
可以理解,运动检测模块222F和姿态识别模块222G可以转换或改变到触摸屏环境,其中顶点的布置或覆盖在矩形表面而不是球面。
在其他实施例中,运动传感器238可被替换为不同设备,或与不同设备组合,如弹簧式开关、倾斜开关、陀螺仪、水银开关、GPS定位仪或能够响应于设备10的运动或朝向改变来生成信号的任何其他设备。优选地,该设备具有低静态功耗特性。
可以理解,使用已知编程技术、语言及算法,可以实现模块222F和222G以及实施例中的其他应用。模块的名称被提供用以方便地为特定模块提供标记和分配功能。不要求每个模块仅执行其如上所述的功能。因此,每个应用的具体功能可以在应用间移动,或分离为不同应用。模块可以包含在其他模块中。使用已知编程技术,可以不同的信令技术在应用间通信信息。已知数据存储、访问以及更新算法允许数据在应用间共享。还可以理解,设备10的其他应用和系统可以与任何应用222并发执行。因此,使用现有技术中已知的编程技术,模块222F和222G的一个或多个方面可以被构造为作为设备10的“后台”应用来操作。该系统可以并入任何电子设备中,如通信设备、便携式电子设备、个人电脑、键盘、小键盘等等。固件和软件可以被实现为提供这里所述功能的一系列处理过程和/或模块。可以使用中断例程。数据可以存储在这里所述的易失性和非易失性设备中,并且可以由硬件、固件和/或软件来更新。一些过程可以是分布式的。
如这里所使用的,“和/或”一词预期表示包含式的或。即,“X和/或Y”预期表示X或Y或二者兼有。
在本公开中,阈值或测量值作为近似值(例如,当使用“大约”一词来修饰阈值时)来提供,一个范围内的值将被理解为该值的有效值。例如,对于被声明为近似值的阈值,可以使用比所声明的值大20%和小20%的范围。特征的阈值、值、测量值以及尺寸都作为实施例的示意但并除非注明否则不作为限制。
本发明由所附权利要求来限定,前面的描述仅仅示意了优选实施例。虽然这里没有明确讨论,但本领域技术人员可以想到对前述实施例的特定修改,这些修改不背离由所附权利要求限定的本发明的范围。

Claims (9)

1.一种用于分析手持电子设备的运动的方法,包括:
跟踪所述设备的运动数据;
将所述运动数据映射到串表示,所述串表示与布置在与所述设备相关联的空间坐标系中的枚举符号相关;
构造矩阵,所述矩阵包括编程矩阵D(i,j),所述编程矩阵D(i,j)包含所述设备的先前的运动数据、所述串表示和表示与针对所述设备的命令相关的姿态的姿态串,以确定所述姿态是否已被赋予所述设备,所述矩阵包括:
m×n维,其中m是串表示的长度,n是姿态串的长度,所述串表示的分量由所述m维来标识,所述姿态串的分量由所述n维来标识,
最左侧的列D(i,0)=0,i=0...m;
顶行D(0,j)=0,j=0...n;
以及
所述矩阵中的其余元素被设置成0或以下之一中的最小值:
D(i,j)=max{0              或
          D(i-1,j)+间隙罚分或
          D(i,j-1)+间隙罚分或
          D(i-1,j-1)+替换矩阵的第i,j项}。
所述替换矩阵基于空间坐标系顶点间的几何关系;
通过遍历所述矩阵的子集以生成所述串表示中的值相对所述姿态串的匹配得分,来计算所述串表示相对所述姿态串的匹配得分,所述计算匹配得分利用Smith-Waterman算法递归遍历所述矩阵的子集直至遇到停止条件;以及
如果所述串表示与所述姿态串匹配,则在所述设备上执行与所述姿态相关联的命令。
2.如权利要求1所述的方法,其中,将所述串表示与阈值进行比较,以确定所述串表示是否与所述姿态串表示相匹配。
3.如权利要求1所述的方法,其中,所述空间坐标系提供从所述设备的坐标系原点开始的点的轨迹。
4.如权利要求1所述的方法,其中,所述将所述运动数据映射到所述串表示包括:
将所述运动数据转换为表示所述运动的运动向量;
计算所述设备的总加速度向量,所述总加速度向量包括所述设备的所述运动向量和倾斜向量;以及
相对于所述空间坐标系映射所述总加速度向量,以标识枚举符号中与所述运动匹配的枚举符号。
5.如权利要求4所述的方法,其中,加速度计提供所述设备的所述运动数据。
6.如权利要求1所述的方法,还包括:利用阈值来丢弃所述串表示中连续重复的枚举符号。
7.如权利要求6所述的方法,其中,利用局部序列对齐或编辑距离算法之一,相对于所述阈值来评估所述串表示。
8.如权利要求1所述的方法,其中,所述计算所述匹配得分利用所述串表示和所述先前的运动数据一起来确定所述姿态串是否跨越所述串表示和所述先前的运动数据。
9.一种用于分析手持电子设备的运动的系统,包括:
存储器存储设备;
微处理器;
第一模块,响应于所述设备的运动来产生所述设备的运动数据;
第二模块,向所述微处理器提供指令,以:
将所述运动数据映射到串表示,所述串表示与布置在与所述设备相关联的空间坐标系中的枚举符号相关;
构造矩阵,所述矩阵包括编程矩阵D(i,j),所述编程矩阵D(i,j)包含所述设备的先前的运动数据、所述串表示和表示与针对所述设备的命令相关的姿态的姿态串,以确定所述姿态是否已被赋予所述设备,所述矩阵包括:
m×n维,其中m是串表示的长度,n是姿态串的长度,所述串表示的分量由所述m维来标识,所述姿态串的分量由所述n维来标识,
最左侧的列D(i,0)=0,i=0...m;
顶行D(0,j)=0,j=0...n;
以及
所述矩阵中的其余元素被设置成0或以下之一中的最小值:
D(i,j)=max{0               或
           D(i-1,j)+间隙罚分或
           D(i,j-1)+间隙罚分或
           D(i-1,j-1)+替换矩阵的第i,j项}。
所述替换矩阵基于空间坐标系顶点间的几何关系;以及
第三模块,向所述微处理器提供指令,以相对于姿态串来分析所述设备的所述串表示,所述姿态串表示与针对所述设备的命令相关的姿态,以确定所述姿态是否已被赋予所述设备;以及如果所述串表示与所述姿态串匹配,则在所述设备上执行与所述姿态相关联的命令。
CN2012104601249A 2008-09-25 2009-09-25 用于分析电子设备的运动的系统和方法 Pending CN102981568A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08165181.2 2008-09-25
EP20080165181 EP2169517A1 (en) 2008-09-25 2008-09-25 System and method for analyzing movements of an electronic device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2009102116887A Division CN101714027B (zh) 2008-09-25 2009-09-25 用于分析电子设备的运动的系统和方法

Publications (1)

Publication Number Publication Date
CN102981568A true CN102981568A (zh) 2013-03-20

Family

ID=40363014

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2009102116887A Expired - Fee Related CN101714027B (zh) 2008-09-25 2009-09-25 用于分析电子设备的运动的系统和方法
CN2012104601249A Pending CN102981568A (zh) 2008-09-25 2009-09-25 用于分析电子设备的运动的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2009102116887A Expired - Fee Related CN101714027B (zh) 2008-09-25 2009-09-25 用于分析电子设备的运动的系统和方法

Country Status (3)

Country Link
EP (1) EP2169517A1 (zh)
CN (2) CN101714027B (zh)
CA (1) CA2680811A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3007158A1 (fr) * 2013-06-14 2014-12-19 Movea Dispositif d'analyse de mouvement d'un element mobile et procede associe
CN104376557B (zh) * 2014-11-03 2017-02-15 上海交通大学 基于矩阵操作及递归运算的运动物体轨迹实时检测方法
CN105511785B (zh) * 2015-12-01 2018-04-27 上海斐讯数据通信技术有限公司 移动终端及其功能调用方法和系统
CN107895161B (zh) * 2017-12-22 2020-12-11 北京奇虎科技有限公司 基于视频数据的实时姿态识别方法及装置、计算设备
AU2019231701A1 (en) * 2018-03-06 2020-10-15 Southern Oregon University Systems and methods for location representation using a discrete global grid system
WO2019169586A1 (en) * 2018-03-07 2019-09-12 Micron Technology, Inc. Performing read operation prior to two-pass programming of storage system
CN112308110B (zh) * 2020-09-21 2023-07-21 哈尔滨工业大学(深圳) 一种能够实现人机交互的手部运动识别方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5714698A (en) * 1994-02-03 1998-02-03 Canon Kabushiki Kaisha Gesture input method and apparatus
CN1578530A (zh) * 2003-06-30 2005-02-09 微软公司 用于确定便携式计算设备的定位动态特性的系统和方法
GB2419433A (en) * 2004-10-20 2006-04-26 Glasgow School Of Art Automated Gesture Recognition

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050212760A1 (en) 2004-03-23 2005-09-29 Marvit David L Gesture based user interface supporting preexisting symbols
CN100524187C (zh) * 2007-11-29 2009-08-05 倚天资讯股份有限公司 利用动态感测以变动图标位置的方法及其电子装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5714698A (en) * 1994-02-03 1998-02-03 Canon Kabushiki Kaisha Gesture input method and apparatus
CN1578530A (zh) * 2003-06-30 2005-02-09 微软公司 用于确定便携式计算设备的定位动态特性的系统和方法
GB2419433A (en) * 2004-10-20 2006-04-26 Glasgow School Of Art Automated Gesture Recognition

Also Published As

Publication number Publication date
CN101714027A (zh) 2010-05-26
EP2169517A1 (en) 2010-03-31
CN101714027B (zh) 2012-11-28
CA2680811A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
CN101714027B (zh) 用于分析电子设备的运动的系统和方法
US8744799B2 (en) System and method for analyzing movements of an electronic device
CN100445937C (zh) 笔迹轨线识别系统和方法
US8339367B2 (en) System and method for analyzing movements of an electronic device using rotational movement data
CN103257711B (zh) 空间手势输入方法
CN106575150A (zh) 使用运动数据识别手势
CN107533430A (zh) 触摸输入作为非预期的或预期的分类
Ibarguren et al. Layered architecture for real time sign recognition: Hand gesture and movement
Lin et al. Show: Smart handwriting on watches
CN102855082A (zh) 用于重叠文本用户输入的字符识别
CN111159924B (zh) 用于预测漂移轨迹的方法和装置
Song et al. Inertial motion tracking on mobile and wearable devices: Recent advancements and challenges
JP5342052B1 (ja) 電子機器および方法
US20160132753A1 (en) Nonparametric model for detection of spatially diverse temporal patterns
US20220207899A1 (en) Stroke attribute matrices
Van Laerhoven et al. Teaching context to applications
EP2494819B1 (en) Method and apparatus for selecting a receiver
CN113761867A (zh) 地址识别方法、装置、计算机设备及存储介质
CN104080168B (zh) 一种定位方法及装置
CA2695612C (en) System and method for analyzing movements of an electronic device using rotational movement data
Mrazek et al. Using LSTM models on accelerometer data to improve accuracy of Tap Strap 2 wearable keyboard
Saponas et al. Human-activity recognition (HAR) everywhere: Embedded, mobile, desktop, home & cloud
KR102376625B1 (ko) 한글의 조합형 문자 특징을 이용한 학습모델의 구현 및 인공지능 채점을 위한 방법
Das et al. Smartwatch for wall writing: Real-time transcription of wall writing from inertial sensing
Yin Systematic Approaches to Improving Geocoding and Reverse Geocoding Systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C05 Deemed withdrawal (patent law before 1993)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130320