多核集群系统的并行AdaBoost特征提取方法

文档序号:6426637阅读:246来源:国知局
专利名称:多核集群系统的并行AdaBoost特征提取方法
技术领域
本发明涉及大规模并行计算领域和模式识别领域,是一种利用多核集群系统加速 AdaBoost特征提取的方法。
背景技术
基于AdaBoost机器学习算法的特征提取方法是目前流行的特征提取方法之一。 Adaboost机器学习算法是解决二类划分问题,如确定一幅图片是否是人脸图片,的有效方法,该方法依据给定的样本集合(包括正样本和负样本)对该类样本的特征集合(如Haar 特征集合)进行筛选,进而将筛选出的特征经过加权构成一个分类器。由该方法得到的分类器具备较高的准确度和鲁棒性,被广泛应用于各种模式识别系统中,如人物检测、人脸检测、人眼检测系统等等。AdaBoost算法主要由一个迭代循环构成,这个迭代循环又分为三个步骤最优特征筛选、误差评估和样本权重更新。其中最优特征筛选需要遍历整个特征集合,选出分类效果最好的特征,误差评估则对选出的特征进行评估,计算其分类的误差;样本权重更新则是根据刚刚选出的特征的误差对样本的权重进行调整,以便在下次迭代时针对新的样本权重选出新的最优特征。从整个算法流程来讲,样本集合及其权重是其核心数据结构,每次迭代都需要对所有的特征进行评估,从而得出误差最小的特征,并加入分类器中。对特征进行评估的过程中,需要使用该特征对样本库中的所有样本计算分类值,并依据该分类值对样本进行排序,进而求出该特征的最优阈值。AdaBoost机器学习算法具有较高的时间复杂度,对于给定大小为的训练样本集合和大小为的特征集合,AdaBoost机器学习算法的时间复杂度为(学习过程中的样本排序采用快速排序算法)。同时,为了能够得到具备更高准确度和鲁棒性的人脸特征分类器,又必须使用尽量多的训练样本和更大的特征集合,这就使得进行一次AdaBoost特征提取需要花费数周乃至数月的时间。如何加速AdaBoost特征提取就成为了一个亟待解决的问题。多核集群系统是目前主流的大规模并行计算系统,它将多台具备多核处理器的计算机连接起来构成集群,具备极强的计算能力。如果能够利用多核集群系统强大的计算能力进行AdaBoost特征提取,将极大地加速AdaBoost特征提取过程。然而,传统的AdaBoost 算法都是串行训练算法,无法充分利用多核集群系统的并行处理能力,难以发挥多核集群系统的性能优势,本专利针对这一问题,设计了多核集群系统的并行AdaBoost特征提取方法。

发明内容
本发明所解决的技术问题在于提供一种多核集群系统的并行AdaBoost特征提取方法,以解决上述背景技术中的缺点。多核集群系统的并行AdaBoost特征提取方法设给定的多核集群系统包含个计算机结点,每个计算机结点拥有个处理器核,包括以下步骤
3
(1)、每个计算机结点启动一个进程,一个主进程和p-1个从进程,主进程执行特征集合分布过程,将特征集合分为P个子集合,分布到P个计算机结点上,同时每个计算机结点都将保留一份样本集合的本地副本;(2)、每个进程执行特征子集合并行扫描过程,启动Q个线程对分配给自己的子集合进行扫描,选出该子集合中的最优特征;进而,集群系统执行特征规约过程,将个子集合的最优特征进行一次并行规约,得到整个特征集合的全局最优特征并保存在主进程中;(3)、主进程将全局最优特征通过广播发送给所有从进程,以便所有进程都能够依据全局最优特征更新样本集合的本地副本中各个样本的权重值;最终,经过多次迭代,主进程将得到一个由多个特征组合而成的特征分类器。在本发明中,所述特征集合分布过程包含三个子步骤1.对训练过程中将要使用的特征集合内的个特征进行编码,每个特征都用一个整数表示,这样,一个整数区间,就可以表示一个特征集合的子集合;2.主进程将代表个特征子集合的整数区间分别发送给个从进程;3.每个从进程接收到整数区间后,依据该整数区间重建特征子集合;在本发明中,所述特征子集合并行扫描过程包含三个子步骤1.将收到的整数区间均勻划分为个子区间;2.启动个线程,每个线程负责对子区间所对应的特征集合进行扫描,并选出该特征集合的最优特征;3.对个线程得到的个局部最优特征进行评估,获得区间所对应的特征集合的最优特征;在本发明中,所述特征规约过程包含如下子步骤1.对于任意一个计算结点,如果,那么,它将自己获得的局部最优特征发送给结占.
^ \\\ 2.对于任意一个计算结点,如果,那么,它等待接收来自结点和的局部最优特征; 收到后,它将对三个局部最优特征进行评估,得到最优特征,并将其发给结点;3.最终,全局最优特征将由结点0获得。需要特别指出的是Adaboost是一类机器学习算法的统称,它有许多变种,如 Descrete Adaboost^Real Adaboost 以及 Gentle Adaboost 等等。这些变种之间的区另Ij主要表现在三个方面一是特征误差的计算方法不同;二是样本权重的更新算法不同;三是在将多个特征通过加权构成分类器时加权的方式不同。本发明所述并行Adaboost特征提取方法并不局限于Adaboost算法中的某一变种,可以通用于所有Adaboost算法。所述多核集群系统的并行AdaBoost训练方法与传统AdaBoost训练方法相比具有如下优势该方法能够充分利用多核集群系统的并行处理能力,包括单个结点内部多核处理器核间的并行处理能力以及多核结点间的并行处理能力,从而极大地加速AdaBoost训练过程。有益效果本发明能够充分发挥多核集群系统计算能力,从而极大地加速AdaBoost特征提取过程。


图1是传统AdaBoost训练过程的流程图;图2是Haar特征描述示意图;图3是多核集群系统的AdaBoost训练过程的流程图;图4是全局最优特征的规约过程示意具体实施例方式为了使本发明的技术手段、创作特征、工作流程、使用方法达成目的与功效易于明白了解,下面结合具体实施例,进一步阐述本发明。如图3多核集群系统并行Adaboost训练方法的流程图,整个并行训练过程共包括六个大的步骤,即初始化特征集合和样本集合,特征集合分布,特征子集合的并行评估,子集合最优特征收集,全局最优特征广播以及并行样本权重更新。假设给定的多核集群系统包含个计算机结点,每个计算机结点拥有个处理器核,下面分别对着六个步骤进行详细的描述。在初始化特征集合和样本集合时,需要将特征集合和样本集合以配置文件的形式存储在多核集群系统的存储系统中,并确保所有的计算结点都能够访问。为了更好地发挥计算结点间的并行处理能力,应该在每个计算结点的本地存储器中保存样本集合的一个副本。此外,在初始化时,样本集合中的所有样本的权重都设为1。特征集合分布是指将特征集合划分为个子集合,并将这个子集合分别发送到个计算结点。为了能够在特征集合分布过程中尽量减少计算结点间的通信量,在进行特征集合分布时首先要对特征集合内的特征进行编码。假设特征集合共包含了个特征,那么就将每个特征与一个整数对应。这样,一个特征集合的子集合就可以用一个整数区间来表示。针对不同的特征集合需要设计不同的编码方法,下面以模式识别领域常用的Haar特征为例, 给出特征编码的设计思路。Haar特征是指将灰度图像中某个矩形位置内的像素灰度值进行加权求和以表征图像的某些特征。如错误!未找到引用源。所示,是两个Haar特征的例子左边的是一个宽度为4个像素,高度为2个像素,宽高比为2 1的Haar特征,它表示用左半边矩形内的像素和减去又边矩形内的像素和;右边是一个宽度为4个像素高度为6个像素,宽高比为2 2的Haar特征,它表示用左上角矩形的像素灰度和和减去右下角矩形的像素灰度和。要对某个Haar特征进行唯一的整数编码需要描述五个维度的信息Haar特征的种类、Haar特征矩形在样本图像上的横向偏移、Haar特征矩形在样本图像上的纵向偏移y、Haar特征的宽度以及Haar特征的高度。设要考虑的某一类Haar 特征的宽高比为,样本图像的宽度为,高度为,那么该类Haar特征的总数可以表示为
权利要求
1.多核集群系统的并行AdaBoost特征提取方法,设给定的多核集群系统包含个计算机结点,每个计算机结点拥有个处理器核,其特征在于,包括以下步骤(1)、每个计算机结点启动一个进程,一个主进程和p-1个从进程,主进程执行特征集合分布过程,将特征集合分为P个子集合,分布到P个计算机结点上,同时每个计算机结点都将保留一份样本集合的本地副本;(2)、每个进程执行特征子集合并行扫描过程,启动Q个线程对分配给自己的子集合进行扫描,选出该子集合中的最优特征;进而,集群系统执行特征规约过程,将个子集合的最优特征进行一次并行规约,得到整个特征集合的全局最优特征并保存在主进程中;(3)、主进程将全局最优特征通过广播发送给所有从进程,以便所有进程都能够依据全局最优特征更新样本集合的本地副本中各个样本的权重值;最终,经过多次迭代,主进程将得到一个由多个特征组合而成的特征分类器。
2.根据权利要求1所述的多核集群系统的并行AdaBoost特征提取方法,其特征在于, 所述特征集合分布过程包含三个子步骤(1)对训练过程中将要使用的特征集合内的个特征进行编码,每个特征都用一个整数表示,这样,一个整数区间,就可以表示一个特征集合的子集合;(2)主进程将代表个特征子集合的整数区间分别发送给个从进程;(3)每个从进程接收到整数区间后,依据该整数区间重建特征子集合。
3.根据权利要求1所述的多核集群系统的并行AdaBoost特征提取方法,其特征在于, 所述特征子集合并行扫描过程包含三个子步骤(1)将收到的整数区间均勻划分为个子区间;(2)启动个线程,每个线程负责对子区间所对应的特征集合进行扫描,并选出该特征集合的最优特征;(3)对个线程得到的个局部最优特征进行评估,获得区间所对应的特征集合的最优特征。
全文摘要
本发明公开了一种多核集群系统的并行AdaBoost特征提取方法,该方法将AdaBoost的每轮迭代过程用如下方法进行改造首先将AdaBoost训练过程中需要扫描的特征集合进行划分,均匀分布在多核集群系统的各个结点上;然后,每个计算结点则进一步将分配给自己的特征子集合进行划分,分别由不同的计算核心进行扫描并收集各个计算核心的计算结果,得到特征子集合上的最优特征;接着集群系统将各个结点得到的特征子集合上的最优特征进行规约,从而特到全局最优特征。该方法能够充分发挥多核集群系统的并行处理能力,从而极大地加速AdaBoost特征提取过程。
文档编号G06F9/46GK102226909SQ20111016614
公开日2011年10月26日 申请日期2011年6月20日 优先权日2011年6月20日
发明者夏东 申请人:夏东
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1