http://blog.csdn.net/weixingstudio/article/details/7631241 1. 弱分類器 在確定了訓(xùn)練子窗口中的矩形特征數(shù)量和特征后,需要對(duì)每一個(gè)特征f ,訓(xùn)練一個(gè)弱分類器h(x,f,p,O) 。 在CSDN里編輯公式太困難了,所以這里和公式有關(guān)的都用截圖了。 特別說明:在前
http://blog.csdn.net/weixingstudio/article/details/7631241
在確定了訓(xùn)練子窗口中的矩形特征數(shù)量和特征值后,需要對(duì)每一個(gè)特征f ,訓(xùn)練一個(gè)弱分類器h(x,f,p,O) 。
在CSDN里編輯公式太困難了,所以這里和公式有關(guān)的都用截圖了。
特別說明:在前期準(zhǔn)備訓(xùn)練樣本的時(shí)候,需要將樣本歸一化和灰度化到20*20的大小,這樣每個(gè)樣本的都是灰度圖像并且樣本的大小一致,保證了每一個(gè)Haar特征(描述的是特征的位置)都在每一個(gè)樣本中出現(xiàn)。
在訓(xùn)練強(qiáng)分類器中,T表示的是強(qiáng)分類器中包含的弱分類器的個(gè)數(shù)。當(dāng)然,如果是采用級(jí)聯(lián)分類器,這里的強(qiáng)分類器中的弱分類器的個(gè)數(shù)可能會(huì)比較少,多個(gè)強(qiáng)分類器在級(jí)聯(lián)起來。
在c(2)步驟中,“每個(gè)特征f”指的是在20*20大小的訓(xùn)練樣本中所有的可能出現(xiàn)的矩形特征,大概要有80,000中,所有的這些都要進(jìn)行計(jì)算。也就是要計(jì)算80,000個(gè)左右的弱分類器,在選擇性能好的分類器。
訓(xùn)練強(qiáng)分類器的步驟如圖:
對(duì)于本算法中的矩形特征來說,弱分類器的特征值f(x)就是矩形特征的特征值。由于在訓(xùn)練的時(shí)候,選擇的訓(xùn)練樣本集的尺寸等于檢測子窗口的尺寸,檢測子窗口的尺寸決定了矩形特征的數(shù)量,所以訓(xùn)練樣本集中的每個(gè)樣本的特征相同且數(shù)量相同,而且一個(gè)特征對(duì)一個(gè)樣本有一個(gè)固定的特征值。
對(duì)于理想的像素值隨機(jī)分布的圖像來說,同一個(gè)矩形特征對(duì)不同圖像的特征值的平均值應(yīng)該趨于一個(gè)定值k。
這個(gè)情況,也應(yīng)該發(fā)生在非人臉樣本上,但是由于非人臉樣本不一定是像素隨機(jī)的圖像,因此上述判斷會(huì)有一個(gè)較大的偏差。
對(duì)每一個(gè)特征,計(jì)算其對(duì)所有的一類樣本(人臉或者非人臉)的特征值的平均值,最后得到所有特征對(duì)所有一類樣本的平均值分布。
下圖顯示了20×20 子窗口里面的全部78,460 個(gè)矩形特征對(duì)全部2,706個(gè)人臉樣本和4,381 個(gè)非人臉樣本6的特征值平均數(shù)的分布圖。由分布看出,特征的絕大部分的特征值平均值都是分布在0 前后的范圍內(nèi)。出乎意料的是,人臉樣本與非人臉樣本的分布曲線差別并不大,不過注意到特征值大于或者小于某個(gè)值后,分布曲線出現(xiàn)了一致性差別,這說明了絕大部分特征對(duì)于識(shí)別人臉和非人臉的能力是很微小的,但是存在一些特征及相應(yīng)的閾值,可以有效地區(qū)分人臉樣本與非人臉樣本。
為了更好地說明問題,我們從78,460 個(gè)矩形特征中隨機(jī)抽取了兩個(gè)特征A和B,這兩個(gè)特征遍歷了2,706 個(gè)人臉樣本和4,381 個(gè)非人臉樣本,計(jì)算了每張圖像對(duì)應(yīng)的特征值,最后將特征值進(jìn)行了從小到大的排序,并按照這個(gè)新的順序表繪制了分布圖如下所示:
可以看出,矩形特征A在人臉樣本和非人臉樣本中的特征值的分布很相似,所以區(qū)分人臉和非人臉的能力很差。
下面看矩形特征B在人臉樣本和非人臉樣本中特征值的分布:
可以看出,矩形特征B的特征值分布,尤其是0點(diǎn)的位置,在人臉樣本和非人臉樣本中差別比較大,所以可以更好的實(shí)現(xiàn)對(duì)人臉分類。
由上述的分析,閾值q 的含義就清晰可見了。而方向指示符p 用以改變不等號(hào)的方向。
一個(gè)弱學(xué)習(xí)器(一個(gè)特征)的要求僅僅是:它能夠以稍低于50%的錯(cuò)誤率來區(qū)分人臉和非人臉圖像,因此上面提到只能在某個(gè)概率范圍內(nèi)準(zhǔn)確地進(jìn)行區(qū)分就
已經(jīng)完全足夠。按照這個(gè)要求,可以把所有錯(cuò)誤率低于50%的矩形特征都找到(適當(dāng)?shù)剡x擇閾值,對(duì)于固定的訓(xùn)練集,幾乎所有的矩形特征都可以滿足上述要求)。每輪訓(xùn)練,將選取當(dāng)輪中的最佳弱分類器(在算法中,迭代T 次即是選擇T 個(gè)最佳弱分類器),最后將每輪得到的最佳弱分類器按照一定方法提升(Boosting)為強(qiáng)分類器
訓(xùn)練一個(gè)弱分類器(特征f)就是在當(dāng)前權(quán)重分布的情況下,確定f 的最優(yōu)閾值,使得這個(gè)弱分類器(特征f)對(duì)所有訓(xùn)練樣本的分類誤差最低。
選取一個(gè)最佳弱分類器就是選擇那個(gè)對(duì)所有訓(xùn)練樣本的分類誤差在所有弱分類器中最低的那個(gè)弱分類器(特征)。
對(duì)于每個(gè)特征 f,計(jì)算所有訓(xùn)練樣本的特征值,并將其排序。通過掃描一遍排好序的特征值,可以為這個(gè)特征確定一個(gè)最優(yōu)的閾值,從而訓(xùn)練成一個(gè)弱分類器。具體來說,對(duì)排好序的表中的每個(gè)元素,計(jì)算下面四個(gè)值:
注意,這里所說的T=200個(gè)弱分類器,指的是非級(jí)聯(lián)的強(qiáng)分類器。若果是用級(jí)聯(lián)的強(qiáng)分類器,則每個(gè)強(qiáng)分類器的弱分類器的個(gè)數(shù)會(huì)相對(duì)較少。
一般學(xué)術(shù)界所說的級(jí)聯(lián)分類器,都是指的是級(jí)聯(lián)強(qiáng)分類器,一般情況有10個(gè)左右的強(qiáng)分類器,每個(gè)強(qiáng)分類有10-20個(gè)弱分類器。當(dāng)然每一層的強(qiáng)分類器中弱分類器的個(gè)數(shù)可以不相等,可以根據(jù)需要在前面的層少放一些弱分類器,后面的層次逐漸的增加弱分類器的個(gè)數(shù)。
在對(duì)輸入圖像進(jìn)行檢測的時(shí)候,一般輸入圖像都會(huì)比20*20的訓(xùn)練樣本大很多。在Adaboost 算法中采用了擴(kuò)大檢測窗口的方法,而不是縮小圖片。
為什么擴(kuò)大檢測窗口而不是縮小圖片呢,在以前的圖像檢測中,一般都是將圖片連續(xù)縮小十一級(jí),然后對(duì)每一級(jí)的圖像進(jìn)行檢測,最后在對(duì)檢測出的每一級(jí)結(jié)果進(jìn)行匯總。然而,有個(gè)問題就是,使用級(jí)聯(lián)分類器的AdaBoost的人臉檢測算法的速度非常的快,不可能采用圖像縮放的方法,因?yàn)閮H僅是把圖像縮放11級(jí)的處理,就要消耗一秒鐘至少,已經(jīng)不能達(dá)到Adaboost 的實(shí)時(shí)處理的要求了。
因?yàn)镠aar特征具有與檢測窗口大小無關(guān)的特性(想要了解細(xì)節(jié)還要讀一下原作者的文獻(xiàn)),所以可以將檢測窗口進(jìn)行級(jí)別方法。
在檢測的最初,檢測窗口和樣本大小一致,然后按照一定的尺度參數(shù)(即每次移動(dòng)的像素個(gè)數(shù),向左然后向下)進(jìn)行移動(dòng),遍歷整個(gè)圖像,標(biāo)出可能的人臉區(qū)域。遍歷完以后按照指定的放大的倍數(shù)參數(shù)放大檢測窗口,然后在進(jìn)行一次圖像遍歷;這樣不停的放大檢測窗口對(duì)檢測圖像進(jìn)行遍歷,直到檢測窗口超過原圖像的一半以后停止遍歷。因?yàn)?整個(gè)算法的過程非常快,即使是遍歷了這么多次,根據(jù)不同電腦的配置大概處理一幅圖像也就是幾十毫秒到一百毫秒左右。
在檢測窗口遍歷完一次圖像后,處理重疊的檢測到的人臉區(qū)域,進(jìn)行合并等操作。
程序代碼樣例請(qǐng)到第一節(jié)找下載地址。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com