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

手机多模态位置感测

文献发布时间:2023-06-19 10:46:31


手机多模态位置感测

相关申请案交叉申请

本申请要求于2018年9月13日提交美国专利局、申请号为62/730,733、发明名称为“手机多模态位置感测”的美国临时专利申请的优先权,其全部内容通过引用并入本文。

技术领域

本公开大体上涉及一种电子设备,并且在特定实施例中涉及一种用于电子设备中位置感测的系统和方法。

背景技术

现代电子设备通常包括位置服务应用程序,以允许网站和应用程序使用来自Wi-Fi、蜂窝、蓝牙和全球定位系统(Global Positioning system,GPS)网络的信息来确定主机设备的大致位置。如果启用位置服务,还可以记录重要或频繁访问的位置以及相关的时间戳。作为示例,主机设备可以记录用户的每日通勤流量,以提供基于位置的建议、为用户启用基于行为的功能,或者聚合用户数据。主机设备可以显示警报,以基于所记录的历史数据在早晨通勤之前通知用户异常的交通活动。在另一示例中,用户可以使用网站或第二设备使用所记录的位置历史记录信息确定电子设备的最后位置。

通常,现有的方法无法为基于位置的感测提供连续、准确和资源高效的解决方案。在一些解决方案中,用户位置历史记录的片段被上载到基于云的服务以进行处理和/或存储,这给用户带来了额外的安全问题和隐私问题。在本地处理和网络使用方面,需要提供一种用于采集电子设备中基于位置的数据的高效的解决方案。

发明内容

技术优势通常通过本公开的实施例来实现,这些实施例描述了电子设备中的位置感测。

根据一个实施例,提供了一种用于位置感测的设备。所述设备包括一个或多个嵌入式传感器,用于检测用户活动的变化。所述设备还包括非瞬时性存储器和一个或多个处理器,所述非瞬时性存储器包括指令,所述一个或多个处理器与所述非瞬时性存储器和所述一个或多个嵌入式传感器通信。所述一个或多个处理器执行所述指令以:使用第三方应用程序或服务所请求的位置信息被动地采集所述设备的位置坐标;响应于所述用户活动的所述变化,接收信号,所述信号包括定位请求意图;确定从接收到上个定位请求到接收到所述信号之间的时间段超过了时间阈值,并基于此,请求所述设备的位置坐标。在一个示例中,所述一个或多个处理器执行所述指令以:响应于所述设备的蜂窝标识(cellularidentification,Cell-ID)的变化,接收第二信号,所述第二信号包括定位请求意图;确定从上个定位请求到与接收到所述第二信号对应的时间所经过的时间超过所述时间阈值,并基于此,请求所述设备的第二位置坐标。可选地,在这种示例中,或者在其它示例中,所述一个或多个处理器为应用程序处理器。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器中的一个为低功耗微控制器。可选地,在上述任一示例中,或者在其它示例中,所述设备还包括全球定位卫星(global positioning satellite,GPS)模块,用于采集所述设备的位置坐标。可选地,在上述任一示例中,或者在其它示例中,所述设备包括网络位置提供方(network location provider,NLP)模块,用于采集所述设备的位置坐标。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令以:选择用于采集所述设备的所述位置坐标的源;并根据所述请求采集所述设备的所述位置坐标。可选地,在上述任一示例中,或者在其它示例中,所述源为GPS模块和所述NLP模块中的至少一个或其组合。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个嵌入式传感器选自加速度计、陀螺仪、磁传感器、调制解调器、接近传感器及其组合。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个嵌入式传感器包括加速度计、陀螺仪、磁传感器、调制解调器或接近传感器中的至少一种或其组合。可选地,在上述任一示例中,或者在其它示例中,所述设备还包括第一微控制器,所述第一微控制器与所述一个或多个处理器、所述非瞬时性存储器和所述一个或多个嵌入式传感器通信。可选地,在上述任一示例中,或者在其它示例中,接收信号包括:所述第一微控制器确定所述设备行进的总距离超过总行进距离阈值,并基于此,向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收信号包括:所述第一微控制器确定从所述上个定位请求所经过的时间超过第二时间阈值,并基于此,向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以确定所述设备在用户停留区域中,并基于此,设置所述时间阈值。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以确定所述设备在用户停留区域中,并基于此,设置所述距离阈值。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以确定所述设备不位于用户停留区域中,并基于此,设置所述时间阈值。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以确定所述设备不位于用户停留区域中,并基于此,设置所述距离阈值。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以确定所述用户活动的所述变化对应于所述设备的静止移动类型、慢速移动类型或快速移动类型中的一种,并基于此,设置所述时间阈值。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以确定所述用户活动的所述变化对应于所述设备的静止移动类型、慢速移动类型或快速移动类型中的一种,并基于此,设置所述距离阈值。可选地,在上述任一示例中,或者在其它示例中,所述设备还包括第二微控制器,所述第二微控制器与所述一个或多个处理器和所述非瞬时性存储器通信。所述第二微控制器用于向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收所述第二信号包括:所述第二微控制器确定所述设备位于用户停留区域中;所述第二微控制器确定所述Cell-ID的所述变化;所述第二微控制器确定所述用户活动自最后一次Cell-ID变化以来的变化为慢移动类型或快速移动类型;向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收所述第二信号包括:所述第二微控制器确定所述设备不位于用户停留区域中;所述第二微控制器确定所述Cell-ID的所述变化;所述第二微控制器确定所述用户活动自最后一次Cell-ID变化以来的变化为静止移动类型或慢速移动类型;向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收所述第二信号包括:所述第二微控制器确定自最后一次Cell-ID变化以来所经过的时间超过第三时间阈值;所述第二微控制器确定所述设备位于用户停留区域中;所述第二微控制器确定所述用户活动自最后一次Cell-ID变化以来的变化为慢速移动类型或快速移动类型;向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收所述第二信号包括:所述第二微控制器确定自最后一次Cell-ID变化以来所经过的时间超过第三时间阈值;所述第二微控制器确定所述设备不位于用户停留区域中;向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以接收时间线服务信号,所述时间线服务信号指示所述设备正在进入用户停留区域。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以向所述第一微控制器发送指示,所述指示包括所述行进距离阈值、所述第二时间阈值以及所述设备正在进入用户停留区域。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以接收时间线服务信号,所述时间线服务信号指示所述设备正在离开用户停留区域。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以向所述第一微控制器发送指示,所述指示包括所述行进距离阈值、所述第二时间阈值以及所述设备正在离开用户停留区域。可选地,在上述任一示例中,或者在其它示例中,请求所述设备的位置坐标包括:确定所述设备连接到有源网络位置提供方;确定所述网络位置提供方提供的所述位置坐标的准确度超过准确度阈值;通过所述网络位置提供方采集所述设备的所述位置坐标。可选地,在上述任一示例中,或者在其它示例中,请求所述设备的位置坐标包括:确定所述设备连接到有源网络位置提供方;确定所述网络位置提供方提供的所述位置坐标的准确度小于准确度阈值;使用全球定位卫星信号采集所述设备的所述位置坐标。可选地,在上述任一示例中,或者在其它示例中,请求所述设备的位置坐标包括:确定所述设备未连接到有源网络位置提供方;使用全球定位卫星信号采集所述设备的所述位置坐标。可选地,在上述任一示例中,或者在其它示例中,请求所述设备的位置坐标还包括记录与所述采集所述设备的所述位置坐标对应的时间戳。

根据另一个实施例,提供了一种用于设备中位置感测服务的计算机实现的方法。所述计算机实现的方法包括:使用第三方应用程序或服务所请求的位置信息,通过一个或多个处理器被动地采集所述设备的位置坐标;响应于用户活动的变化,通过所述一个或多个处理器接收信号,所述信号包括定位请求意图;通过所述一个或多个处理器确定从接收到上个定位请求到接收到所述信号之间的时间段超过了时间阈值,并基于此,请求所述设备的位置坐标。在一个示例中,所述计算机实现的方法还包括:响应于所述设备的蜂窝标识(cellular identification,Cell-ID)的变化,通过所述一个或多个处理器接收第二信号,所述第二信号包括定位请求意图;通过所述一个或多个处理器确定从上个定位请求到与接收到所述第二信号对应的时间所经过的时间超过所述时间阈值,并基于此,请求所述设备的第二位置坐标。可选地,在这种示例中,或者在其它示例中,所述一个或多个处理器中的一个为应用程序处理器。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器中的一个为低功耗微控制器。可选地,在上述任一示例中,或者在其它示例中,所述设备包括全球定位卫星(global positioning satellite,GPS)模块,用于采集所述设备的位置坐标。可选地,在上述任一示例中,或者在其它示例中,所述设备包括网络位置提供方(network location provider,NLP)模块,用于采集所述设备的位置坐标。可选地,在上述任一示例中,或者在其它示例中,所述设备包括一个或多个嵌入式传感器,用于检测所述用户活动的变化。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器选择用于采集所述设备的所述位置坐标的源;根据所述请求,通过所述一个或多个处理器采集所述设备的所述位置坐标。可选地,在上述任一示例中,或者在其它示例中,所述源为所述GPS模块或所述NLP模块。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个嵌入式传感器选自加速度计、陀螺仪、磁传感器、调制解调器、接近传感器及其组合。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个嵌入式传感器包括加速度计、陀螺仪、磁传感器、调制解调器或接近传感器中的至少一种或其组合。可选地,在上述任一示例中,或者在其它示例中,所述设备包括第一微控制器,所述第一微控制器与所述一个或多个处理器、所述非瞬时性存储器和所述一个或多个嵌入式传感器通信。可选地,在上述任一示例中,或者在其它示例中,接收信号包括:所述第一微控制器确定所述设备行进的总距离超过总行进距离阈值,并基于此,向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收所述信号包括:所述第一微控制器确定从所述上个定位请求所经过的时间超过第二时间阈值,并基于此,向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器确定所述设备在用户停留区域中,并基于此,设置所述时间阈值。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器确定所述设备在用户停留区域中,并基于此,设置所述行进距离阈值。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器确定所述设备不位于用户停留区域中,并基于此,设置所述时间阈值。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器确定所述设备不位于用户停留区域中,并基于此,设置所述距离阈值。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器确定所述用户活动的所述变化对应于所述设备的静止移动类型、慢速移动类型或快速移动类型中的一种,并基于此,设置所述时间阈值。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器确定所述用户活动的所述变化对应于所述设备的静止移动类型、慢速移动类型或快速移动类型中的一种,并基于此,设置所述距离阈值。可选地,在上述任一示例中,或者在其它示例中,所述设备包括第二微控制器,所述第二微控制器与所述一个或多个处理器和非瞬时性存储器通信。可选地,在上述任一示例中,或者在其它示例中,接收所述第二信号包括:所述第二微控制器确定所述设备位于用户停留区域中;所述第二微控制器确定所述Cell-ID的所述变化;所述第二微控制器确定所述用户活动自最后一次Cell-ID变化以来的变化为慢移动类型或快速移动类型;向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收所述第二信号包括:所述第二微控制器确定所述设备不位于用户停留区域中;所述第二微控制器确定所述Cell-ID的所述变化;所述第二微控制器确定所述用户活动自最后一次Cell-ID变化以来的变化为静止移动类型或慢速移动类型;向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收所述第二信号包括:所述第二微控制器确定自最后一次Cell-ID变化以来所经过的时间超过第三时间阈值;所述第二微控制器确定所述设备位于用户停留区域中;所述第二微控制器确定所述用户活动自最后一次Cell-ID变化以来的变化为慢速移动类型或快速移动类型;向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,接收所述第二信号包括:所述第二微控制器确定自最后一次Cell-ID变化以来所经过的时间超过第三时间阈值;所述第二微控制器确定所述设备不位于用户停留区域中;向所述一个或多个处理器发送所述定位请求意图。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括通过所述一个或多个处理器接收时间线服务信号,所述时间线服务信号指示所述设备正在进入用户停留区域。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器向所述第一微控制器发送指示,所述指示包括所述行进距离阈值、所述第二时间阈值以及所述设备正在进入用户停留区域。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括通过所述一个或多个处理器接收时间线服务信号,所述时间线服务信号指示所述设备正在离开用户停留区域。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器向所述第一微控制器发送指示,所述指示包括所述行进距离阈值、所述第二时间阈值以及所述设备正在离开用户停留区域。可选地,在上述任一示例中,或者在其它示例中,请求所述设备的位置坐标包括:确定所述设备连接到有源网络位置提供方;确定所述网络位置提供方提供的所述位置坐标的准确度超过准确度阈值;通过所述网络位置提供方采集所述设备的所述位置坐标。可选地,在上述任一示例中,或者在其它示例中,请求所述设备的位置坐标包括:确定所述设备连接到有源网络位置提供方;确定所述网络位置提供方提供的所述位置坐标的准确度小于准确度阈值;使用全球定位卫星信号采集所述设备的所述位置坐标。可选地,在上述任一示例中,或者在其它示例中,请求所述设备的位置坐标包括:确定所述设备未连接到有源网络位置提供方;使用全球定位卫星信号采集所述设备的所述位置坐标。可选地,在上述任一示例中,或者在其它示例中,请求所述设备的位置坐标还包括记录与所述采集所述设备的所述位置坐标对应的时间戳。

根据又一实施例,提供了一种用于位置感测的设备。所述设备包括:一个或多个嵌入式传感器,所述一个或多个嵌入式传感器用于检测用户活动的变化;非瞬时性存储器,所述非瞬时性存储器包括指令;一个或多个处理器,所述一个或多个处理器与所述非瞬时性存储器和所述一个或多个嵌入式传感器通信。所述一个或多个处理器执行所述指令以:采集所述设备的当前位置坐标;计算从所述当前位置坐标到与用户停留区域对应的中心点的距离;计算从采集到所述当前位置坐标到与上次位置采集对应的时间所经过的时间;根据所述距离或所述经过的时间确定用户停留区域状态。在一个示例中,所述设备还包括全球定位卫星(global positioning satellite,GPS)模块,用于采集所述设备的所述当前位置坐标。可选地,在这种示例中,或者在其它示例中,所述设备还包括网络位置提供方(network location provider,NLP)模块,用于采集所述设备的所述当前位置坐标。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个嵌入式传感器选自加速度计、陀螺仪、磁传感器、调制解调器、接近传感器及其组合。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个嵌入式传感器包括加速度计、陀螺仪、磁传感器、调制解调器或接近传感器中的至少一种或其组合。可选地,在上述任一示例中,或者在其它示例中,计算从所述当前位置坐标到与所述设备的所述用户停留区域对应的所述中心点的距离包括:确定所述当前位置坐标的纬度坐标位于+60度至-60度纬度之间;计算所述当前位置坐标与所述用户停留区域对应的所述中心点之间的纬度差和经度差;根据所述纬度差和所述经度差计算所述距离。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令以:将Wi-Fi连接与用户停留区域相关联;检测所述设备的停留区域状态的变化;使用与所述设备的所述停留区域状态的所述变化相关联的时间戳更新所述用户停留区域状态。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令以:确定所述设备的活动的变化;使用与所述设备的所述活动的所述变化相关联的时间戳更新所述用户停留区域状态。可选地,在上述任一示例中,或者在其它示例中,根据所述距离确定所述用户停留区域状态包括确定所述距离超过距离阈值,并基于此,以信号的方式通知所述设备不再在所述用户停留区域中。可选地,在上述任一示例中,或者在其它示例中,根据所述经过的时间确定所述用户停留区域状态包括确定所述经过的时间超过时间间隔阈值,并基于此,更新与所述用户停留区域对应的所述中心点。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个处理器执行所述指令,以计算与用户停留区域对应的中心点,计算所述中心点包括:根据相应的采集源将与所述用户停留区域相关联的集群点组织成多个集;计算所述多个集中的每个集的中心点;设置每个中心点的权重因子;根据所述每个中心点的权重因子和所计算的每个集的中心点计算所述中心点。

根据另一个实施例,提供了一种用于设备中时间线服务的计算机实现的方法。所述计算机实现的方法包括:通过一个或多个处理器采集当前位置坐标;通过所述一个或多个处理器计算从所述当前位置坐标到与用户停留区域对应的中心点的距离;通过所述一个或多个处理器计算从采集到所述当前位置坐标到与上次位置采集对应的时间所经过的时间;通过所述一个或多个处理器根据所述距离或所述经过的时间确定用户停留区域状态。在一个示例中,所述设备包括全球定位卫星(global positioning satellite,GPS)模块,用于采集所述设备的所述当前位置坐标。可选地,在这种示例中,或者在其它示例中,所述设备包括网络位置提供方(network location provider,NLP)模块,用于采集所述设备的所述当前位置坐标。可选地,在上述任一示例中,或者在其它示例中,所述设备包括一个或多个嵌入式传感器,用于检测用户活动的变化。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个嵌入式传感器选自加速度计、陀螺仪、磁传感器、调制解调器、接近传感器及其组合。可选地,在上述任一示例中,或者在其它示例中,所述一个或多个嵌入式传感器包括加速度计、陀螺仪、磁传感器、调制解调器或接近传感器中的至少一种或其组合。可选地,在上述任一示例中,或者在其它示例中,计算从所述当前位置坐标到与所述设备的所述用户停留区域对应的所述中心点的距离包括:确定所述当前位置坐标的纬度坐标位于+60度至-60度纬度之间;计算所述当前位置坐标与所述用户停留区域对应的所述中心点之间的纬度差和经度差;根据所述纬度差和所述经度差计算所述距离。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器将Wi-Fi连接与用户停留区域相关联;通过所述一个或多个处理器检测所述设备的用户停留区域状态的变化;通过所述一个或多个处理器使用与所述设备的所述停留区域状态的所述变化相关联的时间戳更新所述用户停留区域状态。可选地,在上述任一示例中,或者在其它示例中,所述计算机实现的方法还包括:通过所述一个或多个处理器确定所述设备的活动的变化;通过所述一个或多个处理器使用与所述设备的所述活动的所述变化相关联的时间戳更新所述用户停留区域状态。可选地,在上述任一示例中,或者在其它示例中,根据所述距离确定所述用户停留区域状态包括确定所述距离超过距离阈值,并基于此,以信号的方式通知所述设备不再在所述用户停留区域中。可选地,在上述任一示例中,或者在其它示例中,根据所述经过的时间确定所述用户停留区域状态包括确定所述经过的时间超过时间间隔阈值,并基于此,更新与所述用户停留区域对应的所述中心点。可选地,在上述任一示例中,或者在其它示例中,计算所述中心点包括:通过所述一个或多个处理器根据相应的采集源将与所述用户停留区域相关联的集群点组织成多个集;通过所述一个或多个处理器计算所述多个集中的每个集的中心点;通过所述一个或多个处理器设置每个中心点的权重因子;通过所述一个或多个处理器根据所述每个中心点的权重因子和所计算的每个集的中心点计算所述中心点。

附图说明

为了更完整地理解本公开及其优点,现在参考下面结合附图进行的描述。

图1为无线通信网络和GPS通信网络的图。

图2为用于执行自适应位置服务采样的处理系统的图。

图3为用于基于用户移动发送用于采集位置信息的意图的方法的流程图。

图4为用于基于用户移动发送用于采集位置信息的意图的另一方法的流程图。

图5为用于基于cell-ID变化发送用于采集位置信息的意图的方法的流程图。

图6为用于确定位置坐标请求的方法的流程图。

图7为用于采集位置坐标的方法的流程图。

图8为用于基于多模态感测检测用户停留区域信息的方法的流程图。

图9为用于使用GPS信号或网络位置提供方信号检测用户停留区域状态的方法的流程图。

图10为用于示出用于计算两点之间的距离的方法的图。

图11为用于确定数据点集群内的中心点位置的方法的流程图。

图12为用于确定优化的用户停留区域距离阈值和用户停留区域时间间隔阈值的方法的流程图。

图13为用于优化用户活动数据以降低噪声的方法的流程图。

图14为用于使用活动识别数据细化用户时间线的方法的流程图。

图15A至图15D为用于示出使用活动识别数据对用户停留区域时间线的细化的示例实施例。

图16为用于基于Wi-Fi连接活动确定用户停留区域离开时间和/或到达时间的变化的方法的流程图。

图17为处理系统的图。

图18为收发器的图。

具体实施方式

本公开提供了许多适用的发明概念,这些发明概念可以体现在多种特定上下文中。特定实施例仅说明特定配置,并不限制所要求保护的实施例的范围。除非另有说明,否则可以组合不同实施例的特征,以形成其它实施例。关于实施例中的一个所描述的变化或修改也可以适用于其它实施例。进一步,应理解的是,在不脱离由所附权利要求书界定的本公开的精神和范围的情况下,可以对本文做出各种改变、替代和更改。虽然本发明各方面主要在移动设备的上下文中进行描述,但是还应理解的是,这些发明方面也可以适用于可受益于位置感知应用程序的其它设备,例如智能汽车、平板设备或智能手表。

在主机设备中,位置感测服务可以用于采集用户位置信息。通常,主机设备中频繁的位置查询会消耗宝贵的资源,并增加网络使用。相反,不频繁的位置查询降低了相关服务的数据可用性。这些相关服务或应用程序使用所采集到的数据,通过分析兴趣点、爱好、习惯、通勤模式等来分析用户行为,并为购物、就餐、旅游等提供建议。

本公开的实施例在位置感测服务中提供低功耗和端侧(即,本地)解决方案,用于在主机设备上处理位置数据,该解决方案还保护了用户隐私。在一个实施例中,主机设备利用嵌入式传感器提供的活动识别数据来检测停留间隔和与用户停留区域的变化对应的时间戳。在这些和其它实施例中,有利地,主机设备能够使用从嵌入式传感器接收的数据来检测用户停留区域。

本公开的各方面提供了用于位置感测服务的方法,位置感测服务用于确定响应于用户停留区域的变化而采集主机设备的位置的高效的方法。特别地,本公开的各方面提供了采集位置数据的技术,该技术使用时间线服务结合从网络位置提供方(networklocation provider,NLP)、全球定位卫星(global positioning satellite,GPS)、嵌入式传感器接收的数据,以及根据第三方应用程序或服务提出的请求被动地采集的信息。在一个实施例中,提出了基于主机设备的移动模式的自适应位置采集方法,用于通过检测用户活动的变化来控制位置采集服务的采样间隔,并发送用户位置采集意图。在另一个实施例中,提供了基于蜂窝标识(cellular identification,Cell-ID)变化的启发式算法,以发送用户位置的变化,并发送用户位置采集意图。本文描述的流程,在使用低功耗处理器、嵌入式传感器以及Cell-ID的变化主动监控用户位置变化的同时,减少了位置数据请求的数量。如果从上个定位请求经过了足够的时间,则主机设备中的微控制器向应用程序处理器发送请求以采集位置信息。在一个实施例中,应用程序处理器响应第三方应用程序或服务提出的请求被动地和连续地采集位置信息,从而减少重复数据采集。在一个实施例中,应用程序处理器选择性地决定使用哪个源来采集主机设备的位置,从而最小化网络使用并确保基于位置的准确度。

根据本公开的各种实施例,提供了用于在位置感测服务中实现的时间线服务的方法,用于检测用户停留区域的变化。特别地,本公开的各方面提供了通过利用来自一个或多个传感器、网络位置提供方和全球定位卫星(global positioning satellite,GPS)服务的信息来提高检测用户停留区域变化的准确度和效率的技术。从传感器、GPS服务、Wi-Fi服务和网络位置提供方服务获取的信息融合为检测用户停留区域的变化提供了准确、高效和持续的资源。有利地,本公开的某些实施例可以从数据集中去除噪声,并提供改进方法,用于测量集群点中的中心点、测量两个点之间的距离、测量用户停留区域的范围以及组合来自不同的源的数据。在一些实施例中,历史停留区域信息用于改进到达和/或离开用户停留区域的预测和检测。在其它实施例中,Wi-Fi状态的变化可以用于提高与用户停留区域对应的主机设备的到达时间或离开时间。下文将更详细地论述这些和其它细节。

图1为用于传递数据和用于接收全球定位卫星(global positioning satellite,GPS)信号的网络100的图。网络100包括具有覆盖区域101的基站110、多个UE 120和回传网络130。如图所示,基站110与UE 120建立上行(短划线)和/或下行(点虚线)连接,这些连接用于将数据从UE 120传送到基站110,反之亦然。通过上行/下行连接传送的数据可以包括UE120之间传送的数据,以及通过回传网络130传送到/来自远端(图中未示出)的数据。如本文所使用的,术语“基站”是指用于向网络提供无线接入的任何网络侧设备,例如增强型基站(eNodeB或eNB)、gNB、发射/接收点(transmit/receive point,TRP)、宏小区、毫微微小区、Wi-Fi接入点(Access Point,AP)和其它无线启用的设备。基站可以根据一个或多个无线通信协议提供无线接入,例如,第五代新无线(5th generation new radio,5G NR)、LTE、高级LTE(LTE advanced,LTE-A)、高速消息接入(High Speed Message Access,HSPA)、Wi-Fi 802.11a/b/g/n/ac等。如本文所使用的,术语“UE”是指用于通过与基站建立无线连接而接入网络的任何用户侧设备,例如移动设备、移动站(mobile station,STA)、车辆和其它无线启用的设备。在一些实施例中,网络100可以包括各种其它无线设备,例如中继器、低功率节点等。虽然可以理解,通信系统可以采用能够与多个UE通信的多个接入节点,但为了简单起见,仅示出了一个基站110和两个UE 120。网络100包括与UE 120通信的GPS 140。GPS 140可以根据UE 120全球定位坐标向相应的UE 120发送GPS坐标。

图2示出了用于执行如本文所描述的自适应位置服务采样方法的处理系统150的框图,该处理系统150可以安装在主机设备中。如图所示,处理系统150可以包括各种互连模块,这些模块被归类为在应用程序处理器(application processor,AP)层151内或在SensorHub层153内。AP层151可以在主机设备的应用程序处理器内实现,并可以包括AP位置控制器模块152、网络位置提供方(network location provider,NLP)模块156和全球定位卫星(global positioning satellite,GPS)模块158。AP层151的AP位置控制器模块152可以连接到SensorHub层153的SensorHub位置控制器模块160。SensorHub层153可以在主机设备的低功耗处理器内实现并且可以包括SensorHub位置控制器模块160、Cell-Id(Cell-Id,CID)控制器模块162、Cell-Id(Cell-Id,CID)模块164、活动识别(activity recognition,AR)控制器模块166和活动识别(activity recognition,AR)模块168。特定处理系统可以利用所有示出的部件或仅该部件的子集,并且设备之间的集成程度可能不同。

在一个实施例中,SensorHub位置控制器模块160可以以信号的方式向AP位置控制器模块152发送主动采集基于位置的信息的意图。AP位置控制器模块152响应于接收到主动采集基于位置的信息的意图,可以确定是否主动采集位置信息。在一些实施例中,从上次采集经过的时间可以被确定为小于最小时间阈值,并且AP位置控制器模块152可以确定经过的时间不够,因此不采集下一个位置信息。在一些实施例中,AP位置控制器模块152可以确定第三方应用程序或服务最近可能已经采集了基于位置的信息。有利地,自适应位置服务可以受益于第三方应用程序或服务提出的定位请求,以同时被动地采集该信息,从而减少主机设备内的重复活动。这允许电子设备减少AP位置控制器152提出的活动请求,从而减少网络使用和处理功耗。在这些实施例中,AP位置控制器152可以用于被动侦听定位请求。

AP位置控制器模块152可以用于根据各种标准选择性地选择采集模块(即,NLP模块156或GPS模块158)。这种选择可以符合满足最小定位准确度阈值、减少网络使用或提高处理效率等。作为示例,AP位置控制器模块152可以确定从NLP模块156接收的信号可以是基于弱信号位置的信息,该信息不满足准确度或可靠性阈值。因此,AP位置控制器模块152可以选择GPS模块158作为采集模块。在另一示例中,AP位置控制器模块152可以确定NLP模块156提供的基于位置的信息满足准确度阈值,并且由于NLP模块156需要的资源/功率比GPS模块158少,所以AP位置控制器模块152可以选择NLP模块156作为采集模块。在一些实施例中,GPS模块158和/或NLP模块156可以连接到SensorHUB位置控制器模块160。在这样的实施例中,SensorHub位置控制器160可以确定采集模块。

SensorHub位置控制器模块160可以在主机设备的微控制器单元(microcontroller unit,MCU)中实现,并可以用于作出最终决定以唤醒AP层151并主动请求AP位置控制器模块152的位置点。SensorHub位置控制器模块160可以在从ARController模块166和CellIDController模块162中的一个或两个接收到指示后,向AP位置控制器模块152发送主动收集基于位置的信息的意图。响应于主机设备的用户对活动的识别,ARController模块166可以接收来自AR模块168的信号,该信号指示用户位置的变化。AR控制器模块166可以用于基于用户移动的模式变化来确定向SensorHub位置控制器模块160发送定位请求意图的适当时刻。

AR模块168中的传感器的非限制性列表中有加速度计、陀螺仪、磁传感器、调制解调器和接近传感器。这些传感器具有低功耗和近乎连续活动的优点。SensorHub位置控制器模块160可以接收来自CellIDController模块162的信号,该信号指示主机设备的蜂窝标识(Cell-ID)164的变化。响应于Cell-ID 164的变化,CellIDController模块162可以用于基于用户Cell-ID的模式变化确定向SensorHub位置控制器模块160发送定位请求意图的适当时刻。

图3为用于基于用户移动向SensorHub位置控制器模块160发送采集位置信息的意图的方法200的流程图,这可以由主机设备中的ARController模块166执行。在步骤202中,首次操作时初始化基于时间的参数和基于位置的参数。作为示例,在步骤202中,将主机设备所行进的总距离初始化为零并记录当前时间戳。此外,将最小距离阈值(Min_Distance)和最小时间间隔(Min_Interval)中的每一个预设为设定值,例如从主机设备的非瞬时性存储器中检索到的值。在非限制性示例中,最小距离阈值可以是两百(200)米,最小时间间隔可以是五(5)分钟。

在步骤204中,ARController模块166开始连续地每隔M分钟检测一次用户移动,其中,非限制性示例中的M可以为一(1)分钟。在步骤206中,以M为时间间隔,确定自初始化步骤202或自总行进距离的重置以来,用户行进的总距离。作为示例,如果M为一(1)分钟;时间间隔为一(1)分钟,则将用户的移动转换为距离变量。在两(2)分钟的周期之后,将前一分钟的总行进距离与第一分钟的总行进距离相加,以计算出两(2)分钟后的用户行进距离。重复该过程,直到触发距离初始化的触发器。

在一些实施例中,嵌入式传感器和一个或多个处理器可以用于确定用户活动类型,作为计算总用户行进距离的基础。借助于低功耗处理器(例如微控制器),传感器(例如加速度计或陀螺仪)可以随时对用户移动进行检测、区分和分类。大多数现代电子设备中的活动识别引擎可以用于以相当高的准确度对来自这些传感器的用户活动信息进行预测和分类。在一个示例中,可以基于速度,将用户活动归类为静止移动模式、慢速移动模式或快速移动模式。静态或静止是指用户不移动的状态。慢速是指用户以较慢的速度移动的状态,例如步行或快走。快是指用户以较快速度移动的状态,例如跑步,骑自行车,或乘车、飞机或火车旅行。

嵌入式传感器处于连续开启状态,并可以成为连续活动监测、计算行进距离和/或检测用户位置变化的宝贵资源。在一些实施例中,用户停留区域状态也可以用作计算总用户行进距离的基础。可以使用时间线服务等来确定用户停留区域状态。例如,时间线服务和活动识别传感器可以用作用户位置变化的指示,无论这是离开用户停留区域还是到达用户停留区域。此外,用户活动或用户活动的变化可以很好地指示用户停留区域变化。例如,用户可能在办公室位置保持相当安静,活动最少,而在健身房的用户可能具有高得多的活动率。在用户的活动在历史上与用户停留区域相关的情况下,主机设备可以确定用户停留区域的变化。

可以将用户停留的时间大于最小时间阈值且未离开的地理区域或位置点集群归类为用户停留区域。用户停留区域还可以具有范围特征,其中,位置点集群中的每个位置点位于根据彼此指定的范围内。在一些实施例中,用户停留区域可以位于距离位置点集群的中心位置点的距离阈值内。需要说明的是,用户停留区域不限于用户之前识别的区域或用户之前访问的区域。

有利地,本公开的实施例可以确定用户的状态,并根据所识别的移动类别做出请求基于位置的服务信息的决策。例如,通过使用电子设备行进速度可以近似确定行进距离。可以使用电子设备中的一个或多个低功耗传感器(例如加速度计、磁罗盘等)来近似行进速度。时间线服务可以用于确定用户是否在用户停留区域中,以及用于确定用户位于用户停留区域中的时长。如果时间线服务没有足够的历史位置点来确定用户当前是否在用户停留区域中,则时间线服务默认可以假定用户不在用户停留区域中-这是时间线服务的典型初始状态。在上个位置信息可用的情况下,时间线服务可以使用上个位置点来确定用户是否在用户停留区域中。

在一些实施例中,如果时间线服务确定用户不在用户停留区域中,则将以M为时间间隔的被归类为慢速的用户行进的总距离用作用户行进的总距离。否则,用户在任何活动类别中行进的距离可以用作总行进距离。ARController模块166在每个间隔M所行进的距离可以通过时长(M)与用户的速度相乘来计算。将这些值累加,以计算出主机设备在没有重置的情况下在最后M分钟内行进的总距离。

在步骤208中,AR控制器模块166确定在步骤204中采集的用户所行进的总距离是否大于或小于预定最小距离阈值(Min_Distance)。在一些示例中,最小距离阈值可以是两百(200)米,并且在初始化步骤202期间进行选择。在步骤210中,如果确定用户已行进的距离大于最小距离阈值,则ARController模块166可以向SensorHub位置控制器模块160发送定位请求意图。还记录当前时间戳,并重置总行进距离值。该流程返回到步骤204并重复执行。

在步骤212中,在步骤206中计算的用户所行进的总距离小于最小阈值的情况下,ARController模块166确定从上个定位请求所经过的时间是否大于或小于最小时间间隔(Min_Interval)。在一些示例中,最小时间间隔可以是五(5)分钟,并且可以在初始化步骤202期间进行选择。

在确定自基于时间的参数和位置参数的重置以来所经过的时间大于最小时间间隔的情况下,在步骤214中,ARController模块166使用时间线服务来确定用户是否处于用户停留区域。如果ARController模块166确定用户在用户停留区域中,则记录当前时间戳,重置所行进的总距离,并且该流程返回到步骤204,而不向SensorHub位置控制器模块160发送定位请求意图。重复该流程。

在自初始化以来所经过的时间大于最小时间间隔的情况下,在步骤216中,ARController模块166向SensorHub位置控制器模块160发送定位请求意图。还记录当前时间戳,并重置主机设备所行进的总距离。该流程返回到步骤204并重复执行。

图4为用于基于用户移动向SensorHub位置控制器模块160发送采集位置信息的意图的另一方法220的流程图,这可以由主机设备中的ARController模块166执行。如图4所描述的自适应位置服务用于确定用于根据用户停留区域状态和移动类型发送定位请求意图的适当时间间隔。

在步骤222中,开始方法220,并且在首次使用时初始化必需的参数。在步骤224中,ARController模块166确定用户当前是否在用户停留区域中。如果时间线服务没有足够的历史位置点来确定用户当前是否在用户停留区域中,则时间线服务默认假定用户不在用户停留区域中-这是时间线服务的典型初始状态。通常,如果上个位置信息可用,则时间线服务可以使用上个位置点来确定用户是否在用户停留区域中。

在步骤226中,如果确定用户当前不在用户停留区域中,则用户的移动类型用于确定向AP位置控制器模块152提交定位请求意图的时间间隔。在步骤228中,如果确定移动类型为快速移动类型,则不发送定位请求意图。但是,如果确定移动类型为静止或慢速移动类型,则在步骤230中,以确定的时间间隔发送定位请求意图。

在步骤232中,如果确定用户当前在用户停留区域中,则用户的移动类型用于确定向AP位置控制器模块152提交定位请求意图的时间间隔。在步骤234中,如果确定移动类型为快速或慢速移动类型,则以第三确定的时间间隔发送定位请求意图。如果确定移动类型为静止,则在步骤236中,由于用户没有移动,因此不存在用户离开用户停留区域的可能性,因此不发送定位请求意图。

在一些实施例中,距离阈值和时间阈值可以根据用户停留状态不同地设置。作为示例,在用户在用户停留区域中的实施例中,距离阈值可以设置为六十(60)米,时间间隔阈值可以设置为一(1)小时。但是,在用户不在用户停留区域中的实施例中,距离阈值可以设置为三百(300)米,时间间隔阈值可以设置为五(5)分钟。

作为示例,主机设备处于快速模式,并且确定用户当前位于用户停留区域中,基于设备的速度、以例如一(1)分钟的间隔对总行进距离进行采集并聚合,直到达到距离阈值,例如一(1)公里,在此时发送定位请求意图。通过将每个间隔内每种移动类型(例如,跑步、步行等)的速度与以该速度行进的时长相乘的结果进行累加来计算在每个间隔内所行进的总距离。作为示例,如果用户在一(1)分钟内跑了三十(30)秒,步行了三十(30)秒,则总行进距离等于跑步速度乘以30秒加上步行速度乘以30秒。方法200、220提供用于尽快请求位置的策略,因为用户很可能要离开用户停留区域。在另一个示例中,主机设备处于快速模式,并且确定用户当前不位于用户停留区域中。由于用户不在用户停留区域中,因此用户所行进的总距离采用与慢速移动相关的用户活动。以例如一(1)分钟的间隔对设备的速度进行采集并聚合,直到满足距离阈值(例如一(1)km),在此时发送定位请求意图。方法200、220提供用于以比上个示例更短的时间间隔周期性地请求位置的策略。在另一示例中,主机设备处于静止模式并且确定用户当前位于用户停留区域中,方法200、220提供不请求用户位置的策略。在又一示例中,主机设备在静止模式,并且确定用户当前位于用户停留区域之外,方法200、220提供周期性地请求位置信息的策略,例如每隔五(5)分钟。在另一个示例中,主机设备处于慢速模式,根据以慢速模式行进的距离执行定位请求,例如,如果以慢速模式行进的距离超过距离阈值,则可执行定位请求。在一个实施例中,当用户在用户停留区域中且主机设备处于快速模式时,距离阈值可以设置为六十(60)米。在本实施例中,定位请求执行频率增加,直到时间线服务确定主机设备不再在用户停留区域中。在确定主机设备不再在用户停留区域时,可以将距离阈值设置为三百(300)米。

在一个实施例中,办公楼内处于静止状态的用户可以在上午9点开始时间线服务。由于时间线服务缺乏足够的位置信息,无法确定用户是否在用户停留区域中。时间线服务将假设用户不在用户停留区域中,并开始采集每分钟的行进距离,直到累计行进距离大于六十(60)米。但是,由于用户处于静止状态,总行进距离接近于零。时间线服务将尝试在十五(15)分钟内采集至少三(3)个位置点,并根据这三个位置点确定用户是否在用户停留区域中。然后,将该判断发送到自适应位置采集服务。虽然用户保持静止在所确定的用户停留区域,但时间线服务将不会请求任何附加的位置点。但是,响应于用户转变为慢速模式,时间线服务将开始采集用户每分钟所行进的距离,直到用户已经行进了超过六十(60)米的距离,此时时间线服务将向自适应位置采集发送定位请求意图,然后重复执行,直到时间线服务确定用户是否离开用户停留区域。响应于确定用户已离开用户停留区域,时间线服务将该确定发送到自适应位置采集服务。

图5为用于基于cell-ID变化向SensorHub位置控制器模块160发送采集位置信息的意图的方法250的流程图,这可以由主机设备中的CellIDController模块162执行。通常,在具有多个基站的蜂窝网络覆盖区域中行进的设备可以根据该设备与基站的相对位置与一个或多个基站连接和断开。由于每个基站都配备了唯一的Cell-ID,因此在任何给定时刻,设备都连接到唯一的Cell-ID。蜂窝网络也可以由多个小基站服务,也可以由一个大基站服务。在这些实施例中,无论电子设备的移动类型如何,Cell-ID的变化可以为基于位置的感测提供有价值的信息。在步骤252中,开始方法250,并且在首次使用时初始化必需的参数。

在步骤254中,CellIDController模块162侦听Cell-ID的变化。在步骤256中,响应于确定Cell-ID的变化,确定用户停留区域的状态。在步骤258中,响应于确定用户不在用户停留区域中,查询自最后一次Cell-ID变化以来的主要移动。在步骤260中,电子设备根据上次Cell-ID变化确定移动类型。在步骤262中,如果自最后一次Cell-ID变化以来的主要移动是静止的或慢速变化,则由CellIDController模块162生成定位请求意图并将其发送到SensorHub位置控制器模块160。但是,如果自最后一次Cell-ID变化以来的主要移动是快速变化,则在步骤264中,不生成定位请求意图。

在步骤266中,响应于确定用户在用户停留区域中,查询自最后一次Cell-ID变化以来的主要移动,并且在步骤268中,电子设备确定自最后一次Cell-ID变化以来的移动类型。在步骤264中,如果确定自最后一次Cell-ID变化以来未检测到移动,则不生成定位请求意图。或者,在步骤262中,响应于确定自最后一次Cell-ID变化以来的主要移动是缓慢或快速变化,由Cell-ID控制器生成定位请求意图并将其发送到SensorHub位置控制器模块160。

在步骤270中,响应于在分配时间内未接收到Cell-ID变化指示,确定用户停留区域的状态,该分配时间大于时间间隔阈值。在步骤268中,响应于用户在用户停留区域中,确定主机设备的移动类型,并且在步骤264中,如果电子设备自最后一次Cell-ID变化以来没有移动,则不生成定位请求意图。或者,在步骤262中,响应于确定自最后一次Cell-ID变化以来的主要移动是缓慢或快速变化,由CellIDController模块162生成定位请求意图并将其发送给SensorHub位置控制器模块160。在步骤272中,响应于确定用户不在用户停留区域中,无论移动类型如何,由CellIDController模块162生成定位请求意图并将其发送给SensorHub位置控制器模块160。

图6为用于确定是否将定位请求发送到AP位置控制器模块152的方法300的流程图,这可以由主机设备中的SensorHub位置控制器模块160执行。在步骤302中,SensorHub位置控制器模块160从时间线服务应用程序接收消息。该消息可以是进入消息或离开消息。进入消息是响应主机设备进入用户停留区域的消息。离开消息是响应主机设备离开用户停留区域并移动到另一个用户停留区域的消息。如果该消息是进入消息,则主机设备有可能随时离开用户停留区域,或者在用户停留区域停留一段时间。如果该消息是离开消息,则主机设备有可能在到达下一个用户停留区域之前行进很长时间,或者可能随时进入下一个用户停留区域。

在步骤304中,响应于从时间线服务应用程序接收进入消息,SensorHub位置控制器模块160通知ARController模块166和CellIDController模块162主机设备已进入用户停留区域并调整参数Min_Distance和Min_Interval。在非限制性示例中,可以将Min_Distance值设置为六十(60)米,将Min_Interval值设置为一(1)小时。

或者,在步骤304中,响应于从时间线服务应用程序接收到离开消息,SensorHub位置控制器模块160通知ARController模块166和CellIDController模块162主机设备已离开上个用户停留区域并相应地调整参数Min_Distance和Min_Interval。在非限制性示例中,可以将Min_Distance值设置为两百(200)米,将Min_Interval值设置为五(5)分钟。

在步骤306中,响应于SensorHub位置控制器模块160用离开消息或进入消息通知ARController模块166和CellIDController模块162,SensorHub位置控制器模块160可以接收定位请求意图作为回应。如果SensorHub位置控制器模块160接收到定位请求意图,则将自最后一次位置点采集以来所经过的时间与时间阈值(例如,五(5)分钟)进行比较。如果所经过的时间大于时间阈值,则唤醒AP层151,并向AP位置控制器模块152发送定位请求。

图7为用于采集位置信息的方法350的流程图,这可以由主机设备中的AP位置控制器模块152执行。在一些实施例中,AP位置控制器模块152可以负责决定用于采集主机设备的位置信息的源。可以根据低功耗和/或低网络使用来决定对源的选择。在步骤352中,在第三方应用程序或其它服务进行请求时,AP位置控制器模块152被动地采集位置信息。作为示例,安装在主机设备上的地图引导应用程序可以采集位置信息,以向电子设备的用户提供准确的导航引导。在本示例中,位置信息是被动采集的,无需进行主动定位请求。

在步骤354中,AP位置控制器模块152从SensorHub位置控制器模块160接收请求,该SensorHub位置控制器模块160主动请求主机设备的当前位置。在步骤356中,AP位置控制器模块152响应于接收到该消息,开始检查主机设备处的Wi-Fi可用性。在步骤358中,响应于确定Wi-Fi服务的可用性,将用于采集位置信息的源确定为Wi-Fi信号。

在步骤360中,响应于确定电子设备不具有Wi-Fi可用性,确定蜂窝网络的可用性。在步骤362中,响应于确定电子设备具有可用的蜂窝网络连接,测量来自网络连接的位置信息的准确度。在步骤364中,响应于确定从蜂窝网络采集的位置信息准确度满足或超过准确度阈值,例如五百五十(550)米,AP位置控制器模块152使用蜂窝网络连接来采集位置信息。

在步骤368中,响应于在步骤360中确定主机设备不具有蜂窝网络连接可用性或在步骤362中确定从蜂窝网络采集的位置信息准确度不满足准确度阈值,AP位置控制器模块152使用GPS服务来采集位置信息。在AP位置控制器模块152采集位置信息之后,相应的时间戳被传递到SensorHub位置控制器模块160。

图8为用于基于多模态感测检测用户停留区域信息的方法400的流程图,这可以由主机设备中的时间线服务应用程序执行。在步骤402中,时间线服务可以接收与主机设备的Wi-Fi连接状态相关的信息。在一些实施例中,该信息可以是与成功连接Wi-Fi信号对应的时间戳。在一些实施例中,该信息可以是与成功断开Wi-Fi信号对应的时间戳。在图16中进一步论述与Wi-Fi连接状态信息相关的这些和其它实施例。

在步骤404中,时间线服务可以接收与主机设备的用户活动相关的信息。在一些实施例中,在微控制器中实现并与嵌入式传感器连接的活动识别引擎可以检测用户活动的变化。在这些实施例中,信号可以是与用户活动变化对应的时间戳。在一个实施例中,信号可以指示主机设备的用户执行的活动的类型。在另一个实施例中,信号可以指示与活动位置的变化对应的活动类型的变化。图14中进一步论述这些和其它实施例。

在步骤406中,时间线服务可以使用GPS信号或网络位置提供方来接收与用户位置相关的信息。取决于信号的可靠性,从GPS信号或网络位置提供方接收的数据可能具有不同的准确度。在一些实施例中,两个信号都用作时间线服务的输入,而在一些实施例中,这些信号中的一个用作时间线服务的输入。在步骤408中,基于距离和时间信息对从GPS信号和网络位置提供方信号中的一个或两个接收到的数据执行实时用户停留区域集群分析。图9中进一步论述这些和其它实施例。

在步骤410中,时间线服务聚合通过步骤402、404和406中的一个或多个接收的数据,从而提供在步骤410中用于确定主机设备的用户停留区域相关信息的多模态数据集。在一些实施例中,时间线服务使用融合算法自适应地确定用户停留区域信息,例如,位于用户停留区域中的区域范围和/或时长。在一些实施例中,使用平滑算法来去除所接收到的信号中的噪声。图13中进一步论述这些和其它实施例。

图9为用于使用GPS信号或网络位置提供方信号信息检测用户停留区域状态的方法450的流程图,这可以由主机设备的处理器中的时间线服务应用程序执行。如图所示,时间线服务根据当前位置点和现有用户停留区域状态确定主机设备的当前用户停留区域状态。在步骤452中,使用GPS模块158或网络位置提供方模块156等确定主机设备的当前位置坐标。采集源的选择可以是为了最小化主机设备对网络的使用,最小化处理要求,或者满足最小定位准确度阈值。当前位置坐标、当前时间戳和采集源记录在主机设备的计算机可读非瞬时性介质中。

在步骤454中,根据准确度阈值计算输入位置参数的准确度。通常,由于点漂移以及建筑物、桥梁、树木等造成的信号阻塞,GPS或网络位置提供方模块采集的位置点信息的准确度可能不同。忽略不准确的位置点信息有助于提高用户停留区域的准确度。如果输入位置不满足准确度阈值,则忽略输入参数,并且时间线服务返回步骤452以接收下一个输入位置。重复此过程,直到采集到准确的输入位置。

在步骤456中,时间线服务应用程序确定在步骤452中采集的位置点是否为时间线服务采集的初始位置点。在一些实施例中,时间线服务可以具有当前用户停留区域状态和相应的信息,例如中心位置点坐标、主机设备访问的位置点的范围和/或主机设备已经停留在当前用户停留区域中的时间段。但是,在一些实施例中,时间线服务可以不具有当前用户停留区域状态,并且在步骤452中采集的当前位置点可以是时间线服务采集的第一位置点。在这样的实施例中,在步骤458中,主机设备的当前用户停留区域状态被归类为不在用户停留区域中。存储当前位置点坐标和对应的时间戳,用于下一个时间线服务例程。由于采集了附加的位置点,时间线服务可以确定电子设备的用户停留区域和用户停留区域状态。

根据输入位置计算当前位置。在步骤460中,时间线服务计算输入位置与当前位置之间的距离。图10进一步论述了计算两个位置点之间的距离的方法。在图11中进一步论述了计算用户停留区域的中心位置点的方法。

在步骤462中,时间线服务确定在步骤460中计算的距离是否大于或小于用户停留区域距离阈值。如果所计算的距离大于用户停留区域距离阈值,则在步骤464中,时间线服务确定主机设备的更新位置一定位于用户停留区域之外,因为距离用户停留区域的中心点的距离超过了用户停留区域距离阈值,不论用户之前在用户停留区域之内或之外都是如此。但是,如果所计算的距离小于用户停留区域距离阈值,则在步骤466中,时间线服务更新用户停留区域的当前位置。用户停留区域的当前位置的更新后的经度坐标和纬度坐标中的每一个分别通过如下方式计算得到:用位置点的总数乘以上个当前位置,然后除以(1+位置点的总数)。在图12中进一步论述确定用户停留区域距离阈值的方法。

在步骤468中,时间线服务确定主机设备的当前用户区域状态是否指示主机设备位于用户停留区域之内还是之外。如果时间线服务确定当前用户停留区域状态为在用户停留区域之内,由于在步骤462中计算的距离小于用户停留区域距离阈值,则在步骤470中,时间线服务确定主机设备保持在用户停留区域中,并且返回到步骤452。但是,如果确定当前用户停留区域状态为在用户停留区域之外,则在步骤472中,为了确定当前用户停留区域是否为新用户停留区域,时间线服务确定从上次位置点采集经过的时间是否超过用户停留区域时间间隔阈值。在图12中进一步论述确定用户停留区域时间间隔阈值的方法。

在步骤474中,如果确定所经过的时间大于用户停留区域时间间隔阈值,则时间线服务确定主机设备正在进入新的用户停留区域并返回步骤452。将集群中心更新为当前位置。否则,时间线服务返回到步骤452,而不对用户停留区域状态进行任何变化。

方法450为多个用户停留区域提供集群点,每个集群点都具有中心位置点、每个用户停留区域中的集群点的对应范围以及主机设备保持在每个用户停留区域的时间间隔。

图10为用于示出用于计算坐标位置点A502和B 504之间的距离(AB 508)的方法的简化图500。通常,使用半正矢公式来计算半径为(r)的球体上的两个点(

通过应用逆半正矢公式来求距离(d):

由上可推导出,每次距离计算都包含多个三角计算。因此,需要提供一种减少三角计算的数量以优化主机设备中的距离计算的方法。

通常,活动区域或主机设备频繁访问的位置主要位于城市或较大但有限的区域。此外,用户停留区域一般倾向于在城市或有限的区域中的较小区域。因此,利用经度差和纬度差进行的毕达哥拉斯计算的结果可以用作球体上两个相邻点之间的距离的近似值。返回图10,点A 502与点M 506之间的距离(AB 508)可以通过首先计算点A 502与点B 504之间的纬度距离(AM 510)以及点B 504与点M 506之间的经度距离(BM 512)来近似。

作为示例,对于相距二百六十三(263)公里(km)两个点,使用简化的计算与使用半正矢公式相比,误差约为十七点一(17.1)米(m)。随着两个点的距离越来越近,该误差值进一步减小。作为示例,在计算相距七十二(72)km的两个点之间的距离时,差异约为零点三(0.3)m。

应理解的是,在低纬度,特别是在低于六十(60)度的纬度下,这种近似值更准确。在一些实施例中,为了提高准确度,可以响应于位置点小于或大于六十(60)度的纬度,设置边界条件来优化距离计算。

图11为用于确定数据点集群内的中心点位置的方法的流程图520,这可以由时间线服务执行。方法520提供与用户停留区域相关的数据点集群的中心点的近似计算,同时减少漂移的影响。由于用户停留区域中的每个位置点可以从具有不同准确度的各种源(例如,GPS、NLP、Cell-ID等)中的一个采集,所以计算位置点集群的中心的方法会影响中心点的准确度。在一些实施例中,可以使用所有位置点而不考虑每个数据点的质量。作为示例,使用例如GPS信号等较高准确度的源采集的位置点可以用于中心点计算,而使用网络位置提供方信号获取的位置点可以忽略。

在步骤522中,根据采集源类型(例如GPS、NLP等)生成用于计算中心点的集群点的位置列表。在步骤524中,分别计算每个采集源类型的中心点。在步骤526中,通过将每个源的点的总数除以集群点中的点的总数而将权重因子应用于每个计算的中心点。在步骤528中,基于应用于每个中心点类型的权重因子计算中心点位置。

图12为用于确定在图9的时间线服务中使用的优化的用户停留区域距离阈值和用户停留区域时间间隔阈值的方法550的流程图。在一些实施例中,用户停留区域距离阈值和用户停留区域时间间隔阈值可以设定为初始值,例如分别为五百(500)米和十五(15)分钟。由于采集和记录了附加的位置点,并且建立了多个用户停留区域,所以方法550基于与之前的用户停留区域相关联的历史值对阈值进行优化。

通常,用户停留区域的范围能够提供与用户停留区域对应的建筑物大小或用户活动半径的关键信息。在一些实施例中,可以通过计算用户停留区域中的集群点中的每两个点之间的距离,然后除以这些点之间的最大计算距离的一半来确定范围。在另一个实施例中,可以通过计算集群点中的每个点与该集群的中心之间的距离,并随后选择最大距离作为用户停留区域的范围来确定范围。这样做的附加好处是N

与主机设备的记录的用户停留区域中的历史集群点对应的范围信息和时间间隔信息可以提供可行的用户停留区域距离阈值和用户停留区域时间间隔阈值。在步骤552中,使用例如在图9的步骤466中介绍的方法采集主机设备的当前位置坐标。

在步骤554中,时间线服务确定上个用户停留区域是否满足以下标准:1)在步骤552中采集到的与当前位置最近的用户停留区域,和2)当前位置到用户停留区域的中心点的距离是否小于距离阈值。可以使用例如参考图10所描述的方法来计算两个点之间的距离。

在步骤556中,如果发现用户停留区域满足步骤554中详述的标准,则将当前距离阈值更新为用户停留区域距离,并且将当前时间阈值更新为例如3分钟。但是,如果发现用户停留区域不满足步骤554中详述的标准,则时间线服务继续使用初始阈值设置(即五百(500)米的距离阈值和十五(15)分钟的时间阈值)。例如,在图9的步骤462和图9的步骤472中,可以分别使用通过图12的方法确定的距离阈值和时间阈值。

图13为用于优化用户活动数据以降低噪声的方法600的流程图,这可以由时间线服务执行。用户活动数据通常包括不一致或有噪音的信号,这些信号可能错误地识别或错误地扭曲时间线参考点。因此,提供平滑解决方案以降低来自用户活动识别数据集的不需要的噪声是有价值的。在步骤602中,时间线服务接收与用户移动相关联的原始数据点集。原始数据点集是使用活动识别引擎采集的实时结果,该活动识别引擎在与嵌入式传感器连接的处理器中实现。通常,原始数据点集是滑动时间窗内活动变化的集合。但是,从更广泛的背景和一段时间来看,原始数据可能呈现出不必要的数据点,这些数据点可能为用户的时间线提供非增值信息。作为示例,如果主机设备在车辆中,该车辆从点A行驶到点B,且因交通信号灯而需要一次或多次停车,则原始数据集可以包括交通信号灯处的静止移动,但是在更广泛的上下文中,可以忽略该信息。作为另一示例,如果主机设备由于构造而变慢,则活动识别引擎可以将用户移动归类为与自行车相关联的慢速移动类型。因此,从数据集中去除不需要的噪声是有益的。

在步骤604中,时间线服务通过监视一个时间段或滑动窗口内的显著变化而去除原始数据点集中的不一致的数据。在步骤606中,通过从数据集中去除或忽略噪声数据来更新用于用户移动的每个连续数据点集的开始时间和结束时间。在步骤608中,将原始数据点集替换为平滑数据点集。

图14为用于使用活动识别数据细化用户时间线的方法630的流程图,这可以在主机设备的时间线服务中执行。嵌入式传感器为提高时间线服务的准确度提供了持续的低功耗资源,并可以额外细化用户停留区域的时间线。在步骤632中,确定使用活动识别引擎记录的用户的移动类型。如前所述,用户活动可以按移动类型归类为静止、慢速或快速移动类型。此外,记录与特定活动相关联的时间参数(即开始时间和结束时间)。

在步骤634中,时间线服务接收用户停留区域参数,例如用户当前位置状态(即,在用户停留区域之内或之外)、到达时间和与用户停留区域对应的主机设备的离开时间。

在步骤636中,时间线服务使用在步骤632中获得的信息来调整步骤634中的位置状态和相关参数。在一个实施例中,如果确定用户活动为静止移动类型,则在该时间线服务最初检测到用户停留区域变化的时间段内,通过步骤632获得的数据用于恢复用户停留区域状态的变化,并校正到达时间和/或离开时间。在另一个实施例中,如果确定用户活动为快速移动类型,则在时间线服务最初未检测到用户停留区域的变化的时间段内,如果用户的移动指示用户停留区域的变化,则时间线服务请求主机设备的当前位置。否则,时间线服务将当前用户停留区状态更新为不指示它不再在特定用户停留区域,并调整离开时间。

图15A至图15D为用于说明使用活动识别数据对用户停留区域时间线的细化的示例实施例,这可以在主机设备的时间线服务中执行。在这些示例中,主机设备中的嵌入式传感器检测用户活动的变化,并且时间线服务利用融合方案来提高与用户停留区域相关联的到达时间、离开时间或停留时间的准确度。

在图15A中,将与特定用户停留区域相关联的原始时间线652中的主机设备的到达时间记录为时间t

在图15B中,将与特定用户停留区域相关联的原始时间线662中的主机设备的离开时间记录为时间t

在图15C中,将与特定用户停留区域相关联的原始时间线672中的主机设备的到达时间记录为时间t

在图15D中,将与特定用户停留区域相关联的原始时间线682中的主机设备的离开时间记录为时间t

图16为用于基于Wi-Fi连接活动确定用户停留区域离开时间和/或到达时间的变化的方法750的流程图。Wi-Fi状态的变化可以在时间线服务中提供有价值的信息,用于确定用户位置状态的变化或用户位置的变化。作为示例,如果主机设备要进入具有活动Wi-Fi连接的建筑物,则与成功连接到Wi-Fi服务对应的时间可以大致对应于到达建筑物用户停留区域的到达时间。作为另一示例,如果主机设备要离开具有活动Wi-Fi连接的建筑物,则与成功断开Wi-Fi服务对应的时间可以大致对应于离开建筑物用户停留区域的离开时间。在一些实施例中,与成功连接到Wi-Fi服务对应的时间和/或与成功断开Wi-Fi服务对应的时间可以比从活动识别引擎、网络位置提供方信号或GPS信号获得的位置数据具有更高的优先级。

在步骤752中,主机设备关联Wi-Fi服务与用户停留区域之间的关系。主机设备中实现的学习算法可以用于关联有效Wi-Fi信号与用户停留区域之间的关系(例如,服务集标识符(Service Set Identifier,SSID)、媒体访问控制(Media Access Control,MAC)地址、信号强度等)。作为示例,家庭Wi-Fi服务可以被识别并记录为主机设备的用户的家庭的关联位置。作为另一示例,工作Wi-Fi服务可以被识别并记录为主机设备的用户的工作场所的关联位置。有利地,这允许时间线服务滤除与未知建筑物关联的不希望的Wi-Fi服务。

在步骤754中,与主机设备进入或离开用户停留区域相称,可以产生触发消息以调查Wi-Fi状态的有效变化。触发消息还可以设置主机设备完成调查的设定分配时间。

在步骤756中,在分配的时间间隔内调查Wi-Fi状态的有效变化。在步骤758中,如果在分配的时间间隔内确定有效的Wi-Fi状态转换,则与有效Wi-Fi状态变化对应的时间戳用作用户停留区域到达时间或离开时间。但是,如果在分配的时间间隔内没有确定有效的Wi-Fi状态转换,则在步骤760中,与从活动识别引擎、网络位置提供方信号或GPS信号获得的位置数据对应的原始时间戳用作用户停留区域到达时间或离开时间。

在本公开实施例的一个示例性实现方式中,对于半径高达五百(500)米且持续时间小于十五(15)分钟的用户停留区域,准确度显示为大于93%,内存使用小于十(10)兆字节。

图17示出了用于执行本文所描述的方法的处理系统800的框图,其可以安装在主机设备中。如图所示,处理系统800包括处理器802,存储器804和接口806、808、810,它们可以(或可以不)如图17中所示进行布置。处理器802可以是用于执行计算和/或其它处理相关任务的任何部件或部件的集合,并且存储器804可以是用于存储处理器802执行的编程和/或指令的任何部件或部件的集合。在一个实施例中,存储器804包括非瞬时性计算机可读介质。非瞬时性计算机可读介质包括各种类型的计算机可读介质,包括磁性存储介质、光存储介质、闪存介质和固态存储介质。应理解的是,软件可以安装在处理系统800中一起销售。或者,可以获取软件并将其加载到处理系统800中,包括通过物理介质或分布系统获取软件,包括例如从软件创建者拥有的服务器或从非软件创建者拥有但其使用的服务器获取软件。例如,可以将软件存储在服务器上,以便经由互联网分布。接口806、808、810可以是允许处理系统800与其它设备/部件和/或用户通信的任何部件或部件的集合。例如,接口806、808、810中的一个或多个可以用于将数据、控制或管理消息从处理器802传送给安装在主机设备和/或远程设备上的应用程序。作为另一示例,接口806、808、810中的一个或多个可以用于允许用户或用户设备(例如,个人计算机(personal computer,PC)等)与处理系统800交互/通信。处理系统800可以包括图17中未示出的附加部件,如长期存储(例如,非易失性存储器等)。

在一些实施例中,处理系统800包括在网络设备中,该网络设备接入电信网络或以其它方式成为电信网络一部分。在一个实施例中,处理系统800位于无线或有线电信网络中的网络侧设备中,例如基站、中继站、调度器、控制器、网关、路由器、应用程序服务器、或电信网络中的任何其它设备。在其它实施例中,处理系统800位于接入无线或有线电信网络的用户侧设备中,例如移动台、用户设备(user equipment,UE)、个人计算机(personalcomputer,PC)、平板电脑、可穿戴通信设备(例如智能手表等)、无线功能车辆、无线功能行人、无线功能基础设施元件或用于接入电信网络的任何其它设备。

在一些实施例中,接口806、808、810中的一个或多个将处理系统800连接到收发器,用于通过电信网络发送和接收信令。图18示出了用于通过电信网络发送和接收信令的收发器820的框图。收发器820可以安装在主机设备中。如图所示,收发器820包括网络侧接口822、耦合器824、发射器826、接收器828、信号处理器830和设备侧接口832。网络侧接口822可以包括用于通过无线或有线电信网络发送或接收信令的任何部件或部件的集合。耦合器824可以包括用于方便通过网络侧接口822的双向通信的任何部件或部件的集合。发射器826可以包括用于将基带信号转换为适合通过网络侧接口822发送的调制载波信号的任何部件或部件的集合(例如,上变频器、功率放大器等)。接收器828可以包括用于将网络侧接口822接收的载波信号转换为基带信号的任何部件或部件的集合(例如,下变频器、低噪声放大器等)。信号处理器830可以包括用于将基带信号转换为适合通过设备侧接口832通信的数据信号的任何部件或部件的集合,或者反之亦然。设备侧接口832可以包括用于在信号处理器830和主机设备(例如,处理系统800、局域网(local area network,LAN)端口)内的部件之间传送数据信号的任何部件或部件的集合。

收发器820可以通过任何类型的通信介质发送和接收信令。在一些实施例中,收发器820通过无线介质发送和接收信令。例如,收发器820可以是用于根据无线电信协议进行通信的无线收发器,如蜂窝协议(例如,长期演进(long-term evolution,LTE)等)、无线局域网(wireless local area network,WLAN)协议(例如,Wi-Fi等),或任何其它类型的无线协议(例如,蓝牙、近场通信(near field communication,NFC等)。在这些实施例中,网络侧接口822包括一个或多个天线/辐射单元。例如,网络侧接口822可以包括单个天线、多个单独的天线或用于多层通信的多天线阵列,例如,单输入多输出(single input multipleoutput,SIMO)、多输入单输出(multiple input single output,MISO)、多输入多输出(multiple input multiple output,MIMO)。在其它实施例中,收发器820通过有线介质发送和接收信令,例如双绞线电缆、同轴电缆、光纤。特定处理系统和/或收发器可以利用所示出的所有部件或仅利用部件的子集,集成级别可能因设备而异。

尽管进行了详细的描述,但应理解的是,在不脱离由所附权利要求书界定的本公开的精神和范围的情况下可以做出各种改变、替代和更改。在各种附图中用相同的附图标记表示相同的元件。此外,本公开的范围不旨在受限于本文中所描述的特定实施例,本领域的一般技术人员将从本公开中容易了解到,过程、机器、制造工艺、物质成分、构件、方法或步骤(包括目前存在的或以后将开发的)可以执行与本文所描述的对应实施例大致相同的功能或实现与本文所描述的对应实施例大致相同的效果。相应地,所附权利要求范围包括这些过程、机器、产品、物质组成、构件、方法或步骤。因此,说明书和附图被简单地视为由所附权利要求限定的对本公开的说明,并且被预期覆盖落入本公开的范围内的任何和所有修改、变化、组合或等同物。

相关技术
  • 手机多模态位置感测
  • 感测显示面板上触摸位置的感测装置以及感测方法
技术分类

06120112678532