使用可访问模板处理运动传感器数据的制作方法

文档序号:6350788阅读:119来源:国知局
专利名称:使用可访问模板处理运动传感器数据的制作方法
技术领域
本公开可涉及用于处理运动传感器数据的系统和方法,以及更具体地可涉及用于使用可访问数据模板来处理运动传感器数据的系统和方法。
背景技术
电子设备,尤其是便携式电子设备,经常包括用于检测该设备及其周围环境的特征的一个或多个传感器。例如,电子设备可以包括一个或多个运动传感器,例如加速度计或陀螺仪,用于检测该设备的方向和/或移动。电子设备可以处理由运动传感器生成的数据,并且可以操作以基于处理后的运动传感器数据来执行特定操作。例如,电子设备可以处理运动传感器数据来确定携带该设备的用户走了多少步。然而,该处理的有效性往往基于一个或多个运动传感器相对于用户的定位而变化。

发明内容
提供了使用可访问数据模板处理运动传感器数据的系统、方法和计算机可读介质。例如,在一些实施例中,提供了一种可以包括运动传感器和处理器的电子设备。该处理器可以被配置为接收由运动传感器生成的运动传感器数据并访问模板。每个模板可以包括模板传感器数据和模板事件数据。该处理器还可以被配置为基于所接收的运动传感器数据与特定模板的模板传感器数据之间的相似度而从所访问的模板中辨别出该特定模板。此外,处理器可以被配置为基于该特定模板的模板事件数据来控制电子设备的功能。在其他实施例中,提供了一种用于生成运动传感器模板的方法。该方法可以包括引导实体在第一位置携带运动传感器的同时执行第一类型的运动事件。该方法然后可以接收由运动传感器响应于运动传感器检测到由执行第一类型的运动事件导致的移动而生成的第一运动传感器数据。然后可以通过使用第一运动传感器数据创建第一运动传感器模板的模板传感器数据部分,以及通过基于第一类型的运动事件创建第一运动传感器模板的模板事件数据部分,来生成第一运动传感器模板。此外,例如,可以基于第一位置来创建第一运动传感器模板的模板位置数据部分。然后可以生成第二运动传感器模板。例如,该方法还可以包括引导该实体在第二位置携带运动传感器的同时重新执行第一类型的运动事件。该方法然后可以接收由运动传感器响应于该运动传感器检测到由重新执行第一运动事件导致的移动而生成的第二运动传感器数据。然后可以通过使用第二运动传感器数据创建第二运动传感器模板的模板传感器数据部分,以及创建与第一运动传感器模板的模板事件数据部分相同的第二运动传感器模板的模板事件数据部分,来生成第二运动传感器模板。


本发明的上述和其他方面、其性质以及各种特征将在考虑到下面结合附图的具体描述之后变得更加清楚,附图中相同的标号自始至终表示相同的部件,其中图I是根据本发明的一些实施例的示例性电子设备的示意图;图2是根据本发明的一些实施例的示例性运动传感器的示意图;图3是根据本发明的一些实施例,运动传感器随时间的输出的示意性曲线的示意图;图4是根据本发明的一些实施例,运动幅值的示例性曲线的示意图;图5是根据本发明的一些实施例,去除重力影响后的运动幅值的示意性曲线的示意图;
图6是根据本发明的一些实施例,去除重力影响后的经整流的运动幅值的示意性曲线的示意图;图7是根据本发明的一些实施例,图I的电子设备的一部分的示意图;图8是根据本发明的一些实施例,在各个部分携带电子设备的用户的正视图;图9是根据本发明的一些实施例,处理运动传感器数据的示例性处理的流程图;图10是根据本发明的一些实施例,用于生成运动传感器模板的示例性处理的流程图。
具体实施方式

提供了使用可访问数据模板处理运动传感器数据的系统、方法和计算机可读介质,并参考图1-10进行描述。电子设备可以操作以接收由运动传感器生成的运动传感器数据,并且该运动传感器数据可以被用于控制该电子设备的功能。例如,该设备的用户可以执行可导致运动传感器检测到特定移动进而生成特定运动传感器数据的某个运动事件(例如行走事件或摇晃事件)。然而,如果传感器相对于用户的位置改变(例如在传感器被拿在用户的手中和放在用户的口袋中之间改变),则由用户执行的特定运动事件可能导致生成不同的运动传感器数据。因此,一个或多个运动传感器模板可以被该设备访问并用来帮助处理由运动传感器生成的运动传感器数据,以便辨别与运动传感器数据相关的用户运动事件的类型。每个运动传感器模板可以包括模板传感器数据,其表示以某个传感器位置执行的某个用户运动事件的运动传感器数据输出概况。每个运动传感器模板还可以包括描述与该模板相关的运动事件类型的模板事件数据和描述与该模板相关的传感器位置的模板位置数据。与相同运动事件相关的多个模板可以基于多个传感器位置被创建,而与相同传感器位置相关的多个模板可以基于多个运动事件类型被创建。模板的集合可以在运动传感器数据处理过程中被设备访问。当新的运动传感器数据被生成时,电子设备可以基于运动传感器数据和特定模板的模板传感器数据之间的相似度来从可访问的模板中辨别该特定模板。例如,该设备可以将运动传感器数据与一个或多个可访问的模板的模板传感器数据进行比较,并且可以基于比较处理过程中确定的相似度值来识别特定模板。一旦已经辨别出特定模板具有与运动传感器数据特别相似的模板传感器数据,则该设备可以使用该特定模板的模板事件数据以潜在地控制设备的功能。图I是根据本发明的一些实施例的用于使用一个或多个运动传感器检测用户的脚步的示例性电子设备100的示意图。电子设备100可以执行单一功能(例如,专用于检测用户脚步的设备),在其他实施例中,电子设备100可以执行多个功能(例如,检测用户的脚步、播放音乐、以及接收和拨打电话的设备)。此外,在一些实施例中,电子设备100可以是任何被配置为无论用户行进到哪里都检测用户脚步的便携式、移动式、或手持式电子设备。电子设备100可以包括具有可操作以检测用户脚步的一个或多个运动传感器的任何适当类型的电子设备。例如,电子设备100可以包括媒体播放器(例如,加州库珀蒂诺的苹果公司提供的iPod )、蜂窝电话(例如,苹果公司提供的iPhone )、个人电子邮件或消息收发设备(例如,由安大略省滑铁卢的Research In Motion公司提供的Blackberry )、任何其他的无线通信设备、口袋大小的个人计算机、个人数字助理(“PDA”)、膝上型计算机、音乐记录器、照相机、电影或视频摄像机或记录器、收音机、医疗装置、其他任何适当类型的电子设备、以及其任意组合。电子设备100可以包括处理器或控制电路102、存储器104、通信电路106、电源108、输入/输出(“I/O”)电路110、以及一个或多个运动传感器112。电子设备100还可以包括总线103,其可以提供数据传输路径以便向/从设备100的各种其它部件传输数据 或在它们之间传输数据。在一些实施例中,电子设备100的一个或多个部件可以被组合或省略。此外,电子设备100可以包括没有在图I中组合或包括的其他部件。例如,电子设备100还可以包括各种其他类型的部件,包括但不限于光感测电路、相机透镜部件、或全球定位电路、以及图I中示出的一个或多个部件的多种实例。为了简洁,图I中仅示出了每种部件中的一个。存储器104可以包括一个或多个存储介质,包括例如硬盘驱动器、固态驱动器、闪存、诸如只读存储器(“ROM”)的永久存储器、诸如随机存取存储器(“RAM”)的半永久存储器、任何其他适当类型的存储部件、或其任意组合。存储器104可以包括高速缓冲存储器,其可以是用于临时存储用于电子设备应用的数据的一种或多种不同类型的存储器。存储器104可以存储媒体数据(例如,音乐、图像、以及视频文件)、软件(例如用于在设备100上执行功能)、固件、偏好信息(例如媒体播放偏好)、生活方式信息(例如,食物偏好)、锻炼信息(例如,通过锻炼监视装置获得的信息)、交易信息(例如诸如信用卡信息的信息)、无线连接信息(例如可以使设备100能够建立无线连接的信息)、订阅信息(例如,跟踪用户订阅的播客或电视节目或其他媒体的信息)、联系人信息(例如,电话号码和电子邮件地址)、日历信息、任何其他适当数据、或其任意组合。通信电路106可以被提供以使用任何适当通信协议来允许设备100与一个或多个其他电子设备或服务器(未示出)通信。例如,通信电路106可以支持Wi-Fi (例如802. 11协议)、以太网、蓝牙 、高频系统(例如900MHz、2. 4GHz、以及5. 6GHz通信系统)、蜂窝网络(例如,GSM、AMPS、GPRS、CDMA、EV-D0、EDGE、3GSM、DECT、IS-136/TDMA、iDen、LTE 或任何其他适当蜂窝网络或协议)、红外线、传输控制协议/互联网协议(“TCP/IP”)(例如用在每个TCP/IP层中的任何协议)、超文本传输协议(“HTTP” )、BitTorrent 、文件传输协议(“FTP”)、实时传输协议(“RTP”)、实时流协议(“RTSP”)、安全外壳协议(“SSH”)、网络电话(“V0IP”)、任何其他通信协议或其任意组合。通信电路106还可以包括可以使设备100能够通过无线或有线连接与另一设备(例如,计算机或附件设备)电耦合并与其通信的电路。
电源108可以为设备100的一个或多个其他部件供电。在一些实施例中,电源108可以耦接至电网(例如,当设备100不是作为便携式设备或当其在电插座上被充电时)。在一些实施例中,电源108可以包括用于供电的一个或多个电池(例如当设备100作为便携式设备时)。又例如,电源108可以被配置为从自然来源生成功率(例如使用太阳能电池生成太阳能)。输入/输出电路110可以在必要时操作以将模拟信号和其他信号转换和编码/解码为数字数据。在一些实施例中,I/O电路110可以将数字数据转换为任何其他类型的信号,反之亦然。例如,I/O电路110可以接收并转换物理接触输入(例如,使用多触摸屏幕)、物理移动(例如,使用鼠标或传感器)、模拟音频信号(例如,使用麦克风)或任何其他输入。数字数据可以从处理器102、存储器104或电子设备100的任何其他部件被提供和接收。尽管I/O电路110在图I中被示出为电子设备100的单个部件,但是I/O电路的多个实例可以包括在电子设备100中。输入/输出电路110可以包括用于使用户能够提供输入以便与电子设备100交互或接口的任何适当的机构或部件。例如,I/o电路110可以包括任何适当的用户输入部 件或机构,并且可以采用多种形式,包括但不限于,电子设备板、转盘、点击轮、滚动轮、触摸屏、一个或多个按钮(例如键盘)、鼠标、游戏杆、跟踪球以及其组合。在一些实施例中,I/o电路110可以包括多触摸屏幕。I/O电路110的每个输入部件可以被配置为提供一个或多个专用控制功能,用于进行选择或发出与操作电子设备100相关的命令。输入/输出电路110还可以包括用于向电子设备100的用户呈现信息(例如,文字、图形、音频和/或触觉信息)的任何适当的机构或部件。例如,I/O电路110可以包括任何适当的输出部件或机构,并且可以采用多种形式,包括但不限于,音频扬声器、耳机、音频线路输出、视觉显示器、天线、红外线接口、蜂鸣器、振动器或其组合。在一些实施例中,I/O电路110可以包括图像显示电路(例如,屏幕或投影系统),作为用于为用户提供可视显示的输出部件。例如,显示电路可以包括结合在电子设备100中的屏幕(例如液晶显示器(“IXD”)、发光二极管(“LED”)显示器、有机发光二极管(“0LED”)显示器、表面传导电子发射显示器(“SED”)、纳米碳管显示器、纳米晶体显示器、任何适当类型的显示器或其组合)。又例如,显示电路可以包括可移动的显示器或投影系统,用于在远离电子设备100的表面上提供内容显示(例如,视频投影仪、平视显示器、或三维(例如全息)显示器)。在一些实施例中,I/O电路110的显示电路可以包括编码/解码器(“CODEC”),以将数字媒体数据转换为模拟信号。例如,显示电路或电子设备100中的其他适当电路可以包括视频CODEC、音频CODEC或任何适当类型的CODEC。显示电路还可以包括显示驱动器电路、用于驱动显示驱动器的电路、或两者。显示电路可以在处理器102的指示下操作以显示内容(例如,媒体播放信息、在电子设备上执行的应用的应用屏幕、关于正在进行的通信操作的信息、关于进来的通信请求的信息、或设备操作屏幕)。应该注意,I/O电路110的一个或多个输入部件和一个或多个输出部件有时在此可以被统称作I/o接口 110。还应该注意,I/O电路110的输入部件和输出部件有时可以是单个I/O部件,例如触摸屏,其可以通过用户触摸显示屏幕来接收输入信息并且还可以通过同一显示屏幕向用户提供视觉信息。
运动传感器112可以包括可操作以检测电子设备100的移动的任何适当的运动传感器。例如,运动传感器112可以操作以检测携带设备100的用户的运动事件。在一些实施例中,运动传感器112可以包括一个或多个三轴加速度运动传感器(例如,加速度计),其可操作以检测在三个方向上的直线加速度(即,X或左/右方向,y或上/下方向,以及z或前/后方向)。又例如,运动传感器112可以包括一个或多个单轴或双轴加速度运动传感器,其可操作以仅检测沿X或左/右方向和y或上/下方向中的每个方向的直线加速度,或仅检测沿任一其他方向对的直线加速度。在一些实施例中,运动传感器112可以包括基于硅微加工微机电系统(“MEMS”)技术的静电电容(例如电容耦合)加速度计,包括基于热的MEMS式加速度计、压电式加速度计、压电电阻式加速度计、或其他任何适当的加速度计。在一些实施例中,运动传感器112可以操作以直接检测旋转、旋转移动、角位移、倾斜、位置、方向、沿非直线(例如,弓形)路径的运动、或任何其他非直线运动。例如,如果运动传感器112是直线运动传感器,则可以使用附加的处理来间接检测一部分或全部的非直线运动。例如,通过将运动传感器112的直线输出与重力矢量(即,静态加速度)进行比 较,运动传感器112可以操作以计算电子设备100相对于y轴的倾斜。在一些实施例中,作为替换或附加,运动传感器112可以包括一个或多个用于检测旋转移动的陀螺运动传感器或陀螺仪。例如,运动传感器112可以包括旋转或振动元件。处理器102可以包括可操作以控制电子设备100的操作和性能的任何处理电路。例如,处理器102可以被用于运行操作系统应用、固件应用、媒体播放应用、媒体编辑应用、或任何其他应用。在一些实施例中,处理器102可以从I/O电路110的输入部件接收输入信号,或通过I/O电路110的输出部件(例如,显示器)驱动输出信号。处理器102可以加载用户接口程序(例如存储在存储器104或其他设备或服务器中的程序),以确定通过I/0电路110的输入部件或一个或多个运动传感器112接收的指令或数据可以如何控制通过I/O电路110的输出部件将信息提供给用户的方式。处理器102可以将不同元数据与运动传感器112所捕捉的任意运动数据相关联,包括例如,全球定位信息、时间码、或任何其他适当元数据(例如,设备100的当前模式、或在运动数据被捕捉时设备100正在运行的应用的类型)。电子设备100还可以被提供有壳体101,其可以至少部分地包围设备100的一个或多个部件以保护它们免受碎屑和设备100外部的其他损害力。在一些实施例中,电子设备100的所有部件可以设置在相同的壳体101中。例如,如图8所示,用户50可以在其腰带上携带电子设备1200,其可以基本上类似于图I的电子设备100,电子设备1200包括至少部分包围处理器1202和运动传感器1212的单个壳体1201。在其他实施例中,电子设备100的不同部件可以设置在不同壳体内,并且可以无线或通过线缆彼此通信。例如,如图8所示,用户50可以携带电子设备1300,其可以基本上类似于设备100和1200,然而,电子设备1300可以包括第一设备部分1300a和第二设备部分1300b。设备部分1300a可以握在用户的手中,并且可以包括至少部分包围处理器1302和第一通信电路1306a的第一壳体1301a,而设备部分1300b可以保持在用户的口袋中,并且可以包括至少部分包围运动传感器1312和第二通信电路1306b的第二壳体1301b。在该实施例中,例如,处理器1302和运动传感器1312可以无线或通过线缆经由第一通信电路1306a和第二通信电路1306b通信。除了手、臀部和口袋之外,用户50还可以将运动传感器放置在相对于他或她的身体的各个其它位置。例如,也如图8中所示,例如,用户50可以将运动传感器放置在任何其他适当位置,例如传感器1412a在用户头上(例如,在发带中)、传感器1512在用户配件中(例如在背包或其他类型的包中)、传感器1612绕用户脖子(例如,在项链中)、传感器1712在用户的胳膊上(例如,在臂带中)、传感器1812在用户脚上(例如,在鞋子中或鞋子上)、传感器1912在用户腿上(例如在膝盖护带中)、传感器2012在用户腕上(例如,在手表中)、以及传感器2112在用户胸口上(例如在包的带子中)。为了增强与电子设备100交互的用户体验,电子设备可以为用户提供通过以特定方式移动电子设备来提供功能输入的机会。例如,运动传感器112可以检测由用户运动事件导致的移动(例如用户摇晃传感器112或带着传感器112行走),以及传感器112可以基于所检测到的移动来生成特定的运动传感器数据信号。检测到的移动可以包括例如由特定的用户运动事件导致的沿运动传感器112的一个或多个特定轴的移动(例如,在z-y平面中检测到的倾斜运动,或沿任意加速度计轴检测到的摇晃运动)。传感器112然后可以响 应于所检测到的移动生成传感器数据。接下来,设备100可以分析该生成的运动传感器数据,用于辨别用户运动事件的特定类型以及用于基于所辨别出的用户运动事件的类型来确定是否要执行特定操作(例如,使用由处理器102运行的应用所提供的规则或设置)。电子设备100可以使用用于分析和解释由运动传感器112生成的运动传感器数据的任何适当方法或算法。设备100可以分析运动传感器数据以辨别导致传感器112所检测到的移动的用户运动事件的类型(例如,通过在可能导致了该移动的两种或更多种不同类型的用户运动事件之间进行辨别),以及响应于辨别出的用户运动事件的类型来确定是否要执行特定操作。在一些实施例中,处理器102可以加载运动感测应用(例如,存储在存储器104中或由远程服务器通过通信电路106提供给设备100的应用)。运动感测应用可以向设备100提供规则以利用由传感器112生成的运动传感器数据。例如,所述规则可以确定设备100如何分析运动传感器数据,以辨别导致传感器112所检测到的移动的用户运动事件的具体类型(例如,用户步行事件、用户摇晃事件、或者也许用户不一定故意做的事件(例如无意的或微弱的运动))。作为附加或替换,所述规则可以确定设备100如何处理所辨别出的运动事件类型(例如,设备100是否响应于所辨别出的事件来改变功能或设置)。尽管下面的讨论描述的是在三轴加速度计的情况下感测运动,但是应该理解该讨论可以被应用于任何适当的感测机制或者由电子设备100的运动传感器112提供的感测机制的组合,用于响应于检测到移动而生成运动传感器数据。图2是可以由电子设备100的运动传感器112提供的示例性加速度计200的示意图。加速度计200可以包括具有惯性质量体210的微机电系统(“MEMS”),惯性质量体210的偏移可以被测量(例如,使用模拟或数字电路)。例如,质量体210可以耦接至沿X轴202的弹簧212和213,沿y轴204的弹簧214和215,以及沿z轴206的弹簧216和217。当质量体210沿轴202、204和206中的任一轴有位移时,相应的弹簧可以偏移并提供与该偏移相关的信号至电子设备的电路(例如,由运动传感器112提供的电路或设备100的任何其他适当电路)。与弹簧拉伸、弹簧压缩或两者相关联的偏移信号可以被识别。加速度计200可以具有任何适当的安稳值(例如,在任何轴上都没有偏移),包括例如在自由下落中(例如,当加速度计和设备上的力仅为重力)。在一些实施例中,安稳值可以基于先前运动传感器数据被不断更新。
电子设备可以以任何适当速率对加速度计的输出(例如,质量体210的偏移值)进行采样。例如,电子设备可以在5毫秒至20毫秒的范围内,例如以10毫秒,对加速度计的输出进行采样。该速率可以针对不同弹簧改变和/或可以基于电子设备的当前模式被改变。由加速度计沿每个轴检测到并输出至电子设备的电路的加速度值可以在特定时间段上被存储,并且例如随时间被绘制出来。图3是根据一些实施例,随时间的加速度计输出的示例性曲线300的示意图。例如,曲线300可以包括时间轴302和加速度计值轴304。加速度计值可以使用任何适当方法来测量,包括例如作为电压、每时间平方的力的单位、或任何其他适当单位。该值可以基于设备的当前模式来被不同地测量。在一些实施例中,对于每个轴,加速度计可以基于与加速度计相关联的位数来向输出分配数值。曲线图300可以包括描绘沿X轴的加速度计测量结果(例如,图2的X轴202的弹簧212和213的测量结果)的曲线312,描绘沿y轴的加速度计测量结果(例如,图2的y轴204的弹簧214和215的测量结果)的曲线314,以及描绘沿z轴的加速度计测量结果(例如,图2的z轴206的弹簧216和217的测量结果)的曲线316。因为用户可能不总是以相同方式(例如,沿相同的轴)移动电子设备,所以电子设 备可以为每个采样时间定义与沿各个轴检测到的一个或多个加速度计值相关联的加速度计值。例如,电子设备可以为每个采样时间选择三个加速度计输出中的最高值。又例如,电子设备可以确定沿两个或更多个轴所检测到的加速度的幅值。在一个特定实施例中,电子设备可以计算加速度计输出的平方和的平方根(例如x2+y2+z2的平方根)。再例如,对于每个采样时间,电子设备可以为沿各个轴检测到的加速度计值中的每一个定义一个加速度计值。在一些实施例中,在满足条件时(例如,在所有时间,或当加速度计输出超过或没超过阈值时),电子设备可以忽略特定轴的加速度计输出,以减少假阳性(例如,忽略沿z轴的加速度计输出以忽略设备晃动)。在一些实施例中,电子设备可以使用若干种方法来定义与不同类型的检测到的移动相关联的若干加速度值(例如,与摇晃相关联的加速度值、与旋转相关联的另一加速度值、以及与倾斜相关联的又一加速度值)。在一些实施例中,方法可以根据电子设备的当前模式而改变。电子设备然后可以分析一个或多个加速度值(即,所生成的运动传感器数据的一个或多个部分)来辨别可能与这些值相关联的用户运动事件的类型(例如,用户步行事件或用户摇晃事件),以及确定如何处理所辨别出的运动事件类型(例如,设备100是否响应于所辨别出的事件来改变设备的功能或设置)。得到的加速度计输出的幅值可由电子设备存储(例如,在存储器104中或通过通信电路106远程存储),并且例如随时间绘制出来。图4是根据一些实施例的加速度幅值的示例性曲线400的示意图。例如,曲线400可以包括时间轴402和加速度值轴404。当基本上没有检测到加速度时(例如,当曲线410基本上平坦时),加速度的幅值可能为非零,因为其可能包括由于重力引起的加速度。加速度信号幅值中的DC分量可能会妨碍电子设备清晰地检测到电子设备的单独的移动。在DC分量的值高于加速度信号幅值中的峰值时,可能尤其是这样。在这种情况下,直接应用简单的低通滤波器可能会隐藏而不是揭露反应电子设备的移动的加速度信号。为了从所检测到的加速度信号的幅值中去除重力的影响,电子设备可以对加速度信号的幅值应用高通滤波器。得到的信号可以不包括DC分量(例如,因为高通滤波器可以在DC时具有零增益),并且可以更精确地反映电子设备的实际移动。图5是根据一些实施例的去除重力影响之后的加速度幅值的示例性曲线500的示意图。例如,曲线500可以包括时间轴502和加速度值504。曲线510可以基本上以零值为中心(例如,没有反映常量重力的DC信号)并且可以包括正峰和负峰(例如,用户步行事件的可能的抬高和落地事件部分)。在一些实施例中,电子设备可以对曲线510的信号进行整流以仅保持正加速度值。例如,电子设备可以使用全波整流器(例如,取曲线510的模)。图6是根据一些实施例,在去除重力影响之后的加速度的整流后幅值的示例性曲线的示意图。例如,曲线600可以包括时间轴602和加速度值604。曲线610可以反映曲线510 (图5)的每个值的模,因此可以完全在零加速度值以上。在一些实施例中,电子设备然后可以对整流后的信号应用低通滤波器,以提供更平滑的信号,该更平滑的信号可以去除短期振荡同时保留较长期的趋势。例如,电子设备可以应用低通滤波器,其计算任何适当的采样尺寸内的各个采样点的移动平均值(例如,32点采样移动平均)。得到的信号可以被绘制为例如曲线620。该信号可以反映电子设备移动了多少(例如,每个采样点的值可以表示该设备(即,运动传感器)移动的量)。对由运动传感器112 (例如,加速度计200)生成的运动传感器数据的一些或所有 滤波和/或一些或所有处理可以由运动传感器112提供的电路来执行。可替换地,一些或所有滤波和/或处理可以由例如处理器102来执行。使用由运动传感器112生成的运动传感器数据的任何部分的任何版本(例如,处理过的或别的)(例如,由加速度计200提供的加速度计信号的任何版本),电子设备100可以确定是否响应于所生成的运动传感器数据来执行操作或生成事件。电子设备100可以响应于从运动传感器112接收特定的运动传感器数据而执行任何适当的操作(例如,使用由处理器102运行的应用提供的规则或设置)。例如,响应于传感器112检测到由用户的摇晃运动事件(例如用户摇晃传感器112)导致的移动并且然后基于该检测到的移动生成相关的运动传感器数据,电子设备100可以分析传感器数据并可以打乱媒体播放列表、跳至前一或下一媒体项(例如歌曲)、改变播放媒体的音量、或基于分析执行任何其他适当操作。在一些实施例中,电子设备100可以允许用户对传感器112的特定移动,以基于(例如在I/O电路110的输出显示部件上)当前显示的菜单,按照前后关系来导航菜单或访问功能。例如,电子设备100可以基于对响应于运动传感器112检测到由用户运动事件(例如摇晃运动事件或倾斜运动事件)导致的特定移动而由运动传感器112生成的特定运动传感器数据信号的分析,显示“现在播放”显示、导航封面浏览显示(例如,显示一不同唱片封面)、滚过各种选项、调节到或扫描至电台(例如当在“收音机”模式时,在预设电台之间移动)、或显示下一媒体项(例如滚过图像)。在另外的实施例中,电子设备100可以基于对运动传感器112生成的特定运动传感器数据信号的分析,来计算锻炼数据。例如,响应于传感器112检测到由用户的步行运动事件(例如用户携带传感器112行走或奔跑)导致的特定移动并然后基于所检测到的移动生成运动传感器数据,电子设备100(例如处理器102)可以分析该传感器数据以辨别导致由传感器112检测到的移动的用户运动事件的特定类型(例如,用户步行事件)。在一些实施例中,设备100可以通过在可能导致了该移动的两种或更多种不同类型的用户运动事件之间进行辨别,来辨别用户运动事件的特定类型。基于该分析,设备100然后可以确定如何处理所辨别出的运动事件类型(例如,设备100是否应当(例如在存储器104中)记录该步行事件以及基于该步行事件进行各种“锻炼”确定,例如用户行进的距离、用户的步速等等。在一些实施例中,电子设备100然后可以使用这些步行事件确定来执行任何适当的设备操作,例如播放具有与检测到的用户步速类似的节奏的媒体。电子设备100可以基于电子设备的当前模式或菜单,响应于特定运动传感器数据信号而执行不同操作。例如,当在“锻炼”模式(例如电子设备100可以一般地使用运动传感器112作为用于检测用户步行运动事件的计步器的模式)下时,由传感器112响应于检测到特定移动而生成的特定运动传感器数据信号可以被设备100分析,以辨别用户步行运动事件的特定类型,并且可以基于辨别出的步行运动事件来进行各种锻炼确定。然而,当在“导航菜单”模式(例如,电子设备100可以一般地使用运动传感器112作为用于检测用户导航运动事件的用户命令输入的模式)下时,由传感器112响应于检测到相同的特定移动而生成的相同的特定运动传感器数据信号可以被设备100分析,以辨别用户导航运动事件的特定类型(即,不作为用户步行运动事件的特定类型)。然而,在其他实施例中,电子设备100可以独立于电子设备的当前模式或菜单来分析运动传感器数据。例如,电子设备100可以总是响应于传感器112检测到设备的特定移动而打乱播放列表,而不论检测到移动时在使用的应用或模式(例如响应于摇晃移动而打乱播放列表,不论设备在“媒体播放”模式 下、在“锻炼”模式下、还是在“导航菜单”模式下)。在一些实施例中,用户可以选择电子设备已知的特定运动事件(例如,从已知的库选择或基于由设备可用的运动传感器模板的模板事件数据所描述的事件来选择(如下面将详细描述的)),以将不同的运动事件与不同的电子设备操作和模式相关联。改变运动传感器112相对于用户身体的位置可能会负面地影响用户的特定运动事件始终向传感器112赋予相同移动以生成将被设备100用于执行特定操作的特定运动传感器数据信号的能力。例如,无论设备100是否在“锻炼”模式下,当用户在其手中拿着传感器112行走时由传感器112检测到的移动与当用户在其裤后袋中带着传感器112行走时由传感器112检测到的移动可能通常是不同的(即,行走时用户手中的运动可能通常不同于行走时用户臀部的运动)。因此,由传感器112响应于检测到由手中拿着传感器112的用户行走所赋予的移动而生成的运动传感器数据可能通常不同于由传感器112响应于检测到由其口袋中携带传感器112的用户行走所赋予的移动而生成的运动传感器数据,因此有可能导致电子设备100在即使用户运动事件(即,行走)相同的情况下也进行不同的响应。因此,为了在尽管改变了传感器112相对于用户身体的位置的情况下也会响应于相同的用户运动事件而发起一致的设备操作,电子设备100可以设置有一个或多个运动传感器模板。每个运动传感器模板可以包括模板传感器数据,该模板传感器数据与预计运动传感器112响应于传感器112检测到对于特定传感器位置由特定用户运动事件导致的特定移动类型而生成的特定运动传感器数据相似或以其它方式相关联。例如,如图7所示,设备100可以设置有运动传感器模板770。每个运动传感器模板770可以包括模板传感器数据772,其与预计设备100的传感器112响应于传感器112在该传感器位于用户身体上的某个位置时检测到由某个用户运动事件赋予的移动而生成的运动传感器数据相关联。每个模板770还可以包括模板事件数据774,其描述与该模板770的模板传感器数据772相关联的某个用户运动事件。作为附加或替换,每个模板770还可以包括模板位置数据776,其描述与该模板770的模板传感器数据772相关联的在用户身体上的某个传感器位置。设备100可以设置有与行走的用户上的每个可能的传感器位置相关联的运动传感器模板770。例如,设备100可以设置有第一运动传感器模板770a,其包括第一模板传感器数据772a,第一模板传感器数据772a与预计传感器112响应于传感器112在传感器112位于用户手中时检测到由用户行走所赋予的移动而生成的运动传感器数据相关联。此外,模板770a还可以包括与模板传感器数据772a相关联的描述“行走”用户运动事件的模板事件数据774a和描述“传感器在手中”位置的模板位置数据776a。又例如,设备100还可以设置有第二运动传感器模板770b,其包括第二模板传感器数据772b,第二模板传感器数据772b与预计传感器112响应于传感器112在传感器112位于用户口袋中时检测到由用户行走所赋予的移动而生成的运动传感器数据相关联。此外,模板770b还可以包括与模板传感器数据772b相关联的描述“行走”用户运动事件的模板事件数据774b和描述“传感器在口袋中”位置的模板位置数据776b。此外,设备100可以设置有与用户锻炼运动事件的每一种可能类型(例如,不仅仅是行走)相关联的运动传感器模板770。例如,设备100可以设置有第三运动传感器模板 770c,其包括第三模板传感器数据772c,第三模板传感器数据772c与预计传感器112响应于传感器112在传感器112位于用户手腕上时检测到由用户跑步所赋予的移动而生成的运动传感器数据相关联。此外,模板770c还可以包括与模板传感器数据772c相关联的描述“跑步”用户运动事件的模板事件数据774c和描述“传感器在手腕上”位置的模板位置数据776c。再例如,设备100还可以设置有第四运动传感器模板770d,其包括第四模板传感器数据772d,第四模板传感器数据772d与预计传感器112响应于传感器112在传感器112位于用户腰带上时检测到由用户跑步所赋予的移动而生成的运动传感器数据相关联。此外,模板770d还可以包括与模板传感器数据772d相关联的描述“跑步”用户运动事件的模板事件数据774d和描述“传感器在腰带上”位置的模板位置数据776d。行走或跑步运动事件例如可以包括在用户行走或跑步过程中发生的任何特定事件。例如,行走事件可以是抬脚事件、落脚事件、或抬脚和落脚事件之间的摆脚事件,它们分别可以被提供有其自身模板770,或者单个抬脚、摆脚和落脚的整个事件可以被提供有单个模板770。此外,设备100可以设置有与用户运动事件的每种类型(例如,导航运动事件,以及不仅仅是那些与锻炼相关的运动事件或在设备处于锻炼模式下且传感器112可以被用作计步器时可预料到的那些运动事件)相关联的运动传感器模板770。例如,设备100可以设置有第五运动传感器模板770e,其包括第五模板传感器数据772e,第五模板传感器数据772e与预计传感器112响应于传感器112在传感器112位于用户手中时检测到由用户倾斜传感器112所赋予的移动而生成的运动传感器数据相关联。此外,模板770e还可以包括与模板传感器数据772e相关联的描述“倾斜”用户运动事件的模板事件数据774e和描述“传感器在手中”位置的模板位置数据776e。又例如,设备100还可以设置有第六运动传感器模板770f,其包括第六模板传感器数据772f,第六模板传感器数据772f与预计传感器112响应于传感器112在传感器112位于用户脚上时检测到由用户摇晃传感器112所赋予的移动而生成的运动传感器数据相关联。此外,模板770f还可以包括与模板传感器数据772f相关联的描述“摇晃”用户运动事件的模板事件数据774f和描述“传感器在脚上”位置的模板位置数据776f。
在一些实施例中,每个模板770可以包含以不同数据率提供的若干个不同的模板传感器数据部分772。这可以使得无论运动传感器的输出数据率可能是什么,模板770的模板传感器数据772都能够与运动传感器数据进行比较。此外,在一些实施例中,每个模板770可以包括一个或多个不同的模板传感器数据部分772,诸如存储在时域中的一个传感器数据部分和存储在频域中的另一个传感器数据部分。在一些实施例中,一个或多个运动传感器模板770可以由模板提供者(例如,设备100的制造商)创建,然后可以提供给设备100的用户。例如,可以通过以下方式来创建传感器模板770 :将其模板传感器数据772定义为,响应于接收到测试用户在定义模板位置数据776的位置携带测试传感器的同时执行定义模板事件数据774的用户运动事件而生成的移动,由测试运动传感器(例如类似于传感器112的传感器)生成的数据。因此,设备100的模板770可以包括模板传感器数据772,其类似于响应于设备100的各种类型的预期用户(不同身高和体重的用户)而预计会生成的运动传感器数据, 各种类型的测试用户可分别创建针对特定用户运动事件并且针对特定传感器位置的模板传感器数据。在一些实施例中,由每种特定类型的测试用户创建的针对运动事件与传感器位置的特定组合的传感器数据可以作为其自身的模板传感器数据772保存在其自身的模板770中。可替换地,由特定类型的测试用户创建的针对运动事件与传感器位置的特定组合的模板传感器数据可以与由其他类型的测试用户创建的针对该相同的运动事件与传感器位置的特定组合的模板传感器数据进行平均或者以别的方式组合,然后作为组合的模板传感器数据772保存在单个“组合”模板770中。因此,从多个传感器收集的针对特定运动事件和特定传感器位置的数据可以被平均或者以别的方式被组合来创建要在设备100上提供的传感器模板。一旦模板770已经被创建,就可以使其能够由设备100访问。例如,每个创建的模板770可以存储在设备100的存储器104中,然后提供给用户。又例如,每个创建的模板770可以由用户通过通信电路106从远程服务器(未示出)加载至设备100上,因此,设备可用的模板类型可以由提供者经常地更新,并且可以使其能够被下载。在一些实施例中,一个或多个运动传感器模板770可以由设备100的用户创建。例如,用户可以将传感器112放置在用户身体上的各个位置,并且可以为每个位置进行各种用户运动事件。由这些事件中的每一个生成的运动传感器数据,连同事件过程中事件的特定类型和传感器的特定位置,可以被设备100保存作为运动传感器模板770 (例如,保存在存储器104中或通过通信电路106保存在远程服务器上)。例如,设备100可以具有“模板创建”模式,在该模式期间,设备100可以提示用户在将传感器112放置在一个或多个特定传感器位置的情况下进行一个或多个用户运动事件,从而设备100可以生成并保存一个或多个运动传感器模板770以供后续访问。可替换地,例如,在用户在正常使用设备期间进行用户运动事件之后,用户可以提供信息至设备100(例如,使用I/O电路110的输入部件),指示刚刚进行的运动事件的类型以及该事件过程中传感器112的位置。设备100然后可以将该事件和位置信息,连同由传感器112响应于检测到运动事件的移动而生成的运动传感器数据,保存为运动传感器模板770。无论每个运动传感器模板770被创建的方式如何,每个传感器模板770可以包括模板传感器数据772,其定义了与预计设备100的传感器112响应于用户运动事件的特定类型和特定传感器位置而生成的运动传感器数据相关联的传感器数据输出概况。一个或多个运动传感器模板770可以被设备100使用,以确定由传感器112生成的运动传感器数据是否为应当使电子设备100执行特定操作或生成特定事件的传感器数据。即,一个或多个运动传感器模板770可以被设备100使用,以确定特定的传感器数据是否应当被设备100辨识为响应于传感器112检测到由可被用于控制设备功能的用户运动事件引起的移动而生成的传感器数据。例如,如图7所示,当新的运动传感器数据782由传感器112生成时,一个或多个运动传感器模板770可以被设备100使用以辨别导致了传感器112所检测到的移动的用户运动事件的类型。设备100可以将所生成的运动传感器数据782的至少一部分与来自设备100可访问的一个或多个运动传感器模板770的模板传感器数据772的至少一部分进行比较。在一些实施例中,设备100的处理器102或任何其他部件的比较器部分792可以将所生成的运动数据782的至少一部分(例如,响应于带着传感器112行走的用户的落脚和/或抬脚而生成的传感器数据)与来自设备100可访问的一个或多个运动传感器模板770的模板传感器数据772的至少一部分进行比较。设备100然后可以基于这些一个或多个比较中的每一个来执行识别操作,以试图识别其模板传感器数据772提供与所生成的运动数据782的可接受匹配或有效匹配或成功匹配的特定模板770。在一些实施例中,设备100的处理器102或任何其他部件的识别器部分793可以确定由比较器792在所生成的运动数据782与特定模板770的模板传感器数据772之间的比较是否为有效的或可接受的或成功的比较。应该注意,比较器792和识别器793在此有时可以被统称为辨别器部件791。辨别器791可以是设备100的处理器102或任何其他部件的一部分,其可以基于运动传感器数据782与特定模板770的模板传感器数据772之间的相似度来辨别该特定模板770。应该理解,被辨别器791使用的运动传感器数据782可以为任何适当形式(例如,可以在被辨别器791使用之前,被滤波或以任何其它适当方式被处理,包括参考图3-6所描述的任何形式)。类似地,被辨别器791使用的模板传感器数据772可以为任何适当形式(例如,可以在被辨别器791使用之前,被滤波或以任何其它适当方式被处理,包括参考图3-6所描述的任何形式)。在一些实施例中,设备100可以将所生成的运动传感器数据782仅仅与来自设备可访问的运动传感器模板770的子集的模板传感器数据772进行比较。例如,当设备100在特定模式(例如“锻炼”模式)时,设备100可以仅使用来自与锻炼运动事件相关联的模板770的模板传感器数据772进行比较。即,当设备100在锻炼模式时,例如,设备100可以将运动传感器数据782仅仅与来自具有描述锻炼运动事件(例如“跑步”或“行走”)的模板事件数据774的那些模板770 (例如,图7的模板770a-770d)的模板数据772进行比较,而不与来自具有描述其他类型运动事件(例如“摇晃”或“倾斜”)的模板事件数据774的那些模板770 (例如图7的模板770e和770f)的模板数据772进行比较。可替换地,用户可以告诉设备100传感器位于用户身体上的什么位置(例如,通过I/O电路110的输入部件),然后设备100可以将所生成的运动传感器数据782仅仅与来自具有描述由用户提供的传感器位置(例如,“传感器在手中”)的模板位置数据776的那些模板770(图7的模板770a和770e)的模板数据772进行比较,而不与来自具有描述其他传感器位置(例如“传感器在 口袋中”)的模板位置数据776的那些模板770 (例如图7中的模板770b-770d和770f)的模板数据772进行比较。这可以减少设备100在处于一定设备模式时所处理的比较量。在其他实施例中,设备100可以将所生成的运动传感器数据782与来自设备100可访问的所有模板770的模板数据772进行比较,而不论设备100的当前模式或设置如何。在一些实施例中,用户可以选择电子设备100已知的一个或多个特定运动事件(例如,从由设备可用的所有运动传感器模板770的模板事件数据774所描述的事件库中选择),并且可以将这些所选事件与不同的电子设备操作和模式相关联。为了辨别模板传感器数据与运动传感器数据之间的成功或可接受匹配,由比较器792和识别器793提供的比较和识别可以通过将每个模板770的模板数据772分别与所生成的运动传感器数据782进行相关来执行。比较可以通过互相关来执行。在其他实施例中,比较可以使用其他统计方法来进行,例如可以在时域中使用的幅度柱状图特征。此外,也可以基于模板数据772和传感器数据782的形状,例如使用结构图案辨识,来进行该比较。在一些实施例中,通过比较模板数据的频率成分和传感器数据的频率成分,可以在频域中进行比较。
因为用户运动事件,例如步行运动事件,可能在两个相似步伐之间具有变化,所以它们可能不会正好在所估计的时刻开始和结束。因此,模板数据772的任何集合的任何部分与传感器数据782的任何部分之间的互相关或任何其他类型的比较可以被多次执行,并且对于每次比较,模板数据772和传感器数据782可以每次相对彼此时移不同的偏移量。相移可以是预定的,并且与被比较的数据长度或循环长度相比可以很小。如图8所示,例如,用户50可以在身体的不同部分携带多个运动传感器。身体的每个部分可以相对于身体的其他部分独有地移动。因此,可以通过将在特定时间由用户携带的各个传感器112的若干个比较结果进行组合来改进该比较。例如,在任何给定时间,用户可以携带三个传感器112,每个都可以生成其自身的传感器数据782。三组生成的运动传感器数据782中的每一组都可以与可访问模板770进行比较。在这样的实施例中,例如,为了获得对用户的特定运动事件的成功比较,三个比较中的每一个都必须是成功的。当所生成的运动传感器数据782与特定模板770的模板数据772之间的相似度(例如相关性)足够高时,由该特定模板770的模板事件数据774描述的用户运动事件的类型可以被认为是导致传感器112检测到用于生成运动传感器数据782的移动的用户运动事件的类型。相似度阈值可以被识别器部分793定义和使用,以确定比较的相似度值是否足够高到被认为是成功比较。相似度阈值可以由用户或存储在设备上的设置定义。相似度阈值可以基于各种条件,例如设备的当前模式,而改变。在一些实施例中,如果例如相似度阈值被第一模板比较的相似度值所满足,则该比较可以被认为是成功比较,并且该比较处理可以结束。然而,在其他实施例中,即使在已经识别出成功比较之后(例如,当所比较的模板数据和传感器数据之间的相似度值满足相似度阈值时),比较处理仍然可以继续,直到比较处理可用的所有模板都已经与所生成的运动传感器数据进行过比较。如果在比较过程中有多于一个的成功比较已经被识别,则例如相似度值超过阈值最多的那个模板(例如,与所生成的传感器数据具有最大相似度的模板)可以被识别为从该比较处理辨别出的模板。如果所生成的运动传感器数据782和每个可访问模板770的模板数据772之间进行的比较都没有生成满足相似度阈值的相似度值,则相似度值最大的那个模板(例如,与所生成的传感器数据具有最大相似度的模板)可以被识别为从该比较处理辨别出的模板。可替换地,如果进行的比较都没有生成满足相似度阈值的相似度值,则设备100可以忽视所生成的运动传感器数据782,并可以等待由运动传感器112生成的新的运动传感器数据。然而,当设备100在比较过程中确定所生成的运动传感器数据782的至少一部分与来自一个特定模板传感器数据770的模板传感器数据772的至少一部分足够相似时,设备100可以访问来自该模板770的模板事件数据774。例如,处理器102或设备100的任何其他部件的控制器部分794可以访问被设备100的识别器部分793识别为成功比较的特定传感器模板770的模板事件数据774。控制器部分794然后可以使用该特定模板事件数据774来确定设备100是否应当响应于所辨别出的类型的用户运动事件来执行特定操作。例如,如果来自在比较过程中被识别的特定模板770的模板事件数据774描述“行走”运动事件,则设备100可以被控制器部分794配置为记录用户步伐(例如,在存储器104 中),以及更新关于用户行走的距离的数据或关于用户的步速的数据。又例如,如果来自在比较过程中被识别的特定模板770的模板事件数据774描述“摇晃”运动事件,则设备100可以被控制器部分794配置为打乱媒体播放列表。在一些实施例中,控制器部分794不仅可以使用来自特定辨别出的模板770的模板事件数据774来确定设备100是否应执行特定操作,还可以使用来自辨别出的模板770的模板位置数据776和/或来自所生成的运动传感器数据782的信息。图9是用于处理运动传感器数据(例如,以便控制电子设备)的示例性过程900的流程图。在步骤902,运动传感器数据可以被接收。例如,电子设备可以包括运动传感器,并且电子设备可以接收由运动传感器生成的运动传感器数据。运动传感器数据可以由运动传感器响应于该传感器检测到由特定运动事件(例如,用户锻炼运动事件、用户导航运动事件、或并非用户有意进行的运动事件)导致的移动而生成。在步骤904,一个或多个运动传感器模板可以被接收。例如,电子设备可以包括本地存储器,其上可以存储有供设备使用的一个或多个运动传感器模板。作为附加或替换,电子设备可以使用设备的通信电路从远程服务器加载一个或多个运动传感器模板。每个运动传感器模板可以包括模板传感器数据部分和模板事件数据部分。模板传感器数据部分可以与预计设备的运动传感器响应于当传感器位于用户身体的某个位置时检测到由某个运动事件赋予的移动而生成的运动传感器数据相关联。模板的模板事件数据部分可以描述与该模板的模板传感器数据相关联的某个运动事件。每个模板还可以包括模板位置数据部分,其可以描述与该模板的模板传感器数据相关联的在用户身体上的某个传感器位置。一旦运动传感器数据已经在步骤902被接收,并且一旦一个或多个运动传感器模板已经在步骤904被接收,则特定运动传感器模板可以在步骤906被辨别。该特定模板可以基于所接收的运动传感器数据与该特定模板的模板传感器数据部分之间的相似度来辨别。例如,这可以通过将所接收的运动传感器数据与在步骤904接收的所有模板的子集中的至少一个模板的模板传感器数据部分进行比较来实现。然后,基于比较处理来从该至少一个模板中识别出该特定模板。在一些实施例中,在比较处理中所使用的模板的子集可以仅包括在步骤904接收的每一个具有与电子设备的当前模式相关的模板事件数据部分的模板。在一些实施例中,在比较处理中所使用的模板的子集可以仅包括在步骤904接收的每一个具有与至少一种类型的锻炼运动事件(诸如,行走事件或跑步事件(例如,用户行走的抬腿事件或用户跑步的落脚事件))相关的模板事件数据部分的模板。在其他实施例中,在比较处理中所使用的模板的子集可以仅包括在步骤904接收的每一个具有与至少一种类型的导航运动事件(诸如,摇晃事件或倾斜事件)有关的模板事件数据部分的模板。在一些实施例中,比较处理可以确定运动传感器数据和所述子集中的每个模板的模板传感器数据部分之间的相似度值。该比较处理可以涉及将全部的运动传感器数据或仅仅其一部分与模板的全部模板传感器数据部分或仅仅一部分进行比较。作为附加或替换,该比较处理可以涉及相对于模板传感器数据移动运动传感器数据(例如移动预定偏移量)。识别处理然后可以将子集中具有在比较处理中确定的最大相似度值的模板识别为特定模板。可替换地,例如,识别处理可以将子集中具有例如超过相似度阈值的相似度值的模板识别为特定模板。—旦在步骤906中已经辨别出该特定模板,则在步骤908,可以基于该特定模板的模板事件数据部分控制设备的操作或功能。例如,基于由该特定模板的模板事件数据部分描述的某个运动事件,可以确定设备是否应该执行特定操作。例如,如果来自步骤906中辨 别出的特定模板的模板事件数据部分描述了“行走”运动事件,则在步骤908,该设备可以被配置为(例如在存储器104中)记录用户步伐的发生,并且可以更新关于用户行走的距离的数据,或可以更新关于用户的步速的数据。该设备然后还可以被配置为向用户呈现具有与用户的步速类似的节奏的媒体。又例如,如果来自在步骤906辨别出的特定模板的模板事件数据部分描述了“摇晃”运动事件,则该设备可以被配置为打乱媒体播放列表。在一些实施例中,在步骤908,不仅可以基于在步骤906辨别出的特定模板的模板事件数据部分,还可以基于在步骤902接收的运动传感器数据的至少一部分,来控制设备的操作和功能。作为附加或替换,在一些实施例中,在步骤908,不仅可以基于在步骤906辨别出的特定模板的模板事件数据部分,还可以基于该特定模板的模板位置数据部分,来控制设备的操作和功能。应该理解,图9的处理900中示出的步骤仅是示例性的,并且现有的步骤可以被修改或省略,额外的步骤可以被增加,某些步骤的顺序可以被改变。图10是用于生成运动传感器模板(例如用在图9的处理900中的模板)的示例性处理1000的流程图。在步骤1002,实体可以在第一位置携带运动传感器的同时执行第一类型的运动事件。例如,该实体可以是人类用户或具有基本类似于人类用户的移动部件的模拟假人。在一些实施例中,人类用户可以被电子设备提示或者以其它方式引导来完成步骤1002(例如,响应于由设备的输出部分呈现给用户的指令)。可替换地,用户可以依靠自己完成步骤1002。可以在步骤1004接收由运动传感器响应于运动传感器检测到由在步骤1002执行第一类型的运动事件导致的移动而生成的第一运动传感器数据。然后,在步骤1006,可以使用在步骤1004接收到的第一运动传感器数据来创建第一运动传感器模板的模板传感器数据部分。在步骤1004接收的第一运动传感器数据可以在被用于在步骤1006创建第一运动传感器模板的模板传感器数据部分之前,被滤波或处理或者以其它方式操纵。在步骤1008,可以基于在步骤1002执行的第一类型的运动事件而创建第一运动传感器模板的模板事件数据部分。此外,在一些实施例中,可以基于在步骤1002所使用的传感器的第一位置来创建第一运动传感器模板的模板位置数据部分。接下来,在步骤1010,该实体可以在第二位置携带运动传感器的同时重新执行第一类型的运动事件。类似于步骤1002,在一些实施例中,人类用户可以被电子设备提示或者以其它方式引导来完成步骤1010 (例如,响应于通过设备的输出部件呈现给用户的指令)。可替换地,用户可以依靠自己完成步骤1010。可以在步骤1012接收由运动传感器响应于运动传感器检测到由在步骤1010重新执行第一类型的运动事件导致的移动而生成的第二运动传感器数据。然后,在步骤1014,可以使用在步骤1012接收到的第二运动传感器数据来创建第二运动传感器模板的模板传感器数据部分。在步骤1012接收的第二运动传感器数据可以在被用于在步骤1014生成第二运动传感器模板的模板传感器数据部分之前,被滤波或处理或者以其它方式操纵。在步骤1016,第二运动传感器模板的模板事件数据部分可以被创建为与在步骤1008所创建的第一运动传感器模板的模板事件数据部分相同。此外,在一些实施例中,可以基于在步骤1010所使用的传感器的第二位置来创建第二运动传感器模板的模板位置数据部分。
由实体在步骤1002执行以及然后在步骤1010重新执行的第一类型的运动事件可以是任何适当的用户运动事件,例如任何锻炼运动事件(例如,行走事件或跑步事件),或任何导航运动事件(例如摇晃事件或倾斜事件)。传感器的第一位置,如在步骤1002中所使用的,可以是可携带传感器的相对于实体的任何适当位置。例如,如果该实体是人类用户,第一位置可以是任何适当位置,包括但不限于,在用户的手中,在用户的口袋中,在用户的腕上,在用户的腰带上,在用户的脚上,在用户的胳膊上,在用户的腿上,在用户的胸口上,在用户的头上,在用户的背包中,以及绕用户的脖子。传感器的第二位置,如在步骤1010中所使用的,也可以是可以携带传感器的相对于实体的任何适当位置,除了第二位置应不同于步骤1002中使用的第一位置。可以对于任何数量的不同传感器位置重复步骤1010至步骤1016,同时实体重新执行第一类型的运动事件。此外,可以对于任何数量的不同类型的运动事件重复步骤1002至步骤1016。这可以增加设备可用的运动传感器模板的数量,并且可以增加设备在可能已经引起了检测到的运动传感器数据信号的一种或多种不同类型的运动事件之间进行辨别的能力。应该理解,图10的处理1000中示出的步骤仅是示例性的,并且已有步骤可以被修改或省略,额外步骤可以被增加,以及某些步骤的顺序可以被改变。参考图9和图10描述的这些处理,以及本发明的任何其他方面,每个都可以被软件实现,但是也可以由硬件或硬件和软件的组合来实现。它们每个还可以实施为记录在计算机可读介质上的计算机可读代码。计算机可读介质可以是能够存储之后可以被计算机系统读取的数据的任何数据存储设备。计算机可读介质的示例包括只读存储器、随机存取存储器、闪存、⑶-ROM、DVD、磁带以及光学数据存储设备。计算机可读介质还可以在连网的计算机系统上分布,从而计算机可读代码以分布方式被存储和执行。对于本领域技术人员来说,对于所要求保护的主题的非实质改变,无论是现在已知还是后来想出的,都应明确地认为是等同于在权利要求的范围内。因此,本领域技术人员现在已知或以后知道的明显替换都被限定为在所定义的元素的范围内。本发明的上述实施例仅出于示例性目的呈现而非用于限制。
权利要求
1.一种控制电子设备的方法,包括 接收运动传感器数据; 访问多个模板,每个模板包括模板传感器数据和模板事件数据; 基于所述运动传感器数据与所述多个模板中的特定模板的模板传感器数据之间的相似度,辨别所述特定模板;以及 基于所述特定模板的模板事件数据,控制所述电子设备的功能。
2.根据权利要求I所述的方法,其中所述辨别包括 将所述运动传感器数据与所述多个模板的子集中的至少一个模板的模板传感器数据进行比较;以及 基于所述比较,从所述至少一个模板中识别所述特定模板。
3.根据权利要求2所述的方法,其中所述子集仅包括所述多个模板中每一个包括与所述电子设备的当前模式相关的模板事件数据的模板。
4.根据权利要求2所述的方法,其中所述子集仅包括所述多个模板中每一个包括与多个锻炼运动事件中的至少一个相关的模板事件数据的模板。
5.根据权利要求4所述的方法,其中所述多个锻炼运动事件至少包括行走事件和跑步事件之一。
6.根据权利要求2所述的方法,其中所述子集仅包括所述多个模板中每一个包括与多个导航运动事件中的至少一个相关的模板事件数据的模板,其中所述多个锻炼运动事件至少包括摇晃事件和倾斜事件之一。
7.根据权利要求2所述的方法,其中所述比较包括将所述运动传感器数据的至少一部分与所述至少一个模板的模板传感器数据的至少一部分进行比较。
8.根据权利要求2所述的方法,其中所述比较包括将所述运动传感器数据相对于所述至少一个模板的模板传感器数据移动预定的偏移量。
9.根据权利要求2所述的方法,其中所述比较包括确定所述运动传感器数据与所述子集中每一个模板的模板传感器数据之间的相似度值。
10.根据权利要求9所述的方法,其中所述识别包括将所述子集中具有最大相似度值的模板识别为所述特定模板。
11.根据权利要求9所述的方法,其中所述识别包括将所述子集中其相似度值超过相似度阈值的模板识别为所述特定模板。
12.根据权利要求2所述的方法,其中所述控制包括基于所述特定模板的模板位置数据和所述运动传感器数据至少之一以及所述特定模板的模板事件数据,来控制所述电子设备的功能。
13.根据权利要求I所述的方法,其中所述访问多个模板包括以下至少之一从远程服务器将所述多个模板中的至少一部分加载至所述电子设备,以及从所述电子设备的本地存储器加载所述多个模板的至少一部分。
14.一种生成运动传感器模板的方法,包括 引导实体在第一位置携带运动传感器的同时执行第一类型的运动事件; 接收由所述运动传感器响应于所述运动传感器检测到由执行所述第一类型的运动事件导致的移动而生成的第一运动传感器数据;使用所接收的第一运动传感器数据来创建第一运动传感器模板的模板传感器数据部分;以及 基于所述第一类型的运动事件来创建所述第一运动传感器模板的模板事件数据部分。
15.根据权利要求14所述的方法,还包括基于所述第一位置创建所述第一运动传感器模板的模板位置数据部分。
16.根据权利要求14所述的方法,还包括 引导所述实体在第二位置携带所述运动传感器的同时重新执行所述第一类型的运动事件; 接收由所述运动传感器响应于所述运动传感器检测到由重新执行所述第一类型的运动事件导致的移动而生成的第二运动传感器数据; 使用所接收的第二运动传感器数据来创建第二运动传感器模板的模板传感器数据部分;以及 创建与所述第一运动传感器模板的模板事件数据部分相同的所述第二运动传感器模板的模板事件数据部分。
17.根据权利要求16所述的方法,还包括基于所述第二位置创建所述第二运动传感器模板的模板位置数据部分。
18.根据权利要求16所述的方法,其中 所述实体是人类用户; 所述第一类型的运动事件是行走、跑步、摇晃和倾斜之一; 所述第一位置是以下位置中的任一个在用户的手中、在用户的口袋中、在用户的腕上、在用户的腰带上、在用户的脚上、在用户的胳膊上、在用户的腿上、在用户的胸口上、在用户的头上、在用户的背包中、以及绕用户的脖子;并且 所述第二位置是以下位置中除第一位置外的任一个在用户的手中、在用户的口袋中、在用户的腕上、在用户的腰带上、在用户的脚上、在用户的胳膊上、在用户的腿上、在用户的胸口上、在用户的头上、在用户的背包中、以及绕用户的脖子。
19.一种电子设备,包括 运动传感器;以及 处理器,被配置为接收由所述运动传感器生成的运动传感器数据;访问多个模板,每个模板包括模板传感器数据和模板事件数据;基于所接收的运动传感器数据与所述多个模板中的特定模板的模板传感器数据之间的相似度,辨别所述特定模板;以及基于所述特定模板的模板事件数据,控制所述电子设备的功能。
20.一种用于控制电子设备的计算机可读介质,包括记录在其上的计算机可读代码,所述计算机可读代码用于 接收由所述电子设备的运动传感器生成的运动传感器数据; 访问多个模板,每个模板包括模板传感器数据和模板事件数据; 基于所接收的运动传感器数据与所述多个模板中的特定模板的模板传感器数据之间的相似度,辨别所述特定模板;以及 基于所述特定模板的模板事件数据,控制所述电子设备的功能。
全文摘要
本发明提供了使用电子设备可访问的数据模板来处理运动传感器数据的系统和方法。每个数据模板可以包括模板传感器数据和模板事件数据。电子设备可以将一个或多个模板的模板传感器数据与由运动传感器生成的运动传感器数据进行比较。可以基于运动传感器数据和特定模板的模板传感器数据之间的相似度来辨别该特定模板。所辨别出的特定模板的模板事件数据可以被用于控制电子设备的功能。运动传感器数据和/或模板传感器数据可以与用户步行事件相关联,并且所辨别出的特定模板的模板事件数据然后可用于记录步行事件的发生以跟踪用户的锻炼历史。
文档编号G06K9/00GK102713792SQ201080046131
公开日2012年10月3日 申请日期2010年7月16日 优先权日2009年9月2日
发明者A·穆西格纳特 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1