轨迹点处理方法、电子设备及存储介质与流程
未命名
07-13
阅读:99
评论:0
1.本技术涉及数据处理技术领域,特别是涉及一种轨迹点处理方法、电子设备及存储介质。
背景技术:
2.目前,电子设备提供的一些服务依赖于用户在特定地点停留时的轨迹点数据,例如,可以为用户在家或者公司停留时电子设备采集的轨迹点数据,轨迹点数据包括按采集时间先后顺序排列的多个轨迹点的位置信息。为了提供更高质量的服务,轨迹点数据的准确性尤为重要,由于电子设备的定位精度受环境信号强度、芯片性能以及定位方式精度等因素影响,使得电子设备采集到的轨迹点数据可能包括一些位置信息不准确的轨迹点,所以在使用轨迹点数据之前,可以先对轨迹点数据进行清洗。
3.对于采集间隔均匀的轨迹点数据,轨迹点清洗方法为利用速度阈值、加速度阈值和/或距离阈值识别相邻轨迹点中是否存在异常轨迹点,并将异常轨迹点剔除。例如,可以判断相邻的两个轨迹点之间的距离是否大于预设距离阈值,若大于,则将这两个相邻轨迹点中靠后的轨迹点确定为异常轨迹点,并将该异常轨迹点的位置信息从轨迹点数据中剔除。
4.但由于功耗因素或用户权限设置等因素,电子设备不能实时地采集轨迹点数据,导致电子设备的采集到的轨迹点数据的采集时间间隔不均匀。对于采集时间间隔不均匀的轨迹点数据,上述轨迹点清洗方法不适用,导致电子设备无法得到准确的轨迹点数据。
技术实现要素:
5.有鉴于此,本技术提供一种轨迹点处理方法、电子设备及存储介质,以解决电子设备无法得到准确的非均匀分布的轨迹点数据的问题。
6.第一方面,本技术实施例提供了一种轨迹点处理方法,应用于电子设备,所述方法包括:基于所述电子设备的运动状态,确定所述电子设备在指定时间段内的停留时间区间;获取在所述停留时间区间内采集到的轨迹点数据,所述轨迹点数据包括按采集时间顺序排列的多个轨迹点的位置信息;基于所述多个轨迹点的位置信息,确定所述多个轨迹点的中心位置;将所述多个轨迹点中,与所述中心位置之间的距离大于误差阈值的轨迹点作为异常轨迹点;基于所述异常轨迹点前后各指定数量的非异常轨迹点的位置信息,修改所述异常轨迹点的位置信息。
7.在一种可能的实现方式中,所述基于所述电子设备的运动状态,确定电子设备在所述指定时间段内的停留时间区间,包括:
获取所述电子设备在所述指定时间段内每个时间点的运动状态分数;对每一时间点的运动状态分数进行中值平滑处理,得到每一时间点的中值平滑分数;确定所述指定时间段内,中值平滑分数等于预设停留分数的连续时间点组成的连续时间段;若所述连续时间段的时长大于预设时长,则将所述连续时间段作为所述停留时间区间。
8.在一种可能的实现方式中,所述误差阈值的获取方式包括:接收云端设备下发的群体距离阈值,所述群体距离阈值为所述云端设备基于多个样本数据的轨迹点数据计算得到的距离阈值,每个样本数据包括一个样本设备在样本停留时间区间内的轨迹点数据;基于所述群体距离阈值确定所述误差阈值。
9.在一种可能的实现方式中,所述基于所述群体距离阈值确定所述误差阈值,包括:将所述群体距离阈值作为所述误差阈值;或者,获取所述电子设备在至少一个样本停留时间区间内的轨迹点数据;基于所述至少一个样本停留时间区间内的轨迹点数据,计算个人距离阈值;将所述群体距离阈值与所述个人距离阈值的平均值作为所述误差阈值。
10.在一种可能的实现方式中,所述基于所述至少一个样本停留时间区间内的轨迹点数据,计算个人距离阈值,包括:针对每个样本停留时间区间,基于该样本停留时间区间内的轨迹点数据计算样本中心位置,计算该样本停留区间内的每个轨迹点的位置与所述样本中心位置之间的距离偏差;基于所述至少一个样本停留时间区间内各轨迹点对应的距离偏差,计算得到均值和方差;基于所述均值和所述方差计算对数正态分布的预设分位数,得到所述个人距离阈值,其中,所述至少一个样本停留时间区间内各轨迹点对应的距离偏差符合对数正态分布。
11.在一种可能的实现方式中,所述基于所述多个轨迹点的位置信息,确定所述多个轨迹点的中心位置,包括:基于所述多个轨迹点的位置信息,对所述多个轨迹点进行聚类处理;确定聚类处理得到的最大簇内包括的各轨迹点;将所述最大簇内包括的各轨迹点的平均位置作为所述多个轨迹点的中心位置。
12.在一种可能的实现方式中,所述基于所述异常轨迹点前后各指定数量的非异常轨迹点的位置信息,修改所述异常轨迹点的位置信息,包括:获取所述异常轨迹点之前指定数量的非异常轨迹点的位置信息,以及所述异常轨迹点之后指定数量的非异常轨迹点的位置信息;计算获取到的非异常轨迹点的位置信息的平均位置信息;将所述异常轨迹点的位置信息修改为所述平均位置信息。
13.第二方面,本技术实施例提供了一种电子设备,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触
发所述电子设备执行第一方面所述的方法。
14.第三方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面所述的方法。
15.第四方面,本技术实施例提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行第一方面所述的方法。
16.采用上述技术方案,首先获取在电子设备的停留时间区间内采集的轨迹点数据,并从停留区间内的多个轨迹点中确定出中心位置,然后将与中心位置之间的距离大于误差阈值的轨迹点作为异常轨迹点,利用异常轨迹点前后指定数量的非异常轨迹点的位置信息,修改该异常轨迹点的位置信息。在停留时间区间内,电子设备的运动范围较小甚至静止,因此采集的各轨迹点不是均匀分布的,而且分布应当较为集中,因此如果存在与这些轨迹点的中心位置偏离较远的轨迹点,该轨迹点很可能是电子设备误检测导致的,因此可以利用该轨迹点前后的非异常轨迹点的位置信息,对该位置点的位置信息进行修正。所以本技术实施例实现了对非均匀分布的各轨迹点进行异常点修正,提高了轨迹点数据的准确性。
附图说明
17.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
18.图1为本技术实施例提供的一种电子设备示意图;图2为本技术实施例提供的一种电子设备的软件结构框图;图3为本技术实施例提供的电子围栏的示例性示意图;图4(a)为本技术实施例提供的一种手机显示界面的示例性示意图;图4(b)为本技术实施例提供的另一种手机显示界面的示例性示意图;图5为本技术实施例提供的一种轨迹点处理方法的流程图;图6为本技术实施例提供的轨迹点经处理前后的示例性示意图;图7为本技术实施例提供的一种确定停留时间区间的示例性示意图;图8为本技术实施例提供的一段时间内的运动状态分数的折线图;图9为本技术实施例提供的一种对距离偏差拟合对数正态分布曲线的示例性示意图;图10(a)为本技术实施例提供的一种住宅区对应的对数正态分布曲线的示例性示意图;图10(b)为本技术实施例提供的一种办公区对应的对数正态分布曲线的示例性示意图;图11(a)-图11(c)为本技术实施例提供的对不同数量轨迹点的距离偏差拟合的对数正态分布曲线的示例性示意图。
具体实施方式
19.为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一指令和第二指令是为了区分不同的用户指令,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
20.需要说明的是,本技术中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
21.本技术实施例提供的轨迹点处理方法可以应用于电子设备,例如,电子设备可以为手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、个人数字助理(personaldigital assistant,pda)、智能手表、可穿戴设备等,本技术实施例对电子设备的类型不作限制。
22.如图1所示,图1为本技术实施例提供的一种电子设备的示意图,图1所示的电子设备可以包括处理器110、外部存取器接口1~n120、内部存储器121、通用串行总线(universal serial bus,usb)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、传感器模块170、摄像头1~n 180以及显示屏1~n 190等。其中,传感器模块170可以包括:陀螺仪传感器170a、加速度传感器170b和距离传感器170c等。
23.可以理解的是,本技术实施例示意的结构并不构成对电子设备的具体限定。在本技术另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
24.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap)、图形处理器(graphics processingunit,gpu)、图像信号处理器(image signal processor,isp)和/或控制器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
25.处理器110可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
26.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
27.电子设备的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等实现。
28.天线1和天线2用于发射和接收电磁波信号。
29.移动通信模块150可以提供应用在第一电子设备上的包括2g/3g/4g/5g等无线通信的解决方案。
30.无线通信模块160可以提供应用在电子设备上的包括wlan(wireless local area networks,无线局域网)、bt((bluetooth,蓝牙)、gnss(globalnavigation satellite system,全球导航卫星系统)、fm(frequency modulation,调频)、nfc(near field communication,近距离无线通信技术)和/或ir(infrared,红外技术)等无线通信的解决方案。
31.在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm)、通用分组无线服务(generalpacket radio service,gprs)、码分多址接入(code division multiple access,cdma)、宽带码分多址(wideband code divisionmultiple access,wcdma)、时分同步码分多址(time-division-synchronous code division multiple access,td-scdma),长期演进(longterm evolution,lte)、bt、gnss、wlan、nfc、fm、和/或ir技术等。gnss可以包括全球卫星定位系统(global positioning system,gps)、全球导航卫星系统(global navigationsatellite system,glonass)、北斗卫星导航系统(beidou navigation satellite system,bds)、准天顶卫星系统(quasi-zenith satellitesystem,qzss)、和/或星基增强系统(satellitebased augmentation system,sbas)等。
32.显示屏190用于显示图像,视频等。
33.外部存储器接口120可以用于连接外部存储卡,例如micro 安全数码(secure digital memory,sd)卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐、视频、录音文件等文件保存在外部存储卡中。
34.内部存储器121可以用于存储计算机可执行程序代码,其中可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、以及至少一个功能所需的应用程序(比如gps定位功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如轨迹点数据、运动状态分数等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令和/或存储在设置于处理器110中的存储器的指令,执行电子设备的各种功能应用以及数据处理。
35.上述电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的安卓(android)系统为例,对电子设备的软件系统进行示例性说明。如图2所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,硬件抽象层,以及硬件层。
36.如图2所示,应用程序层可以安装有多个应用程序,例如,可以包括办公app、智能家居app、快递app以及外卖app等。
37.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括:位置信息管理模块、内容提供器和视图系统等。
38.作为本技术的一个示例,位置信息管理模块用于对轨迹点数据进行清洗。
39.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问,这些数据可以包括轨迹点数据、运动状态分数、群体距离阈值和个人距离阈值等。
40.视图系统包括可视控件,比如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序的显示界面,显示界面可以由一个或多个视图组成,比如,包括显示app图标以及弹窗的视图,包括显示文字的视图,以及包括显示图片的视图。
41.硬件抽象层(hardware abstraction layer,hal)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
42.硬件层,包括但不限于定位部件、加速度传感器、陀螺仪传感器和显示屏。其中定位部件用于实现定位功能,作为示例,定位部件可以为gps定位部件。加速度传感器和陀螺仪传感器可以用于确定电子设备的状态,也即可以用于确定电子设备是运动还是静止状态。
43.为便于理解,首先介绍本技术实施例的应用场景。本技术实施例可以应用于app智能推荐场景,在该场景下,电子设备可以提供基于地点的推荐服务,如果用户经常在固定地点使用一些app,则当检测到用户进入该固定地点对应的全球定位系统(global positioning system,gps)范围时,可以为用户推荐这些app。
44.以一个待推荐的app为例,为了实现基于地点的推荐服务,电子设备需要收集用户使用app时经过的轨迹点,以确定用户在哪些固定地点常用该app,将确定出的固定地点对应的gps范围构建为电子围栏范围。进而,当电子设备进入该电子围栏范围时,电子设备可以向用户推荐该app。
45.例如,如图3所示,假设电子围栏1处于某电子产业园内,电子围栏1是办公app的电子围栏。电子围栏2处于某小区内,电子围栏2是快递app的电子围栏。
46.如图4(a)和图4(b)所示,假设用户的手机上同时安装有办公app和快递app,当该用户的手机移动至电子围栏1内,在手机上显示办公app可提供的打卡服务,即图4(a)中在手机屏幕上通过弹窗显示“立即打卡”以及确认按钮和取消按钮。
47.当该用户的手机移动至电子围栏2内,在手机上显示快递app可提供的快递信息展示服务,即图4(b)中在手机屏幕上通过弹窗显示“展示快递信息”以及确认按钮和取消按钮。其中,用户手机上还可以安装其他app,例如图4(a)和图4(b)中的相机、通讯录、电话和相册等。
48.本技术实施例还可以应用于智能家居场景,在该场景下,电子设备可以提供基于地点的智能家居控制服务,如果用户经常在固定地点使用智能家居控制app控制家电,则当检测到用户进入该固定地点对应的gps范围,即智能家居控制app的电子围栏时,可以提醒用户打开智能家居控制app。
49.可以看出,轨迹点数据的准确度直接影响了构建的电子围栏的准确度,而电子围栏的准确度影响了后续进行app推荐以及app唤醒的准确度。而且,因app的权限设置等因素,电子设备可能无法采集到用户每次使用app时的地理位置,因此会缺失用户使用app时的轨迹数据,这种情况下,电子设备可以基于用户使用该app之前和之后的轨迹点数据,确定用户使用该app时的gps范围,因此,尤其在轨迹点数据较少的情况下,轨迹点数据的准确
度尤为重要。
50.需要说明的是,上述两种应用场景仅为示例,利用本技术实施例提供的轨迹点处理方法可以得到处理后的轨迹点数据,处理后的轨迹点数据的用途不限于构建电子围栏。
51.鉴于上述原因,为了提高轨迹点数据的准确度,本技术实施例提供了一种轨迹点处理方法,该方法应用于上述电子设备。如图5所示,本技术实施例提供的轨迹点处理方法,可以包括以下步骤:s501、基于电子设备的运动状态,确定电子设备在指定时间段内的停留时间区间。
52.本技术实施例中,可以根据对轨迹点数据的使用需求提前设置预设时间段。例如,对于app推荐场景,可以确定电子设备每天的停留时间区间,相应地,指定时间段可以为前一天的0点至24点。
53.其中,停留时间区间为使用电子设备的用户在一个固定地点停留的时间段。
54.例如,如果用户一天的上午9点到12点在公司上班期间未外出,则这一天的上午9点到12点之间的时间段为一个停留时间区间。
55.再例如,如果用户在一天的下午3点到5点居家未外出,则这一天的下午3点到5点之间的时间段为一个停留时间区间。
56.s502、获取在停留时间区间内采集到的轨迹点数据。
57.其中,轨迹点数据包括按采集时间顺序排列的多个轨迹点的位置信息,具体可以包括每个轨迹点的采集时间戳和位置信息。例如,每个轨迹点的位置信息为轨迹点的经纬度。
58.电子设备中记录有历史采集到的轨迹点数据,在确定出停留时间区间后,可以获取时间戳处于停留时间戳内的轨迹点数据。
59.在确定出多个停留时间区间的情况下,可以分别获取在每个停留时间区间内采集到的轨迹点数据。
60.s503、基于多个轨迹点的位置信息,确定多个轨迹点的中心位置。
61.可选的,可以从多个轨迹点中,确定与其他各轨迹点之间的距离总和最小的轨迹点,并将该轨迹点的位置作为多个轨迹点的中心位置。
62.或者,可以计算多个轨迹点的位置信息的平均值,将平均值作为多个轨迹点的中心位置。
63.或者还可以通过下文描述的方法,确定多个轨迹点的中心位置。
64.s504、将多个轨迹点中,与中心位置之间的距离大于误差阈值的轨迹点作为异常轨迹点。
65.可选的,可以获取多个轨迹点所处的区域类型,并获取该区域类型对应的误差阈值,之后将多个轨迹点中,与中心位置之间的距离大于该区域类型对应的误差阈值的轨迹点作为异常轨迹点。例如,区域类型可以包括:办公区、住宅区和商业区等。
66.或者,可以不考虑多个轨迹点所处的区域类型,即各区域类型对应的误差阈值相同,因此可以直接将多个轨迹点中,与中心位置之间的距离大于误差阈值的轨迹点作为异常轨迹点。
67.可以理解的是,上述多个轨迹点中,除异常轨迹点之外的轨迹点均为非异常轨迹点。
68.s505、基于异常轨迹点前后各指定数量的非异常轨迹点的位置信息,修改异常轨迹点的位置信息。
69.可以按照与异常轨迹点之间的采集时间差从小到大的顺序,选择异常轨迹点之前的指定数量的非异常轨迹点,并选择异常轨迹点之后的指定数量的非异常轨迹点。之后计算选择的非异常轨迹点的位置信息的平均位置信息,再将异常轨迹点的位置信息修改为平均位置信息。
70.例如,指定数量为1时,获取异常轨迹点之前且与异常轨迹点之间的采集时间差最短的1个非异常轨迹点的位置信息,以及异常轨迹点之后且与异常轨迹点之间的采集时间差最短的1个非异常轨迹点的位置信息,之后对这两个位置信息取平均值,作为该异常轨迹点的位置信息。
71.可以理解的,对于异常轨迹点前后各指定数量的非异常轨迹点,这些非异常轨迹点与中心位置较近,因此是较为准确的;而且这些非异常轨迹点与该异常轨迹点的采集时间相近,因此该异常轨迹点与这些非异常轨迹点的距离较近,可以基于这些非异常轨迹点的位置信息,修改该异常轨迹点的位置信息。
72.参见图6,图6中左侧部分中每个水滴形状的定位标记点表示一个轨迹点,可以看出这些轨迹点集中分布在圆形区域,且存在轨迹点处于圆形区域以外。由于这些轨迹点大部分处于圆形区域内,且少部分虽然不处于圆形区域内但与圆形区域距离较近,但最上方的轨迹点明显偏离圆形区域,不符合常理,大概率是误检测生成的。通过上述方式对这些轨迹点进行轨迹点处理,处理后的各轨迹点如图6中右侧部分所示。通过对比图6中左侧部分和右侧部分,可以看出,本技术实施例提供的轨迹点处理方法可以明显修正存在误差的轨迹点的位置,从而提高各轨迹点的位置的准确度。
73.采用上述技术方案,首先获取在电子设备的停留时间区间内采集的轨迹点数据,并从停留区间内的多个轨迹点中确定出中心位置,然后将与中心位置之间的距离大于误差阈值的轨迹点作为异常轨迹点,利用异常轨迹点前后指定数量的非异常轨迹点的位置信息,修改该异常轨迹点的位置信息。在停留时间区间内,电子设备的运动范围较小甚至静止,因此采集的各轨迹点不是均匀分布的,而且分布应当较为集中,因此如果存在与这些轨迹点的中心位置偏离较远的轨迹点,该轨迹点很可能是电子设备误检测导致的,因此可以利用该轨迹点前后的非异常轨迹点的位置信息,对该位置点的位置信息进行修正。因此本技术实施例实现了对非均匀分布的各轨迹点进行异常点修正,提高了轨迹点数据的准确性。
74.在上述s504确定异常轨迹点之后,若异常轨迹点之前的非异常轨迹点数量小于指定数量,则可以选择该异常轨迹点之前的各非异常轨迹点;若异常轨迹点之后的非异常轨迹点数量小于指定数量,则可以选择该异常轨迹点之后的各非异常轨迹点。之后基于从异常轨迹点前后选择的各非异常轨迹点的位置信息,修改异常轨迹点的位置信息。例如将异常轨迹点的位置信息修改为:从异常轨迹点前后选择的各非异常轨迹点的位置信息的平均位置信息。
75.例如,指定数量为2,假设停留时间区间内包括的轨迹点为:非异常轨迹点1、异常轨迹点1、非异常轨迹点2、非异常轨迹点3、非异常轨迹点4。异常轨迹点1之前的非异常轨迹点数量为1《指定数量2,因此选择异常轨迹点1之前的1个非异常轨迹点,即非异常轨迹点1。
异常轨迹点1之后的非异常轨迹点数量为3》指定数量2,因此按照与异常轨迹点1的采集时间从近到远的顺序,选择异常轨迹点1之后的2个非异常轨迹点,即非异常轨迹点2和非异常轨迹点3。之后将异常轨迹点1的位置信息修改为:非异常轨迹点1、非异常轨迹点2和非异常轨迹点3的位置信息的平均位置信息。
76.在本技术实施例中,在上述s504确定异常轨迹点之后,若异常轨迹点之前的各轨迹点中不存在非异常轨迹点,和/或异常轨迹点之后的各轨迹点中不存在非异常轨迹点,则可以将异常轨迹点的位置信息修改为中心位置。
77.例如,假设停留时间区间内包括的轨迹点为:异常轨迹点1、非异常轨迹点1、非异常轨迹点2、非异常轨迹点3。由于异常轨迹点1之前不存在非异常轨迹点,此时可以将异常轨迹点1的位置信息修改为中心位置。
78.对一个异常轨迹点进行位置修正时,若使用其他异常轨迹点的位置信息,则会给该异常轨迹点的位置带来新的误差,因此若该异常轨迹点之前和/或之后不存在非异常轨迹点,此时可以直接将该异常轨迹点的位置信息修改为中心位置。
79.与直接将异常轨迹点删除的方式相比,该方式降低了轨迹点的数量,使得后续可使用的轨迹点数量减少,可能降低基于轨迹点的定位业务的准确性。而本技术实施例能够对异常轨迹点的位置进行修正,实现了在不降低采集的轨迹点的数量的基础上,提高各轨迹点的位置的准确度,提高了定位业务的准确性。
80.参见图7,上述s501中基于电子设备的运动状态,确定电子设备的停留时间区间的方式,包括如下步骤:s701、获取电子设备在指定时间段内每个时间点的运动状态分数。
81.电子设备中存储有指定时间段内每个时间点的运动状态,电子设备可以周期性检测当前时间点的运动状态。在需要获取每个时间点的运动状态分数时,可以根据各运动状态与运动状态分数之间的预设对应关系,获取该时间点的运动状态对应的运动状态分数。其中,运动状态分数可以表示电子设备的移动速度或者加速度等。
82.例如,运动状态为走路时,对应的运动状态分数为1;运动状态为跑步时,对应的运动状态分数为1;运动状态为骑车时,对应的运动状态分数为1;运动状态为静止时,对应的运动状态分数为0。
83.s702、对每一时间点的运动状态分数进行中值平滑处理,得到每一时间点的中值平滑分数。
84.其中,中值平滑处理,也可以称为中值滤波处理。即,针对每一时间点,将该时间点的邻域窗口内的各时间点的运动状态分数的中值,更新为该时间点的运动状态分数。其中,邻域窗口的大小可以根据实际需求预先设置,例如邻域窗口为3分钟或者4分钟。
85.例如,参见图8,图8中上方折线图为一个电子设备在22:48~01:22时间段内各时间点的运动状态分数,横轴表示时间,纵轴表示运动状态分数,折线图上方的文字表示每个时间段内该电子设备所处的区域或者使用电子设备的用户执行的动作。例如,在0:00~08:24时间段内,电子设备处于用户家中;08:24~09:36时间段内,用户携带电子设备前往公司,前往公司可以简称为上班。
86.对图8所示的各时间点的运动状态分数进行中值平滑处理,得到图8下方的折线图。通过对比图8上方的折线图和图8下方的折线图可以看出,存在原本检测的运动状态分
数不为零的时间点,在经过中值平滑处理后,运动状态分数为0。由于中值平滑处理能够消除孤立点,孤立点即为与邻域窗口内各时间点的运动状态分数之间相差较大的运动状态分数,而这些孤立点大概率是由检测误差产生的,因此通过中值平滑处理,矫正这些孤立的运动状态分数,能够提高确定停留时间段的准确性。
87.此外,如果对各时间点的运动状态分数进行均值滤波处理,虽然均值滤波可以消除一定的孤立点,但消除孤立点的程度不及中值平滑处理,因此本技术实施例采用中值平滑处理能够得到更准确的停留时间区间。
88.电子设备可以采用运动状态识别算法,检测每个时间点的运动状态,在电子设备处于静止或运动速度较低的情况下,对运动状态的检测结果较为准确,但当电子设备处于短暂高速运动情况下,例如手机从桌子上掉落或者被用户快速摇动等,可能会将电子设备识别为高速运动状态,导致个别时间点的运动状态分值较大,而该时间点之前和之后的运动状态分数均较低,即在静止过程中出现运动状态的突进突出的现象,通过中值平滑处理的方式可以消除静止过程中运动状态的突进突出问题。
89.s703、确定指定时间段内,中值平滑分数等于预设停留分数的连续时间点组成的连续时间段。
90.其中,预设停留分数为:电子设备处于静止状态下的运动状态分数。
91.s704、若连续时间段的时长大于预设时长,则将连续时间段作为停留时间区间。
92.若连续时间段的时长大于预设时长,说明电子设备长时间处于未运动状态,连续时间段内用户均停留在一个区域内,所以可将连续时间段作为停留时间区间。
93.反之,若连续时间段的时长小于或等于预设时长,说明连续时间段较短,使用电子设备的用户实际未做停留,因此可以不将时间较短的连续时间段作为停留时间区间。
94.预设时长可以基于经验值设置,作为示例,预设时长可以为10分钟。
95.通过上述方法,本技术实施例能够对指定时间段内各时间点的运动状态分数进行中值平滑处理,从而减少运动状态分数中的孤立值,即降低运动状态分数的误差,以便使用更准确的运动状态分数,确定更准确的停留时间区间。经测试,利用该方法确定出的停留时间区间的准确度较高。
96.在本技术实施例中,上述s503中电子设备基于多个轨迹点的位置信息,确定多个轨迹点的中心位置的方式,包括:步骤一、基于多个轨迹点的位置信息,对多个轨迹点进行聚类处理。
97.可选的,对多个轨迹点进行聚类处理使用的聚类算法可以是:k-均值、均值偏移(mean shift)或者高斯混合等,本技术实施例对此不作具体限定。
98.步骤二、确定聚类处理得到的最大簇内包括的各轨迹点。
99.其中,最大簇为:包含轨迹点最多的簇。
100.步骤三、将最大簇内包括的各轨迹点的平均位置作为多个轨迹点的中心位置。
101.以各轨迹点的位置信息为经纬度为例,可以将最大簇内包括的各轨迹点的经度平均值,作为中心位置的经度,将最大簇内包括的各轨迹点的纬度平均值,作为中心位置的纬度。
102.由于各轨迹点中可能存在由检测误差导致的孤立点,而本公开实施例对多个轨迹点进行聚类,并筛选最大簇,即可消除孤立点对于确定中心位置的影响,从而得到更准确的
中心位置。
103.以下对上述实施例中使用的误差阈值的获取方式进行介绍。
104.误差阈值的获取方式包括:接收云端设备下发的群体距离阈值,基于群体距离阈值确定误差阈值。
105.其中,群体距离阈值为云端设备基于多个样本数据的轨迹点数据计算得到的距离阈值,每个样本数据包括一个样本设备在样本停留时间区间内的轨迹点数据。
106.可以预先针对每个样本设备,采集该样本设备在一个样本停留时间区间内的轨迹点数据,作为一个样本数据。其中,样本停留时间可以是预先设置的,或者按照图7的方式确定。
107.其中,样本设备可以是普通的电子设备和/或测试(beta)设备。例如,可以针对普通的电子设备采集3000个样本数据,针对beta设备采集40个样本数据。
108.针对普通的电子设备,例如用户使用的手机,可以将手机持续连接同一个wifi的时间段内,采集的轨迹点数据,作为一个样本数据。如,将用户持续连接家庭wifi、公司wifi或者餐厅wifi的时间段内采集的轨迹点数据,作为一个样本数据。
109.针对beta设备,例如测试手机,可以通过测试人员或机器人手持测试手机,并模拟用户在固定地点内的活动,并将测试时间段内该测试手机采集的轨迹点数据,作为一个样本数据。
110.其中,基于群体距离阈值确定误差阈值的方式,包括以下两种:方式一、将群体距离阈值作为误差阈值。
111.方式二、获取电子设备在至少一个样本停留时间区间内的轨迹点数据,然后基于至少一个样本停留时间区间内的轨迹点数据,计算个人距离阈值,再将群体距离阈值与个人距离阈值的平均值作为误差阈值。
112.电子设备计算个人距离阈值的方式,可以包括以下步骤:步骤1、针对每个样本停留时间区间,基于该样本停留时间区间内的轨迹点数据计算样本中心位置,计算该样本停留区间内的每个轨迹点的位置与样本中心位置之间的距离偏差。
113.其中,计算样本停留时间区间内各轨迹点的样本中心位置的方式,与上述s503确定多个轨迹点的中心位置的方式相同,可参考s503的相关描述,此处不再赘述。
114.步骤2、基于至少一个样本停留时间区间内各轨迹点对应的距离偏差,计算得到均值和方差。
115.其中,均值为:;方差为:;其中,为轨迹点k的距离偏差,为至少一个样本停留区间内的轨迹点数量,
表示自然对数。
116.步骤3、基于均值和方差计算对数正态分布的预设分位数,得到个人距离阈值。
117.其中,至少一个样本停留时间区间内各轨迹点对应的距离偏差符合对数正态分布。
118.为了分析样本停留时间区间内各轨迹点对应的距离偏差符合的分布,本技术实施例通过将获取的距离偏差拟合不同分布,比如分别拟合对数正态分布(log-normal distribution,lognorm)、卡方分布(chi-square distribution,chi2)、指数幂(exponpow)分布、指数(expon)分布和柯西(cauchy)分布,可以得到不同分布类型的分布曲线。并通过对比得到,拟合得到的对数正态分布曲线更加符合距离偏差的分布,由此可确定距离偏差的分布类型为对数正态分布,因此本技术实施例对计算得到的距离偏差拟合对数正态分布,并计算对数正态分布的预设分位数。
119.参见图9,图9中横轴表示轨迹点的位置与中心位置之间的距离偏差,纵轴表示同一个距离偏差的轨迹点数量占样本停留时间区间内轨迹点总数量的百分比,且实线直线表示不同距离偏差的分布情况,虚线曲线表示对距离偏差进行拟合得到的对数正态分布曲线。
120.预设分位与100分位的之间的分位差小于预设分位差,即预设分位接近100分位。例如,预设分位为95分位。
121.以预设分位为95分位为例,对数正态分布的95分位数为:;其中,e表示自然对数的底数。
122.由于超过预设分位数的距离偏差,与大多数距离偏差相差较大,因此大概率是误检的轨迹点的距离偏差,所以利用该方式得到的个人距离阈值,能够使得后续基于个人距离阈值,确定的异常点更准确。
123.由于群体距离阈值能够体现多个电子设备在停留时间区间内,采集的各轨迹点的与中心位置的误差情况,具备适普性。且个人距离阈值能够体现轨迹点处理方法应用的电子设备在样本停留时间区间内,采集的各轨迹点与中心位置之间的误差情况,因此更符合该电子设备个性化的运动情况。所以将群体距离阈值和个人距离阈值的平均值作为误差阈值,可以使得到的误差阈值更准确。
124.同时,由于不同电子设备的硬件配置不同,而且受到所在地理区域的定位信号强度影响,使得不同电子设备计算的个人距离阈值可能各不相同。例如,10个电子设备计算的个人距离阈值中,有2个个人距离阈值小于10米,其余的个人距离阈值为40米。可见,个人距离阈值受到电子设备的硬件配置以及所处环境的影响,很容易存在较大的误差,因此本公开实施例将个人距离阈值与群体距离阈值结合,得到误差阈值,既减少个人距离阈值的误差,又考虑电子设备的个性,使得得到的误差阈值更适用于电子设备本身。
125.可以理解的是,利用上述步骤1至步骤3可以计算得到一个个人距离阈值。在另一实现方式中,本技术实施例可以确定不同类型的区域对应的个人距离阈值。即,在步骤2之前,针对每个样本停留时间区间,识别该样本停留区间内采集的轨迹点数据对应的区域类型。之后在执行步骤2时,针对同一种区域类型的轨迹点数据,对计算得到的距离偏差拟合
对数正态分布,计算得到均值和方差。之后基于均值和方差计算对数正态分布的预设分位数,得到该区域类型对应的个人距离阈值。
126.作为示例,假设针对一个电子设备,获取到5个样本停留时间区间,通过轨迹点数据包括的轨迹点位置信息,确定其中2个样本停留时间区间包括的轨迹点数据处于办公区,3个样本停留时间区间包括的轨迹点数据处于住宅区。
127.针对办公区的2个样本停留时间区间包括的轨迹点数据,计算样本中心位置,以及每个轨迹点的位置与样本中心位置之间的距离偏差,对计算得到的距离偏差拟合对数正态分布,计算得到均值和方差。之后基于均值和方差计算对数正态分布的预设分位数,得到办公区对应的个人距离阈值。
128.针对住宅区的3个样本停留时间区间包括的轨迹点数据,计算样本中心位置,以及每个轨迹点的位置与样本中心位置之间的距离偏差,对计算得到的距离偏差拟合对数正态分布,计算得到均值和方差。之后基于均值和方差计算对数正态分布的预设分位数,得到住宅区对应的个人距离阈值。
129.参见图10(a)和图10(b),横轴表示轨迹点的位置与中心位置之间的距离偏差,纵轴表示同一个距离偏差的轨迹点数量占样本停留时间区间内轨迹点总数量的百分比。图10(a)中的实线直线表示针对住宅区内的轨迹点获得的不同距离偏差的分布情况,虚线曲线为拟合得到的对数正态分布曲线。图10(b)中的实线直线表示针对办公区内的轨迹点获得的不同距离偏差的分布情况,虚线曲线为拟合得到的对数正态分布曲线。从图10(a)和图10(b)中可以看出,住宅区的对数正态分布曲线的95分位为98米,办公区的对数正态分布曲线的95分位为101米。由于不同类型的区域内用户的可移动范围不同,因此针对不同类型的区域,确定不同的个人距离阈值更准确。
130.同理,云端设备可以通过上述方式,针对每种区域类型的区域内采集的样本数据,计算该种区域类型对应的群体距离阈值。
131.在本公开实施例中,若群体距离阈值和个人距离阈值均区分区域类型,则可以识别s502中获取的停留时间区间内各轨迹点数据所处的目标区域类型,然后计算目标区域类型的个人距离阈值和群体距离阈值的平均值,作为s504中的误差阈值。
132.由于在轨迹点数量较少时,难以稳定地拟合对数正态分布,因此为提高确定的个人距离阈值的准确性,可以选择样本停留时间区间内的轨迹点数量n大于300的样本数据。
133.参见图11(a)~图11(c),每个图横轴表示轨迹点的位置与中心位置之间的距离偏差,纵轴表示同一个距离偏差的轨迹点数量占样本停留时间区间内轨迹点总数量的百分比。图11(a)~图11(c),依次展现了样本停留时间区间内的轨迹点数量n为22、410或799时,不同距离偏差分布情况,即图中的实线直线,以及拟合得到的对数正态分布曲线,即图中的虚线曲线。从图11(a)~图11(c)中可以看出,当轨迹点数量n大于300时,能够拟合得到较为准确的对数正态分布。
134.具体实现中,本技术还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:randomaccess memory,简称:ram)等。
135.具体实现中,本技术实施例还提供了一种计算机程序产品,所述计算机程序产品
包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行上述方法实施例中的部分或全部步骤。
136.本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
137.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(applicationspecific integrated circuit ,asic)或微处理器之类的处理器的任何系统。
138.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统 通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
139.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、光盘只读存储器(compact disc read only memory,cd-roms)、磁光盘、只读存储器(readonly memory,rom)、随机存取存储器(ram)、可擦除可编程只读存储器(erasable programmable read only memory ,eprom)、电可擦除可编程只读存储器(electricallyerasable programmable read only memory ,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
140.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明书附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
141.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
142.需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语
仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
143.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
技术特征:
1.一种轨迹点处理方法,其特征在于,应用于电子设备,所述方法包括:基于所述电子设备的运动状态,确定所述电子设备在指定时间段内的停留时间区间;获取在所述停留时间区间内采集到的轨迹点数据,所述轨迹点数据包括按采集时间顺序排列的多个轨迹点的位置信息;基于所述多个轨迹点的位置信息,确定所述多个轨迹点的中心位置;将所述多个轨迹点中,与所述中心位置之间的距离大于误差阈值的轨迹点作为异常轨迹点;基于所述异常轨迹点前后各指定数量的非异常轨迹点的位置信息,修改所述异常轨迹点的位置信息。2.根据权利要求1所述的方法,其特征在于,所述基于所述电子设备的运动状态,确定所述电子设备在指定时间段内的停留时间区间,包括:获取所述电子设备在所述指定时间段内每个时间点的运动状态分数;对每一时间点的运动状态分数进行中值平滑处理,得到每一时间点的中值平滑分数;确定所述指定时间段内,中值平滑分数等于预设停留分数的连续时间点组成的连续时间段;若所述连续时间段的时长大于预设时长,则将所述连续时间段作为所述停留时间区间。3.根据权利要求1所述的方法,其特征在于,所述误差阈值的获取方式包括:接收云端设备下发的群体距离阈值,所述群体距离阈值为所述云端设备基于多个样本数据的轨迹点数据计算得到的距离阈值,每个样本数据包括一个样本设备在样本停留时间区间内的轨迹点数据;基于所述群体距离阈值确定所述误差阈值。4.根据权利要求3所述的方法,其特征在于,所述基于所述群体距离阈值确定所述误差阈值,包括:将所述群体距离阈值作为所述误差阈值;或者,获取所述电子设备在至少一个样本停留时间区间内的轨迹点数据;基于所述至少一个样本停留时间区间内的轨迹点数据,计算个人距离阈值;将所述群体距离阈值与所述个人距离阈值的平均值作为所述误差阈值。5.根据权利要求4所述的方法,其特征在于,所述基于所述至少一个样本停留时间区间内的轨迹点数据,计算个人距离阈值,包括:针对每个样本停留时间区间,基于该样本停留时间区间内的轨迹点数据计算样本中心位置,计算该样本停留区间内的每个轨迹点的位置与所述样本中心位置之间的距离偏差;基于所述至少一个样本停留时间区间内各轨迹点对应的距离偏差,计算得到均值和方差;基于所述均值和所述方差计算对数正态分布的预设分位数,得到所述个人距离阈值,其中,所述至少一个样本停留时间区间内各轨迹点对应的距离偏差符合对数正态分布。6.根据权利要求1所述的方法,其特征在于,所述基于所述多个轨迹点的位置信息,确定所述多个轨迹点的中心位置,包括:基于所述多个轨迹点的位置信息,对所述多个轨迹点进行聚类处理;
确定聚类处理得到的最大簇内包括的各轨迹点;将所述最大簇内包括的各轨迹点的平均位置作为所述多个轨迹点的中心位置。7.根据权利要求1所述的方法,其特征在于,所述基于所述异常轨迹点前后各指定数量的非异常轨迹点的位置信息,修改所述异常轨迹点的位置信息,包括:获取所述异常轨迹点之前指定数量的非异常轨迹点的位置信息,以及所述异常轨迹点之后指定数量的非异常轨迹点的位置信息;计算获取到的非异常轨迹点的位置信息的平均位置信息;将所述异常轨迹点的位置信息修改为所述平均位置信息。8.一种电子设备,其特征在于,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行权利要求1-7任一项所述的方法。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1-7中任意一项所述的方法。10.一种计算机程序产品,其特征在于,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行权利要求1-7中任意一项所述的方法。
技术总结
本申请实施例提供了一种轨迹点处理方法、电子设备及存储介质,涉及数据处理技术领域,该方法应用于电子设备,该方法包括:基于电子设备的运动状态,确定电子设备在指定时间段内的停留时间区间,然后获取在所述停留时间区间内采集到的轨迹点数据,其中轨迹点数据包括按采集时间顺序排列的多个轨迹点的位置信息。之后基于多个轨迹点的位置信息,确定多个轨迹点的中心位置,并将多个轨迹点中,与中心位置之间的距离大于误差阈值的轨迹点作为异常轨迹点。再基于异常轨迹点前后各指定数量的非异常轨迹点的位置信息,修改异常轨迹点的位置信息。实现了提高轨迹点数据的准确性。实现了提高轨迹点数据的准确性。实现了提高轨迹点数据的准确性。
技术研发人员:朱廷锴 朱静涛 陈天辉 孙井川
受保护的技术使用者:荣耀终端有限公司
技术研发日:2023.06.08
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
