基于樹形檢測(cè)器的多標(biāo)志識(shí)別
1.1 通用檢測(cè)器
Viola在他的人臉檢測(cè)中成功地運(yùn)用了adaboost結(jié)構(gòu)和由haar特征構(gòu)成的弱分類器。OpenCV也給出了該算法的代碼。許多目標(biāo)檢測(cè)的問題也經(jīng)常用到Viola的檢測(cè)框架,有時(shí)也只是用別的特征集替換了haar特征。
如圖2所示,電視臺(tái)標(biāo)的主要屬性就是它的輪廓特征。在行人檢測(cè)中,基于梯度方向直方圖(HOG)的特征是一種描述輪廓的十分有效的特征。這個(gè)特征的缺點(diǎn)是它的輸出是一個(gè)矢量,所以需要用一個(gè)基于支持向量機(jī)的弱分類器,但是它要花費(fèi)大量的計(jì)算時(shí)間。文獻(xiàn)提出了一個(gè)EHOG特征,它只輸出一個(gè)值,并可以很容易地被Adaboost算法使用。
因此在本文的臺(tái)標(biāo)檢測(cè)器中,使用了EHOG特征。對(duì)于一副訓(xùn)練圖像,計(jì)算一個(gè)塊Rb里的梯度直方圖,然后在n個(gè)方向分別統(tǒng)計(jì)梯度幅度的總和。
n是HOG特征的維數(shù)(在中,n=9),本文中設(shè)置為6。
然后,本文使用了中定義的主方向梯度D概念,D是上述區(qū)間集的一個(gè)子集,即,并計(jì)算對(duì)應(yīng)D方向的EHOG特征:
為了快速地計(jì)算特征,本文也應(yīng)用了積分直方圖方法。
本文采用了EHOG特征和gentle adaboost訓(xùn)練了一個(gè)普通cascade結(jié)構(gòu),然后在所有樁分類器中收集全部的弱分類器,并用校正算法重新排序它們,得到一個(gè)新的“soft cascade”檢測(cè)器。
本文定義為前t個(gè)弱分類器的響應(yīng)值的和。運(yùn)用了校正算法后,可以得到一個(gè)跡數(shù)組trace=(r1,r2,…,rN)。當(dāng)對(duì)一個(gè)樣本x做決策時(shí),加上每一個(gè)弱分類器的響應(yīng)值ht(x),然后就將ht(x)和rt進(jìn)行比較,如果低于,就立刻拒絕該樣本。Soft cascade結(jié)構(gòu)的性能要優(yōu)于Viola的Cascade,在獲得相當(dāng)?shù)臋z測(cè)性能時(shí),它需要較少的特征數(shù)。這些將會(huì)在后面的實(shí)驗(yàn)中展示。
第一層的普通檢測(cè)器可以拒判大量的背景圖像,卻還不能區(qū)別不同類的臺(tái)標(biāo)。為了做進(jìn)一步處理,仍需要一個(gè)可以解決多類別分類問題的算法結(jié)構(gòu)。
1.2 分叉樹
在Huang的工作里,他構(gòu)建了一棵由粗到精標(biāo)注了人臉的不同視角的樹。分叉樹上的每個(gè)節(jié)點(diǎn)分類器采用了矢量boosting算法訓(xùn)練得到,依靠假設(shè)輸出空間的矢量化來(lái)解決多類問題。舉例說(shuō)明,在一個(gè)節(jié)點(diǎn)分類器上,有四個(gè)可能的輸出矢量((0,O),(0,1),(1,0),(1,1)):(0,0)代表著該樣本的檢測(cè)將終止于當(dāng)前節(jié)點(diǎn)。(0,1),(1,0),(1,1)代表著該樣本將會(huì)通過哪個(gè)孩子節(jié)點(diǎn)。
在文獻(xiàn)中,相鄰的視角在分叉樹里的距離也很近。全部15個(gè)不同視角是根據(jù)旋轉(zhuǎn)角度平分成15份得到的。由于在本文的多臺(tái)標(biāo)檢測(cè)中沒有關(guān)于某兩個(gè)臺(tái)標(biāo)是近鄰的先驗(yàn)知識(shí),所以不能依靠經(jīng)驗(yàn)來(lái)構(gòu)建一棵由粗到精的分叉樹。例如,當(dāng)面對(duì)圖2中的6類臺(tái)標(biāo)時(shí),在分叉樹的根節(jié)點(diǎn)上,不知道該如何將它們劃分成兩個(gè)子節(jié)點(diǎn)。如果將明顯不同的臺(tái)標(biāo)放在同一個(gè)節(jié)點(diǎn)里,訓(xùn)練算法將會(huì)耗費(fèi)更多的特征才能獲得一個(gè)相對(duì)較好的分類?;谶@樣的想法,作者認(rèn)為一個(gè)較好的劃分應(yīng)該是在固定的迭代次數(shù)上利用矢量boosting訓(xùn)練得到一個(gè)更好的分類結(jié)果。
假設(shè)有N類正樣本集,在第一層分叉節(jié)點(diǎn)上,就有2N-1-1種組合數(shù)可以將一個(gè)包含N類的集合劃分成兩個(gè)正樣本子集。
如果盲目地尋找一個(gè)合適的樹,總的時(shí)間復(fù)雜度會(huì)是log(N)*2N,這是無(wú)法實(shí)現(xiàn)的。為了解決這個(gè)問題,以下本文將引入一個(gè)貪婪搜索算法。
在一個(gè)二維矢量boosting算法里,正樣本數(shù)據(jù)被標(biāo)示為(O,1)或者(1,0),負(fù)樣本數(shù)據(jù)被標(biāo)示為(-1,-1)。本文用{S1,S2,…,SN}來(lái)表示所有的數(shù)據(jù),那么左邊子節(jié)點(diǎn)的數(shù)據(jù)集就是,右邊子節(jié)點(diǎn)的數(shù)據(jù)集就是,這里Dleft和Dright是(1,2,…,N)的子集。
本文設(shè)置檢測(cè)率為O.995,迭代次數(shù)為10。誤報(bào)率被用來(lái)評(píng)估算法性能。在矢量boosting算法中,判決準(zhǔn)則如下:
對(duì)于本文的6類臺(tái)標(biāo)數(shù)據(jù)集,將給出節(jié)點(diǎn)劃分的算法流程,這里一個(gè)二進(jìn)制串001001表示一種劃分模式,0代表進(jìn)入左子節(jié)點(diǎn),1代表進(jìn)入右子節(jié)點(diǎn)。
算法1劃分節(jié)點(diǎn)集合的貪婪搜索算法
輸入:{S1,S2,…,SN}
輸出:劃分模式p
初始化p:p={00,…,0};
初始化一個(gè)包含比特串的空列表;
評(píng)論