CN111476616B - 轨迹确定方法、装置、电子设备及计算机存储介质 - Google Patents
轨迹确定方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN111476616B CN111476616B CN202010588851.8A CN202010588851A CN111476616B CN 111476616 B CN111476616 B CN 111476616B CN 202010588851 A CN202010588851 A CN 202010588851A CN 111476616 B CN111476616 B CN 111476616B
- Authority
- CN
- China
- Prior art keywords
- activity
- track
- tracks
- matrix
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 230000000694 effects Effects 0.000 claims abstract description 427
- 239000011159 matrix material Substances 0.000 claims description 281
- 238000012545 processing Methods 0.000 claims description 42
- 238000004422 calculation algorithm Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 17
- 238000004364 calculation method Methods 0.000 description 34
- 238000005516 engineering process Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 210000001072 colon Anatomy 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 101000762967 Homo sapiens Lymphokine-activated killer T-cell-originated protein kinase Proteins 0.000 description 3
- 102100026753 Lymphokine-activated killer T-cell-originated protein kinase Human genes 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 102100024607 DNA topoisomerase 1 Human genes 0.000 description 2
- 101000830681 Homo sapiens DNA topoisomerase 1 Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Game Theory and Decision Science (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Evolutionary Computation (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例涉及人工智能技术领域,公开了一种轨迹确定方法、装置、电子设备及计算机存储介质,包括:检测到预定时间到达时,根据第一对应关系确定第一时间段,根据第二对应关系确定第二时间段,其中,第一对应关系是预定时间与第一时间段之间的关系,第二对应关系是预定时间与第二时间段之间的关系,第一时间段为第二时间段中的至少部分时间段;获取目标对象在第一时间段内处于第一活动区域中的第一数量的第一活动轨迹,获取目标对象在第二时间段内处于第二活动区域中的第二数量的第二活动轨迹,第一活动区域为第二活动区域内的部分区域;基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
Description
技术领域
本申请实施例涉及人工智能技术领域,具体而言,本申请涉及一种轨迹确定方法、装置、电子设备及计算机存储介质。
背景技术
随着现代信息社会的发展,城市生活逐渐加快,功能齐全、货源完备的智慧零售商场逐渐取代了传统的百货商场,成为城市人们消费的重要场所。为便于智慧零售商场根据顾客游逛行为制定更为合理的经营决策,通常需要对顾客游逛轨迹进行分析,其中,AI(Artificial Intelligence,人工智能)技术目前在智慧零售领域有着广泛的应用,且有很大一部分是应用于智慧零售这一商场场景的推广环节和落地环节中,可以基于AI技术来确定进出店顾客在整个智慧零售商场中的游逛轨迹。
发明内容
本申请实施例的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
一方面,提供了一种轨迹确定方法,包括:
检测到预定时间到达时,根据第一对应关系确定第一时间段,并根据第二对应关系确定第二时间段,其中,第一对应关系是预定时间与第一时间段之间的关系,第二对应关系是预定时间与第二时间段之间的关系,第一时间段为第二时间段中的至少部分时间段;
获取目标对象在第一时间段内处于第一活动区域中的第一数量的第一活动轨迹,并获取目标对象在第二时间段内处于第二活动区域中的第二数量的第二活动轨迹,第一活动区域为第二活动区域内的部分区域;
基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
一方面,提供了一种轨迹确定装置,包括:
第一确定模块,用于检测到预定时间到达时,根据第一对应关系确定第一时间段,并根据第二对应关系确定第二时间段,其中,第一对应关系是预定时间与第一时间段之间的关系,第二对应关系是预定时间与第二时间段之间的关系,第一时间段为第二时间段中的至少部分时间段;
获取模块,用于获取目标对象在第一时间段内处于第一活动区域中的第一数量的第一活动轨迹,并获取目标对象在第二时间段内处于第二活动区域中的第二数量的第二活动轨迹,第一活动区域为第二活动区域内的部分区域;
第二确定模块,用于基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
在一种可能的实现方式中,第二确定模块用于:
根据预定聚类算法,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇,每个聚类簇包括至少一个第一活动轨迹;
针对每个聚类簇,在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在一种可能的实现方式中,预定聚类算法包括Rank-Order距离聚类算法;第二确定模块在根据预定聚类算法,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇时,用于:
对第一轨迹特征矩阵进行矩阵自相乘运算,得到第一余弦距离矩阵,第一轨迹特征矩阵是根据第一数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵;
通过Rank-Order距离聚类算法,根据第一余弦距离矩阵,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇。
在一种可能的实现方式中,第二确定模块在对第一轨迹特征矩阵进行矩阵自相乘运算,得到第一余弦距离矩阵时,用于:
将第一数量的第一活动轨迹划分为第三数量的组别,每一组别包括第四数量的第一活动轨迹,第四数量为第一数量与第三数量的比值;
通过多个图形处理器GPU线程并行对第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵,并将第三数量的第二余弦距离矩阵确定为第一余弦距离矩阵,每个组别的第二轨迹特征矩阵是根据每个组别中第四数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵,每个组别的第二轨迹特征矩阵通过至少一个GPU线程进行矩阵自相乘运算。
在一种可能的实现方式中,第二确定模块在通过多个图形处理器GPU线程并行对第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵时,用于:
针对每个组别,将每个组别的第二轨迹特征矩阵划分为第五数量的分块矩阵;
通过多个GPU线程并行对第五数量的分块矩阵分别进行矩阵自相乘运算,得到第五数量的分块余弦距离矩阵,并将第五数量的分块余弦距离矩阵确定为每个组别的第二余弦距离矩阵,每个分块矩阵通过至少一个GPU线程进行矩阵自相乘运算。
在一种可能的实现方式中,第二确定模块在通过Rank-Order距离聚类算法,根据第一余弦距离矩阵,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类时,用于:
通过Rank-Order距离聚类算法,根据每个第二余弦距离矩阵,对每个第二余弦距离矩阵对应的第四数量的第一活动轨迹进行聚类处理,得到至少一个临时聚类簇;
对第三数量的第二余弦距离矩阵分别对应的至少一个临时聚类簇进行合并处理,得到至少一个聚类簇。
在一种可能的实现方式中,第二确定模块在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹时,用于:
将第三轨迹特征矩阵与第四轨迹特征矩阵进行乘法运算,得到结果矩阵,第三轨迹特征矩阵是根据每个聚类簇包括的至少一个第一活动轨迹的轨迹特征得到的轨迹特征矩阵,第四轨迹特征矩阵是根据第二数量的第二活动轨迹的轨迹特征得到的轨迹特征矩阵,结果矩阵中的值为每个聚类簇包括的至少一个第一活动轨迹分别与第二数量的第二活动轨迹之间的余弦相似度;
根据结果矩阵,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在一种可能的实现方式中,第二确定模块在根据结果矩阵,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹时,用于:
根据结果矩阵,确定每个第一活动轨迹对应的各个余弦相似度中的最大余弦相似度;
从至少一个第一活动轨迹分别对应的最大余弦相似度中确定最大的K个最大值,并将K个最大值分别对应的第二活动轨迹确定为每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在一种可能的实现方式中,第二确定模块用于:
对第二数量的第二活动轨迹进行区域划分处理,得到多个子活动区域,每个子活动区域包括至少一个第二活动轨迹;
针对每个子活动区域,基于每个子活动区域包括的至少一个第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的轨迹确定方法。
一方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的轨迹确定方法。
本申请实施例提供的轨迹确定方法,当预定时间到达时,触发基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹的计算任务,从而无需每当接收到一个第一活动轨迹,就确定其对应的目标第二活动轨迹,大大降低与实时性检索任务在计算资源方面的竞争;另外,第二数量的第二活动轨迹是根据预定时间从全部第二活动轨迹中获取的一小部分,第一数量的第一活动轨迹也是根据预定时间从全部第一活动轨迹中获取的一小部分,计算量相对较小,从而可以尽可能快的完成活动轨迹的计算任务,尽量避免对计算资源的长时间占用;此外,第一时间段为第二时间段中的至少部分时间段,使得第二时间段可以尽可能多地覆盖第一时间窗口,从而扩大可供查询的第二活动轨迹的范围。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例的轨迹确定方法的流程示意图;
图2为本申请实施例的轨迹确定方法的处理过程示意图;
图3为本申请实施例的聚类过程示意图;
图4为本申请实施例的轨迹检索示意图;
图5为本申请实施例的分区域进行轨迹检索的架构图;
图6为本申请实施例的轨迹确定方法的总体过程的示意图;
图7为本申请实施例的轨迹确定装置的基本结构示意图;
图8为本申请实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
人工智能(Artificial Intelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision, CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing )、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(NetworkStorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请实施例的技术方案以及本申请实施例的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
为了更好的理解及说明本申请实施例的方案,下面对本申请实施例中所涉及到的一些技术用语进行简单说明。
1:N人体轨迹检索:在大规模人体轨迹数据库中找出与待检索人体轨迹相似度最高的一个或多个人体轨迹。
CV:Computer Vision,计算机视觉;
AI:Artificial Intelligence,人工智能;
Reid:Person Re-identification,行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术,广泛被认为是一个图像检索的子问题,可以根据给定的一个监控行人图像,检索跨设备下的该行人图像;
CPU:Central Processing Unit,中央处理器;
GPU Graphics Processing Unit,图形处理器;
VPU:Video Processing Unit,视频处理单元;
CUDA:Compute Unified Device Architecture,是显卡厂商NVDIA推出的在其GeForce/Tesla/Quadro系列GPU产品上做视频计算的底层库,CUBLAS是CUDA标准的线代库,支持矩阵乘法等运算的高效计算;
Rank-Order距离聚类算法:一种高效的聚类算法,其基本思想是利用两个样本节点共享的近邻点信息,提高距离度量的可靠性。
本申请一个实施例提供了一种轨迹确定方法,该方法由计算机设备执行,该计算机设备可以是终端或者服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。如图1所示,该方法包括:
步骤S110,检测到预定时间到达时,根据第一对应关系确定第一时间段,并根据第二对应关系确定第二时间段,其中,第一对应关系是预定时间与第一时间段之间的关系,第二对应关系是预定时间与第二时间段之间的关系,第一时间段为第二时间段中的至少部分时间段;步骤S120,获取目标对象在第一时间段内处于第一活动区域中的第一数量的第一活动轨迹,并获取目标对象在第二时间段内处于第二活动区域中的第二数量的第二活动轨迹,第一活动区域为第二活动区域内的部分区域;步骤S130,基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
预定时间是根据实际需要预先设定的具体时间点,例如预定时间可以为一天中的各个整点,即1点、2点、3点、…、24点等,又例如预定时间可以为一天中的各个半点,即1点30分、2点30分、…、23点30分等,当然,预定时间也可以是其它的具体时间点,本申请实施例不对其作限制。其中,为了便于描述,可以将预定时间记作t0。
在实际应用中,可以根据需要预先设定预定时间与目标对象的第一活动轨迹的时间窗口(即第一时间段)之间的对应关系(即第一对应关系),比如设定预定时间与第一时间段之间的对应关系为:第一时间段为[t0-N1,t0-N2],即第一时间段为t0-N1点至t0-N2点的时间段,其中,N1大于N2,且N1与N2均为小于t0的自然数。在一个示例中,假如t0为12点,N1为2,N2为1,则第一时间段为[10,11],即第一时间段为10点至11点的时间段。在又一示例中,假如t0为14点,N1为2.5,N2为0.5,则第一时间段为[11.5,13.5],即第一时间段为11点30分至13点30分的时间段。
同样地,在实际应用中,可以根据需要预先设定预定时间与目标对象的第二活动轨迹的时间窗口(即第二时间段)之间的对应关系(即第二对应关系),其中,为了确保后续可以广泛地基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹,需要将第二时间段设定为不小于第一时间段的时间段,即第一时间段是第二时间段中的至少部分时间段,以确保第二时间段尽可能多地覆盖第一时间段,从而扩大第二活动轨迹的范围。比如设定预定时间与第二时间段之间的对应关系为:第二时间段为[t0-N3,t0],N3为不小于N1的自然数。在一个示例中,假如t0为12点,N3为4,则第二时间段为[8,12],即第二时间段为8点至12点的时间段。
在实际场景中,可以通过相应的捕捉设备捕捉目标对象的活动轨迹,为了便于描述,将目标对象在第一活动区域的活动轨迹记作第一活动轨迹,将目标对象在第二活动区域的活动轨迹记作第二活动轨迹,其中,第一活动区域为第二活动区域中的部分区域。以智慧零售商场为例,第一活动区域可以是智慧零售商场中的各个零售店铺所在区域,第二活动区域可以是智慧零售商场中的中庭、楼层、大堂、公用门厅、走廊及楼梯间等公共区域。需要说明的是,目标对象可以是人、动物及智能机器人等,本申请实施例不对其作限制。
在捕捉到目标对象在第一活动区域的一定数量的活动轨迹(即第一活动轨迹)、目标对象在第二活动区域的一定数量的活动轨迹(即第二活动轨迹)后,需要存储各个第一活动轨迹与各个第二活动轨迹。在存储过程中,可以将各个第一活动轨迹缓存到redis(Remote Dictionary Server,远程字典服务)这一高性能的key-value数据库中,接着可以将各个第一活动轨迹与各个第二活动轨迹分别持久化(即备份)到预定数据库(例如mysql数据库)中。相对应地,在检测到预定时间到达时,可以从redis中获取目标对象在第一时间段内处于第一活动区域的所有第一活动轨迹,若所有第一活动轨迹的数量为第一数量,则在检测到预定时间到达时,可以从redis中获取目标对象在第一时间段内处于第一活动区域的第一数量的第一活动轨迹。同样地,在检测到预定时间到达时,可以从预定数据库中获取目标对象在第二时间段内处于第二活动区域的所有第二活动轨迹,若所有第二活动轨迹的数量为第二数量,则在检测到预定时间到达时,可以从预定数据库中获取目标对象在第二时间段内处于第二活动区域的第二数量的第二活动轨迹。
在获取到第二数量的第二活动轨迹与第一数量的第一活动轨迹后,可以基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹,相当于,在第二数量的第二活动轨迹中,检索第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
在一个示例中,假如第一活动区域为智慧零售商场中的各个零售店铺,基于此,可以将第一活动轨迹记作店轨迹;第二活动区域为智慧零售商场中的中庭、楼层、大堂、公用门厅、走廊及楼梯间等公共区域,基于此,可以将第二活动轨迹记作场轨迹,于是,轨迹确定方法的处理过程可以如图2所示。在图2中,首先,存储通过捕捉设备捕捉到的各个店轨迹和各个场轨迹,比如将各个店轨迹缓存到Redis中,并将各个店轨迹和各个场轨迹分别持久化(即备份)到mysql数据库中,接着,每当预定时间t0到达时,例如预定时间t0为一天中的整点,开始触发执行轨迹确定方法的确定流程,具体流程可以为:
首先,根据预定时间t0与第一时间段之间的关系(即第一对应关系),确定店轨迹的店时间窗口(即第一时间段),比如当前店时间窗口为[t0-2,t0-1],即时间长度为1个小时;同时,根据预定时间t0与第二时间段之间的关系(即第二对应关系),确定场轨迹的场时间窗口(即第二时间段),比如当前场时间窗口为[t0-4,t0],即时间长度为4个小时,其中,店时间窗口倒退一个小时是为了保证场时间窗口可以尽可能多地覆盖店时间窗口,以扩大后续场轨迹的检索范围。
接着,从Redis中获取店时间窗口内的所有店轨迹,并将获取到的所有店轨迹作为待查询店轨迹query,比如店时间窗口内的所有店轨迹的数量为第一数量(例如p个),则将店时间窗口内的第一数量(例如p个)的店轨迹作为待查询店轨迹query;同时,从mysql数据库中获取场时间窗口内的所有场轨迹,并将获取到的所有场轨迹作为检索轨迹gallery,比如场时间窗口内的所有场轨迹的数量为第二数量(例如g个),则将场时间窗口内的第二数量(例如g个)的场轨迹作为检索轨迹gallery。
接着,基于第二数量(例如g个)的场轨迹,确定或检索第一数量(例如p个)的店轨迹分别对应的目标场轨迹,即在第二数量的场轨迹中,检索第一数量的店轨迹分别对应的目标场轨迹。其中,在确定或检索出各个店轨迹分别对应的目标场轨迹后,可以将该店时间窗口内的所有店轨迹从Redis中清除掉,比如将Redis中缓存的该店时间窗口内的所有店轨迹删除,以确保其不会一直占用内存空间,同时,将各个店轨迹分别对应的目标场轨迹这一结果持久化到mysql数据库中。
需要说明的是,图2中的轨迹数据可以包括trace_id(轨迹标识信息)、floor_id(楼层标识信息)、time(轨迹时间)、feature(轨迹平均特征)、bodysocre(轨迹平均人体质量分)等参数。另外,图2中的t0为预定时间,t1、t2、…、t6等可以为毫秒时间。此外,上述的基于第二数量(例如g个)的场轨迹,确定或检索第一数量(例如p个)的店轨迹分别对应的目标场轨迹的这一过程,是通过图2中的后处理服务来处理的,图2中的后处理服务包括后处理策略与后处理计算加速两部分内容。
本申请实施例提供的轨迹确定方法,当预定时间到达时,触发基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹的计算任务,从而无需每当接收到一个第一活动轨迹,就确定其对应的目标第二活动轨迹,大大降低与实时性检索任务在计算资源方面的竞争;另外,第二数量的第二活动轨迹是根据预定时间从全部第二活动轨迹中获取的一小部分,第一数量的第一活动轨迹也是根据预定时间从全部第一活动轨迹中获取的一小部分,计算量相对较小,从而可以尽可能快的完成活动轨迹的计算任务,尽量避免对计算资源的长时间占用;此外,第一时间段为第二时间段中的至少部分时间段,使得第二时间段可以尽可能多地覆盖第一时间窗口,从而扩大可供查询的第二活动轨迹的范围。
在一种可能的实现方式中,基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹,可以包括如下处理过程:首先,根据预定聚类算法,对第一数量的第一活动轨迹进行聚类处理,到至少一个聚类簇,每个聚类簇包括至少一个第一活动轨迹;接着,针对每个聚类簇,在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在一个示例中,假如第一数量为10,且第一数量的第一活动轨迹分别为strace1、strace2、…、strace10,第二数量为40,且第二数量的第二活动轨迹分别为mtrace1、mtrace2、…、mtrace40,则:
在获取到第一数量的第一活动轨迹后,可以根据预定聚类算法,对该第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇(比如1、2、5等数量的聚类簇),即根据预定聚类算法,对strace1、strace2、…、strace10进行聚类处理,得到至少一个聚类簇,比如得到3个聚类簇,分别为簇C1、簇C2及簇C3,簇C1包括strace1、strace2,簇C2包括strace3、strace4及strace5,簇C3包括strace6、strace7、strace8、strace9及strace10。
在得到各个聚类簇(即簇C1、簇C2及簇C3)之后,可以在第二数量的第二活动轨迹(即mtrace1、mtrace2、…、mtrace40)中,分别确定或检索各个聚类簇中的各个第一活动轨迹分别对应的目标第二活动轨迹,即针对每个聚类簇,在第二数量的第二活动轨迹(即mtrace1、mtrace2、…、mtrace40)中,确定或检索每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。在一个示例中,针对簇C1,可以在第二数量的第二活动轨迹(即mtrace1、mtrace2、…、mtrace40)中,检索簇C1中的strace1与strace2分别对应的目标第二活动轨迹,比如strace1对应的目标第二活动轨迹为mtrace1,strace2对应的目标第二活动轨迹空(即strace2没有对应的目标第二活动轨迹)。在又一示例中,针对簇C2,可以在第二数量的第二活动轨迹(即mtrace1、mtrace2、…、mtrace40)中,检索簇C2中的strace3、strace4及strace5分别对应的目标第二活动轨迹,比如strace3对应的目标第二活动轨迹为mtrace1,strace4对应的目标第二活动轨迹空(即strace4没有对应的目标第二活动轨迹),strace5对应的目标第二活动轨迹为mtrace2。
在实际应用中,当簇C1中的strace2没有对应的目标第二活动轨迹时,由于strace1与strace2均属于簇C1,此时可以将strace1对应的目标第二活动轨迹mtrace1,确定为strace2的目标第二活动轨迹,即strace2的目标第二活动轨迹也为mtrace1,从而确保每个聚类簇中的第一活动轨迹均有对应的目标第二活动轨迹,大大降低第一活动轨迹因无对应的目标第二活动轨迹而被丢弃的概率,降低第一活动轨迹无效的几率。
需要说明的是,在实际应用中,可以开启多个处理线程并行确定各个聚类簇中的各个第一活动轨迹分别对应的目标第二活动轨迹,比如可以针对每个聚类簇采用了一个处理线程,在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨,即各个聚类簇是并行进行的,每个聚类簇对应一个处理线程,从而大大提高处理效率。
在一种可能的实现方式中,预定聚类算法包括Rank-Order距离聚类算法;在根据预定聚类算法,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇的过程中,可以执行如下处理:首先,对第一轨迹特征矩阵进行矩阵自相乘运算,得到第一余弦距离矩阵,第一轨迹特征矩阵是根据第一数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵;接着,通过Rank-Order距离聚类算法,根据第一余弦距离矩阵,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇。
预定聚类算法可以是比较高效的Rank-Order距离聚类算法,Rank-Order距离可以利用两个样本点共享的近邻点的信息来计算两个样本之间的距离,根据距离来对样本进行聚类。当然,也可以根据实际需要,采用其它可行的聚类算法,本申请实施例不对其作限制。
在一个示例中,根据Rank-Order距离聚类算法,对第一数量的第一活动轨迹进行聚类处理的过程,具体可以为:
首先,可以将根据第一数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵(即第一轨迹特征矩阵)进行矩阵自相乘运算,即第一轨迹特征矩阵与第一轨迹特征矩阵进行乘法运算,得到相应的余弦距离矩阵(即第一余弦距离矩阵),第一余弦距离矩阵中的值是第一轨迹特征矩阵与第一轨迹特征矩阵进行乘法运算得到的余弦相似度(记作余弦距离)。其中,每个第一活动轨迹的轨迹特征可以是m维的,比如第一数量为p,第1个第一活动轨迹的轨迹特征分别为A11、A12、…、A1m,m表示维数,第2个第一活动轨迹的轨迹特征分别为A21、A22、…、A2m,以此类推,第p个第一活动轨迹的轨迹特征分别为Ap1、Ap2、…、Apm。
接着,通过Rank-Order距离聚类算法,根据第一余弦距离矩阵,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇。其中,可以根据第一余弦距离矩阵,按照余弦距离从小到大的排列顺序,对每个第一活动轨迹对应的除第一活动轨迹外的其它第一活动轨迹进行排序,形成一个临近轨迹列表。例如,临近轨迹列表可以为:1:2,4,5,…,j;2:9,4,5,…,1;…;p:9,1,2,…,k;其中,以1:2,4,5,…,j为例,冒号前面的1代表第1个第一活动轨迹,冒号后面的2,4,5,…,j分别代表按照余弦距离从小到大的排列顺序排列后的其它第一活动轨迹,2代表第2个第一活动轨迹,4代表第4个第一活动轨迹,以此类推。
在得到临近轨迹列表后,可以根据Rank-Order的定义,计算各第一活动轨迹之间的Rank-Order,并将Rank-Order分值小于预定阈值的第一活动轨迹的节点连成一个联通分量,该联通分量内节点对应的第一活动轨迹构成一个聚类簇。通过借助Rank-Order距离聚类算法,可以快速、准确地完成第一数量的第一活动轨迹的聚类处理。
在一种可能的实现方式中,在对第一轨迹特征矩阵进行矩阵自相乘运算,得到第一余弦距离矩阵的过程中,可以将第一数量的第一活动轨迹划分为第三数量的组别,每一组别包括第四数量的第一活动轨迹,第四数量为第一数量与第三数量的比值;接着,通过多个图形处理器GPU线程并行对第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵,并将第三数量的第二余弦距离矩阵确定为第一余弦距离矩阵,每个组别的第二轨迹特征矩阵是根据每个组别中第四数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵,每个组别的第二轨迹特征矩阵通过至少一个GPU线程进行矩阵自相乘运算。
在根据Rank-Order距离聚类算法,对第一数量的第一活动轨迹进行聚类处理的过程中,最主要的计算瓶颈是第一轨迹特征矩阵的自相乘运算,基于此,可以通过提高第一轨迹特征矩阵的自相乘的计算效率,来提高整个聚类处理的计算速度。考虑到GPU在并行计算上的天然优势,本申请实施例在第一轨迹特征矩阵的自相乘运算过程中,通过引入GPU来提高计算速度。此外,考虑到矩阵相乘(即第一轨迹特征矩阵的自相乘)的结果矩阵(即第一余弦距离矩阵)中的每一个位置的数量都不依赖于其他位置数据的计算过程和结果这一事实,可以将第一轨迹特征矩阵划分为多个第二轨迹特征矩阵,并通过多个GPU线程并行对该多个第二轨迹特征矩阵分别进行矩阵自相乘运算。
在一个示例中,可以通过如下方式,将第一轨迹特征矩阵划分为多个第二轨迹特征矩阵:
首先,将第一数量的第一活动轨迹划分为第三数量的组别,每一组别包括第四数量的第一活动轨迹,第四数量为第一数量与第三数量的比值。假如第一数量为p,第三数量为q,则可以将p个第一活动轨迹划分为q个组别,即将p个第一活动轨迹划分为q份,每个组别(即每一份)中包括一定数量(即第四数量)的第一活动轨迹,其中,第四数量为第一数量与第三数量的比值,即第四数量为p/q,相当于,每个组别(即每一份)中包括p/q个第一活动轨迹,p/q为正整数。
需要说明的是,在将第一数量的第一活动轨迹划分为第三数量的组别时,可以采用均分的方式进行划分,当不能均分时,比如p/q不为整数时,可以采用补零的方式,使得第一数量的第一活动轨迹可以均为第三数量的组别。
其中,在将第一数量的第一活动轨迹划分为第三数量的组别后,可以得到每个组别的轨迹特征矩阵(记作第二轨迹特征矩阵),其中,由于每个组别包括第四数量的第一活动轨迹,所以每个组别的第二轨迹特征矩阵为根据每个组别中第四数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵。相当于,通过将第一数量的第一活动轨迹划分为第三数量的组别,来将第一轨迹特征矩阵划分为第三数量的第二轨迹特征矩阵;假如第一轨迹特征矩阵为矩阵M,第三数量为q,即将矩阵M划分为q个第二轨迹特征矩阵,可以分别记作M’_1、M’_2、…、M’_q。
接着,在将第一轨迹特征矩阵划分为第三数量的第二轨迹特征矩阵后,可以通过多个GPU线程并行对第三数量的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵。在一个示例中,假如第三数量为q,即将第一轨迹特征矩阵划分为q个第二轨迹特征矩阵,则:可以通过至少一个GPU线程对第1个第二轨迹特征矩阵(例如M’_1)进行矩阵自相乘运算,即M’_1×M’_1,得到相对应的余弦距离矩阵(即第1个第二余弦距离矩阵),同时通过至少一个GPU线程对第2个第二轨迹特征矩阵(例如M’_2)进行矩阵自相乘运算,即M’_2×M’_2,得到相对应的余弦距离矩阵(即第2个第二余弦距离矩阵),…,以此类推,同时通过至少一个GPU线程对第q个第二轨迹特征矩阵(例如M’_q)进行矩阵自相乘运算,即M’_q×M’_q,得到相对应的余弦距离矩阵(即第q个第二余弦距离矩阵)。
接着,在得到第三数量的第二余弦距离矩阵后,可以将该第三数量的第二余弦距离矩阵确定为上述的第一余弦距离矩阵,从而可以在进行一个第二轨迹特征矩阵的矩阵自相乘的时间内,同时得到q个第二余弦距离矩阵,进而极大降低计算第一轨迹特征矩阵的矩阵自相乘运算的耗时。
在一种可能的实现方式中,在通过多个GPU线程并行对第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵的过程中,可以执行如下处理:针对每个组别,将每个组别的第二轨迹特征矩阵划分为第五数量的分块矩阵;接着,通过多个GPU线程并行对第五数量的分块矩阵分别进行矩阵自相乘运算,得到第五数量的分块余弦距离矩阵,并将第五数量的分块余弦距离矩阵确定为每个组别的第二余弦距离矩阵,每个分块矩阵通过至少一个GPU线程进行矩阵自相乘运算。
在通过多个GPU线程并行对第三数量的第二轨迹特征矩阵分别进行自相乘运算的过程中,针对每个第二轨迹特征矩阵,可以进一步划分为多个不同的矩阵块(block),比如将每个组别的第二轨迹特征矩阵划分为第五数量的矩阵块(记作分块矩阵),即将每个第二轨迹特征矩阵划分为第五数量的分块矩阵。在一个示例中,假如第三数量为q,第五数量为r,则:对第1个第二轨迹特征矩阵(例如M’_1),可以进一步划分为r个分块矩阵,对第2第二轨迹特征矩阵,可以进一步划分为r个分块矩阵,…,以此类推,对第q个第二轨迹特征矩阵,可以进一步划分为r个分块矩阵。
针对每个第二轨迹特征矩阵,在将其划分为第五数量的分块矩阵后,可以通过多个GPU线程并行对每个第二轨迹特征矩阵的第五数量的分块矩阵分别进行矩阵自相乘运算,得到第五数量的分块余弦距离矩阵。在一个示例中,假如第二轨迹特征矩阵为矩阵M’_1,第五数量为r,即将第二轨迹特征矩阵M’_1划分为r个分块矩阵,可以分别记作BM_1、BM_2、…、BM_r,则:可以通过至少一个GPU线程对第1个分块矩阵(例如BM_1)进行矩阵自相乘运算,即BM_1×BM_1,得到相对应的余弦距离矩阵(即第1个分块余弦距离矩阵),同时通过至少一个GPU线程对第2个分块矩阵(例如BM_1)进行矩阵自相乘运算,即BM_2×BM_2,得到相对应的分块余弦距离矩阵(即第2个第二分块余弦距离矩阵),…,以此类推,同时通过至少一个GPU线程对第r个分块矩阵(例如BM_r)进行矩阵自相乘运算,即BM_r×BM_r,得到相对应的分块余弦距离矩阵(即第r个分块余弦距离矩阵)。
其中,在计算过程中,可以引入基于CUBLAS库的GPU模式的矩阵乘法算子,这样不但可以屏蔽掉复杂的底层实现以及不同计算设备带来的参数设置的影响,还可以通过参数设置把矩阵乘法的效率进一步提升。实验证明相同规模下的矩阵乘法,GPU计算所需时间可以下降到CPU计算所需时间的几十倍到几百倍。
在本实现方式中,在得到第五数量的分块余弦距离矩阵后,将该第五数量的分块余弦距离矩阵确定为上述的第二余弦距离矩阵,从而可以在进行一个分块矩阵的矩阵自相乘的时间内,同时得到r个分块余弦距离矩阵,进一步降低计算第二轨迹特征矩阵的矩阵自相乘运算的耗时,进而降低计算第二轨迹特征矩阵的矩阵自相乘运算的耗时。
在一种可能的实现方式中,在通过Rank-Order距离聚类算法,根据第一余弦距离矩阵,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇的过程中,可以执行如下处理:通过Rank-Order距离聚类算法,根据每个第二余弦距离矩阵,对每个第二余弦距离矩阵对应的第四数量的第一活动轨迹进行聚类处理,得到至少一个临时聚类簇;接着,对第三数量的第二余弦距离矩阵分别对应的至少一个临时聚类簇进行合并处理,得到至少一个聚类簇。
由于已通过将第一数量的第一活动轨迹划分为第三数量的组别,来将第一轨迹特征矩阵(例如矩阵M)划分为第三数量的第二轨迹特征矩阵,例如,第三数量为q,即将矩阵M划分为q个第二轨迹特征矩阵,分别记作M’_1、M’_2、…、M’_q。因此,在根据Rank-Order距离聚类算法,对第一数量的第一活动轨迹进行聚类处理的过程中,可以根据Rank-Order距离聚类算法,对第三数量的组别分别包括的第四数量的第一活动轨迹进行聚类处理,来完成对第一数量的第一活动轨迹进行聚类处理。
在一个示例中,假如第一数量为p,第三数量为q,q个组别分别记作s_1、s_2、…、s_q,第四数量为a,即每个组别包括a个第一活动轨迹,a=p/q,且a为正整数,组别s_1的第二轨迹特征矩阵为M’_1,组别s_2的第二轨迹特征矩阵为M’_2,…,组别s_q的第二轨迹特征矩阵为M’_q,则针对每个组别(例如组别s_1)的a个第一活动轨迹,均可以采用如图3中线条框部分的聚类过程进行聚类处理,具体如下所示:
首先,可以将组别s_1的第二轨迹特征矩阵M’_1进行矩阵自相乘运算,即M’_1×M’_1,得到相应的结果矩阵,记作第二余弦距离矩阵,第二余弦距离矩阵中的值是第二轨迹特征矩阵与第二轨迹特征矩阵进行乘法运算得到的余弦相似度(记作余弦距离)。其中,每个第一活动轨迹的轨迹特征可以是m维的,比如第四数量为a,第1个第一活动轨迹的轨迹特征分别为q11、q12、…、q1m,m表示维数,第2个第一活动轨迹的轨迹特征分别为q21、q22、…、q2m,以此类推,第a个第一活动轨迹的轨迹特征分别为qa1、qa2、…、qam,如图3所示。
在图3中,将M’_1×M’_1得到的第二余弦距离矩阵中的各个值分别记作[c11 c12…c1m;c21 c22 …c2m;…;ca1 ca2 …cam],其中,c11 c12 …c1m表示第1个活动轨迹对应的各个余弦相似度,以此类推,ca1 ca2 …cam表示第a个活动轨迹对应的各个余弦相似度。
接着,在得到组别s_1对应的第二余弦距离矩阵后,可以根据第二余弦距离矩阵,按照余弦距离从小到大的排列顺序,对每个第一活动轨迹对应的除第一活动轨迹外的其它第一活动轨迹进行排序,形成一个临近轨迹列表。如图3所示,临近轨迹列表可以为:1:2,4,5,…,j;2:9,4,5,…,1;…;a:9,1,2,…,k;其中,j与k的取值均是小于a的数。以1:2,4,5,…,j为例,冒号前面的1代表第1个第一活动轨迹,冒号后面的2,4,5,…,j分别代表按照余弦距离从小到大的排列顺序排列后的其它第一活动轨迹,2代表第2个第一活动轨迹,4代表第4个第一活动轨迹,以此类推。
接着,在得到临近轨迹列表后,可以根据Rank-Order的定义,计算a个第一活动轨迹(例如店轨迹)之间的Rank-Order,并将Rank-Order分值小于预定阈值(例如th1)的第一活动轨迹的节点连成一个联通分量,该联通分量内节点构成一个临时聚类簇,即该联通分量内节点对应的第一活动轨迹构成一个临时聚类簇,从而得到组别s_1对应的至少一个临时聚类簇。
上面只是以组别s_1的a个第一活动轨迹的聚类处理为例进行的具体介绍,对于其它的组别(例如s_2、…、s_q)的各个第一活动轨迹,也采用上述的聚类处理过程,在此不再赘述。
在根据每个第二余弦距离矩阵,对各个第二余弦距离矩阵分别对应的第四数量的第一活动轨迹均完成聚类处理后,即每个组别均完成临时聚类簇的计算后,可以进一步对各个组别分别对应的至少一个临时聚类簇进行合并处理,得到至少一个聚类簇,例如N个簇,分别为簇1、簇2、…、簇N,如图3所示。
对各个组别分别对应的至少一个临时聚类簇进行合并处理的过程,可以为:首先,确定孤立的第一活动轨迹与某个临时聚类簇内第一活动轨迹的rank_order值大于预定阈值th0的数量,并确定该数量与临时聚类簇总数的比值是否大于预定阈值th2,若大于预定阈值th2,则将该孤立的第一活动轨迹加入该某个临时聚类簇中,即图3中的“孤立店轨迹与临时聚类簇内店轨迹的rank_order值大于预定阈值th0的数量/临时聚类簇总数,若结果大于th2,则将孤立店轨迹加入该临时聚类簇”;接着,确定任两个临时聚类簇内第一活动轨迹间的rank_order值大于预定阈值th0的数量,并确定该任两个临时聚类簇中第一活动轨迹相关联的总数,并确定该数量与该总数的比值是否大于预定阈值th3,若大于预定阈值th3,则将该任两个临时聚类簇合并为一个聚类簇,即图3中的“两个临时聚类簇内店轨迹间的rank_order值大于th0的数目/两个临时聚类簇店轨迹关联总数,若结果大于th3则两个临时聚类簇合并”。通过采用上述的合并处理过程,不断进行临时聚类簇之间的合并,直至没有临时聚类簇满足合并条件为止。
在一种可能的实现方式中,在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹的处理过程中,可以执行如下处理:将第三轨迹特征矩阵与第四轨迹特征矩阵进行乘法运算,得到结果矩阵,第三轨迹特征矩阵是根据每个聚类簇包括的至少一个第一活动轨迹的轨迹特征得到的轨迹特征矩阵,第四轨迹特征矩阵是根据第二数量的第二活动轨迹的轨迹特征得到的轨迹特征矩阵,结果矩阵中的值为每个聚类簇包括的至少一个第一活动轨迹分别与第二数量的第二活动轨迹之间的余弦相似度;接着,根据结果矩阵,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
由于在基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹的过程中,已经根据Rank-Order距离聚类算法,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇,每个聚类簇包括至少一个第一活动轨迹,因此,可以通过在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹,来得到第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
其中,在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹的过程中,可以通过将每个聚类簇的轨迹特征矩阵(即第三轨迹特征矩阵)与根据第二数量的第二活动轨迹的轨迹特征得到的轨迹特征矩阵(即第四轨迹特征矩阵)进行乘法运算,并根据乘法运算的结果(即结果矩阵),再确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。每个聚类簇的轨迹特征矩阵(即第三轨迹特征矩阵)是根据每个聚类簇包括的至少一个第一活动轨迹的轨迹特征得到的轨迹特征矩阵。
假如根据Rank-Order距离聚类算法,对第一数量的第一活动轨迹进行聚类处理,得到3个聚类簇,分别为簇C1、簇C2及簇C3,簇C1包括t个第一活动轨迹,簇C2包括x个第一活动轨迹,簇C3包括y个第一活动轨迹,第二数量为g个,则:针对簇C1,可以通过下面示例的方法,确定其包括的t个第一活动轨迹分别对应的目标第二活动轨迹:
首先,根据t个第一活动轨迹的轨迹特征确定簇C1的轨迹特征矩阵(即第三轨迹特征矩阵),记作M_C1,若每个第一活动轨迹的轨迹特征是m维的,则可以得到如图4所示的第三轨迹特征矩阵,在图4所示的第三轨迹特征矩阵中,第1个第一活动轨迹的轨迹特征分别为q11、q12、…、q1m,m表示维数,第2个第一活动轨迹的轨迹特征分别为q21、q22、…、q2m,以此类推,第t个第一活动轨迹的轨迹特征分别为qt1、qt2、…、qtm。
同样地,根据g个第二活动轨迹的轨迹特征确定相应的轨迹特征矩阵(即第四轨迹特征矩阵),记作M_g,若每个第二活动轨迹的轨迹特征也是m维的,则可以得到如图4所示的第四轨迹特征矩阵,在图4所示的第四轨迹特征矩阵中,第1个第一活动轨迹的轨迹特征分别为g11、g12、…、g1m,m表示维数,第2个第一活动轨迹的轨迹特征分别为g21、g22、…、g2m,以此类推,第g个第一活动轨迹的轨迹特征分别为gg1、gg2、…、ggm。
接着,对第三特征矩阵与第四特征矩阵进行乘法运算,即M_C1×M_g,得到相应的结果矩阵,记作M_W,该结果矩阵M_W中的值是第三轨迹特征矩阵与第四轨迹特征矩阵进行乘法运算得到的余弦相似度(记作余弦距离)。如图4所示,可以将M_C1×M_g得到的结果矩阵(即)中的各个值分别记作[w11 w12 …w1g;w21 w22 …w2g;…;wt1 wt2 …wtg],其中,w11 w12…w1g表示第1个活动轨迹对应的各个余弦相似度,以此类推,wt1 wt2 …wtg表示第t个活动轨迹对应的各个余弦相似度。
需要说明的是,在对第三特征矩阵与第四特征矩阵进行乘法运算时,也可以通过采用上述的通过多个GPU并行进行的方式,具体请参见上述关于“通过多个GPU线程并行对第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算”部分的描述,在此不再赘述。
接着,根据计算得到的结果矩阵M_W,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在一种可能的实现方式中,在根据结果矩阵,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹的处理过程中,可以执行如下处理:根据结果矩阵,确定每个第一活动轨迹对应的各个余弦相似度中的最大余弦相似度;接着,从至少一个第一活动轨迹分别对应的最大余弦相似度中确定最大的K个最大值,并将K个最大值分别对应的第二活动轨迹确定为每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在根据计算得到的结果矩阵M_W,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹的过程中,针对每个第一活动轨迹,可以根据结果矩阵M_W,确定其对应的各个余弦相似度中的最大余弦相似度。比如针对第1个第一活动轨迹,其对应的各个余弦相似度分别为w11 w12 …w1g,则可以从w11 w12 …w1g中确定出其中的最大值,该最大值即为第1个第一活动轨迹的最大余弦相似度,例如最大余弦相似度为w12;又比如,针对第t个第一活动轨迹,其对应的各个余弦相似度分别为wt1 wt2 …wtg,则可以从wt1 wt2 …wtg中确定出其中的最大值,该最大值即为第t个第一活动轨迹的最大余弦相似度,例如最大余弦相似度为wtg。
在确定出每个第一活动轨迹的最大余弦相似度后,由于簇C1中包括t个第一活动轨迹,因此,一共可以得到t个最大余弦相似度,即簇C1对应有t个最大余弦相似度。此时,可以根据需要再次对该t个最大余弦相似度进行筛选,比如从该t个最大余弦相似度中确定最大的K个最大值,其中,K小于t的正整数。在一个示例中,可以对该t个最大余弦相似度按照从小到大的顺序进行排列,并选取排名最靠前的K个。在另一个示例中,可以对该t个最大余弦相似度按照从大到小的顺序进行排列,并选取排名最靠后的K个。其中,在从该t个最大余弦相似度中确定最大的K个最大值后,可以将该K个最大值分别对应的第二活动轨迹确定为簇C1中的t个第一活动轨迹对应的目标第二活动轨迹。
需要说明的是,上述只是以簇C1为例进行的介绍,对于其它的簇,例如簇C2与簇C3,均可以采用上述簇C1的处理过程类似,在此不再赘述。当确定出各个簇中的每个第一活动轨迹对应的目标第二活动轨迹后,即可确定出第一数量的第一活动轨迹分别对应的目标第二活动轨迹。其中,上述确定各个聚类簇中的各个第一活动轨迹分别对应的目标第二活动轨迹的过程,相当于图4中的“对每个店轨迹按余弦相似度排序场轨迹”、“对每个店轨迹阈值过滤取TOP1场轨迹”、“将每个簇统计检索到的TOP1场轨迹排序”、“取TOPK”及“返回t个店轨迹的TOPK个检索结果”,其中,图4中的店轨迹即为上述的第一活动轨迹,图4中的场轨迹即为上述的第二活动轨迹。
此外,在不同的应用场景下,也可以根据需要将该t个最大余弦相似度分别对应的第二活动轨迹均确定为簇C1中的t个第一活动轨迹的目标第二活动轨迹,本申请实施例不对其作限制。
本实现方式,通过将K个最大值分别对应的第二活动轨迹确定为每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹,使得只要在同一聚类簇下存在一条第一活动轨迹检索到对应的第二活动轨迹,那么即使该同一聚类簇中的其它第一活动轨迹未检索到对应的第二活动轨迹,也可以根据聚类簇,将其它第一活动轨迹映射到相应的场轨迹,从而大大降低了第一活动轨迹因无对应的第二活动轨迹而被丢弃的几率,尽可能提高了第一活动轨迹的召回率,实验证明召回率可以由74%提升到85%。
此外,可以确保同一聚类簇下的各个第一活动轨迹可以同时获取到得到最高的第二活动轨迹,大大提高检索命中率,提升第一活动轨迹的检索准确性。
在一种可能的实现方式中,在基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹的过程中,可以执行如下处理:对第二数量的第二活动轨迹进行区域划分处理,得到多个子活动区域,每个子活动区域包括至少一个第二活动轨迹;接着,针对每个子活动区域,基于每个子活动区域包括的至少一个第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
由于通常第二活动轨迹的数量(即第二数量)远大于第一活动轨迹的数量(即第一数量),所以影响矩阵乘法运算的计算耗时的主要原因是第二活动轨迹的数量(即第二数量)。在实际应用中,在计算资源紧张且第二活动轨迹的数量(即第二数量)较大情况下,可以先对第二数量的第二活动轨迹进行区域划分处理,划分为多个子活动区域,每个子活动区域包括至少一个第二活动轨迹,然后,在每个子活动区域中,基于每个子活动区域包括的至少一个第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。其中,基于每个子活动区域包括的至少一个第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹的处理过程,与上述的“基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹”的处理过程类似,只是将第二数量的第二活动轨迹替换为一个子活动区域包括的至少一个第二活动轨迹,在此不再赘述。
在一个示例中,假如第一活动区域为智慧零售商场中的各个零售店铺,第一活动轨迹为店轨迹,第二活动区域为智慧零售商场中的中庭、楼层、大堂、公用门厅、走廊及楼梯间等公共区域,第二活动轨迹为场轨迹,且店轨迹的数量为p个(即步骤S501中的P个店轨迹),场轨迹的数量为g个(即步骤S502中的g个场轨迹),如图5所示,当在接收到检索请求时(即步骤S503中的接收请求轨迹),即接收到从g个场轨迹中检索p个店轨迹分别对应的目标场轨迹的请求时,可以通过步骤S504,来判断当前计算资源负载是否超过预定阈值,当计算资源负载超过预定阈值时,执行步骤S506的分层检索,当计算资源负载未超过预定阈值时,执行步骤S505的全场检索,相当于先确定当前的计算资源负载,接着判断该计算资源负载是否超过预定阈值,如果超过预定阈值,则可以将智慧零售商场按照楼层划分为多个楼层(即子活动区域),相当于将g个场轨迹划分到多个楼层中,每个楼层包括至少一个场轨迹,接着,针对每一楼层,基于第一楼层包括的至少一个场轨迹,确定p个店轨迹分别对应的目标场轨迹;如果未超过预定阈值,则可以不对智慧零售商场进行划分,而是直接基于g个场轨迹,检索p个店轨迹分别对应的目标场轨迹。
本实现方式,通过对第二数量的第二活动轨迹进行区域划分,可以降低计算矩阵乘法运算的耗时及减少对计算资源的长时间占用。
下面以应用场景为智慧零售商场,第一活动区域为智慧零售商场中的各个零售店铺,第一活动轨迹为店轨迹,第二活动区域为智慧零售商场中的中庭、楼层、大堂、公用门厅、走廊及楼梯间等公共区域,第二活动轨迹为场轨迹为具体示例,对本申请实施例进行具体介绍。
如图6所示,在图6中,虚线左侧为本申请实施例的轨迹确定方法的大概处理流程,右侧为处理流程的举例说明。
步骤S601:对第一数量的店轨迹进行聚类,即通过Rank-Order距离聚类算法,对第一数量的店轨迹进行聚类处理,得到至少一个聚类簇。例如第一数量为5,5个店轨迹分别为strace1、strace2、…、strace5,即对strace1、strace2、…、strace5进行聚类,得到至少一个聚类簇,例如得到2个聚类簇,分别为簇C1与簇C2,簇C1包括strace1与strace2,簇C2包括strace3、strace4、strace5。
步骤S602:店检索场轨迹,即店轨迹检索场轨迹,相当于在第二数量的场轨迹中检索第一数量的店轨迹分别对应的目标场轨迹。其中,可以通过在第二数量的场轨迹中,检索每个聚类簇中的每个店轨迹对应的目标场轨迹,来得到第一数量的店轨迹分别对应的目标场轨迹。例如,strace1对应的最大得分的场轨迹为mtrace1,且得分为0.8,strace2未检索到对应的目标场轨迹,即得分为0;又例如,strace3对应的最大得分的场轨迹为mtrace1,且得分为0.7,strace4未检索到对应的场轨迹,即得分为0,strace5对应的最大得分的场轨迹为mtrace2,且得分为0.8。其中,上述的得分相当于每个店轨迹对应的各个余弦相似度中的最大余弦相似度,即针对每个聚类簇,确定每个聚类簇中的每个店轨迹对应的各个余弦相似度中的最大余弦相似度,并将该最大余弦相似度对应的场轨迹确定为每个店轨迹对应的场轨迹。
步骤S603:关联同一簇下所有店轨迹的检索结果,即针对每个簇,统计每个簇中的各个店轨迹对应的场轨迹及相应的得分,比如簇C1的检索结果为mtrace1且得分为0.8,即簇C1对应的场轨迹为mtrace1且得分为0.8,也即strace1与strace2对应的场轨迹的检索结果均为mtrace1且得分为0.8;又比如,簇C2的检索结果为mtrace2且得分为0.8与mtrace1且得分为0.7,即簇C2对应的场轨迹为mtrace1与mtrace2,也即strace3、strace4与strace5对应的场轨迹的检索结果为mtrace1与mtrace2。
步骤S604,取TOPK,即针对每个簇,从每个簇的各个店轨迹分别对应的最大得分中确定最大的K个最大值,并将K个最大值分别对应的场轨迹确定为每个聚类簇中的每个店轨迹对应的目标场轨迹。例如K取值为1,则:针对簇C1,由于在步骤S603中,strace1与strace2对应的场轨迹的检索结果均为mtrace1且得分为0.8,所以取TOPK后,依然是得分为0.8的mtrace1,此时可以将mtrace1作为strace1与strace2的目标场轨迹,针对簇C2,由于在步骤S603中,strace3、strace4与strace5对应的场轨迹的检索结果为mtrace1与mtrace2,且mtrace2的得分为0.8,mtrace1的得分为0.7,所以取TOPK后,得到的是得分为0.8的mtrace2,此时可以将mtrace2作为strace3、strace4与strace5的目标场轨迹。
步骤S605,处理检索结果,即将检索结果持久化或备份到数据库mysql中,其中,检索结果为各个店轨迹分别对应的目标场轨迹。比如,将strace1对应于mtrace1、strace2对应于mtrace1、strace3对应于mtrace2、strace4对应于mtrace2及strace5对应于mtrace2,依次备份到mysql数据库中。
需要说明的是,虽然本申请实施例的方法,主要是针对身份建档、游逛轨迹等非实时检索业务场景下的轨迹检索方案,但是同样可以扩展到人脸、声音、指纹等其他类型的特征检索。本申请实施例的方法可以应用于智慧零售商场诸如大卖场、百货商场、购物中心等多种商超场景,也可以应用于智慧安防、智慧社区、智慧餐饮等场景。
图7为本申请又一实施例提供的一种轨迹确定装置的结构示意图,如图7所示,该装置700可以包括第一确定模块701、获取模块702及第二确定模块703,其中:
第一确定模块701,用于检测到预定时间到达时,根据第一对应关系确定第一时间段,并根据第二对应关系确定第二时间段,其中,第一对应关系是预定时间与第一时间段之间的关系,第二对应关系是预定时间与第二时间段之间的关系,第一时间段为第二时间段中的至少部分时间段;
获取模块702,用于获取目标对象在第一时间段内处于第一活动区域中的第一数量的第一活动轨迹,并获取目标对象在第二时间段内处于第二活动区域中的第二数量的第二活动轨迹,第一活动区域为第二活动区域内的部分区域;
第二确定模块703,用于基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
在一种可能的实现方式中,第二确定模块用于:
根据预定聚类算法,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇,每个聚类簇包括至少一个第一活动轨迹;
针对每个聚类簇,在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在一种可能的实现方式中,预定聚类算法包括Rank-Order距离聚类算法;第二确定模块在根据预定聚类算法,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇时,用于:
对第一轨迹特征矩阵进行矩阵自相乘运算,得到第一余弦距离矩阵,第一轨迹特征矩阵是根据第一数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵;
通过Rank-Order距离聚类算法,根据第一余弦距离矩阵,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇。
在一种可能的实现方式中,第二确定模块在对第一轨迹特征矩阵进行矩阵自相乘运算,得到第一余弦距离矩阵时,用于:
将第一数量的第一活动轨迹划分为第三数量的组别,每一组别包括第四数量的第一活动轨迹,第四数量为第一数量与第三数量的比值;
通过多个图形处理器GPU线程并行对第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵,并将第三数量的第二余弦距离矩阵确定为第一余弦距离矩阵,每个组别的第二轨迹特征矩阵是根据每个组别中第四数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵,每个组别的第二轨迹特征矩阵通过至少一个GPU线程进行矩阵自相乘运算。
在一种可能的实现方式中,第二确定模块在通过多个图形处理器GPU线程并行对第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵时,用于:
针对每个组别,将每个组别的第二轨迹特征矩阵划分为第五数量的分块矩阵;
通过多个GPU线程并行对第五数量的分块矩阵分别进行矩阵自相乘运算,得到第五数量的分块余弦距离矩阵,并将第五数量的分块余弦距离矩阵确定为每个组别的第二余弦距离矩阵,每个分块矩阵通过至少一个GPU线程进行矩阵自相乘运算。
在一种可能的实现方式中,第二确定模块在通过Rank-Order距离聚类算法,根据第一余弦距离矩阵,对第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类时,用于:
通过Rank-Order距离聚类算法,根据每个第二余弦距离矩阵,对每个第二余弦距离矩阵对应的第四数量的第一活动轨迹进行聚类处理,得到至少一个临时聚类簇;
对第三数量的第二余弦距离矩阵分别对应的至少一个临时聚类簇进行合并处理,得到至少一个聚类簇。
在一种可能的实现方式中,第二确定模块在第二数量的第二活动轨迹中,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹时,用于:
将第三轨迹特征矩阵与第四轨迹特征矩阵进行乘法运算,得到结果矩阵,第三轨迹特征矩阵是根据每个聚类簇包括的至少一个第一活动轨迹的轨迹特征得到的轨迹特征矩阵,第四轨迹特征矩阵是根据第二数量的第二活动轨迹的轨迹特征得到的轨迹特征矩阵,结果矩阵中的值为每个聚类簇包括的至少一个第一活动轨迹分别与第二数量的第二活动轨迹之间的余弦相似度;
根据结果矩阵,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在一种可能的实现方式中,第二确定模块在根据结果矩阵,确定每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹时,用于:
根据结果矩阵,确定每个第一活动轨迹对应的各个余弦相似度中的最大余弦相似度;
从至少一个第一活动轨迹分别对应的最大余弦相似度中确定最大的K个最大值,并将K个最大值分别对应的第二活动轨迹确定为每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
在一种可能的实现方式中,第二确定模块用于:
对第二数量的第二活动轨迹进行区域划分处理,得到多个子活动区域,每个子活动区域包括至少一个第二活动轨迹;
针对每个子活动区域,基于每个子活动区域包括的至少一个第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
本申请实施例提供的装置,当预定时间到达时,触发基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹的计算任务,从而无需每当接收到一个第一活动轨迹,就确定其对应的目标第二活动轨迹,大大降低与实时性检索任务在计算资源方面的竞争;另外,第二数量的第二活动轨迹是根据预定时间从全部第二活动轨迹中获取的一小部分,第一数量的第一活动轨迹也是根据预定时间从全部第一活动轨迹中获取的一小部分,计算量相对较小,从而可以尽可能快的完成活动轨迹的计算任务,尽量避免对计算资源的长时间占用;此外,第一时间段为第二时间段中的至少部分时间段,使得第二时间段可以尽可能多地覆盖第一时间窗口,从而扩大可供查询的第二活动轨迹的范围。
需要说明的是,本实施例为与上述的方法项实施例相对应的装置项实施例,本实施例可与上述方法项实施例互相配合实施。上述方法项实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法项实施例中。
本申请另一实施例提供了一种电子设备,如图8所示,图8所示的电子设备800包括:处理器801和存储器803。其中,处理器801和存储器803相连,如通过总线802相连。进一步地,电子设备800还可以包括收发器804。需要说明的是,实际应用中收发器804不限于一个,该电子设备800的结构并不构成对本申请实施例的限定。
其中,处理器801应用于本申请实施例中,用于实现图7所示的第一确定模块、获取模块及第二确定模块的功能。收发器804包括接收机和发射机。
处理器801可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器801也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线802可包括一通路,在上述组件之间传送信息。总线802可以是PCI总线或EISA总线等。总线802可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器803可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器803用于存储执行本申请方案的应用程序代码,并由处理器801来控制执行。处理器801用于执行存储器803中存储的应用程序代码,以实现图7所示实施例提供的轨迹确定装置的动作。
本申请实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,可实现:检测到预定时间到达时,根据第一对应关系确定第一时间段,并根据第二对应关系确定第二时间段,其中,第一对应关系是预定时间与第一时间段之间的关系,第二对应关系是预定时间与第二时间段之间的关系,第一时间段为第二时间段中的至少部分时间段;接着,获取目标对象在第一时间段内处于第一活动区域中的第一数量的第一活动轨迹,并获取目标对象在第二时间段内处于第二活动区域中的第二数量的第二活动轨迹,第一活动区域为第二活动区域内的部分区域;接着,基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例所示的方法。其中,当预定时间到达时,触发基于第二数量的第二活动轨迹,确定第一数量的第一活动轨迹分别对应的目标第二活动轨迹的计算任务,从而无需每当接收到一个第一活动轨迹,就确定其对应的目标第二活动轨迹,大大降低与实时性检索任务在计算资源方面的竞争;另外,第二数量的第二活动轨迹是根据预定时间从全部第二活动轨迹中获取的一小部分,第一数量的第一活动轨迹也是根据预定时间从全部第一活动轨迹中获取的一小部分,计算量相对较小,从而可以尽可能快的完成活动轨迹的计算任务,尽量避免对计算资源的长时间占用;此外,第一时间段为第二时间段中的至少部分时间段,使得第二时间段可以尽可能多地覆盖第一时间窗口,从而扩大可供查询的第二活动轨迹的范围。
本申请实施例提供的计算机可读存储介质适用于上述方法的任一实施例。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (12)
1.一种轨迹确定方法,其特征在于,包括:
检测到预定时间到达时,根据第一对应关系确定第一时间段,并根据第二对应关系确定第二时间段,
其中,所述第一对应关系是所述预定时间与所述第一时间段之间的关系,所述第二对应关系是所述预定时间与所述第二时间段之间的关系,所述第一时间段为所述第二时间段中的至少部分时间段;
获取目标对象在所述第一时间段内处于第一活动区域中的第一数量的第一活动轨迹,并获取所述目标对象在所述第二时间段内处于第二活动区域中的第二数量的第二活动轨迹,所述第一活动区域为所述第二活动区域内的部分区域;
在所述第二数量的第二活动轨迹中,检索确定所述第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
2.根据权利要求1所述的方法,其特征在于,在所述第二数量的第二活动轨迹中,检索确定所述第一数量的第一活动轨迹分别对应的目标第二活动轨迹,包括:
对所述第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇,每个聚类簇包括至少一个第一活动轨迹;
针对每个聚类簇,在所述第二数量的第二活动轨迹中,检索确定所述每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇,包括:
对第一轨迹特征矩阵进行矩阵自相乘运算,得到第一余弦距离矩阵,所述第一轨迹特征矩阵是根据所述第一数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵;
通过Rank-Order距离聚类算法,根据所述第一余弦距离矩阵,对所述第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇。
4.根据权利要求3所述的方法,其特征在于,对所述第一轨迹特征矩阵进行矩阵自相乘运算,得到第一余弦距离矩阵,包括:
将所述第一数量的第一活动轨迹划分为第三数量的组别,每一组别包括第四数量的第一活动轨迹,所述第四数量为所述第一数量与所述第三数量的比值;
通过多个图形处理器GPU线程并行对所述第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵,并将所述第三数量的第二余弦距离矩阵确定为所述第一余弦距离矩阵,每个组别的第二轨迹特征矩阵是根据所述每个组别中第四数量的第一活动轨迹的轨迹特征得到的轨迹特征矩阵,每个组别的第二轨迹特征矩阵通过至少一个GPU线程进行矩阵自相乘运算。
5.根据权利要求4所述的方法,其特征在于,所述通过多个图形处理器GPU线程并行对所述第三数量的组别的第二轨迹特征矩阵分别进行矩阵自相乘运算,得到第三数量的第二余弦距离矩阵,包括:
针对每个组别,将所述每个组别的第二轨迹特征矩阵划分为第五数量的分块矩阵;
通过多个GPU线程并行对所述第五数量的分块矩阵分别进行矩阵自相乘运算,得到第五数量的分块余弦距离矩阵,并将所述第五数量的分块余弦距离矩阵确定为所述每个组别的第二余弦距离矩阵,每个分块矩阵通过至少一个GPU线程进行矩阵自相乘运算。
6.根据权利要求4所述的方法,其特征在于,所述通过所述Rank-Order距离聚类算法,根据所述第一余弦距离矩阵,对所述第一数量的第一活动轨迹进行聚类处理,得到至少一个聚类簇,包括:
通过所述Rank-Order距离聚类算法,根据每个第二余弦距离矩阵,对所述每个第二余弦距离矩阵对应的第四数量的第一活动轨迹进行聚类处理,得到至少一个临时聚类簇;
对所述第三数量的第二余弦距离矩阵分别对应的至少一个临时聚类簇进行合并处理,得到所述至少一个聚类簇。
7.根据权利要求2-6任一项所述的方法,其特征在于,在所述第二数量的第二活动轨迹中,检索确定所述每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹,包括:
将第三轨迹特征矩阵与第四轨迹特征矩阵进行乘法运算,得到结果矩阵,所述第三轨迹特征矩阵是根据所述每个聚类簇包括的至少一个第一活动轨迹的轨迹特征得到的轨迹特征矩阵,所述第四轨迹特征矩阵是根据所述第二数量的第二活动轨迹的轨迹特征得到的轨迹特征矩阵,所述结果矩阵中的值为所述每个聚类簇包括的至少一个第一活动轨迹分别与所述第二数量的第二活动轨迹之间的余弦相似度;
根据所述结果矩阵,确定所述每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹。
8.根据权利要求7所述的方法,其特征在于,所述根据所述结果矩阵,确定所述每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹,包括:
根据所述结果矩阵,确定每个第一活动轨迹对应的各个余弦相似度中的最大余弦相似度;
从所述至少一个第一活动轨迹分别对应的最大余弦相似度中确定最大的K个最大值,并将所述K个最大值分别对应的第二活动轨迹确定为所述每个聚类簇中的每个第一活动轨迹对应的目标第二活动轨迹,K为正整数。
9.根据权利要求1所述的方法,其特征在于,所述在所述第二数量的第二活动轨迹中,检索确定所述第一数量的第一活动轨迹分别对应的目标第二活动轨迹,包括:
对所述第二数量的第二活动轨迹进行区域划分处理,得到多个子活动区域,每个子活动区域包括至少一个第二活动轨迹;
针对每个子活动区域,基于所述每个子活动区域包括的至少一个第二活动轨迹,检索确定所述第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
10.一种轨迹确定装置,其特征在于,包括:
第一确定模块,用于检测到预定时间到达时,根据第一对应关系确定第一时间段,并根据第二对应关系确定第二时间段,
其中,所述第一对应关系是所述预定时间与所述第一时间段之间的关系,所述第二对应关系是所述预定时间与所述第二时间段之间的关系,所述第一时间段为所述第二时间段中的至少部分时间段;
获取模块,用于获取目标对象在所述第一时间段内处于第一活动区域中的第一数量的第一活动轨迹,并获取所述目标对象在所述第二时间段内处于第二活动区域中的第二数量的第二活动轨迹,所述第一活动区域为所述第二活动区域内的部分区域;
第二确定模块,用于在所述第二数量的第二活动轨迹中,检索确定所述第一数量的第一活动轨迹分别对应的目标第二活动轨迹。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010588851.8A CN111476616B (zh) | 2020-06-24 | 2020-06-24 | 轨迹确定方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010588851.8A CN111476616B (zh) | 2020-06-24 | 2020-06-24 | 轨迹确定方法、装置、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111476616A CN111476616A (zh) | 2020-07-31 |
CN111476616B true CN111476616B (zh) | 2020-10-30 |
Family
ID=71765302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010588851.8A Expired - Fee Related CN111476616B (zh) | 2020-06-24 | 2020-06-24 | 轨迹确定方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111476616B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102334142A (zh) * | 2009-02-24 | 2012-01-25 | 三菱电机株式会社 | 人物追踪装置以及人物追踪程序 |
CN109033011A (zh) * | 2018-06-19 | 2018-12-18 | 东软集团股份有限公司 | 计算轨迹频繁度的方法、装置、存储介质及电子设备 |
CN110532432A (zh) * | 2019-08-21 | 2019-12-03 | 深圳供电局有限公司 | 一种人物轨迹检索方法及其系统、计算机可读存储介质 |
CN110674723A (zh) * | 2019-09-19 | 2020-01-10 | 北京三快在线科技有限公司 | 一种确定无人驾驶车辆行驶轨迹的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006085257A (ja) * | 2004-09-14 | 2006-03-30 | Toshiba Corp | 移動体の動線分析の方法、システム及びプログラム |
CN102646070B (zh) * | 2012-02-29 | 2014-10-22 | 武汉大学 | 一种基于区域的时空轨迹数据存储方法 |
CN104462395B (zh) * | 2014-12-11 | 2018-02-06 | 南威软件股份有限公司 | 一种同行车辆分析方法 |
CN105843919A (zh) * | 2016-03-24 | 2016-08-10 | 云南大学 | 一种基于多特征融合与聚类集成的移动对象轨迹聚类方法 |
CN110874362A (zh) * | 2019-10-29 | 2020-03-10 | 青岛海信网络科技股份有限公司 | 一种数据关联分析方法及装置 |
CN111309780B (zh) * | 2020-01-21 | 2023-04-25 | 腾讯云计算(北京)有限责任公司 | 一种轨迹数据处理方法及装置 |
-
2020
- 2020-06-24 CN CN202010588851.8A patent/CN111476616B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102334142A (zh) * | 2009-02-24 | 2012-01-25 | 三菱电机株式会社 | 人物追踪装置以及人物追踪程序 |
CN109033011A (zh) * | 2018-06-19 | 2018-12-18 | 东软集团股份有限公司 | 计算轨迹频繁度的方法、装置、存储介质及电子设备 |
CN110532432A (zh) * | 2019-08-21 | 2019-12-03 | 深圳供电局有限公司 | 一种人物轨迹检索方法及其系统、计算机可读存储介质 |
CN110674723A (zh) * | 2019-09-19 | 2020-01-10 | 北京三快在线科技有限公司 | 一种确定无人驾驶车辆行驶轨迹的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111476616A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815868B (zh) | 一种图像目标检测方法、装置及存储介质 | |
CN112232293A (zh) | 图像处理模型训练、图像处理方法及相关设备 | |
JP7172472B2 (ja) | ルール生成装置、ルール生成方法及びルール生成プログラム | |
CN112862874B (zh) | 点云数据匹配方法、装置、电子设备及计算机存储介质 | |
CN113011282A (zh) | 图数据处理方法、装置、电子设备及计算机存储介质 | |
CN111614769B (zh) | 一种深度学习技术的行为智能分析引擎系统及控制方法 | |
WO2023093724A1 (zh) | 神经网络模型的处理方法及装置 | |
CN111476183A (zh) | 客流信息处理方法及装置 | |
WO2022100165A1 (zh) | 神经网络模型的训练方法、图像处理方法及装置 | |
CN112052771B (zh) | 一种对象重识别方法及装置 | |
CN111709382A (zh) | 人体轨迹处理方法、装置、计算机存储介质以及电子设备 | |
CN114626503A (zh) | 模型的训练方法、目标检测方法、装置、电子设备及介质 | |
CN113705598A (zh) | 数据分类方法、装置及电子设备 | |
CN113657272B (zh) | 一种基于缺失数据补全的微视频分类方法及系统 | |
Li et al. | MobileNetV3-CenterNet: A target recognition method for avoiding missed detection effectively based on a lightweight network | |
CN113869274A (zh) | 基于城市管理的无人机智能跟踪监控方法及系统 | |
CN111476616B (zh) | 轨迹确定方法、装置、电子设备及计算机存储介质 | |
Guo et al. | UDTIRI: An online open-source intelligent road inspection benchmark suite | |
Hashim et al. | Deep transfer learning based human activity recognition by transforming IMU data to image domain using novel activity image creation method | |
Chen et al. | Edge artificial intelligence camera network: an efficient object detection and tracking framework | |
JP2021522605A (ja) | 高速化された大規模な類似度計算 | |
CN112085268B (zh) | 居民出行信息的测算方法、装置、设备和可读存储介质 | |
Yuan et al. | Learning Bottleneck Transformer for Event Image-Voxel Feature Fusion Based Classification | |
CN113836993A (zh) | 定位识别方法、装置、设备及计算机可读存储介质 | |
CN112818241A (zh) | 一种内容推广方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40025953 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201030 |
|
CF01 | Termination of patent right due to non-payment of annual fee |