肖仁鋒
(濟(jì)南職業(yè)學(xué)院 計(jì)算機(jī)系,山東 濟(jì)南 250103)
傳統(tǒng)的易拉罐檢測(cè)系統(tǒng)基于超聲波等傳感器,但是此類傳感器只能檢測(cè)到有物體的存在,不能判斷此物體是否即為目標(biāo)物體易拉罐。但若采用視覺(jué)方法,則能在判斷出有物體存在的同時(shí),也能判斷出目標(biāo)物體是否為易拉罐。
本文討論的易拉罐檢測(cè)方法,是基于AdaBoost算法的思想,并使用Haar特征、LBP特征對(duì)易拉罐進(jìn)行特征提取,以訓(xùn)練出在易拉罐處于不同形態(tài)下及不同環(huán)境中檢測(cè)率都較高的易拉罐檢測(cè)器。Adaboost算法,是一種迭代算法,其核心思想是針對(duì)同一個(gè)訓(xùn)練集訓(xùn)練不同的弱分類器,然后把這些弱分類器集合起來(lái),構(gòu)成一個(gè)更強(qiáng)的最終強(qiáng)分類器。Adaboost算法這種將較弱的分類方法合在一起組合成較強(qiáng)的分類方法的思想,可以很好的適用于分類檢測(cè)這個(gè)應(yīng)用上,并已在人臉檢測(cè)、車牌檢測(cè)等獲得成效[1-3]。Haar特征及LBP特征[4],是近年來(lái)被廣泛應(yīng)用的檢測(cè)器特征提取方法,它們各有優(yōu)缺點(diǎn),本文分別使用這兩種特征提取方法并比較它們的訓(xùn)練過(guò)程及最終訓(xùn)練結(jié)果的差異。
2001年,Viola與Jones提出了基于Adaboost算法的目標(biāo)檢測(cè)方法,當(dāng)時(shí)這種檢測(cè)方法基于Haar特征對(duì)目標(biāo)進(jìn)行特征的提取。Haar特征是一種矩形特征,一般由2-4個(gè)矩形組成。在一個(gè)24*24大小的檢測(cè)框中,能生成117941種Haar特征。
Haar特征可位于圖像中的任意位置,大小、長(zhǎng)寬比例也可以任意,特征原型一般分為邊緣特征、線特征、環(huán)繞特征、對(duì)角線特征四種,特征值為特征原型中每一個(gè)矩形所對(duì)應(yīng)的區(qū)域的所有像素點(diǎn)的灰度值的和的差值。如公式(1):
feature表示Haar特征值,RecSum(rt)代表矩形框內(nèi)所有像素值之和,ωt代表對(duì)應(yīng)矩形權(quán)重,如圖1,對(duì)應(yīng)邊緣特征權(quán)值取為{-1,1},線特征權(quán)值為{-1,2}。
圖1 HAAR特征原型
如圖1,HAAR特征值為對(duì)應(yīng)特征原型中白色矩形區(qū)域的所有像素點(diǎn)對(duì)應(yīng)的灰度值的和,減去黑色矩形區(qū)域的所有像素值之和。顯然,Haar特征值計(jì)算方法簡(jiǎn)單但計(jì)算量大。
近年來(lái),為了彌補(bǔ)Haar特征計(jì)算上、訓(xùn)練上的不足,LBP特征被廣泛引入視覺(jué)識(shí)別技術(shù)。LBP特征是一種具有較強(qiáng)紋理描述能力的特征,與Haar特征不同的是,其具有旋轉(zhuǎn)不變性。在24*24大小的檢測(cè)窗口中,約能生成529種LBP特征,遠(yuǎn)少于同樣檢測(cè)窗口大小下的Haar特征數(shù)目,因此計(jì)算特征值時(shí)計(jì)算量較小。
LBP特征一般將矩形框定義為3*3大小的窗口,再以窗口的中心點(diǎn)的灰度值為閾值與窗口內(nèi)其他像素作比較并進(jìn)行二值化處理,然后根據(jù)像素的不同位置進(jìn)行加權(quán)求和得到該窗口的LBP特征值。如圖2,各點(diǎn)像素值算出后,除中心點(diǎn)外,其他像素皆與中心點(diǎn)像素值作比較,比其大則輸出1,小則輸出0,最終LBP特征模式為11001011。
圖2 LBP特征
除了特征的定義與計(jì)算方法不同外,Haar特征與LBP特征在基于AdaBoost算法訓(xùn)練檢測(cè)器中,最主要的不同是正負(fù)樣本判決門限的不同。
Haar特征采用閾值區(qū)分正負(fù)樣本,根據(jù)某一樣本對(duì)應(yīng)特征值與閾值的比較來(lái)區(qū)分正負(fù)樣本。LBP特征采用子集來(lái)區(qū)分正負(fù)樣本,LBP特征為整數(shù)特征,特征值范圍為[0,255],即共有256個(gè)特征類別,256個(gè)特征類別在訓(xùn)練之后,用8個(gè)子集來(lái)存儲(chǔ),即每個(gè)子集裝32位的值表示32個(gè)特征值的存在與否。當(dāng)判別某一樣本是正樣本或負(fù)樣本時(shí),只需將其特征值與特定子集進(jìn)行比較,以是否屬于這個(gè)子集來(lái)判斷這個(gè)樣本為正樣本或是負(fù)樣本。
假設(shè)有n個(gè)樣本{x1,y1},.....,{xn,yn},xn代表訓(xùn)練樣本,yn代表類標(biāo)號(hào)。
樣本集含正樣本a個(gè),yi均取1;含負(fù)樣本b個(gè),yi均取0。
算法流程:
(1)計(jì)算得到樣本積分圖;
(2)計(jì)算得到樣本所有特征原型(Haar特征或LBP特征);
(3)計(jì)算所有特征原型在所有樣本上的特征值;
(4)生成弱分類器(AdaBoost以生成決策樹的方式生成弱分類器);
構(gòu)建決策樹過(guò)程:
?。┤羰沁x擇HAAR特征,則是將對(duì)應(yīng)HAAR特征fi在所有樣本上的特征值進(jìn)行排序,從而確定該決策樹最佳分裂值和最佳分裂質(zhì)量后,得出閾值θt和對(duì)應(yīng)特征序號(hào),其中:
split->ord.c= (values[best_i]+values[best_i+1])*0.5f;
split->ord.c代表閾值,values[best_i]最佳分裂點(diǎn)對(duì)應(yīng)特征值;
ⅱ)若是選擇LBP特征,則是先計(jì)算出特征值的響應(yīng)值、權(quán)值和,以及256個(gè)特征值類別里的平均響應(yīng)值(平均響應(yīng)值=響應(yīng)值和/權(quán)值和)。再對(duì)256個(gè)平均響應(yīng)值進(jìn)行升序排序,計(jì)算得到最佳分裂值和最佳分裂質(zhì)量后并將256個(gè)值放入8個(gè)子集中,其中:
split->subset[idx>>5]|=1<< (idx &31);
split->subset[]代表子集,每個(gè)子集數(shù)組內(nèi)放32位整數(shù),整數(shù)值由idx決定,idx代表排序前的特征值。
(5)得到弱分類器集;
(6)初始化樣本權(quán)值;
對(duì)負(fù)樣本,初始化權(quán)重Wt,i為1/2a;
對(duì)正樣本,初始化權(quán)重Wt,i為1/2b。
(7)循環(huán)1,....,T次直至滿足條件(t為執(zhí)行的次數(shù))
?。w一化樣本權(quán)重
ⅱ)計(jì)算所有弱分類器錯(cuò)誤率j
ⅲ)選取當(dāng)前錯(cuò)誤率εt最小弱分類器ht
ⅳ)更新樣本權(quán)重
當(dāng)訓(xùn)練樣本被正確分類時(shí)ei=0,反之ei=1,βt=βt/1—εt
(旨在降低被正確分類的樣本的權(quán)重,在下一次循環(huán)中更關(guān)注被分類錯(cuò)誤的樣本)
ⅴ)得到強(qiáng)分類器及其權(quán)值
其中αt=log1/βt
(8)強(qiáng)分類器組建級(jí)聯(lián)分類器 ,即當(dāng)強(qiáng)分類器未低于某層指定虛警率或未達(dá)指定強(qiáng)分類器數(shù)目時(shí),再次執(zhí)行(6)(7)。
實(shí)驗(yàn)利用OpenCV2.3開發(fā)工具,OpenCV是由Intel建立的一個(gè)基于開源開發(fā)的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),實(shí)現(xiàn)圖像處理和計(jì)算機(jī)視覺(jué)方面的通用算法。實(shí)驗(yàn)得出的各檢測(cè)器效果檢測(cè)結(jié)果如圖3:
圖3 檢測(cè)器檢測(cè)易拉罐結(jié)果
具體實(shí)驗(yàn)結(jié)果參數(shù)如表1:
表1 兩種不同特征的參數(shù)比較
其中,漏檢的情況多出于圖片中,易拉罐所處形態(tài)的顏色與實(shí)驗(yàn)室地板顏色相近時(shí);誤檢多出于誤將地板判斷為目標(biāo)物體易拉罐。
本文使用了基于視覺(jué)的方法對(duì)易拉罐進(jìn)行檢測(cè),基于AdaBoost算法,使用Haar特征及LBP特征對(duì)易拉罐進(jìn)行特征提取。實(shí)驗(yàn)結(jié)果表明,將Adaboost應(yīng)用到易拉罐的檢測(cè)與定位的方法具有準(zhǔn)確率較高,檢測(cè)速率快的優(yōu)點(diǎn)。
[1] 潘石柱,殳偉群,王令群.基于 AdaBoost的汽車牌照快速定位[J].計(jì)算機(jī)工程,2006,32(12):187-214.
[2] 盛曦,吳煒,楊曉敏等.一種基于 AdaBoost的車牌定位算法[J].四川大學(xué)報(bào)(自然科學(xué)版),2007,44(3):535-539.
[3] Hjelmas E.,Low B.K.Face Detection.Computer Vision and Image Understanding[J],2001.
[4] Zhe Wei,Yuan Dong,Xiaofu C.Face Verification Using LBP and SVM on Image Sets.Intelligent Computing and Intelligent Systems[J],2011