CN109242048B - 基于时间序列的视觉目标分布式聚类方法 - Google Patents
基于时间序列的视觉目标分布式聚类方法 Download PDFInfo
- Publication number
- CN109242048B CN109242048B CN201811319309.1A CN201811319309A CN109242048B CN 109242048 B CN109242048 B CN 109242048B CN 201811319309 A CN201811319309 A CN 201811319309A CN 109242048 B CN109242048 B CN 109242048B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- visual target
- category
- clustering
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于时间序列的视觉目标分布式聚类方法,包括数据获取步骤:使用摄像头采集大量视觉目标的图片;特征提取步骤:对采集到的图片进行特征提取并进行时间排序;分布式聚类计算:利用摄像头采集视觉目标的时间序列特性,以及对数据进行切分,由多个节点共同完成类别的计算。本发明针对摄像头采集场景下视觉目标图片的时间连续性,快速完成算法的第一次迭代,大大减少了聚类所需花费的时间,大大提高了聚类效率;本发明结合分布式多机实现,进一步加快聚类过程,能够实现百万级别或者千万级别的数据处理,算法简单且效率高。
Description
技术领域
本发明涉及图像识别技术领域,具体涉及一种基于时间序列的视觉目标分布式聚类方法。
背景技术
随着人工智能深度学习技术的发展,各种新的模型训练方法被提出,尤其在图像识别领域,识别的精度不断提升,在某些情况下甚至能超过人类肉眼识别的精度。但是模型的训练需要借助大量带标签的图片数据,有的数据可以通过网络下载。但是这些数据是有限的,更多情况下,图片的获得是通过摄像头采集现实生活中的视觉目标得到的,问题在于这些通过摄像头采集的图片是没有标签的数据,首先需要人工进行分类,再将其作为训练模型的数据来源。人工分类的过程费时费力。
可以通过已有的高精度识别模型,提取图片中特征,通过简单的欧式距离进行判断多条特征是否是同一目标,进而进行图片的分类工作。但是目前的聚类方法复杂度较高,百万级别的图片聚类工作需要花费很多时间才能完成。
发明内容
为了解决聚类方法复杂、且效率低等技术问题,本发明提供了基于时间序列的视觉目标分布式聚类方法。
本发明通过下述技术方案实现:
基于时间序列的视觉目标分布式聚类方法,包括以下步骤:
步骤一、采集视觉目标的图片数据;
步骤二、对采集的图片数据进行特征提取,得到特征数据;并将该特征数据按照采集图片数据的时间排序,得到时间序列特征数据;
步骤三、对所述时间序列特征数据进行划分,由多个节点共同实现分布式聚类计算。
优选的,所述步骤一具体为:采用摄像头采集视觉目标图片,且所述视觉目标图片带有时间特性。
优选的,所述步骤二具体包括:
步骤2.1通过识别模型对采集的图片进行特征提取;
步骤2.2所述提取的特征数据排序同摄像头采集图片的时间信息保持对应关系,得到时间序列特征数据。
优选的,所述步骤三具体包括:
步骤3.1对集群中各个机器分配不同角色,包括一个主节点和至少一个其他节点;其中,所述主节点负责数据的接收、划分、下发以及计算;所述至少一个其他节点负责数据的接收、计算以及将计算结果发回给其他节点;
步骤3.2所述主节点根据集群中节点数,将所述时间序列特征数据进行划分并下发,进行第一次迭代处理;
步骤3.3各节点分别进行聚类计算,得到多个类别;各节点通过计算每个类别中所有点的平均值,得到一个中心点,以该中心点代表该类别,将所有的类别中心点发回给主节点;
步骤3.4所述主节点判断是否达到退出条件,是则进入步骤3.5,否则所述主节点将接收的类别中心点进行划分并下发,进行下一次迭代处理,重复执行步骤3.3-步骤3.4;
步骤3.5所述主节点进行最后一次类别合并,实现对采集的图片数据进行快速聚类。
优选的,所述第一次迭代处理基于时间序列特征数据,之后的迭代处理基于各类别中心点数据,已经不再具有时间信息。
优选的,所述退出条件为下述条件之一:
a,判断所述主节点收集到的类别中心点总数是否低于一定值,如果是,则所述主节点有能力对这些类别中心点进行最后一次类别合并,不需要其他节点进行计算的分担,则退出迭代;
b,判断相较于上一次,所述主节点收集到的类别中心点的下降数目是否足够多,如果下降数目不多,说明类别中心点的合并已经不明显,则退出迭代;
c,迭代次数是否达到预定义的次数,如果达到则退出迭代。
本发明具有如下的优点和有益效果:
1、本发明针对摄像头采集场景下图片的时间连续性,快速完成算法的第一次迭代,大大减少了聚类所需花费的时间,大大提高了聚类效率;
2、本发明结合分布式多机实现,进一步加快聚类过程,能够实现百万级别或者千万级别的数据处理,算法简单且效率高。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
DBSCAN(density-based spatial clustering of applications with noise)是一种比较经典的基于密度的聚类算法,输入参数不需要包括最终的类别数目,符合我们当前的场景。其具体定义如下:X为需要被聚类的点的集合,其中的点有三种类型,核心点,密度可达点以及局外点。如果一个点p在距离ε范围内有minPts个点(包括点p自己),则p被称为核心点,ε范围内的点成为由p直接可达的。其次如果存在一条道路p1,…,pn,由p1=p和pn=q,且每个pi+1都是由pi直接可达的,则称q是p可达的。最后所有不由任何点可达的点都被成为局外点。
但是仅仅依赖上述的DBSCAN是不能完成现实任务,因为上面算法的时间复杂度过高(平均时间复杂度是O(nlogn),最差时间复杂度是O(n^2))。本实例提出了基于时间序列的视觉目标分布式聚类方法,该方法采用了两种优化,一是利用摄像头采集视觉目标的时间特性,二是完成对算法分布式的实现。
现实场景下摄像头采集视觉目标的图片,连续的图片很有可能是同一视觉目标或者几个视觉目标的,因为视觉目标从摄像头下走过去是需要时间的,这段时间内采集的图片是属于同一视觉目标的。我们在进行聚类时候,不需要将特征以及全局的图片特征进行计算,只需要对该特征进行一个局部范围内的计算,判断这条特征是属于哪个类别。但是存在的问题是有可能存在某个视觉目标(例如某个人)在摄像头下走过去,比较长的一段时间后,又在该摄像头下出现,所以就会出现同一视觉目标有两个或者多个类别的情况,我们需要对这些类别进行合并,是否合并的判断依据可以利用各个类别的平均中心点,通过计算多个中心点的距离,来判断是否要将这些类别合并。
我们处理的数据量大部分是百万级别的,如果可以将数据进行划分,将不同的数据分发到不同的节点上进行计算,就可以加快算法的执行。为了实现的简洁,使用MPI框架可以帮助我们在实现算法时候,忽略网络通信的细节,只需要实现不同节点的算法逻辑。
本实施例的方法流程如下:
步骤一、数据采集及处理:我们算法的输入是特征,所以首先需要将图片转换为特征。特征的得到需要依赖已有的识别模型,通过处理摄像头采集的图片信息,我们得到图片中每个视觉目标的特征信息(特征是一个浮点向量,可以是128维度,或者更高维度,需要注意的是维度越高本地聚类的时间也会相应边长)。需要注意的是我们在得到特征时,需要保持摄像头采集的图片的时间信息,即得到的特征数据的排序需要同摄像头采集的图片信息的时间信息保持对应关系。
步骤二、分布式聚类计算:
步骤2.1:在进行分布式实现的时候,我们划分集群中各个机器的不同角色,有一个主节点成为rank0,其他节点称为ranki。主节点是特殊的计算节点,除了普通的计算任务,它还负责数据的划分和下发。其他rank的节点只负责进行数据的接收,本地计算以及将计算结果发还给rank0。第一步完成后,我们得到大量(百万级别或者千万级别)依据时间排序的特征。rank0需要对根据集群中节点数目,将按照时间排序的特征数据进行平均划分,例如有100万条数据,集群中有10个计算节点,则rank0负责前10万条特征数据的本地聚类计算,rank1负责第二个10万条数据的计算,以此类推。第一轮数据的分发比较简单,按照上述的平均切分即可。后面迭代的数据分发不能按照上面平均切分的方式,因为第一次迭代结束后,后面迭代的数据来源是聚类中心点,已经不在具有时间信息,但是为了将相同目标在不同时间段的信息进行合并,我们需要将收集到的中心点进行shuffle,然后再进行平均切分。
步骤2.2:同上一步一样,第一轮的本地计算需要依赖时间序列信息,之后的聚类计算按照普通的DBSCAN步骤即可。第一轮的计算方式决定了整个算法的效率,因为第一轮的计算数据量是最大的。按照摄像头采集的视觉目标的时间序列的特性,连续特征很有可能是同一视觉目标的,可以维护一个队列,队列元素是一个视觉目标,或者一个类别,每次对一个新的特征点进行判定时候,从队列尾部开始判断(队列尾部是临近时间的目标),如果该条新特征跟某个类别中的某个比例的点的欧式距离小于阈值(例如一个类别中有100条目标特征,新输入的特征跟该类别中超过80条特征欧式距离小于用户输入阈值,则判断该条特征属于该类别)。如果不满足特定比例,则依次跟前面的队列元素进行比较。最后依然没能成功插入,就新建一个队列元素,将该特征插入。为了防止队列元素太长,导致插入一条特征时间过久,我们需要限定队列的长度,当队列超过一定长度,则新建一个队列。
步骤2.3:发送中心点给rank0。经过上一步,每个节点都会得到许多类别,通过计算该类别所有点的平均值,得到一个中心点,我们让该点代表整个类别。将所有的类别中心点发回给rank0,所述rank0判断是否达到退出条件,是则进入步骤三,否则回到步骤2.1。
退出条件满足下述三个任一个即可:一是判断rank0收集到的中心点总数是否低于一定值,如果是,则rank0已经有能力对这些中心点进行最后一轮的合并,不需要其他rank进行计算的分担。二是判断跟上一轮相比,中心点的下降数目是否足够多,如果下降数目不多,说明中心点的合并已经不明显。三是迭代次数是否达到用户预定义的次数,如果达到则直接进入步骤三。
步骤三、rank0进行最后一轮合并。
实施例2
将上述实施例1提出的基于时间序列的视觉目标分布式聚类方法进行实际算法编码测试,具体过程如下:
步骤S1,通过摄像头采集视觉目标的图片。可以通过RTSP协议与摄像头进行连接得到视频信息,通过实验室研发的识别SDK编写目标检测程序,将图片信息以及该图片的时间信息进行保存到服务器硬盘。
步骤S2,通过实验室的识别SDK的特征提取接口,可以对上一步保存的图片进行特征提取。经过实际测试,100万的视觉目标图片,在4块1080Ti英伟达显卡上大概需要3个小时得到所有的特征数据。可以将特征数据以二进制形式存放到文件中,实验室SDK的特征维度是128维,通过计算(100万*128*4)可以得到100万特征大概需要大约500MB空间
步骤S3,按照算法原理,完成算法的编码。可以通过MPI来简化分布式程序的设计。借助MPI,程序编写者可以不用考虑数据具体的通信,只需要完成不同节点的算法逻辑即可。需要注意的是rank0与其他节点的算法逻辑有所不同,第一次迭代以及后续迭代的算法逻辑也有所不同,在实现算法的时候,可以将rank0的实现逻辑与其他节点算法逻辑分开放在两个函数中(例如RankZeroIteration函数专门负责rank0的逻辑,OtherRankIteration函数专门负责其他rank的逻辑)。具体区别在于,rank0需要负责数据的读取或者分发,需要将其他节点的中心点数据进行shuffle,再次进行分发,以及多了一个最后一阶段的合并操作。第一次迭代与其他次迭代在进行本地聚类时候的区别在于,第一次迭代可以借助时间序列的特性,加快聚类过程。后面的迭代基本就是原始的DBSCAN实现。在实现特征的欧式距离的计算时候,要考虑当前CPU是否支持向量计算,使用AVX指令或者SSE指令可以加快浮点向量的计算过程。使用SSE指令计算计算两个向量欧式距离平方的函数(fvec_L2sqr),第一个和第二个参数是两个向量的指针,第三个参数是向量的维度。
步骤S4,利用上一步得到对特征的分类以及特征跟图片一一对应的关系,我们就可以得到对图片的分类
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.基于时间序列的视觉目标分布式聚类方法,其特征在于,包括以下步骤:
步骤一、采集视觉目标的图片数据;
步骤二、对采集的图片数据进行特征提取,得到特征数据;并将该特征数据按照采集图片数据的时间排序,得到时间序列特征数据;
步骤三、对所述时间序列特征数据进行划分,由多个节点共同实现分布式聚类计算;所述步骤一具体为:采用摄像头采集视觉目标的图片,且所述视觉目标的图片带有时间特性;所述步骤二具体包括:
步骤2.1 通过识别模型对采集的图片进行特征提取;
步骤2.2 所述提取的特征数据排序同摄像头采集图片的时间信息保持对应关系,得到时间序列特征数据;所述步骤三具体包括:
步骤3.1 对集群中各个机器分配不同角色,包括一个主节点和至少一个其他节点;其中,所述主节点负责数据的接收、划分、下发以及计算;所述至少一个其他节点负责数据的接收、计算以及将计算结果发回给其他节点;
步骤3.2 所述主节点根据集群中节点数,将所述时间序列特征数据进行划分并下发,进行第一次迭代处理;
步骤3.3各节点分别进行聚类计算,得到多个类别;各节点通过计算每个类别中所有点的平均值,得到一个中心点,以该中心点代表该类别,将所有的类别中心点发回给主节点;
步骤3.4所述主节点判断是否达到退出条件,是则进入步骤3.5,否则所述主节点将接收的类别中心点进行划分并下发,进行下一次迭代处理,重复执行步骤3.3-步骤3.4;
步骤3.5 所述主节点进行最后一次类别合并,实现对采集的图片数据进行快速聚类。
2.根据权利要求1所述的基于时间序列的视觉目标分布式聚类方法,其特征在于,所述第一次迭代处理基于时间序列特征数据,之后的迭代处理基于各类别中心点数据,已经不再具有时间信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811319309.1A CN109242048B (zh) | 2018-11-07 | 2018-11-07 | 基于时间序列的视觉目标分布式聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811319309.1A CN109242048B (zh) | 2018-11-07 | 2018-11-07 | 基于时间序列的视觉目标分布式聚类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109242048A CN109242048A (zh) | 2019-01-18 |
CN109242048B true CN109242048B (zh) | 2022-04-08 |
Family
ID=65077259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811319309.1A Active CN109242048B (zh) | 2018-11-07 | 2018-11-07 | 基于时间序列的视觉目标分布式聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109242048B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502651B (zh) * | 2019-08-15 | 2022-08-02 | 深圳市商汤科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073939A (zh) * | 2016-11-17 | 2018-05-25 | 中国移动通信有限公司研究院 | 一种数据聚类方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006309A1 (en) * | 2007-01-26 | 2009-01-01 | Herbert Dennis Hunt | Cluster processing of an aggregated dataset |
US9110501B2 (en) * | 2012-04-17 | 2015-08-18 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting talking segments in a video sequence using visual cues |
CN105005784B (zh) * | 2015-05-21 | 2019-01-15 | 中国科学院遥感与数字地球研究所 | 一种基于cd-dtw距离的时间序列遥感影像土地覆盖分类方法 |
US9836183B1 (en) * | 2016-09-14 | 2017-12-05 | Quid, Inc. | Summarized network graph for semantic similarity graphs of large corpora |
CN106778813B (zh) * | 2016-11-24 | 2018-02-23 | 金陵科技学院 | 深度图像的自适应聚类分割算法 |
US10248713B2 (en) * | 2016-11-30 | 2019-04-02 | Business Objects Software Ltd. | Time series analysis using a clustering based symbolic representation |
CN107067028B (zh) * | 2017-03-16 | 2021-02-12 | 华南理工大学 | 基于分布式聚类的网络流量时间序列预测方法 |
CN107291847B (zh) * | 2017-06-02 | 2019-06-25 | 东北大学 | 一种基于MapReduce的大规模数据分布式聚类处理方法 |
CN108229528A (zh) * | 2017-08-16 | 2018-06-29 | 北京市商汤科技开发有限公司 | 聚类模型训练方法和装置、电子设备、计算机存储介质 |
CN108052535B (zh) * | 2017-11-15 | 2021-02-05 | 国家计算机网络与信息安全管理中心 | 基于多处理器平台的视觉特征并行快速匹配方法和系统 |
-
2018
- 2018-11-07 CN CN201811319309.1A patent/CN109242048B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073939A (zh) * | 2016-11-17 | 2018-05-25 | 中国移动通信有限公司研究院 | 一种数据聚类方法及装置 |
Non-Patent Citations (3)
Title |
---|
Clustering Distributed Short Time Series with Dense Patterns;Josenildo Costa da Silva等;《2017 16th IEEE International Conference on Machine Learning and Applications (ICMLA)》;20180118;第34-41页 * |
基于特征的时间序列聚类;李深洛;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20150115(第1期);第I138-818页 * |
基于特征的时间序列聚类方法研究进展;宋辞等;《地理科学进展》;20121015;第31卷(第10期);第1307-1317页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109242048A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112784749B (zh) | 目标模型的训练方法、目标对象的识别方法、装置及介质 | |
CN112396106B (zh) | 内容识别方法、内容识别模型训练方法及存储介质 | |
CN106228121B (zh) | 手势特征识别方法和装置 | |
CN109509222B (zh) | 直线类物体的检测方法及装置 | |
CN113313053B (zh) | 图像处理方法、装置、设备、介质及程序产品 | |
CN109213882A (zh) | 图片排序方法及终端 | |
CN113128478B (zh) | 模型训练方法、行人分析方法、装置、设备及存储介质 | |
CN112668522B (zh) | 一种人体关键点与人体掩码联合检测网络及方法 | |
CN104391879B (zh) | 层次聚类的方法及装置 | |
CN111126197B (zh) | 基于深度学习的视频处理方法及装置 | |
CN112819065A (zh) | 基于多重聚类信息的无监督行人难样本挖掘方法和系统 | |
CN111259812B (zh) | 基于迁移学习的内河船舶重识别方法、设备及存储介质 | |
CN113111804B (zh) | 一种人脸检测的方法、装置、电子设备及存储介质 | |
CN110751191A (zh) | 一种图像的分类方法及系统 | |
CN112052771A (zh) | 一种对象重识别方法及装置 | |
CN114898266B (zh) | 训练方法、图像处理方法、装置、电子设备以及存储介质 | |
CN109242048B (zh) | 基于时间序列的视觉目标分布式聚类方法 | |
CN112200862B (zh) | 目标检测模型的训练方法、目标检测方法及装置 | |
CN113822134A (zh) | 一种基于视频的实例跟踪方法、装置、设备及存储介质 | |
CN114238764A (zh) | 基于循环神经网络的课程推荐方法、装置及设备 | |
CN113392867A (zh) | 一种图像识别方法、装置、计算机设备及存储介质 | |
CN112836611A (zh) | 确定身体部位语义图、模型训练和行人重识别方法及设备 | |
CN113392868A (zh) | 一种模型训练的方法、相关装置、设备及存储介质 | |
CN115098732B (zh) | 数据处理方法及相关装置 | |
CN104200222B (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 |