海量图像特征向量中的快速聚类预处理方法技术

技术编号:14896004 阅读:98 留言:0更新日期:2017-03-29 11:11
本发明专利技术涉及图像处理领域,其公开了一种海量图像特征向量中的快速聚类预处理方法,包括如下步骤:(A)两级线程池处理;(B)两级Map的存储结构处理;所述两级线程池包括进行简单预聚类的初级预处理线程池和进行次级聚类合并的次级合并线程池;所述两级Map的存储结构中,将大的聚类结果Map划分成子Map,子Map的合并比较操作并行进行。本发明专利技术的有益效果是:将聚类运算过程通过两级调度设计,适合在多核服务器上运行;通过两级Map的存储结构,使聚类比较与聚类更新的之间的阻塞影响趋近为0。

【技术实现步骤摘要】

本专利技术涉及图像处理领域,尤其涉及一种海量图像特征向量中的快速聚类预处理方法。。
技术介绍
在图像智能分析领域,针对图像分析的先期步骤一般都包含图像的结构化处理,结构化处理过程对图像的像素点阵数据进行运算(如利用神经网络的模型)后,最终得到一个维度有限的高维向量来表达原始图像的特征,此向量一般也称为图像的特征向量,图像特征向量是输入数据的类型。在图像智能分析中,有两个基本的问题,一是其解决图像“是什么”的分类问题(如人脸检测),二是解决图片个体在已知的某一类事物集合中“是谁(是哪个)”的识别问题(如人脸识别)。目前,深度神经网络是识别类图像智能分析领域的一个主流技术,而对此类功能神经网络的训练主流方法是监督学习的训练方法。监督学习的训练方法需要大量的标注数据用于训练的输入,特别针对某种类型图像“识别”问题而言,需要大量的已聚好类的某种事物图片和其特征的集合,这个集合其中的每一个类是此种事物中的某个个体在不同状态、条件、长时间跨度、角度下采集的图片及其特征。举人脸识别而言,所需要的训练数据是不同的人的图像集合,且这些集合中每一个人都是在不同的状态、光照、角度、表情、清晰度以及年龄等各条件情况下采集的图像。在实际的场景中,人们很容易通过实地采集和网络爬取等技术方案迅速累积亿万级的海量图像数据;从这些海量的图像数据中,如何采用有效的方法得到可用于神经网络模型训练已聚类的图像集合,一般采用预处理+人工筛查的方式来得到已经GroundTruth的标注数据,因此如何使预处理步骤的结果尽可能准确、快速以及高效,则需要被仔细考虑。大部分的聚类方法都有如下待解决的问题:n聚类的类型个数不确定,聚类可能得到的类型理论上有无穷多种;n不同类型元素之间不互相重叠;n同时支持离线分析和实时分析;n人工分析预处理环节用,聚类结果容忍一定的错误;n针对海量数据进行预处理,处理速度需要足够快;n按条件聚类(如类型内元素个数的最大值和最小值,入选类别数总数上限);n高可用的容错和异常恢复机制。现有的技术方案中,虽然有很多经典的聚类算法,但都没有直接有效地解决如上所述的问题场景的解决方案。传统的K-Means聚类算法或K-Means的演进类算法如KNN算法,它首先要求是确定一个假设的类型个数K,而这正是场景中首先不符合的,另外K-Means算法也允许不同的类型之间可以相互重叠,这也不符合问题的所描述的场景,另外K-Means的类的算法在运行时也需要针对一些已知总数的数据集,这也不符合本场景中所提出到的实时分析需求,因为在实时输入的分析处理中,输入数据库的总数是不确定且是流式处理的。另外在实现方式上,K-Mean需要多轮处理,这对于海量数据处理来说将很难满足实时性的要求。另外也有一些机构和团队研究了基于输入数据采样和高斯估计的频繁项特征值挖掘方法,支持离线分析和实时处理,但类似的方法均采用了输入采样虽然提高了处理速度,但损失了结果的准确性;其按时间周期进行处理的方法只能说是近实时而不是纯实时的处理;在离线处理模式下,因为不好定义输入周期而导致结果存在很大的不确定性,另外在上述场景中提到按条件聚类方面,在此类场景下也缺乏良好的支持。另外也有一些直接的聚类方案,基于几何向量间的距离或其它相似度的衡量进行基于一一比较的聚类,但通常这些算法没有针对海量数据进行特别的设计,在处理方案的并行度、计算的复杂度、分类的准确性及运行的可靠性方面没有进行良好的设计,而导致方案在海量数据的环境下计算速度和准确率方面都表现不佳,不具备实用性。综上所述,对于图像识别领域的标注数据的聚类预处理,有其特别的需求和场景特点,很难直接用现用的方案来解决。
技术实现思路
为了解决现有技术中的问题,本专利技术提供了一种海量图像特征向量中的快速聚类预处理方法,解决现有技术中计算内存要求高和运算复杂的问题。本专利技术是通过以下技术方案实现的:设计、制造了一种海量图像特征向量中的快速聚类预处理方法,包括如下步骤:(A)两级线程池处理;(B)两级Map的存储结构处理;所述两级线程池包括进行简单预聚类的初级预处理线程池和进行次级聚类合并的次级合并线程池;所述两级Map的存储结构中,将大的聚类结果Map划分成子Map,子Map的合并比较操作并行进行。作为本专利技术的进一步改进:所述初级预处理线程池进行初级聚类任务切分调度,具体为:所述初级预处理线程池进行初级聚类任务切分调度,具体为:(A1)根据内存资源的消耗上限,设定初级预处理线程池队列的最大长度;(A2)检查队列中已有的任务块,如果队列未达到其在步骤(A1)中设定的最大长度,调度模块从特征值数据库中读取一个长度不大于最大长度的数据,并组装成一个任务请求放置到队列中;(A3)如查到队列长度达到最大值,则等待初级预处理线程池的线程从队列中取出任务请求,以便队列不再满为止;(A4)反复进行步骤(A2)和步骤(A3),直到数据都处理完毕为止。作为本专利技术的进一步改进:所述步骤(A)中,初级预处理线程池按如下方式进行处理:从任务切分调度模块中获取任务块,如果没有获取成功,则等待,成功之后便进行后续步骤;初始化一个两级Map,第一级Map是第二级子Map的管理层,第二级子Map直接保存匹配结果的类,具体步骤:遍历任务块中指定的有限个元素,对于每一个元素,执行如下逻辑:每取到一个特征向量,跟当前所有子Map中的已聚类结果进行比较;将每个子Map匹配最佳的结果返回上一级进行处理,如果与某个子Map中的某个类达到最佳匹配,则将当前特征值增加到已存在的这个类中;如果与所有子Map中的类都不匹配,则新建一个类,并将当前特征值作为新建的这个类的第一个特征值,并将该类加入到空闲的子Map中进行管理,当指定的有限个元素都处理完毕后,向次级合并线程池发送合并请求。作为本专利技术的进一步改进:所述步骤(B)中,两级Map存储结构中,按固定的切换粒度n将所有的聚类结果划分成m份,其中每一份都生成为一个子Map,以所有子Map为元素组合成一个大Map。作为本专利技术的进一步改进:子Map的每一个元素为一个聚类过程形成的最终的结果类,每个类包含以下两个关键信息:所有聚类成这个类的原始特征值存储ID和这个类的代表特征值向量;当向当前类中新增加特征值向量时,如果是第一个特征值向量,则将此向量作为这个类的代表特征向量;如果新增加特征向量时,是第x个特征向量(x!=1),设原始的代表特征向量为y(org),则新的代表特征向量y(new)=((n-1)x+y(org))/n。作为本专利技术的进一步改进:所述步骤(A)中,次级合并线程池按如下步骤进行处理:(A21)每一个合并线程都独立运行,每个线程不断的尝试获取合并请求,如果请求队列为空,则进行等待,如果不为空,则进行下一步处理;(A22)对于每一个合并请求,先并行且独立进行与每个子Map的比较操作;(A23)当一个合并请求的子Map都比较完成后,进行比较结果的合并,选取所有比较结果最大的匹配分值;(A24)如果这个最大的匹配值大于设定门限,则表明与现有的类匹配,进行现有类的更新操作,并将新的特征值ID附加到匹配的类中;当前元素处理完毕后跳转到步骤(A21),否则进行步骤(A25);(A25)新建类,首先检查是否达到最大的Map容量,如果没有达到本文档来自技高网
...
海量图像特征向量中的快速聚类预处理方法

【技术保护点】
一种海量图像特征向量中的快速聚类预处理方法,其特征在于:包括如下步骤:(A)两级线程池处理;(B)两级Map的存储结构处理;所述两级线程池包括进行简单预聚类的初级预处理线程池和进行次级聚类合并的次级合并线程池;所述两级Map的存储结构中,将大的聚类结果Map划分成子Map,子Map的合并比较操作并行进行。

【技术特征摘要】
1.一种海量图像特征向量中的快速聚类预处理方法,其特征在于:包括如下步骤:(A)两级线程池处理;(B)两级Map的存储结构处理;所述两级线程池包括进行简单预聚类的初级预处理线程池和进行次级聚类合并的次级合并线程池;所述两级Map的存储结构中,将大的聚类结果Map划分成子Map,子Map的合并比较操作并行进行。2.根据权利要求1所述的海量图像特征向量中的快速聚类预处理方法,其特征在于:所述初级预处理线程池进行初级聚类任务切分调度,具体为:(A1)根据内存资源的消耗上限,设定初级预处理线程池队列的最大长度;(A2)检查队列中已有的任务块,如果队列未达到其在步骤(A1)中设定的最大长度,调度模块从特征值数据库中读取一个长度不大于最大长度的数据,并组装成一个任务请求放置到队列中;(A3)如查到队列长度达到最大值,则等待初级预处理线程池的线程从队列中取出任务请求,以便队列不再满为止;(A4)反复进行步骤(A2)和步骤(A3),直到数据都处理完毕为止。3.根据权利要求1所述的海量图像特征向量中的快速聚类预处理方法,其特征在于:所述步骤(A)中,初级预处理线程池按如下方式进行处理:从任务切分调度模块中获取任务块,如果没有获取成功,则等待,成功之后便进行后续步骤;初始化一个两级Map,第一级Map是第二级子Map的管理层,第二级子Map直接保存匹配结果的类,具体步骤:遍历任务块中指定的有限个元素,对于每一个元素,执行如下逻辑:每取到一个特征向量,跟当前所有子Map中的已聚类结果进行比较;将每个子Map匹配最佳的结果返回上一级进行处理,如果与某个子Map中的某个类达到最佳匹配,则将当前特征值增加到已存在的这个类中;如果与所有子Map中的类都不匹配,则新建一个类,并将当前特征值作为新建的这个类的第一个特征值,并将该类加入到空闲的子Map中进行管理,当指定的有限个元素都处理完毕后,向次级合并线程池发送合并请求。4.根据权利要求1所述的海量图像特征向量中的快速聚类预处理方法,其特征在于:所述步骤(B)中,两级Map存储结构中,按固定的切换粒度n将所有的聚类结果划分成m份,其中每一份都生成为一个子Ma...

【专利技术属性】
技术研发人员:王健钟斌
申请(专利权)人:深圳云天励飞技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1