專利名稱:一種圖像檢測(cè)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種圖像檢測(cè)方法及裝置。
背景技術(shù):
在計(jì)算機(jī)視覺和圖像處理技術(shù)領(lǐng)域,獲取圖像或者視頻中的人臉信息在諸如人機(jī)交互、安全、娛樂等領(lǐng)域都具有重要的應(yīng)用。因此,從圖像中自動(dòng)獲取人臉的數(shù)目、大小、位置信息的技術(shù),即人臉檢測(cè)技術(shù),受到了極大地重視。近年來,隨著計(jì)算機(jī)視覺和模式識(shí)別技術(shù)的發(fā)展,人臉檢測(cè)技術(shù)也得到了快速的發(fā)展,逐漸趨向成熟。
Voila等提出了一種基于微結(jié)構(gòu)特征(Haar-like Features)和層次型自適應(yīng)增強(qiáng)(Adaboost)分類器的人臉檢測(cè)技術(shù),該技術(shù)在性能上與基于向量機(jī)(SVM)和神經(jīng)網(wǎng)絡(luò)(Neural Network)的方法相當(dāng),但是,在速度上遠(yuǎn)遠(yuǎn)高于基于向量機(jī)和神經(jīng)網(wǎng)絡(luò)的方法,基本可以達(dá)到實(shí)時(shí)運(yùn)行的水平。該方法提出后,便得到了研究者的重視,提出了很多改進(jìn)技術(shù),并且,應(yīng)用于工業(yè)界的很多產(chǎn)品中。
Viola提出的人臉檢測(cè)方法速度快的原因主要是兩點(diǎn),一是由于采用了基于積分圖像(Integral Image)的方法計(jì)算微結(jié)構(gòu)特征值,能夠快速地計(jì)算出輸入圖像的微結(jié)構(gòu)特征值;二是由于采用了層次型Adaboost算法,該算法先采用運(yùn)算量小的層拒掉大部分容易排除的干擾,然后,采用運(yùn)算量大的層處理少量候選干擾。該方法中的采用的微結(jié)構(gòu)特征如圖1所示,每個(gè)微結(jié)構(gòu)特征值定義為灰色矩形區(qū)域內(nèi)像素亮度(即像素灰度值)和與白色矩形區(qū)域內(nèi)像素亮度和之差。
為了快速計(jì)算出微結(jié)構(gòu)特征值,Viola提出的積分圖像如圖2所示,積分圖像在點(diǎn)(x,y)處的值定義為其左上角的灰色矩形區(qū)域內(nèi)的所有像素灰度值的和,即 其中,II(x,y)表示積分圖像在點(diǎn)(x,y)處的值,I(x′,y′)表示輸入圖像在點(diǎn)(x′,y′)處的像素灰度值。Viola采用如下迭代的方式對(duì)圖像從左上角的灰色矩形區(qū)域掃描一遍得到積分圖像 s(x,y)=s(x,y-1)+I(x,y) II(x,y)=II(x-1,y)+s(x,y) 其中,s(x,y)表示x行處于y列之前(包括y)的所有像素灰度值之和,并且,定義s(x,-1)=0,II(-1,y)=0。
采用積分圖像可以快速求取任意矩形區(qū)域像素灰度值之和。用sum(r)表示矩形區(qū)域r的像素灰度值之和。如圖3所示,根據(jù)積分圖像的定義,可以根據(jù)如下公式 sum(D)=II(4)-II(2)-II(3)+II(1) 求取任意矩形區(qū)域D內(nèi)的像素灰度值之和(A、B、C、D分別表示一個(gè)陰影矩形區(qū)域,點(diǎn)1、2、3、4分別對(duì)應(yīng)區(qū)域A,B,C,D的右下角頂點(diǎn))。
為了排除光照等條件的干擾,Viola進(jìn)一步采用圖像亮度方差對(duì)上述微結(jié)構(gòu)特征值進(jìn)行歸一化。Viola將圖像亮度方差定義為 其中,為亮度均值,I(i,j)為點(diǎn)(i,j)處的亮度值,N為輸入圖像中的像素?cái)?shù)目。圖像亮度方差可以采用公式 計(jì)算,則歸一化微結(jié)構(gòu)特征值定義為gj=fj/σ,其中fj為上述定義的微結(jié)構(gòu)特征值,即灰色矩形區(qū)域內(nèi)像素亮度和與白色矩形區(qū)域內(nèi)像素亮度和之差。
Viola采用對(duì)每一微結(jié)構(gòu)特征構(gòu)造最簡單的樹分類器作為弱分類器,具體如下
其中,x為固定尺度的輸入圖像,gj(x)表示該圖像對(duì)應(yīng)的第j個(gè)微結(jié)構(gòu)特征值,θj是第j個(gè)微結(jié)構(gòu)特征對(duì)應(yīng)的判決閾值,pj的值為1或-1,當(dāng)pj為1時(shí),判決器的判決符號(hào)為大于號(hào),當(dāng)pj為-1時(shí),判決器的符號(hào)為小于號(hào),hj(x)表示第j個(gè)弱分類器的判決輸出。這樣,每個(gè)弱分類器只需要一次的閾值比較就可以完成判決。
Viola提出的層次型Adaboost分類器結(jié)構(gòu)如圖4所示,對(duì)于所有候選窗口,先采用第一層分類器進(jìn)行判斷,如果能通過第一層分類器,則采用第二層分類器繼續(xù)進(jìn)行判斷,否則,直接拒掉。同理,進(jìn)行后續(xù)各層處理,將能夠通過所有分類器處理的矩形區(qū)域作為最終的人臉區(qū)域。
進(jìn)一步,為了能夠檢測(cè)到不同大小、不同位置的人臉,Viola采用基于特征放縮的方式進(jìn)行處理。首先設(shè)定人臉檢測(cè)器模型的寬度和高度分別為MW和MH(Viola采用的MW=24,MH=24),采用割取并放縮為此尺度的人臉樣本和非人臉樣本,訓(xùn)練層次型AdaBoost人臉檢測(cè)模型。假定放縮比例為SR,則采用特征放縮的方式放縮得到的一系列不同尺度的分類器的寬度和高度分別為ROUND(MW*SRs)和ROUND(MH*SRs)。其中,s為大于0的整數(shù),ROUND()表示對(duì)括號(hào)內(nèi)的數(shù)值進(jìn)行四舍五入取整運(yùn)算。為了檢測(cè)到不同大小的人臉,對(duì)輸入圖像計(jì)算一次積分圖像,然后,采用上述得到的不同尺度的人臉檢測(cè)器分別進(jìn)行遍歷搜索,從而檢測(cè)到不同大小,不同位置的人臉,并將所有通過層次型檢測(cè)器的候選矩形添加到人臉檢測(cè)隊(duì)列中記錄下來。
考慮到一個(gè)人臉可能會(huì)因?yàn)槌叨?、位移變化而?duì)應(yīng)多個(gè)檢測(cè)結(jié)果,因此,一般人臉檢測(cè)算法都會(huì)采用后處理步驟來融合檢測(cè)結(jié)果,使得一個(gè)人臉位置只輸出一個(gè)檢測(cè)結(jié)果。同時(shí),通過融合還能合并某些誤檢結(jié)果,從而減少誤檢率。上述處理步驟中,已經(jīng)將通過人臉檢測(cè)器的人臉候選位置(稱作候選人臉框)添加到人臉檢測(cè)隊(duì)列中,下面需要合并交疊的候選人臉框。
每個(gè)候選人臉框?qū)?yīng)一個(gè)矩形,對(duì)任意兩個(gè)候選人臉框,首先計(jì)算兩個(gè)對(duì)應(yīng)矩形區(qū)域的交疊區(qū)域面積;其次,計(jì)算交疊區(qū)域面積與兩矩形區(qū)域平均面積之比(稱作交疊度)。將交疊度與閾值進(jìn)行比較,如果大于閾值,則認(rèn)為兩個(gè)候選人臉框交疊,為同一個(gè)人臉,否則認(rèn)為沒有交疊。將與某候選人臉框交疊的所有候選人臉框與該候選人臉框合并,具體步驟包括將所有矩形的左邊框橫坐標(biāo)、右邊框橫坐標(biāo)、上邊框縱坐標(biāo)和下邊框縱坐標(biāo)分別進(jìn)行平均得到最終合并矩形的左邊框橫坐標(biāo)、右邊框橫坐標(biāo)、上邊框縱坐標(biāo)和下邊框縱坐標(biāo)。
Viola提出的人臉檢測(cè)方法雖然具有很多優(yōu)點(diǎn),但是,該方法并不是針對(duì)硬件實(shí)現(xiàn)而設(shè)計(jì)的。對(duì)于攝像頭、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)等手持式設(shè)備而言,需要采用芯片設(shè)計(jì)實(shí)現(xiàn)人臉檢測(cè)算法,從而為基于人臉檢測(cè)的自動(dòng)曝光、自動(dòng)調(diào)焦、自動(dòng)白平衡等處理提供人臉信息。而硬件設(shè)計(jì)中最關(guān)心的是芯片的面積,這直接決定芯片的成本。對(duì)于算法而言,和芯片面積最相關(guān)的是算法占用的內(nèi)存量和算法運(yùn)算量的復(fù)雜程度,因此,為了節(jié)約成本,Viola提出的人臉檢測(cè)方法并不適合于硬件實(shí)現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種圖像檢測(cè)方法及裝置,用以提出一種更加適合于硬件實(shí)現(xiàn)的、算法更簡單、占用的內(nèi)存更小的圖像檢測(cè)技術(shù)。
本發(fā)明實(shí)施例提供的圖像檢測(cè)方法包括 計(jì)算輸入圖像的積分圖像和平方積分圖像,其中,所述積分圖像和/或所述平方積分圖像是按照從上到下,從左到右的順序,采用所述輸入圖像的每行像素到當(dāng)前像素的所有像素亮度和計(jì)算得到的; 根據(jù)預(yù)先訓(xùn)練得到的物體檢測(cè)器,通過所述積分圖像和平方積分圖像得到所述輸入圖像所需的微結(jié)構(gòu)特征值,并且根據(jù)所述微結(jié)構(gòu)特征值,確定所述輸入圖像的物體區(qū)域。
本發(fā)明實(shí)施例提供的圖像檢測(cè)裝置包括 計(jì)算積分圖像單元,用于計(jì)算輸入圖像的積分圖像和平方積分圖像,其中,所述積分圖像和/或所述平方積分圖像是按照從上到下,從左到右的順序,采用所述輸入圖像的每行像素到當(dāng)前像素的所有像素亮度和計(jì)算得到的; 確定物體區(qū)域單元,用于根據(jù)預(yù)先訓(xùn)練得到的物體檢測(cè)器,通過所述積分圖像和平方積分圖像得到所述輸入圖像所需的微結(jié)構(gòu)特征值,并且根據(jù)所述微結(jié)構(gòu)特征值,確定所述輸入圖像的物體區(qū)域。
本發(fā)明實(shí)施例,計(jì)算輸入圖像的積分圖像和平方積分圖像,其中,所述積分圖像和/或所述平方積分圖像是按照從上到下,從左到右的順序,采用所述輸入圖像的每行像素到當(dāng)前像素的所有像素亮度和計(jì)算得到的;根據(jù)預(yù)先訓(xùn)練得到的物體檢測(cè)器,通過所述積分圖像和平方積分圖像得到所述輸入圖像所需的微結(jié)構(gòu)特征值,并且根據(jù)所述微結(jié)構(gòu)特征值,確定所述輸入圖像的物體區(qū)域。通過該技術(shù)方案,簡化了對(duì)圖像中的物體進(jìn)行檢測(cè)的算法,降低了內(nèi)存的占用,從而更適合于硬件實(shí)現(xiàn),降低了產(chǎn)品成本。
圖1為現(xiàn)有技術(shù)中Viola等提出的人臉檢測(cè)技術(shù)所采用的微結(jié)構(gòu)特征示意圖; 圖2為現(xiàn)有技術(shù)中的積分圖像示意圖; 圖3為現(xiàn)有技術(shù)中采用積分圖像求取任意矩形像素灰度和的示意圖,其中,點(diǎn)1、2、3、4分別為區(qū)域A、B、C、D的右下角頂點(diǎn); 圖4為現(xiàn)有技術(shù)中的層次型人臉檢測(cè)器結(jié)構(gòu)示意圖; 圖5為本發(fā)明實(shí)施例提供的圖像檢測(cè)方法流程示意圖; 圖6為本發(fā)明實(shí)施例提供的微結(jié)構(gòu)特征示意圖。
具體實(shí)施例方式 本發(fā)明實(shí)施例,針對(duì)芯片設(shè)計(jì)的特點(diǎn),從減少內(nèi)存占用和簡化算法運(yùn)算量的角度,提出了一種適合于硬件實(shí)現(xiàn)的圖像檢測(cè)方法及裝置。
本發(fā)明實(shí)施例中,以檢測(cè)圖像中的人臉區(qū)域?yàn)槔?,分別從弱分類器定義、積分圖像計(jì)算方式、平方積分圖像計(jì)算方式、人臉檢測(cè)器尺度、弱分類器構(gòu)造方式等幾個(gè)方面對(duì)現(xiàn)有技術(shù)提出的對(duì)圖像中的人臉區(qū)域進(jìn)行檢測(cè)的算法作出了改進(jìn)。
在物體檢測(cè)領(lǐng)域中,人臉檢測(cè)是物體檢測(cè)的一個(gè)子領(lǐng)域,汽車檢測(cè),行人檢測(cè)等其他應(yīng)用和人臉檢測(cè)類似,均屬于模式識(shí)別領(lǐng)域的兩類分類技術(shù)。因此,本發(fā)明實(shí)施例提出的方案,不僅僅適用于檢測(cè)圖像中的人臉區(qū)域,還可以根據(jù)實(shí)際需要應(yīng)用于檢測(cè)圖像中的其他類型物體所占的區(qū)域。例如,可以檢測(cè)圖像中的汽車所在區(qū)域,還可以檢測(cè)圖像中的各個(gè)人體或動(dòng)物所在的區(qū)域等等。
下面結(jié)合附圖,詳細(xì)說明本發(fā)明實(shí)施例的具體實(shí)施方式
。
參見圖5,本發(fā)明實(shí)施例提供的一種圖像檢測(cè)方法包括 S501、預(yù)先訓(xùn)練得到人臉檢測(cè)器。其中,在弱分類器定義方面,預(yù)先將微結(jié)構(gòu)特征值定義為兩個(gè)矩形區(qū)域內(nèi)相同數(shù)目的像素亮度和之差。所述人臉檢測(cè)器模型的尺度為2的冪次,即所述人臉檢測(cè)器的寬和高都取為2的冪次。
S502、計(jì)算輸入圖像的積分圖像和平方積分圖像,其中,所述積分圖像和/或所述平方積分圖像是按照從上到下,從左到右的順序,采用所述輸入圖像的每行像素到當(dāng)前像素的所有像素亮度和計(jì)算得到的。并根據(jù)該積分圖像和平方積分圖像獲得輸入圖像的微結(jié)構(gòu)特征值。
S503、采用某一尺度的人臉檢測(cè)器,以一定步長,在水平方向和垂直方向遍歷得到該尺度大小的所有可能矩形區(qū)域位置。
S504、根據(jù)輸入圖像的微結(jié)構(gòu)特征值,通過預(yù)先訓(xùn)練好的人臉檢測(cè)器判定每個(gè)矩形區(qū)域是否為候選的人臉區(qū)域,如果是,則進(jìn)行步驟S505;否則,進(jìn)行步驟S506。
S505、將候選人臉區(qū)域加入人臉區(qū)域隊(duì)列。
S506、舍棄所述矩形區(qū)域。
S507、判斷所有尺度的人臉檢測(cè)器是否均檢測(cè)完畢,如果是,則進(jìn)行步驟S508;否則,返回步驟S503,采用下一尺度的人臉檢測(cè)器進(jìn)行檢測(cè),直到所有尺度的人臉檢測(cè)器均檢測(cè)完畢。
S508、從人臉區(qū)域隊(duì)列中確定人臉區(qū)域。
下面詳細(xì)介紹一下步驟S501。
參見圖4,人臉檢測(cè)器中的每層分類器都是一個(gè)強(qiáng)分類器,每個(gè)強(qiáng)分類器是由多個(gè)弱分類器構(gòu)成的。
從弱分類器定義上,本發(fā)明實(shí)施例提出采用相同面積區(qū)域?qū)?yīng)的亮度和作差,而不是Viola提出的如圖1所示的灰色區(qū)域和白色區(qū)域亮度和之差。具體地,假定區(qū)域1和區(qū)域2的面積比為RA,則本發(fā)明實(shí)施例定義微結(jié)構(gòu)特征值為區(qū)域1的像素亮度和除以RA后與區(qū)域2的像素亮度和之差。
按照Viola的方式將微結(jié)構(gòu)特征定義為灰、白兩個(gè)區(qū)域像素亮度和之差,對(duì)于灰色區(qū)域和白色區(qū)域的面積不同的微結(jié)構(gòu)特征(例如圖1中左下角類型的特征)而言,會(huì)造成灰色區(qū)域和白色區(qū)域的亮度和相差很大,從而得到的微結(jié)構(gòu)特征值遠(yuǎn)遠(yuǎn)偏離0值,需要用更高的位數(shù)才能夠表示該值,不利于硬件的實(shí)現(xiàn)。而采用本發(fā)明實(shí)施例提供的方法,作差的亮度和來自相同數(shù)目的像素的累加,差值以零值為中心,偏離零值范圍較小,表示差值時(shí)需要的數(shù)據(jù)較少,因此更利于硬件的實(shí)現(xiàn)。并且,在后續(xù)的檢測(cè)中,需要對(duì)微結(jié)構(gòu)特征進(jìn)行放縮,對(duì)像素點(diǎn)的坐標(biāo)進(jìn)行近似,作差的兩個(gè)區(qū)域的面積比例會(huì)發(fā)生變化,因此Viola的方法會(huì)造成比較大的誤差,而采用本發(fā)明實(shí)施例提供的方法可以使誤差減小。
較佳地,本發(fā)明實(shí)施例中提出不同于圖1中Viola所使用的微結(jié)構(gòu)特征的幾類微結(jié)構(gòu)特征形狀如圖6所示。圖中灰色區(qū)域?yàn)榛静糠?,白色區(qū)域的面積為灰色區(qū)域的面積的2的冪次倍,例如,可以為1倍、2倍或4倍,當(dāng)然也可以為其他大于4的2的冪次。具體的,對(duì)a,b類形狀而言,白色區(qū)域?yàn)榘疑珔^(qū)域的整個(gè)矩形區(qū)域,灰色區(qū)域與白色區(qū)域中心重合,白色區(qū)域面積為灰色區(qū)域面積的2的冪次倍;對(duì)于c,d,e,f類形狀而言,白色區(qū)域?yàn)榘疑珔^(qū)域的整個(gè)矩形區(qū)域,灰色區(qū)域處于白色區(qū)域的一個(gè)角(左上、左下、右上或右下),且白色區(qū)域面積為灰色區(qū)域面積的2的冪次倍;對(duì)于g類形狀而言,灰色區(qū)域和白色區(qū)域上下邊框縱坐標(biāo)相同,但是水平方向存在一定距離(此距離可以為任意大于0的數(shù)),相互不交疊,白色區(qū)域面積為灰色區(qū)域的2的冪次倍;對(duì)于h類形狀而言,灰色區(qū)域和白色區(qū)域左右邊框的橫坐標(biāo)相同,但是垂直方向存在一定距離(此距離可以為任意大于0的數(shù)),相互不交疊,白色區(qū)域面積為灰色區(qū)域的2的冪次倍。
假定上述微結(jié)構(gòu)特征中,白色矩形區(qū)域面積為灰色矩形區(qū)域面積的2BS,即2的冪次為BS。那么,按照上述改進(jìn)的微結(jié)構(gòu)特征值定義,本發(fā)明實(shí)施例提出的微結(jié)構(gòu)特征值,可以定義為白色區(qū)域中所有像素亮度和移位BS位后與灰色區(qū)域像素亮度和之差。這樣設(shè)計(jì)的優(yōu)點(diǎn)在于將除法運(yùn)算轉(zhuǎn)換為移位運(yùn)算,以簡化算法,占用更少的內(nèi)存。
更優(yōu)的,限定對(duì)于圖6中的a、b中的微結(jié)構(gòu)特征,BS=1,即白色區(qū)域面積為灰色區(qū)域面積的2倍;對(duì)于c、d、e、f中的微結(jié)構(gòu)特征,BS=2,即白色區(qū)域面積為灰色區(qū)域面積的4倍;對(duì)于g、h中的微結(jié)構(gòu)特征,BS=0,即白色區(qū)域和灰色區(qū)域面積相同。則對(duì)于a、b中的微結(jié)構(gòu)特征,采用整個(gè)白色矩形區(qū)域的像素亮度和右移一位與灰色區(qū)域的像素亮度和之差作為微結(jié)構(gòu)特征值;對(duì)于c、d、e、f中的微結(jié)構(gòu)特征,采用整個(gè)白色區(qū)域亮度和右移兩位和灰色區(qū)域亮度和作差作為微結(jié)構(gòu)特征值;對(duì)于g,h中的微結(jié)構(gòu)特征,采用整個(gè)白色區(qū)域亮度和與灰色區(qū)域像素亮度作差作為微結(jié)構(gòu)特征值。
上述只是定義了各類微結(jié)構(gòu)特征的形狀和特征值計(jì)算方式,訓(xùn)練時(shí),每類微結(jié)構(gòu)特征,需要按照不同位置,不同大小,在歸一化的人臉檢測(cè)器大小范圍內(nèi)進(jìn)行遍歷窮舉,得到成千上萬個(gè)具體的微結(jié)構(gòu)特征。將上述得到的各類微結(jié)構(gòu)特征,組合在一起作為Viola提出的AdaBoost選擇的候選弱特征。為了進(jìn)一步限定候選弱特征的數(shù)目,可以限定上述的矩形的大小范圍,以及位置偏移步長。
在弱分類器的構(gòu)造方式上,為了提高弱分類器的分類能力,本發(fā)明實(shí)施例采用雙閾值的比較方式來構(gòu)造弱分類器,每個(gè)弱分類器由兩個(gè)閾值(θj1和θj2,且)和一個(gè)極性符號(hào)(pj,pj的值為1或-1)組成, 當(dāng)pj為1時(shí),分類器定義為
當(dāng)pj為-1時(shí),分類器定義為
其中,x為固定尺度的圖像,gj(x)表示圖像對(duì)應(yīng)第j個(gè)微結(jié)構(gòu)特征值,hj(x)表示第j個(gè)弱分類器的判決輸出。
上述弱分類器的構(gòu)造方式,比Viola提出的方式更加普適。當(dāng)pj為1,且θj2為正無窮大時(shí),
轉(zhuǎn)換為
中pj=1的情況;當(dāng)pj為1,且θj1為負(fù)無窮小時(shí),
轉(zhuǎn)換為
中pj=-1的情況。也就是說本發(fā)明提出的雙閾值方式涵括了Viola提出的單閾值情況。
一種實(shí)施方式是,對(duì)Viola中的弱分類器訓(xùn)練算法(train a classifier hj,whichis restricted to using a single feature),將Viola的單閾值弱分類器構(gòu)造算法替換為本發(fā)明實(shí)施例提出的雙閾值弱分類器構(gòu)造算法。即,對(duì)當(dāng)前微結(jié)構(gòu)特征gj(x),選擇pj,θj1和θj2,使得該微結(jié)構(gòu)特征組成的弱分類器對(duì)所有樣本的加權(quán)錯(cuò)誤率最小。
因此,增加了候選弱分類器的可能形式,從而使得能夠選擇出分類能力更強(qiáng)的弱分類器,從而提高強(qiáng)分類器乃至最終層次型分類器的性能。
下面詳細(xì)介紹一下步驟S502。
在積分圖像的計(jì)算方式上,Viola的方法需要額外的內(nèi)存保存s(x,y),因此會(huì)占用W×H個(gè)s(x,y)對(duì)應(yīng)的內(nèi)存。而采用本發(fā)明實(shí)施例方法的步驟S502中提出的計(jì)算積分圖像和平方積分圖像的方式,可以進(jìn)一步節(jié)省內(nèi)存。
例如,采用rs(x,y)表示第y行到當(dāng)前像素(x,y)為止(包括當(dāng)前像素)的所有像素亮度和,即采用下列公式迭代計(jì)算積分圖像 rs(x,y)=rs(x-1,y)+I(x,y) II(x,y)=II(x,y-1)+rs(x,y) 現(xiàn)有技術(shù)采用每列像素到當(dāng)前像素為止所有像素亮度和(即s(x,y))來遞推計(jì)算積分圖像,而本發(fā)明實(shí)施例采用每行到當(dāng)前像素為止(包括當(dāng)前像素)的所有像素亮度和(即rs(x,y))來遞推計(jì)算積分圖像。本發(fā)明實(shí)施例在計(jì)算積分圖像時(shí),按照從上到下,從左到右的順序遞推計(jì)算,現(xiàn)有技術(shù)需要保存所有位置對(duì)應(yīng)的s(x,y),而本發(fā)明方法只需要保存當(dāng)前像素的rs(x,y),其他像素點(diǎn)的rs(x,y)不需要進(jìn)行保存,因此可以大大地節(jié)省內(nèi)存。
具體實(shí)現(xiàn)方式如下 對(duì)任意y=0,1,2...H-1及x=0,1,2...W-1,設(shè)定II(-1,y)=0,II(x,-1)=0; 對(duì)圖像所有行,依y=0,1,2...H-1的順序進(jìn)行如下處理 設(shè)定rs=0表示當(dāng)前行所有像素和初始為0; 對(duì)圖像y行中的所有像素按照x=0,1,2...W-1的順序進(jìn)行如下處理 令rs=rs+I(x,y); 則當(dāng)前像素(x,y)的積分圖像II(x,y)=II(x,y-1)+rs; 計(jì)算完第y行的積分圖像后接著計(jì)算第y+1行的積分圖像。
對(duì)圖像的所有行處理完畢后,完成積分圖像的計(jì)算。
可見,本發(fā)明實(shí)施例只需要保存一個(gè)rs(x,y)對(duì)應(yīng)的數(shù)據(jù),對(duì)于一些內(nèi)存要求較高的應(yīng)用,比如芯片設(shè)計(jì),采用本發(fā)明實(shí)施例提供的方法更具優(yōu)點(diǎn)。
對(duì)于計(jì)算平方積分圖像,與計(jì)算積分圖像同理。具體地,將平方積分圖像的點(diǎn)(x,y)處的值定義為則點(diǎn)(x,y)對(duì)應(yīng)的平方積分圖像為SqInteg(x,y)。假定sqrs(x,y)表示第y行到當(dāng)前像素(x,y)為止(包括當(dāng)前像素)所有像素亮度平方的和,即 采用下列公式計(jì)算平方積分圖像 sqrs(x,y)=sqrs(x-1,y)+I(x,y)*I(x,y) SqInteg(x,y)=SqInteg(x,y-1)+sqrs(x,y)。
具體實(shí)現(xiàn)方式如下 對(duì)任意y=0,1,2...H-1及x=0,1,2...W-1,設(shè)定SqInteg(-1,y)=0,SqInteg(x,-1)=0; 對(duì)圖像所有行,依y=0,1,2...H-1的順序進(jìn)行如下處理 設(shè)定sqrs=0表示當(dāng)前行的所有像素和的初始值為0; 對(duì)圖像y行中的所有像素依x=0,1,2...W-1的順序進(jìn)行如下處理 令sqrs=sqrs+I(x,y)*I(x,y); 則當(dāng)前像素(x,y)的平方積分圖像SqInteg(x,y)=SqInteg(x,y-1)+sqrs; 計(jì)算完第y行的平方積分圖像后接著計(jì)算第y+1行的平方積分圖像。
對(duì)所有行處理完畢后,完成平方積分圖像的計(jì)算。
為了檢測(cè)到不同尺度的人臉,一種方式是采用特征放縮的方式處理。但是,對(duì)于比較復(fù)雜的人臉檢測(cè)器,最終構(gòu)成的分類器的弱特征的數(shù)目會(huì)很多,可能有幾千個(gè),每個(gè)弱特征需要記錄兩個(gè)矩形框的坐標(biāo)以及閾值,對(duì)內(nèi)存的需求很大。對(duì)于芯片設(shè)計(jì)而言,采用片內(nèi)RAM的方式存儲(chǔ)數(shù)據(jù),會(huì)大大增加芯片的成本。而片外的ROM和FLASH的成本相對(duì)要低一些。
較佳地,本發(fā)明實(shí)施例將所有尺度的弱分類器保存在外部的ROM或者flash中,處理時(shí),從片外先將一個(gè)尺度的分類器讀取進(jìn)來,然后,采用該尺度進(jìn)行處理,處理完畢,讀取下一個(gè)尺度的分類器。依次類推,片內(nèi)只需要存儲(chǔ)一個(gè)尺度的檢測(cè)器,從而在保證處理速度的同時(shí),減少了片內(nèi)存儲(chǔ)空間的占用,從而節(jié)省了芯片成本。
Viola訓(xùn)練的人臉檢測(cè)器的尺度為24x24,為了計(jì)算方便,本發(fā)明實(shí)施例采用2的冪次作為預(yù)先訓(xùn)練得到的人臉檢測(cè)器的固定尺度(包括寬和高)。采用公式和計(jì)算歸一化系數(shù)時(shí),需要進(jìn)行除法運(yùn)算,即除以N,N為該固定尺度的圖像中所有像素?cái)?shù)目和。而本發(fā)明實(shí)施例將人臉檢測(cè)器的寬和高都取為2的冪次,可以將除法運(yùn)算轉(zhuǎn)換為移位運(yùn)算,從而大大節(jié)省了計(jì)算量。其中,高度和寬度可以相同,也可以不同。
對(duì)于人臉檢測(cè)技術(shù)而言,由于采用不同尺度的人臉檢測(cè)器進(jìn)行全圖范圍內(nèi)的搜索,常常會(huì)在同一個(gè)真實(shí)人臉位置附近檢測(cè)到多個(gè)人臉候選框,所以需要進(jìn)行合并操作?,F(xiàn)有技術(shù)采用的方法是先將通過人臉檢測(cè)器的所有矩形區(qū)域位置記錄下來,并在全部尺度處理完畢后,將相鄰的重疊人臉區(qū)域位置進(jìn)行合并。這樣處理需要保存所有的候選人臉框,對(duì)內(nèi)存的需求比較大。
較佳地,本發(fā)明實(shí)施例方法的步驟S505中,在檢測(cè)到人臉矩形區(qū)域框并將其添加到人臉區(qū)域隊(duì)列中時(shí),自動(dòng)進(jìn)行人臉區(qū)域框的合并操作,以節(jié)省保存人臉隊(duì)列所需要的內(nèi)存。
本發(fā)明實(shí)施例初始化人臉區(qū)域隊(duì)列為空,步驟S505將候選人臉矩形區(qū)域添加到人臉區(qū)域隊(duì)列時(shí),具體包括 判斷人臉區(qū)域隊(duì)列是否為空,如果是,則直接將步驟S504判定的候選人臉區(qū)域框(以下稱為添加人臉框)添加到人臉區(qū)域隊(duì)列;否則,判斷該候選人臉區(qū)域框是否和人臉區(qū)域隊(duì)列中已保存的人臉區(qū)域框(以下稱為記錄人臉框)相似,如果與某個(gè)記錄人臉框相似,則將二者合并,否則,將添加人臉框作為新的記錄項(xiàng)添加到人臉區(qū)域隊(duì)列中。
較佳地,一種判定添加人臉框和記錄人臉框是否相似的方法是當(dāng)兩個(gè)矩形框的大小相近且位置交疊時(shí),認(rèn)為二者相似。
例如,假設(shè)待添加的候選人臉框表示為R(i,j,TWidthn,THeightn),其中,i表示待添加的候選人臉框的左邊框橫坐標(biāo),j表示待添加的候選人臉框的上邊框縱坐標(biāo),TWidthn表示待添加的候選人臉框的寬,THeightn表示待添加的候選人臉框的高。假定人臉區(qū)域隊(duì)列中,第m個(gè)記錄人臉框?yàn)镽m(l,t,wd,ht),其中,l為記錄人臉框的左邊框橫坐標(biāo),t為記錄人臉框的上邊框縱坐標(biāo),wd為記錄人臉框的寬,ht為記錄人臉框的高。一種判定二者大小是否相近的方法如下 如果滿足則認(rèn)為二者相近,否則,認(rèn)為二者不相近。其中ENLARGE0和ENLARGE1分別為相近寬度比例區(qū)間的上限和下限。
一種判定二者的位置是否交疊的方式如下 令li=max(i,l),ti=max(j,t),ri=min(i+TWidthn,l+wd),bi=min(j+THeightn,t+ht),則交疊面積為areai=(ri-li)*(bi-ti),人臉區(qū)域隊(duì)列中第m個(gè)記錄人臉框的矩形區(qū)域面積為areamr=wd*ht,則如果滿足認(rèn)為二者位置交疊,否則,認(rèn)為二者位置不交疊。其中, ENLARGE2為閾值,min表示取最小值,max表示取最大值。
將兩個(gè)大小相近且位置交疊的矩形區(qū)域合并的操作,即將添加人臉框的信息和人臉區(qū)域隊(duì)列中的相似的記錄人臉框的信息進(jìn)行融合,作為新的記錄人臉框。一種可行的合并方式為將添加人臉框和記錄人臉框的左邊框橫坐標(biāo)、上邊框橫坐標(biāo)、寬度、高度分別取平均作為新的記錄人臉框的左邊框橫坐標(biāo)、上邊框橫坐標(biāo)、寬度、高度。
在上述合并處理完成后,較佳地,步驟S508中從人臉區(qū)域隊(duì)列中確定人臉區(qū)域時(shí),具體包括判斷人臉區(qū)域隊(duì)列中任意兩個(gè)記錄人臉框之間是否存在位置上的包含關(guān)系(即一個(gè)矩形框處于另外一個(gè)矩形框中),如果存在包含關(guān)系,則刪除置信度小的矩形框,如果置信度相同,刪除面積小的矩形框。將經(jīng)過上述合并操作和刪除操作后,保存在人臉區(qū)域隊(duì)列中的人臉區(qū)域作為最終檢測(cè)到的人臉區(qū)域。
一種判定兩個(gè)記錄人臉框是否存在包含關(guān)系的方法包括 假定兩個(gè)記錄人臉框分別為Rm(l,t,wd,ht)和Rm′(l′,t′,wd′,ht′),則二者交疊矩形框的左邊框橫坐標(biāo)、上邊框縱坐標(biāo)、右邊框橫坐標(biāo)、下邊框縱坐標(biāo)分別為li=max(l,l′),ti=max(t,t′),ri=min(l+wd,l′+wd′),bi=min(t+ht,t′+ht′)。
如果滿足li==l,ti==t,ri==(l+wd),bj==(t+ht)或li==l′,ti==t′,ri==(l′+wd′),bj==(t′+ht′),則認(rèn)為二者存在包含關(guān)系。
上述人臉框的置信度可以定義為該人臉框在合并過程中合并的所有添加人臉框的數(shù)目。
本發(fā)明實(shí)施例提供的圖像檢測(cè)裝置包括 計(jì)算積分圖像單元,用于計(jì)算輸入圖像的積分圖像和平方積分圖像,其中,所述積分圖像和/或所述平方積分圖像是按照從上到下,從左到右的順序,采用所述輸入圖像的每行像素到當(dāng)前像素的所有像素亮度和計(jì)算得到的。
確定物體區(qū)域單元,用于根據(jù)預(yù)先訓(xùn)練得到的物體檢測(cè)器,通過所述積分圖像和平方積分圖像得到所述輸入圖像所需的微結(jié)構(gòu)特征值,并且根據(jù)所述微結(jié)構(gòu)特征值,確定所述輸入圖像的物體區(qū)域。
綜上所述,本發(fā)明從減少內(nèi)存占用和簡化算法運(yùn)算量的角度出發(fā),提出了一種更適合于硬件實(shí)現(xiàn)的圖像檢測(cè)算法,分別從弱分類器定義、積分圖像計(jì)算方式、平方積分圖像計(jì)算方式、物體檢測(cè)器尺度、弱分類器構(gòu)造方式等幾個(gè)方面分別進(jìn)行了改進(jìn),從而簡化了對(duì)圖形進(jìn)行物體檢測(cè)的算法,降低了內(nèi)存的占用,最終達(dá)到降低產(chǎn)品成本的目的。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種圖像檢測(cè)方法,其特征在于,該方法包括
計(jì)算輸入圖像的積分圖像和平方積分圖像,其中,所述積分圖像和/或所述平方積分圖像是按照從上到下,從左到右的順序,采用所述輸入圖像的每行像素到當(dāng)前像素的所有像素亮度和計(jì)算得到的;
根據(jù)預(yù)先訓(xùn)練得到的物體檢測(cè)器,通過所述積分圖像和平方積分圖像得到所述輸入圖像所需的微結(jié)構(gòu)特征值,并且根據(jù)所述微結(jié)構(gòu)特征值,確定所述輸入圖像的物體區(qū)域。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述微結(jié)構(gòu)特征值為兩個(gè)矩形區(qū)域內(nèi)相同數(shù)目像素亮度和之差。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述兩個(gè)矩形區(qū)域的面積之比為2的冪次。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述兩個(gè)矩形區(qū)域的位置關(guān)系為
一個(gè)矩形區(qū)域與另一矩形區(qū)域的中心點(diǎn)重合;或者,
一個(gè)矩形區(qū)域的兩個(gè)邊與另一矩形區(qū)域的兩個(gè)邊重合;或者,
一個(gè)矩形區(qū)域與另一矩形區(qū)域在水平方向上或/和垂直方向上存在一定距離。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述物體檢測(cè)器模型的寬和高的值是2的冪次。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述物體檢測(cè)器由多個(gè)弱分類器構(gòu)成,所述弱分類器包括極性,第一閾值和第二閾值;所述極性為1或-1,所述第一閾值小于所述第二閾值;
如果所述弱分類器的極性為1,且所述微結(jié)構(gòu)特征值大于所述第一閾值,并且,小于所述第二閾值時(shí),表示所述微結(jié)構(gòu)特征值通過了所述弱分類器的判決;否則,表示所述微結(jié)構(gòu)特征值沒有通過所述弱分類器的判決;
如果所述弱分類器的極性為-1,且所述微結(jié)構(gòu)特征值小于所述第一閾值,或者,大于所述第二閾值時(shí),表示所述微結(jié)構(gòu)特征值通過了所述弱分類器的判決;否則,表示所述微結(jié)構(gòu)特征值沒有通過所述弱分類器的判決。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,確定所述輸入圖像的物體區(qū)域的步驟包括
預(yù)先對(duì)物體檢測(cè)器進(jìn)行縮放,得到多個(gè)不同尺度的物體檢測(cè)器;
分別采用所述各個(gè)尺度的物體檢測(cè)器,以一定步長,并且根據(jù)所述輸入圖像的微結(jié)構(gòu)特征值,依次對(duì)輸入圖像中的所有候選位置的矩形區(qū)域進(jìn)行判定,當(dāng)該矩形區(qū)域?yàn)楹蜻x物體區(qū)域時(shí),將該候選物體區(qū)域加入物體區(qū)域隊(duì)列;
從所述物體區(qū)域隊(duì)列中確定所述輸入圖像的物體區(qū)域。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,預(yù)先將所有尺度的物體檢測(cè)器模型存儲(chǔ)在片外存儲(chǔ)器中;
依次從所述片外存儲(chǔ)器中讀取每個(gè)尺度的物體檢測(cè)器到片內(nèi)存儲(chǔ)器中,用以對(duì)所述尺度的所有候選位置的矩形進(jìn)行判定。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,將所述候選物體區(qū)域加入物體區(qū)域隊(duì)列的步驟包括
根據(jù)待添加的所述候選物體區(qū)域的大小和位置,以及已被添加到物體區(qū)域隊(duì)列中的候選物體區(qū)域的大小和位置,判斷所述待添加的候選物體區(qū)域是否與所述已添加的候選物體區(qū)域相近,如果是,則將相近的候選物體區(qū)域合并,并將被合并的候選物體區(qū)域的個(gè)數(shù)作為合并后的候選物體區(qū)域的置信度;否則,將所述待添加的候選物體區(qū)域加入所述物體區(qū)域隊(duì)列中。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,從所述物體區(qū)域隊(duì)列中確定所述輸入圖像的物體區(qū)域的步驟包括
當(dāng)所述物體區(qū)域隊(duì)列中的一候選物體區(qū)域包含于另一候選物體區(qū)域時(shí),將置信度較小的候選物體區(qū)域刪除;當(dāng)置信度相同時(shí),刪除面積較小的候選物體區(qū)域;
將經(jīng)過所述合并和刪除處理后的物體區(qū)域隊(duì)列中剩余的候選物體區(qū)域確定為所述輸入圖像上的物體區(qū)域。
11.一種圖像檢測(cè)裝置,其特征在于,該裝置包括
計(jì)算積分圖像單元,用于計(jì)算輸入圖像的積分圖像和平方積分圖像,其中,所述積分圖像和/或所述平方積分圖像是按照從上到下,從左到右的順序,采用所述輸入圖像的每行像素到當(dāng)前像素的所有像素亮度和計(jì)算得到的;
確定物體區(qū)域單元,用于根據(jù)預(yù)先訓(xùn)練得到的物體檢測(cè)器,通過所述積分圖像和平方積分圖像得到所述輸入圖像所需的微結(jié)構(gòu)特征值,并且根據(jù)所述微結(jié)構(gòu)特征值,確定所述輸入圖像的物體區(qū)域。
全文摘要
本發(fā)明公開了一種圖像檢測(cè)方法及裝置,用以提出一種更加適合于硬件實(shí)現(xiàn)的、運(yùn)算更簡單、占用內(nèi)存更小的圖像檢測(cè)技術(shù)。本發(fā)明提出的一種圖像檢測(cè)方法,包括計(jì)算輸入圖像的積分圖像和平方積分圖像,其中,所述積分圖像和/或所述平方積分圖像是按照從上到下,從左到右的順序,采用所述輸入圖像的每行像素到當(dāng)前像素的所有像素亮度和計(jì)算得到的;根據(jù)預(yù)先訓(xùn)練得到的物體檢測(cè)器,通過所述積分圖像和平方積分圖像得到所述輸入圖像所需的微結(jié)構(gòu)特征值,并且根據(jù)所述微結(jié)構(gòu)特征值,確定所述輸入圖像的物體區(qū)域。本發(fā)明用于圖像檢測(cè),簡化了圖像檢測(cè)算法,降低了內(nèi)存的占用,從而適合于硬件實(shí)現(xiàn),降低了產(chǎn)品成本。
文檔編號(hào)G06K9/46GK101187984SQ200710178829
公開日2008年5月28日 申請(qǐng)日期2007年12月5日 優(yōu)先權(quán)日2007年12月5日
發(fā)明者鄧亞峰, 英 黃, 浩 王, 嵩 邱, 霍曉芳, 溫小勇, 青 俞, 鄧中翰 申請(qǐng)人:北京中星微電子有限公司