專(zhuān)利名稱(chēng):多核集群系統(tǒng)的并行AdaBoost特征提取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及大規(guī)模并行計(jì)算領(lǐng)域和模式識(shí)別領(lǐng)域,是一種利用多核集群系統(tǒng)加速 AdaBoost特征提取的方法。
背景技術(shù):
基于AdaBoost機(jī)器學(xué)習(xí)算法的特征提取方法是目前流行的特征提取方法之一。 Adaboost機(jī)器學(xué)習(xí)算法是解決二類(lèi)劃分問(wèn)題,如確定一幅圖片是否是人臉圖片,的有效方法,該方法依據(jù)給定的樣本集合(包括正樣本和負(fù)樣本)對(duì)該類(lèi)樣本的特征集合(如Haar 特征集合)進(jìn)行篩選,進(jìn)而將篩選出的特征經(jīng)過(guò)加權(quán)構(gòu)成一個(gè)分類(lèi)器。由該方法得到的分類(lèi)器具備較高的準(zhǔn)確度和魯棒性,被廣泛應(yīng)用于各種模式識(shí)別系統(tǒng)中,如人物檢測(cè)、人臉檢測(cè)、人眼檢測(cè)系統(tǒng)等等。AdaBoost算法主要由一個(gè)迭代循環(huán)構(gòu)成,這個(gè)迭代循環(huán)又分為三個(gè)步驟最優(yōu)特征篩選、誤差評(píng)估和樣本權(quán)重更新。其中最優(yōu)特征篩選需要遍歷整個(gè)特征集合,選出分類(lèi)效果最好的特征,誤差評(píng)估則對(duì)選出的特征進(jìn)行評(píng)估,計(jì)算其分類(lèi)的誤差;樣本權(quán)重更新則是根據(jù)剛剛選出的特征的誤差對(duì)樣本的權(quán)重進(jìn)行調(diào)整,以便在下次迭代時(shí)針對(duì)新的樣本權(quán)重選出新的最優(yōu)特征。從整個(gè)算法流程來(lái)講,樣本集合及其權(quán)重是其核心數(shù)據(jù)結(jié)構(gòu),每次迭代都需要對(duì)所有的特征進(jìn)行評(píng)估,從而得出誤差最小的特征,并加入分類(lèi)器中。對(duì)特征進(jìn)行評(píng)估的過(guò)程中,需要使用該特征對(duì)樣本庫(kù)中的所有樣本計(jì)算分類(lèi)值,并依據(jù)該分類(lèi)值對(duì)樣本進(jìn)行排序,進(jìn)而求出該特征的最優(yōu)閾值。AdaBoost機(jī)器學(xué)習(xí)算法具有較高的時(shí)間復(fù)雜度,對(duì)于給定大小為的訓(xùn)練樣本集合和大小為的特征集合,AdaBoost機(jī)器學(xué)習(xí)算法的時(shí)間復(fù)雜度為(學(xué)習(xí)過(guò)程中的樣本排序采用快速排序算法)。同時(shí),為了能夠得到具備更高準(zhǔn)確度和魯棒性的人臉特征分類(lèi)器,又必須使用盡量多的訓(xùn)練樣本和更大的特征集合,這就使得進(jìn)行一次AdaBoost特征提取需要花費(fèi)數(shù)周乃至數(shù)月的時(shí)間。如何加速AdaBoost特征提取就成為了一個(gè)亟待解決的問(wèn)題。多核集群系統(tǒng)是目前主流的大規(guī)模并行計(jì)算系統(tǒng),它將多臺(tái)具備多核處理器的計(jì)算機(jī)連接起來(lái)構(gòu)成集群,具備極強(qiáng)的計(jì)算能力。如果能夠利用多核集群系統(tǒng)強(qiáng)大的計(jì)算能力進(jìn)行AdaBoost特征提取,將極大地加速AdaBoost特征提取過(guò)程。然而,傳統(tǒng)的AdaBoost 算法都是串行訓(xùn)練算法,無(wú)法充分利用多核集群系統(tǒng)的并行處理能力,難以發(fā)揮多核集群系統(tǒng)的性能優(yōu)勢(shì),本專(zhuān)利針對(duì)這一問(wèn)題,設(shè)計(jì)了多核集群系統(tǒng)的并行AdaBoost特征提取方法。
發(fā)明內(nèi)容
本發(fā)明所解決的技術(shù)問(wèn)題在于提供一種多核集群系統(tǒng)的并行AdaBoost特征提取方法,以解決上述背景技術(shù)中的缺點(diǎn)。多核集群系統(tǒng)的并行AdaBoost特征提取方法設(shè)給定的多核集群系統(tǒng)包含個(gè)計(jì)算機(jī)結(jié)點(diǎn),每個(gè)計(jì)算機(jī)結(jié)點(diǎn)擁有個(gè)處理器核,包括以下步驟
3
(1)、每個(gè)計(jì)算機(jī)結(jié)點(diǎn)啟動(dòng)一個(gè)進(jìn)程,一個(gè)主進(jìn)程和p-1個(gè)從進(jìn)程,主進(jìn)程執(zhí)行特征集合分布過(guò)程,將特征集合分為P個(gè)子集合,分布到P個(gè)計(jì)算機(jī)結(jié)點(diǎn)上,同時(shí)每個(gè)計(jì)算機(jī)結(jié)點(diǎn)都將保留一份樣本集合的本地副本;(2)、每個(gè)進(jìn)程執(zhí)行特征子集合并行掃描過(guò)程,啟動(dòng)Q個(gè)線程對(duì)分配給自己的子集合進(jìn)行掃描,選出該子集合中的最優(yōu)特征;進(jìn)而,集群系統(tǒng)執(zhí)行特征規(guī)約過(guò)程,將個(gè)子集合的最優(yōu)特征進(jìn)行一次并行規(guī)約,得到整個(gè)特征集合的全局最優(yōu)特征并保存在主進(jìn)程中;(3)、主進(jìn)程將全局最優(yōu)特征通過(guò)廣播發(fā)送給所有從進(jìn)程,以便所有進(jìn)程都能夠依據(jù)全局最優(yōu)特征更新樣本集合的本地副本中各個(gè)樣本的權(quán)重值;最終,經(jīng)過(guò)多次迭代,主進(jìn)程將得到一個(gè)由多個(gè)特征組合而成的特征分類(lèi)器。在本發(fā)明中,所述特征集合分布過(guò)程包含三個(gè)子步驟1.對(duì)訓(xùn)練過(guò)程中將要使用的特征集合內(nèi)的個(gè)特征進(jìn)行編碼,每個(gè)特征都用一個(gè)整數(shù)表示,這樣,一個(gè)整數(shù)區(qū)間,就可以表示一個(gè)特征集合的子集合;2.主進(jìn)程將代表個(gè)特征子集合的整數(shù)區(qū)間分別發(fā)送給個(gè)從進(jìn)程;3.每個(gè)從進(jìn)程接收到整數(shù)區(qū)間后,依據(jù)該整數(shù)區(qū)間重建特征子集合;在本發(fā)明中,所述特征子集合并行掃描過(guò)程包含三個(gè)子步驟1.將收到的整數(shù)區(qū)間均勻劃分為個(gè)子區(qū)間;2.啟動(dòng)個(gè)線程,每個(gè)線程負(fù)責(zé)對(duì)子區(qū)間所對(duì)應(yīng)的特征集合進(jìn)行掃描,并選出該特征集合的最優(yōu)特征;3.對(duì)個(gè)線程得到的個(gè)局部最優(yōu)特征進(jìn)行評(píng)估,獲得區(qū)間所對(duì)應(yīng)的特征集合的最優(yōu)特征;在本發(fā)明中,所述特征規(guī)約過(guò)程包含如下子步驟1.對(duì)于任意一個(gè)計(jì)算結(jié)點(diǎn),如果,那么,它將自己獲得的局部最優(yōu)特征發(fā)送給結(jié)占.
^ \\\ 2.對(duì)于任意一個(gè)計(jì)算結(jié)點(diǎn),如果,那么,它等待接收來(lái)自結(jié)點(diǎn)和的局部最優(yōu)特征; 收到后,它將對(duì)三個(gè)局部最優(yōu)特征進(jìn)行評(píng)估,得到最優(yōu)特征,并將其發(fā)給結(jié)點(diǎn);3.最終,全局最優(yōu)特征將由結(jié)點(diǎn)0獲得。需要特別指出的是Adaboost是一類(lèi)機(jī)器學(xué)習(xí)算法的統(tǒng)稱(chēng),它有許多變種,如 Descrete Adaboost^Real Adaboost 以及 Gentle Adaboost 等等。這些變種之間的區(qū)另Ij主要表現(xiàn)在三個(gè)方面一是特征誤差的計(jì)算方法不同;二是樣本權(quán)重的更新算法不同;三是在將多個(gè)特征通過(guò)加權(quán)構(gòu)成分類(lèi)器時(shí)加權(quán)的方式不同。本發(fā)明所述并行Adaboost特征提取方法并不局限于Adaboost算法中的某一變種,可以通用于所有Adaboost算法。所述多核集群系統(tǒng)的并行AdaBoost訓(xùn)練方法與傳統(tǒng)AdaBoost訓(xùn)練方法相比具有如下優(yōu)勢(shì)該方法能夠充分利用多核集群系統(tǒng)的并行處理能力,包括單個(gè)結(jié)點(diǎn)內(nèi)部多核處理器核間的并行處理能力以及多核結(jié)點(diǎn)間的并行處理能力,從而極大地加速AdaBoost訓(xùn)練過(guò)程。有益效果本發(fā)明能夠充分發(fā)揮多核集群系統(tǒng)計(jì)算能力,從而極大地加速AdaBoost特征提取過(guò)程。
圖1是傳統(tǒng)AdaBoost訓(xùn)練過(guò)程的流程圖;圖2是Haar特征描述示意圖;圖3是多核集群系統(tǒng)的AdaBoost訓(xùn)練過(guò)程的流程圖;圖4是全局最優(yōu)特征的規(guī)約過(guò)程示意具體實(shí)施例方式為了使本發(fā)明的技術(shù)手段、創(chuàng)作特征、工作流程、使用方法達(dá)成目的與功效易于明白了解,下面結(jié)合具體實(shí)施例,進(jìn)一步闡述本發(fā)明。如圖3多核集群系統(tǒng)并行Adaboost訓(xùn)練方法的流程圖,整個(gè)并行訓(xùn)練過(guò)程共包括六個(gè)大的步驟,即初始化特征集合和樣本集合,特征集合分布,特征子集合的并行評(píng)估,子集合最優(yōu)特征收集,全局最優(yōu)特征廣播以及并行樣本權(quán)重更新。假設(shè)給定的多核集群系統(tǒng)包含個(gè)計(jì)算機(jī)結(jié)點(diǎn),每個(gè)計(jì)算機(jī)結(jié)點(diǎn)擁有個(gè)處理器核,下面分別對(duì)著六個(gè)步驟進(jìn)行詳細(xì)的描述。在初始化特征集合和樣本集合時(shí),需要將特征集合和樣本集合以配置文件的形式存儲(chǔ)在多核集群系統(tǒng)的存儲(chǔ)系統(tǒng)中,并確保所有的計(jì)算結(jié)點(diǎn)都能夠訪問(wèn)。為了更好地發(fā)揮計(jì)算結(jié)點(diǎn)間的并行處理能力,應(yīng)該在每個(gè)計(jì)算結(jié)點(diǎn)的本地存儲(chǔ)器中保存樣本集合的一個(gè)副本。此外,在初始化時(shí),樣本集合中的所有樣本的權(quán)重都設(shè)為1。特征集合分布是指將特征集合劃分為個(gè)子集合,并將這個(gè)子集合分別發(fā)送到個(gè)計(jì)算結(jié)點(diǎn)。為了能夠在特征集合分布過(guò)程中盡量減少計(jì)算結(jié)點(diǎn)間的通信量,在進(jìn)行特征集合分布時(shí)首先要對(duì)特征集合內(nèi)的特征進(jìn)行編碼。假設(shè)特征集合共包含了個(gè)特征,那么就將每個(gè)特征與一個(gè)整數(shù)對(duì)應(yīng)。這樣,一個(gè)特征集合的子集合就可以用一個(gè)整數(shù)區(qū)間來(lái)表示。針對(duì)不同的特征集合需要設(shè)計(jì)不同的編碼方法,下面以模式識(shí)別領(lǐng)域常用的Haar特征為例, 給出特征編碼的設(shè)計(jì)思路。Haar特征是指將灰度圖像中某個(gè)矩形位置內(nèi)的像素灰度值進(jìn)行加權(quán)求和以表征圖像的某些特征。如錯(cuò)誤!未找到引用源。所示,是兩個(gè)Haar特征的例子左邊的是一個(gè)寬度為4個(gè)像素,高度為2個(gè)像素,寬高比為2 1的Haar特征,它表示用左半邊矩形內(nèi)的像素和減去又邊矩形內(nèi)的像素和;右邊是一個(gè)寬度為4個(gè)像素高度為6個(gè)像素,寬高比為2 2的Haar特征,它表示用左上角矩形的像素灰度和和減去右下角矩形的像素灰度和。要對(duì)某個(gè)Haar特征進(jìn)行唯一的整數(shù)編碼需要描述五個(gè)維度的信息Haar特征的種類(lèi)、Haar特征矩形在樣本圖像上的橫向偏移、Haar特征矩形在樣本圖像上的縱向偏移y、Haar特征的寬度以及Haar特征的高度。設(shè)要考慮的某一類(lèi)Haar 特征的寬高比為,樣本圖像的寬度為,高度為,那么該類(lèi)Haar特征的總數(shù)可以表示為
權(quán)利要求
1.多核集群系統(tǒng)的并行AdaBoost特征提取方法,設(shè)給定的多核集群系統(tǒng)包含個(gè)計(jì)算機(jī)結(jié)點(diǎn),每個(gè)計(jì)算機(jī)結(jié)點(diǎn)擁有個(gè)處理器核,其特征在于,包括以下步驟(1)、每個(gè)計(jì)算機(jī)結(jié)點(diǎn)啟動(dòng)一個(gè)進(jìn)程,一個(gè)主進(jìn)程和p-1個(gè)從進(jìn)程,主進(jìn)程執(zhí)行特征集合分布過(guò)程,將特征集合分為P個(gè)子集合,分布到P個(gè)計(jì)算機(jī)結(jié)點(diǎn)上,同時(shí)每個(gè)計(jì)算機(jī)結(jié)點(diǎn)都將保留一份樣本集合的本地副本;(2)、每個(gè)進(jìn)程執(zhí)行特征子集合并行掃描過(guò)程,啟動(dòng)Q個(gè)線程對(duì)分配給自己的子集合進(jìn)行掃描,選出該子集合中的最優(yōu)特征;進(jìn)而,集群系統(tǒng)執(zhí)行特征規(guī)約過(guò)程,將個(gè)子集合的最優(yōu)特征進(jìn)行一次并行規(guī)約,得到整個(gè)特征集合的全局最優(yōu)特征并保存在主進(jìn)程中;(3)、主進(jìn)程將全局最優(yōu)特征通過(guò)廣播發(fā)送給所有從進(jìn)程,以便所有進(jìn)程都能夠依據(jù)全局最優(yōu)特征更新樣本集合的本地副本中各個(gè)樣本的權(quán)重值;最終,經(jīng)過(guò)多次迭代,主進(jìn)程將得到一個(gè)由多個(gè)特征組合而成的特征分類(lèi)器。
2.根據(jù)權(quán)利要求1所述的多核集群系統(tǒng)的并行AdaBoost特征提取方法,其特征在于, 所述特征集合分布過(guò)程包含三個(gè)子步驟(1)對(duì)訓(xùn)練過(guò)程中將要使用的特征集合內(nèi)的個(gè)特征進(jìn)行編碼,每個(gè)特征都用一個(gè)整數(shù)表示,這樣,一個(gè)整數(shù)區(qū)間,就可以表示一個(gè)特征集合的子集合;(2)主進(jìn)程將代表個(gè)特征子集合的整數(shù)區(qū)間分別發(fā)送給個(gè)從進(jìn)程;(3)每個(gè)從進(jìn)程接收到整數(shù)區(qū)間后,依據(jù)該整數(shù)區(qū)間重建特征子集合。
3.根據(jù)權(quán)利要求1所述的多核集群系統(tǒng)的并行AdaBoost特征提取方法,其特征在于, 所述特征子集合并行掃描過(guò)程包含三個(gè)子步驟(1)將收到的整數(shù)區(qū)間均勻劃分為個(gè)子區(qū)間;(2)啟動(dòng)個(gè)線程,每個(gè)線程負(fù)責(zé)對(duì)子區(qū)間所對(duì)應(yīng)的特征集合進(jìn)行掃描,并選出該特征集合的最優(yōu)特征;(3)對(duì)個(gè)線程得到的個(gè)局部最優(yōu)特征進(jìn)行評(píng)估,獲得區(qū)間所對(duì)應(yīng)的特征集合的最優(yōu)特征。
全文摘要
本發(fā)明公開(kāi)了一種多核集群系統(tǒng)的并行AdaBoost特征提取方法,該方法將AdaBoost的每輪迭代過(guò)程用如下方法進(jìn)行改造首先將AdaBoost訓(xùn)練過(guò)程中需要掃描的特征集合進(jìn)行劃分,均勻分布在多核集群系統(tǒng)的各個(gè)結(jié)點(diǎn)上;然后,每個(gè)計(jì)算結(jié)點(diǎn)則進(jìn)一步將分配給自己的特征子集合進(jìn)行劃分,分別由不同的計(jì)算核心進(jìn)行掃描并收集各個(gè)計(jì)算核心的計(jì)算結(jié)果,得到特征子集合上的最優(yōu)特征;接著集群系統(tǒng)將各個(gè)結(jié)點(diǎn)得到的特征子集合上的最優(yōu)特征進(jìn)行規(guī)約,從而特到全局最優(yōu)特征。該方法能夠充分發(fā)揮多核集群系統(tǒng)的并行處理能力,從而極大地加速AdaBoost特征提取過(guò)程。
文檔編號(hào)G06F9/46GK102226909SQ20111016614
公開(kāi)日2011年10月26日 申請(qǐng)日期2011年6月20日 優(yōu)先權(quán)日2011年6月20日
發(fā)明者夏東 申請(qǐng)人:夏東