轨迹确定方法、装置及设备、存储介质与流程

文档序号:24640416发布日期:2021-04-09 20:53阅读:68来源:国知局
轨迹确定方法、装置及设备、存储介质与流程

本发明涉及安防技术领域,尤其涉及的是一种轨迹确定方法、装置及设备、存储介质。



背景技术:

当前面临的问题是,在城市级规模下,在数以万计的感知数据背景下,如何利用视频及其他感知数据来回溯车辆等对象在物理世界中的行动轨迹及其之上的行为模式分析,从而挖掘出其中一些有用的信息。

相关轨迹确定方式中,主要基于对象上报(比如车辆通过gps上报)的gps数据来确定对象的轨迹,在无法采集到gps数据的场景中,无法通过上述方式来确定对象的轨迹,因此上述轨迹确定方式只能局限于gps数据采集场景中,应用场景较为局限。



技术实现要素:

有鉴于此,本发明提供一种轨迹确定方法、装置及设备、存储介质,可用采集设备的位置信息来确定对象轨迹,无需采集gps数据。

本发明第一方面提供一种轨迹确定方法,包括:

从不同采集设备获取数据属性,所述数据属性至少包括:采集设备的位置信息,采集设备采集的对象的对象标识id和采集到对象的时间戳;

将所述数据属性存储到第一数据库表中;

在需生成轨迹时,确定查找数据属性所需的时间段t1,从所述第一数据库表中查找时间戳处于该时间段t1的数据属性,从查找到的数据属性中找出包含同一对象id的数据属性,按照时间戳将找出的数据属性中的位置信息进行排序得到对象轨迹。

根据本发明的一个实施例,将所述数据属性存储到第一数据库表中,包括:

依据所述数据属性中的时间戳将所述数据属性存储到所述第一数据库表中与该时间戳所处时间段对应的目标分区中。

根据本发明的一个实施例,依据所述数据属性中的时间戳将所述数据属性存储到所述第一数据库表中与该时间戳所处时间段对应的目标分区中,包括:

依据所述数据属性中的时间戳与获取的哈希码确定数据属性的数据标识;

将所述第一数据库表中与所述数据属性的数据标识对应的分区确定为目标分区;

将所述数据属性与数据标识关联存储到所述目标分区中。

根据本发明的一个实施例,按照时间戳将找出的数据属性中的位置信息进行排序得到对象轨迹之后,该方法还包括:

为所述对象轨迹分配对应的轨迹标识;

将所述对象轨迹存储到第二数据库表中,并在指定搜索引擎集群中为所述轨迹标识建立对应的索引。

根据本发明的一个实施例,该方法还包括:

接收外部输入的查询条件;

依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引,依据所述目标索引对应的轨迹标识在所述第二数据库表中查找该轨迹标识对应的对象轨迹;

从查找出的对象轨迹中获取满足查询条件的目标对象轨迹。

根据本发明的一个实施例,

所述索引包括:对象轨迹上各位置信息所在数据属性中最大时间戳和最小时间戳、以及对象id;

所述指定搜索引擎集群中包括至少两个索引存储段,每个索引存储段具有对应的时间段,每个索引存储段存储的索引中的最大时间戳和最小时间戳均处于该索引存储段对应的时间段内;

所述查询条件至少包括:目标对象id、目标时间段;

依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引,包括:

依据所述目标时间段从所述指定搜索引擎集群中查询出目标索引存储段,所述目标索引存储段对应的时间段与所述目标时间段存在交集;

查找所述目标索引存储段中包含所述目标对象id的索引;

针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

根据本发明的一个实施例,

所述索引包括:对象轨迹上各位置信息所在数据属性中最大时间戳和最小时间戳、以及对象id;

所述查询条件至少包括:目标对象id、目标时间段;

依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引,包括:

查找所述指定搜索引擎集群中包含目标对象id的索引;

针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

根据本发明的一个实施例,

所述查询条件至少包括:目标对象id、目标时间段;

从查找出的对象轨迹中获取满足查询条件的目标对象轨迹,包括:

检查查找出的对象轨迹的数量是否为两个以上;

如果是,如果查找出的对象轨迹中存在同一目标对象id对应的至少两个对象轨迹,则对查找出的对象轨迹中同一目标对象id对应的对象轨迹进行拼接,从拼接所得的对象轨迹中截取出第一轨迹段,所述第一轨迹段上各位置信息所在数据属性中的时间戳均处于所述目标时间段内,并将所述第一轨迹段确定为所述目标轨迹。

本发明第二方面提供一种轨迹确定装置,包括:

数据属性获取模块,用于从不同采集设备获取数据属性,所述数据属性至少包括:采集设备的位置信息,采集设备采集的对象的对象标识id和采集到对象的时间戳;

数据属性存储模块,用于将所述数据属性存储到第一数据库表中;

对象轨迹生成模块,用于在需生成轨迹时,确定查找数据属性所需的时间段t1,从所述第一数据库表中查找时间戳处于该时间段t1的数据属性,从查找到的数据属性中找出包含同一对象id的数据属性,按照时间戳将找出的数据属性中的位置信息进行排序得到对象轨迹。

根据本发明的一个实施例,数据属性存储模块将所述数据属性存储到第一数据库表中时,具体用于:

依据所述数据属性中的时间戳将所述数据属性存储到所述第一数据库表中与该时间戳所处时间段对应的目标分区中。

根据本发明的一个实施例,数据属性存储模块依据所述数据属性中的时间戳将所述数据属性存储到所述第一数据库表中与该时间戳所处时间段对应的目标分区中时,具体用于:

依据所述数据属性中的时间戳与获取的哈希码确定数据属性的数据标识;

将所述第一数据库表中与所述数据属性的数据标识对应的分区确定为目标分区;

将所述数据属性与数据标识关联存储到所述目标分区中。

根据本发明的一个实施例,在对象轨迹生成模块之后,该装置还包括:

轨迹标识确定模块,用于为所述对象轨迹分配对应的轨迹标识;

对象轨迹存储模块,用于将所述对象轨迹存储到第二数据库表中,并在指定搜索引擎集群中为所述轨迹标识建立对应的索引。

根据本发明的一个实施例,该装置还包括:

查询条件接收模块,用于接收外部输入的查询条件;

对象轨迹查找模块,用于依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引,依据所述目标索引对应的轨迹标识在所述第二数据库表中查找该轨迹标识对应的对象轨迹;

目标对象轨迹确定模块,用于从查找出的对象轨迹中获取满足查询条件的目标对象轨迹。

根据本发明的一个实施例,

所述索引包括:对象轨迹上各位置信息所在数据属性中最大时间戳和最小时间戳、以及对象id;

所述指定搜索引擎集群中包括至少两个索引存储段,每个索引存储段具有对应的时间段,每个索引存储段存储的索引中的最大时间戳和最小时间戳均处于该索引存储段对应的时间段内;

所述查询条件至少包括:目标对象id、目标时间段;

对象轨迹查找模块依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引时,具体用于:

依据所述目标时间段从所述指定搜索引擎集群中查询出目标索引存储段,所述目标索引存储段对应的时间段与所述目标时间段存在交集;

查找所述目标索引存储段中包含所述目标对象id的索引;

针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

根据本发明的一个实施例,

所述索引包括:对象轨迹上各位置信息所在数据属性中最大时间戳和最小时间戳、以及对象id;

所述查询条件至少包括:目标对象id、目标时间段;

对象轨迹查找模块依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引时,具体用于:

查找所述指定搜索引擎集群中包含目标对象id的索引;

针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

根据本发明的一个实施例,

所述查询条件至少包括:目标对象id、目标时间段;

目标对象轨迹确定模块从查找出的对象轨迹中获取满足查询条件的目标对象轨迹时,具体用于:

检查查找出的对象轨迹的数量是否为两个以上;

如果是,如果查找出的对象轨迹中存在同一目标对象id对应的至少两个对象轨迹,则对查找出的对象轨迹中同一目标对象id对应的对象轨迹进行拼接,从拼接所得的对象轨迹中截取出第一轨迹段,所述第一轨迹段上各位置信息所在数据属性中的时间戳均处于所述目标时间段内,并将所述第一轨迹段确定为所述目标轨迹。

本发明第三方面提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例所述的轨迹确定方法。

本发明第四方面提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如前述实施例所述的轨迹确定方法。

本发明实施例具有以下有益效果:

本发明实施例中,将从不同采集设备获取的数据属性存储在第一数据库表中,在需生成轨迹时,确定查找数据属性所需的时间段t1,可从第一数据库表中查找到时间戳处于该时间段t1的数据属性,对查找到的数据属性中同一对象id的数据属性中的位置信息按照时间戳排序,可得到该对象id对应的对象轨迹,采集设备采集到对象,说明对象路过了该采集设备,所以该采集设备位置信息可视作对象的一个轨迹点,所得的对象id对应的对象轨迹可作为该对象id标识的对象的轨迹,实现了利用采集设备的位置信息来生成对象轨迹,无需采集gps数据,应用场景不受到gps的限制。

附图说明

图1是本发明一实施例的轨迹确定方法的流程示意图;

图2是本发明一实施例的轨迹确定装置的结构框图;

图3是本发明另一实施例的轨迹确定方法的流程示意图;

图4是本发明又一实施例的轨迹确定方法的流程示意图;

图5是本发明一实施例的电子设备的结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种器件,但这些信息不应限于这些术语。这些术语仅用来将同一类型的器件彼此区分开。例如,在不脱离本发明范围的情况下,第一器件也可以被称为第二器件,类似地,第二器件也可以被称为第一器件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了使得本发明的描述更清楚简洁,下面对本发明中的一些技术术语进行解释:

es:全称为elasticsearch,它是一个开源的、实时的分布式搜索及分析引擎,elasticsearch中的索引是非关系型数据库,用于存储数据。

hbase:一个分布式的、面向列的开源非关系型数据库。

region:hbase数据管理的基本单位,即hbase中数据的管理都是以region为单位进行的。

rowkey:hbase中一条数据的唯一标识,即数据的关键字。

spark:专为大规模数据处理而设计的快速通用的计算引擎。

kafka:一种高吞吐量、分布式发布订阅消息系统。

下面对本发明实施例的轨迹确定方法进行更具体的描述,但不应以此为限。

在一个实施例中,参看图1,一种轨迹确定方法,可以包括以下步骤:

s100:从不同采集设备获取数据属性,所述数据属性至少包括:采集设备的位置信息,采集设备采集的对象的对象标识id和采集到对象的时间戳;

s200:将所述数据属性存储到第一数据库表中;

s300:在需生成轨迹时,确定查找数据属性所需的时间段t1,从所述第一数据库表中查找时间戳处于该时间段t1的数据属性,从查找到的数据属性中找出包含同一对象id的数据属性,按照时间戳将找出的数据属性中的位置信息进行排序得到对象轨迹。

本发明实施例的轨迹确定方法的执行主体可以为电子设备,该电子设备可以是计算机设备组成的服务器,计算机设备的性能可根据需要进行配置。当然,电子设备的具体类型不限,只要具有一定的数据处理能力即可。

步骤s100中,从不同采集设备获取数据属性,所述数据属性至少包括:采集设备的位置信息,采集设备采集的对象的对象标识id和采集到对象的时间戳。

采集设备可以包括视频监控设备、人脸抓拍相机、门禁设备等,具体可视应用场景而定。本发明实施例的应用场景比如可以是卡口监控场景中,该场景中,每个卡口都会布置至少一个采集设备,这些采集设备可采集车辆的过车数据,数据属性可从采集的过车数据中提取得到。

不同卡口处的采集设备在卡口监控场景中有固定的点位,所以各个采集设备的位置信息是固定的,可以预先配置在采集设备中。当然,此处的卡口监控场景仅是举例,本发明实施例当然还可以应用在其他包含多个分布在不同点位的采集设备的场景,比如园区等场景中。

在某个采集设备采集到对象时,可确定至少包含该采集设备的位置信息、该采集设备采集的对象的对象id及采集到该对象的时间戳的一条数据属性。采集设备采集到对象,说明该对象在被采集到时正经过该采集设备,对象与采集设备的距离很近,因而可以将该采集设备的位置信息视作该对象的一个轨迹点。

采集设备的位置信息可以用该采集设备在场景中的位置标识来表示,当然也可以直接用地理位置表示,具体不做限定。对象id可以用来标识采集设备采集到的对象,可以是姓名、车牌号码等,具体不限于此。对象可以指人、机动车、非机动车等。时间戳表明对象经过该采集设备的时间。

获取数据属性时,具体可以由kafka来获取不同采集设备采集的数据属性。kafka可以将异构的数据格式化成统一格式的数据属性,而且,由于每天不同时间采集的数据量是不同的,比如白天卡口采集的过车数据很多,而晚上采集的过车数据较少,数据属性缓存在kafka中,可以起到数据缓冲的作用,使得数据可以被慢慢消费。

从kafka中消费数据属性时,可以先对数据属性进行清洗,剔除掉缺少关键信息的数据属性,比如缺少对象id、时间戳、及采集设备位置信息中的任一个属性的数据属性。

步骤s200中,将所述数据属性存储到第一数据库表中。

可以将kafka清洗后保留的具有完整关键信息即对象id、时间戳及位置信息的数据属性,存储到第一数据库表中。

第一数据库表可以是指定分布式数据库集群中的一个表,指定分布式数据库集群可以为hbase。在hbase中存储数据时,每条数据都需具备一个关键字rowkey。因此,在将数据属性存储到第一数据库表中时,可以为数据属性创建一个rowkey,将rowkey与数据属性关联地存储在第一数据库表中,每个rowkey在第一数据库表中是唯一的,具体方式不限。

步骤s300中,在需生成轨迹时,确定查找数据属性所需的时间段t1,从所述第一数据库表中查找时间戳处于该时间段t1的数据属性,从查找到的数据属性中找出包含同一对象id的数据属性,按照时间戳将找出的数据属性中的位置信息进行排序得到对象轨迹。

步骤s300可以由轨迹生成指示触发执行,在收到轨迹生成指示时,确定需生成轨迹。轨迹生成指示可以由用户输入,或者由系统生成。比如,系统可以每天触发一次轨迹生成指示,从而每天执行一次生成轨迹的操作。

时间段t1的确定方式不限,比如,时间段t1可以为当前系统时间所处时间段之前的时间段。可以按周来划分时间段,相应的,时间段t1包括当前系统时间所在周的上周、和/或上上周等。每次确定出的时间段t1的数量及长度可根据需要进行配置。

比如,当前系统时间处于2018-08-30-00到2018-09-06-00这一时间段,可以确定出2018-08-23-00到2018-08-30-00这一时间段作为时间段t1,当然也可以将2018-08-16-00到2018-08-23-00、或2018-08-09-00到2018-08-16-00等这些比2018-08-30-00到2018-09-06-00更早的时间段也作为时间段t1,此处只是举例,并不作为限制。

可选的,在确定出时间段t1时,可以检查该时间段t1是否处于配置文件中的时间范围内,如果是,则继续执行后续步骤,否则,说明时间段超限,可以结束执行。时间范围比如可以是一年的时间范围,系统运行时可调用配置文件读取这一时间范围。

假设配置文件中的时间范围为2018-01-01-00到2019-01-01-00,时间段t1为2018-08-23-00到2018-08-30-00,那么确定时间段t1处于时间范围内,继续执行后续步骤。

针对确定出的每一时间段t1,从所述第一数据库表中查找出时间戳处于该时间段t1的数据属性,比如,如果时间段t1为2018-08-30-00到2018-09-06-00,那么可以从第一数据库表中查找出时间戳处于该2018-08-30-00到2018-09-06-00的数据属性,从查找到的数据属性中找出包含同一对象id的数据属性,按照时间戳将找出的数据属性中的位置信息进行排序得到对象轨迹。排序方式可以是按照时间戳从早到晚的顺序,也可以从晚到早的顺序,具体不限。

同一对象id的数据属性中的采集设备位置信息处于同一条对象轨迹中,采集设备位置信息可以表明对象移动到了靠近该采集设备的位置,所以该对象轨迹即可作为该对象id所标识的对象的轨迹,实现了利用采集设备的位置信息来生成对象轨迹。

此外,由于数据属性是按照时间段来获取的,实现了数据属性在时间上的切分。如果某个对象的轨迹较长,可能会被切分成两段以上(即对象的轨迹是散列的)。如此,可以保证生成的对象轨迹长度不超过指定长度,有利于轨迹的存储。

可选的,步骤s300可以利用spark引擎来实现,可提升数据处理效率。

本发明实施例中,将从不同采集设备获取的数据属性存储在第一数据库表中,在需生成轨迹时,确定查找数据属性所需的时间段t1,可从第一数据库表中查找到时间戳处于该时间段t1的数据属性,对查找到的数据属性中同一对象id的数据属性中的位置信息按照时间戳排序,可得到该对象id对应的对象轨迹,采集设备采集到对象,说明对象路过了该采集设备,所以该采集设备位置信息可视作对象的一个轨迹点,所得的对象id对应的对象轨迹可作为该对象id标识的对象的轨迹,实现了利用采集设备的位置信息来生成对象轨迹,无需采集gps数据,应用场景不受到gps的限制。

在一个实施例中,上述方法流程可由轨迹确定装置执行,如图2所示,轨迹确定装置100主要包含3个模块:数据属性获取模块101,数据属性存储模块102和对象轨迹生成模块103。数据属性获取模块101用于执行上述步骤s100,数据属性存储模块102用于执行上述步骤s200,对象轨迹生成模块103用于执行上述步骤s300。

在一个实施例中,步骤s200中,将所述数据属性存储到第一数据库表中,包括:

依据所述数据属性中的时间戳将所述数据属性存储到所述第一数据库表中与该时间戳所处时间段对应的目标分区中。

因为第一数据库表中存储的数据量有可能会很大,本实施例中,将第一数据库表中的分区(region)按时间段进行了划分,这样,所有的数据属性可以由多个时间段对应的分区进行分担。

每个分区可以对应于一个时间段,当然可以有两个以上分区对应于同一时间段。优选的,第一数据库表中的分区可以按月进行划分,每个月可以对应多个分区,每个分区的大小比如在10gb左右。如此,可由多个分区存储对应一个月的数据。

本实施例中,在存储数据属性时,可以将数据属性存储到第一数据库表中与数据属性中的时间戳所处时间段对应的目标分区中,如此,不同时间段的数据属性可以按照时间段分布存储在不同的分区,在需要数据属性时,可以到相应时间段对应的分区中查找,无需遍历整个第一数据库表。

在一个实施例中,依据所述数据属性中的时间戳将所述数据属性存储到所述第一数据库表中与该时间戳所处时间段对应的目标分区中,包括:

s201:依据所述数据属性中的时间戳与获取的哈希码确定数据属性的数据标识;

s202:将所述第一数据库表中与所述数据属性的数据标识对应的分区确定为目标分区;

s203:将所述数据属性与数据标识关联存储到所述目标分区中。

在存储数据属性时,先为数据属性确定一个数据标识,该数据标识作为第一数据库表中该数据属性的关键字。确定数据属性的数据标识后,可以将数据属性和数据标识发送给指定分布式数据库集群,以由指定分布式数据库集群将所述第一数据库表中与所述数据属性的数据标识对应的分区确定为目标分区,将所述数据属性与数据标识关联存储到所述目标分区中。

第一数据库表中每个时间段可以对应至少两个分区,依据数据标识中的时间戳可以确定出该时间戳所处时间段对应的至少两个分区,根据哈希码则可以从这两个分区中确定出一个目标分区,由此,可依据数据属性的数据标识确定唯一的一个目标分区。

数据属性的数据标识可以由数据属性中时间戳的指定字段内容与获取的哈希码组成,当然还可以包括其他内容。优选的,指定字段内容可以包括年份字段内容和月份字段内容,获取的哈希码可以由哈希码算法随机生成。

相应的,将所述第一数据库表中与所述数据属性的数据标识对应的分区确定为目标分区时,可以将第一数据库表中与数据属性的数据标识中的指定字段内容对应的分区确定为目标分区,将数据属性与数据标识关联存储到该指定字段内容对应的目标分区中。如此,同一年同一月获取的数据属性可以随机存储到该年该月对应的几个分区中的一个分区中。

本实施例中,在设计数据属性的数据标识时,可以设置多位哈希码。每次存储数据属性时,可从已设置的哈希码中随机获取一个哈希码来生成该数据属性的数据标识,这样就可以让一个月的数据属性随机分散到该月对应的多个分区中,有利于整个集群的负载均衡。

在一个实施例中,参看图3,按照时间戳将找出的数据属性中的位置信息进行排序得到对象轨迹之后,该方法还包括以下步骤:

s400:为所述对象轨迹分配对应的轨迹标识;

s500:将所述对象轨迹存储到第二数据库表中,并在指定搜索引擎集群中为所述轨迹标识建立对应的索引。

第二数据库表可以是指定分布式数据库集群中的另一个表,指定分布式数据库集群可以为hbase。在hbase中存储数据时,每条数据都需具备一个关键字rowkey。因此,在将对象轨迹存储到第二数据库表中时,可以为对象轨迹分配一个轨迹标识作为其rowkey。

轨迹标识具体形式和内容不限,能够唯一标识该对象轨迹即可,将对象轨迹存储到第二数据库表中时,可以将对象轨迹和分配的轨迹标识关联地存储到第二数据库表中。

由于第二数据库表中存储的是利用第一数据库表中数据属性生成的对象轨迹,所以第二数据库表相比于第一数据库表来说,存储的数据条数更少一些,减少了外部查询所需的查询量,提升轨迹检索效率。

由于步骤s300中生成对象轨迹所用的是时间戳处于时间段t1内的数据属性,而在一时间段t1内对象轨迹可能并不完整,所以,第二数据库表中存储的对象轨迹可能是散列的,如果查找出至少两个同一对象id对应的散列对象轨迹,可以将同一对象id对应的散列对象轨迹进行拼接。

将所述对象轨迹存储到第二数据库表中时,还在指定搜索引擎集群中为对象轨迹的轨迹标识建立对应的索引,指定搜索引擎集群比如为es。如此,在用户需要查询轨迹时,可以在指定搜索引擎集群中先查找索引,根据查找出的索引对应的轨迹标识从第二数据库表中获取轨迹标识对应的对象轨迹。

本实施例中,指定分布式数据库集群的第二数据库表中分时间段存储了对象轨迹,在需要查询对象轨迹时,可以从第二数据库表中已有的对象轨迹中查找获取,而不用从第一数据库表中获取数据属性来生成,可减少数据查询量,提升对象轨迹的查询效率,并且,由于指定分布式数据库集群的分布式特性,无论大数据量还是小数据量的场景都可适用,可扩展性和容错性较好。

此外,还在指定搜索引擎集群中为第二数据库表中对象轨迹的轨迹标识建立了对应的索引。如此,可先在指定搜索引擎集群中查找出需要的索引,根据索引对应的轨迹标识即可从第二数据库表中获取对应对象轨迹,相比于将索引等信息放在内存中并在内存中查找需要的索引的方式而言,第二数据库表中可容纳的数据量更大,且检索性能不会受到内存的限制,可实现海量轨迹数据的存储及快速检索,进可为后续的数据挖掘等应用做铺垫。

在一个实施例中,参看图4,该轨迹确定方法还包括以下步骤:

s600:接收外部输入的查询条件;

s700:依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引,依据所述目标索引对应的轨迹标识在所述第二数据库表中查找该轨迹标识对应的对象轨迹;

s800:从查找出的对象轨迹中获取满足查询条件的目标对象轨迹。

查询条件可以是用户输入的。可选的,可以接收用户输入的用于请求查找目标对象轨迹的查询请求,该查询条件可以携带在查询请求中。

查询条件可用于查询对象轨迹,具体包含的信息可根据需要设置,比如,如果希望查找出某个对象在某段时间内的轨迹,那么可以设置为该对象的对象标识、及所需的时间段;如果要查找出某个对象所有的轨迹,那么可以设置为该对象的对象标识;如果要查找出某段时间内所有对象的轨迹,那么可以设置为所需的时间段,等等。

本实施例中,虽然查询条件是用来查找目标对象轨迹的,但是在查找索引时的依据也是该查询条件。可以将查询条件发送给指定搜索引擎集群,由指定搜索引擎集群在本地搜索出满足所述查询条件的目标索引。

在查询过程中,先依据查询条件从指定搜索引擎集群中查询出满足所述查询条件的目标索引,再依据目标索引对应的轨迹标识在所述第二数据库表中获取该轨迹标识对应的对象轨迹。

基于前述实施例中的描述,第二数据库表中存储的对象轨迹是按照时间段划分的,查找到的对象轨迹可能并不直接就是目标对象轨迹。一种情况下,查找到的所有对象轨迹可能是对象在几个短时间段内的散列对象轨迹,而需要的是对象在较长时间段内的对象轨迹;另一种情况下,查找出的对象轨迹包含了多余的轨迹点;当然,也有可能同时发生上述两种情况。

因此,需要从查找出的对象轨迹中获取满足查询条件的目标对象轨迹,比如,可对查找出的对象轨迹进行拼接、截取等处理,以获取所需的目标对象轨迹。

本实施例中,由于索引存储在指定搜索引擎集群中,所以在查询时,在指定搜索引擎集群中查找目标索引即可,利用了指定搜索引擎集群的存储容量大、搜索速度快的特点,提升了索引的查询速度、及数量,可实现海量轨迹相关数据的存储及快速检索。

在一个实施例中,所述索引包括:对象轨迹上各位置信息所在数据属性中最大时间戳和最小时间戳、以及对象id。该最大时间戳即对象轨迹上各位置信息所在数据属性中的时间戳中的最大时间戳,该最小时间戳即对象轨迹上各位置信息所在数据属性中的时间戳中的最小时间戳。

所述指定搜索引擎集群中包括至少两个索引存储段,每个索引存储段具有对应的时间段,每个索引存储段存储的索引中的最大时间戳和最小时间戳均处于该索引存储段对应的时间段内。

所述查询条件至少包括:目标对象id、目标时间段。

步骤s700中,依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引,包括:

s701:依据所述目标时间段从所述指定搜索引擎集群中查询出目标索引存储段,所述目标索引存储段对应的时间段与所述目标时间段存在交集;

s702:查找所述目标索引存储段中包含所述目标对象id的索引;

s703:针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

为了防止指定搜索引擎集群因数据过多导致索引查询性能下降的问题,可以每一段时间比如7天建立一个新的索引存储段,将最新的索引存储到新的索引存储段中,每个索引存储段可以存储一周内获取到的索引,这样能最大限度地存储数据并提升性能。

步骤s701中,可以依据查询条件中的目标时间段,从指定搜索引擎集群中查询出与该目标时间段存在交集的时间段对应的索引存储段,查询出的索引存储段即为目标索引存储段。

查询出的目标索引存储段对应的时间段与目标时间段存在交集,保证轨迹的查全率。比如,目标时间段为2018-08-28-00到2018-09-05-00,那么,可以查询出的时间段为2018-08-24-00到2018-08-30-00、及2018-08-30-00到2018-09-06-00对应的目标索引存储段。需要在时间段为2018-08-24-00到2018-08-30-00、及2018-08-30-00到2018-09-06-00分别对应的目标索引存储段中查询出目标索引。

步骤s702中,查找所述目标索引存储段中包含所述目标对象id的索引。每个索引中包含对象id,可以遍历目标索引存储段中的索引,检查该遍历到的索引中的对象id是否为查询条件中的目标对象id,如果是,那么该索引为步骤s702中需要查找的索引。

由于在步骤s701中,查找出的是与查询条件中目标时间段存在交集的时间段对应的目标索引存储段,所以从目标索引存储段中查询出的包含所述目标对象id的索引并非都满足查询条件,需要进一步进行筛选。

步骤s703中,针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

如此,可以从目标索引存储段中找出包含目标对象id且包含的最大时间戳和/或最小时间戳处于目标时间段内的目标索引。当然,具体最大时间戳处于目标时间段,还是最小时间戳处于目标时间段,还是最大时间戳和最小时间戳都需要处于目标时间段,可以根据需要确定,具体不作为限制。

本实施例中,在所述指定搜索引擎集群中划分了至少两个索引存储段,每个索引存储段具有对应的时间段,可以将索引分时间段进行存储。如此,在查询索引时,可先确定目标索引存储段,只需遍历目标索引存储段中的索引即可找出目标索引,无需遍历指定搜索引擎集群中的所有索引,提升索引查询性能。

在一个实施例中,所述索引包括:对象轨迹上各位置信息所在数据属性中最大时间戳和最小时间戳、以及对象id。该最大时间戳即对象轨迹上各位置信息所在数据属性中的时间戳中的最大时间戳,该最小时间戳即对象轨迹上各位置信息所在数据属性中的时间戳中的最小时间戳。

所述查询条件至少包括:目标对象id、目标时间段。

步骤s700中,依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引,包括:

s704:查找所述指定搜索引擎集群中包含目标对象id的索引;

s705:针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

本实施例中,与前述实施例不同的是,指定搜索引擎集群不进行索引存储段的划分,直接从指定搜索引擎集群找出包含目标对象id且包含的最大时间戳和/或最小时间戳处于目标时间段内的目标索引。其余相同或相似之处在此不再赘述。

在一个实施例中,所述查询条件至少包括:目标对象id、目标时间段;

步骤s800中,从查找出的对象轨迹中获取满足查询条件的目标对象轨迹,包括:

s801:检查查找出的对象轨迹的数量是否为两个以上;

s802:若是,如果查找出的对象轨迹中存在同一目标对象id对应的至少两个对象轨迹,则对查找出的对象轨迹中同一目标对象id对应的对象轨迹进行拼接,从拼接所得的对象轨迹中截取出第一轨迹段,所述第一轨迹段上各位置信息所在数据属性中的时间戳均处于所述目标时间段内,并将所述第一轨迹段确定为所述目标轨迹。

如果查找出两个以上对象轨迹,说明有可能存在同一对象的两个以上散列对象轨迹,因而,可以检查查找出的对象轨迹中是否存在同一目标对象id对应的至少两个对象轨迹,如果是,则将查找出的对象轨迹中同一目标对象id对应的对象轨迹进行拼接,再依据查询条件中的目标时间段从拼接所得的对象轨迹中截取出第一轨迹段,所述第一轨迹段上各位置信息所在数据属性中的时间戳均处于所述目标时间段内,将所述第一轨迹段确定为所述目标轨迹,得到满足查询条件的目标轨迹。

拼接时,可以将包含的位置信息所在数据属性中的时间戳较早的排在包含的位置信息所在数据属性中的时间戳较晚的后面实现拼接,保证拼接所得的对象轨迹上各位置信息在时间上的连续性。

当然,如果查找出两个以上对象轨迹中不存在同一目标对象id对应的对象轨迹,或者如果仅仅查找出一个对象轨迹,那么无需进行拼接,可以从查找出的对象轨迹中截取出第二轨迹段,所述第二轨迹段上各位置信息所在数据属性中的时间戳均处于所述目标时间段内,将所述第二轨迹段确定为所述目标轨迹。

本发明还提供一种轨迹确定装置,在一个实施例中,参看图2,该轨迹确定装置100包括:

数据属性获取模块101,用于从不同采集设备获取数据属性,所述数据属性至少包括:采集设备的位置信息,采集设备采集的对象的对象标识id和采集到对象的时间戳;

数据属性存储模块102,用于将所述数据属性存储到第一数据库表中;

对象轨迹生成模块103,用于在需生成轨迹时,确定查找数据属性所需的时间段t1,从所述第一数据库表中查找时间戳处于该时间段t1的数据属性,从查找到的数据属性中找出包含同一对象id的数据属性,按照时间戳将找出的数据属性中的位置信息进行排序得到对象轨迹。

在一个实施例中,数据属性存储模块将所述数据属性存储到第一数据库表中时,具体用于:

依据所述数据属性中的时间戳将所述数据属性存储到所述第一数据库表中与该时间戳所处时间段对应的目标分区中。

在一个实施例中,数据属性存储模块依据所述数据属性中的时间戳将所述数据属性存储到所述第一数据库表中与该时间戳所处时间段对应的目标分区中时,具体用于:

依据所述数据属性中的时间戳与获取的哈希码确定数据属性的数据标识;

将所述第一数据库表中与所述数据属性的数据标识对应的分区确定为目标分区;

将所述数据属性与数据标识关联存储到所述目标分区中。

在一个实施例中,在对象轨迹生成模块之后,该装置还包括:

轨迹标识确定模块,用于为所述对象轨迹分配对应的轨迹标识;

对象轨迹存储模块,用于将所述对象轨迹存储到第二数据库表中,并在指定搜索引擎集群中为所述轨迹标识建立对应的索引。

在一个实施例中,该装置还包括:

查询条件接收模块,用于接收外部输入的查询条件;

对象轨迹查找模块,用于依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引,依据所述目标索引对应的轨迹标识在所述第二数据库表中查找该轨迹标识对应的对象轨迹;

目标对象轨迹确定模块,用于从查找出的对象轨迹中获取满足查询条件的目标对象轨迹。

在一个实施例中,

所述索引包括:对象轨迹上各位置信息所在数据属性中最大时间戳和最小时间戳、以及对象id;

所述指定搜索引擎集群中包括至少两个索引存储段,每个索引存储段具有对应的时间段,每个索引存储段存储的索引中的最大时间戳和最小时间戳均处于该索引存储段对应的时间段内;

所述查询条件至少包括:目标对象id、目标时间段;

对象轨迹查找模块依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引时,具体用于:

依据所述目标时间段从所述指定搜索引擎集群中查询出目标索引存储段,所述目标索引存储段对应的时间段与所述目标时间段存在交集;

查找所述目标索引存储段中包含所述目标对象id的索引;

针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

在一个实施例中,

所述索引包括:对象轨迹上各位置信息所在数据属性中最大时间戳和最小时间戳、以及对象id;

所述查询条件至少包括:目标对象id、目标时间段;

对象轨迹查找模块依据所述查询条件从所述指定搜索引擎集群中查询出满足所述查询条件的目标索引时,具体用于:

查找所述指定搜索引擎集群中包含目标对象id的索引;

针对每一查找出的索引,检查该索引中的最大时间戳和/或最小时间戳是否处于所述目标时间段内,若是,则该索引为目标索引。

在一个实施例中,

所述查询条件至少包括:目标对象id、目标时间段;

目标对象轨迹确定模块从查找出的对象轨迹中获取满足查询条件的目标对象轨迹时,具体用于:

检查查找出的对象轨迹的数量是否为两个以上;

如果是,如果查找出的对象轨迹中存在同一目标对象id对应的至少两个对象轨迹,则对查找出的对象轨迹中同一目标对象id对应的对象轨迹进行拼接,从拼接所得的对象轨迹中截取出第一轨迹段,所述第一轨迹段上各位置信息所在数据属性中的时间戳均处于所述目标时间段内,并将所述第一轨迹段确定为所述目标轨迹。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。

本发明还提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例中所述的轨迹确定方法。

本发明轨迹确定装置的实施例可以应用在电子设备上。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,图5是本发明根据一示例性实施例示出的轨迹确定装置100所在电子设备的一种硬件结构图,除了图5所示的处理器510、内存530、接口520、以及非易失性存储器540之外,实施例中装置100所在的电子设备通常根据该电子采集设备的实际功能,还可以包括其他硬件,对此不再赘述。

本发明还提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如前述实施例中任意一项所述的轨迹确定方法。

本发明可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。机器可读存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。机器可读存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1