摘要:本文首先采用了soft cascade結(jié)構(gòu)的頭結(jié)點(diǎn)分類器檢測(cè)出大量的背景圖像;然后,通過(guò)一個(gè)貪婪搜索算法構(gòu)建分叉樹(shù)分類器,將不同的臺(tái)標(biāo)分類到正確的檢測(cè)線路中;最后,使用普通cascade結(jié)構(gòu)來(lái)得到更加準(zhǔn)確的識(shí)別結(jié)果。實(shí)驗(yàn)結(jié)果,本文的檢測(cè)器可以獲得較高的識(shí)別準(zhǔn)確度。
關(guān)鍵詞:soft cascade,joint boosting,canny算子
0 引言
自動(dòng)的電視臺(tái)標(biāo)檢測(cè)和識(shí)別已經(jīng)在多媒體領(lǐng)域獲得非常高的關(guān)注度。如今,多數(shù)的手機(jī)都具備了攝像頭功能,所以人們可以隨心所欲地拍攝各種事物,然后利用各種算法去分析處理獲得的圖像。本文中,展示一個(gè)系統(tǒng)一利用手機(jī)內(nèi)置攝像頭幫助人們識(shí)別電視頻道信息。日常觀看的電視頻道就有幾十個(gè)不同的臺(tái)標(biāo),所以可以把這個(gè)問(wèn)題看作是一個(gè)多類檢測(cè)問(wèn)題,而單類的檢測(cè)即識(shí)別,最終就實(shí)現(xiàn)了多類識(shí)別。
對(duì)于單類檢測(cè)問(wèn)題,Viola和Jones給出了state-of-the-art算法。他們先訓(xùn)練了一系列節(jié)點(diǎn)分類器去檢測(cè)圖像里的每一個(gè)子窗口,只有那些能夠通過(guò)所有節(jié)點(diǎn)分類器的子窗口圖像才被認(rèn)為是正樣本。吳將Voila的工作簡(jiǎn)單地拓展到了多視角人臉檢測(cè)" title="人臉檢測(cè)" target="_blank">人臉檢測(cè)上,為每個(gè)獨(dú)立的人臉視角訓(xùn)練了一個(gè)不同的 cascade結(jié)構(gòu),并且并行地運(yùn)用它們進(jìn)行檢測(cè)。但是當(dāng)正樣本的類型數(shù)量增加時(shí),這個(gè)方案所花費(fèi)的檢測(cè)時(shí)間也是線性增長(zhǎng)的,而這個(gè)代價(jià)是我們無(wú)法負(fù)擔(dān)的。Torrobla提出了一種新的boosting框架,命名為jointboosting。他將N類分類問(wèn)題轉(zhuǎn)化為N-1個(gè)兩類分類問(wèn)題,然后自動(dòng)地共享相同的弱分類器。盡管它的檢測(cè)器可以共享特征,但是當(dāng)檢測(cè)目標(biāo)時(shí),它仍然需要計(jì)算全部特征,所以它并不是一個(gè)快速檢測(cè)框架。
近些年來(lái),樹(shù)形檢測(cè)器被引入了多視角人臉檢測(cè)應(yīng)用中。許多研究者更加偏愛(ài)于這種樹(shù)形結(jié)構(gòu),例如,F(xiàn)leuret和Geman的scalar tree,Li等人的金字塔結(jié)構(gòu),還有Huang chang的廣度優(yōu)先搜索樹(shù)。在他們的工作里,Huang的工作最有新意,他提出來(lái)一種新的輸出一個(gè)布爾矢量的boosting算法,取名為vector boosting。由于它具有良好的性能,本文選用它作為分叉樹(shù)的部分。有別于多視角人臉的并行結(jié)構(gòu),經(jīng)驗(yàn)證明直接構(gòu)建一個(gè)由粗到精的樹(shù)是比較困難的。故此,本文設(shè)計(jì)了一種根據(jù)不同組合的誤報(bào)率來(lái)構(gòu)建分叉樹(shù)的方法。詳細(xì)的方案會(huì)在1.3中闡述。
本文的其他部分是這樣組織的:在1.1小節(jié)中,本文介紹所采用的特征集,然后簡(jiǎn)要地描述下普通cascade結(jié)構(gòu)和soft cascade結(jié)構(gòu)。在實(shí)驗(yàn)過(guò)程中,作者測(cè)試了本文算法的精確度和檢測(cè)所需的平均特征數(shù)。
1 檢測(cè)器框架
在實(shí)驗(yàn)中,本文采用了一架攝像機(jī)來(lái)拍攝電視節(jié)目的全屏幕圖像。考慮到此方法的通用性,不假設(shè)關(guān)于臺(tái)標(biāo)位置的先驗(yàn)信息(盡管臺(tái)標(biāo)通常會(huì)出現(xiàn)在屏幕的上部)。為了可以檢測(cè)出臺(tái)標(biāo),本文先使用了一個(gè)分類器對(duì)大量的不同尺度和位置的子窗口進(jìn)行掃描。因?yàn)槎鄶?shù)的子窗
口都是背景,而背景的輪廓特征不明顯,所以可以將任務(wù)分割成兩個(gè)部分:首先是盡可能早的拒判掉非臺(tái)標(biāo)的子窗口,然后是區(qū)別每個(gè)臺(tái)標(biāo)屬于哪個(gè)頻道。接下來(lái)描述下算法的第一部分。
1.1 通用檢測(cè)器
Viola在他的人臉檢測(cè)中成功地運(yùn)用了adaboost結(jié)構(gòu)和由haar特征構(gòu)成的弱分類器。OpenCV也給出了該算法的代碼。許多目標(biāo)檢測(cè)的問(wèn)題也經(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è)可以解決多類別分類問(wèn)題的算法結(jié)構(gòu)。
1.2 分叉樹(shù)
在Huang的工作里,他構(gòu)建了一棵由粗到精標(biāo)注了人臉的不同視角的樹(shù)。分叉樹(shù)上的每個(gè)節(jié)點(diǎn)分類器采用了矢量boosting算法訓(xùn)練得到,依靠假設(shè)輸出空間的矢量化來(lái)解決多類問(wèn)題。舉例說(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ì)通過(guò)哪個(gè)孩子節(jié)點(diǎn)。
在文獻(xiàn)中,相鄰的視角在分叉樹(shù)里的距離也很近。全部15個(gè)不同視角是根據(jù)旋轉(zhuǎn)角度平分成15份得到的。由于在本文的多臺(tái)標(biāo)檢測(cè)中沒(méi)有關(guān)于某兩個(gè)臺(tái)標(biāo)是近鄰的先驗(yàn)知識(shí),所以不能依靠經(jīng)驗(yàn)來(lái)構(gòu)建一棵由粗到精的分叉樹(shù)。例如,當(dāng)面對(duì)圖2中的6類臺(tái)標(biāo)時(shí),在分叉樹(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ù),總的時(shí)間復(fù)雜度會(huì)是log(N)*2N,這是無(wú)法實(shí)現(xiàn)的。為了解決這個(gè)問(wèn)題,以下本文將引入一個(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è)包含比特串的空列表;
外層循環(huán)i=1:N-1
內(nèi)層循環(huán)結(jié)束
p(Selectedidx)=1
將p和其局部最小fp值插入列表;
外層循環(huán)結(jié)束
輸出列表中最小fp值對(duì)應(yīng)的比特串。
有了生成的二叉樹(shù)和soft cascade結(jié)構(gòu),本文基本上完成了多類臺(tái)標(biāo)的檢測(cè)和識(shí)別。其中一個(gè)重要參數(shù)是soft cascade的長(zhǎng)度,如果選擇較短的cascade,檢測(cè)器看上去更接近并行cascade結(jié)構(gòu)的檢測(cè)器;如果選擇較長(zhǎng)的cascade,分叉樹(shù)可能要面對(duì)很難區(qū)分的負(fù)樣本,從而降
低檢測(cè)性能。本文中,嘗試了很多種不同長(zhǎng)度的soft cascade,然后挑選性能最好的一個(gè)。算法2如下:
算法2混合分叉樹(shù)分類器
輸入:訓(xùn)練好的soft cascade結(jié)構(gòu),查詢樹(shù),N類正樣本數(shù)據(jù)集S,還有一個(gè)數(shù)量很大的背景圖像集B;
輸出:一個(gè)混合分叉樹(shù)分類器
(1)初始化:分叉樹(shù)的根節(jié)點(diǎn)用soft cascade結(jié)構(gòu)替代;
(2)樹(shù)的節(jié)點(diǎn)訓(xùn)練:
a.從S集和B集中,挑選出所有可以通過(guò)分叉樹(shù)當(dāng)前節(jié)點(diǎn)E的父節(jié)點(diǎn)的樣本,確保正負(fù)樣本集p和n的規(guī)模相當(dāng);
b.如果背景圖像集規(guī)模不夠,終止該節(jié)點(diǎn)E的分叉,將E設(shè)為葉子節(jié)點(diǎn);
(3)在查詢樹(shù)中搜索當(dāng)前節(jié)點(diǎn):
a.如果找到了,就根據(jù)查詢節(jié)點(diǎn)集合將正樣本集分成兩部分,然后用Vector Boosting訓(xùn)練一個(gè)節(jié)點(diǎn)分類器。
b.否則,就用Gentle Adaboost訓(xùn)練一個(gè)強(qiáng)分類器。
(4)對(duì)于當(dāng)前節(jié)點(diǎn)E的每個(gè)孩子節(jié)點(diǎn),循環(huán)使用步驟(2)和(3)進(jìn)行訓(xùn)練生成。
3 實(shí)驗(yàn)方案和結(jié)果
本文收集了6類臺(tái)標(biāo)集合,每一類包含了200張圖像。而臺(tái)標(biāo)圖像就是從這些圖像中裁剪出來(lái)的,然后縮放成24×24像素大小的塊,作為正樣本集。負(fù)樣本集則是從將臺(tái)標(biāo)區(qū)域掩蓋掉后的圖像上收集的。首先進(jìn)行了一個(gè)實(shí)驗(yàn),來(lái)解釋W(xué)FS樹(shù)的不同設(shè)計(jì)方案將會(huì)對(duì)算法性能帶來(lái)怎樣的影響,然后研究了soft cascade長(zhǎng)度帶來(lái)的影響,最后拿隨機(jī)生成的樹(shù)與本文的樹(shù)進(jìn)行對(duì)比。
本文首先使用了文獻(xiàn)中提到的方法訓(xùn)練一個(gè)普通檢測(cè)器,然后將其791個(gè)弱分類器組成了soft cascade。本文用這個(gè)soft cascade對(duì)一組測(cè)試圖像進(jìn)行了測(cè)試,統(tǒng)計(jì)結(jié)果表示每幅圖像通過(guò)的平均特征數(shù)約為8。在實(shí)驗(yàn)中,作者發(fā)現(xiàn)這個(gè)長(zhǎng)度值設(shè)置在平均特征數(shù)的1倍和2倍之間比較合適。
本文使用了上述正樣本數(shù)據(jù)集和規(guī)模為1200的負(fù)樣本數(shù)據(jù)集來(lái)構(gòu)建查詢樹(shù)。最終生成的分叉樹(shù)如圖3所示。
正如分叉樹(shù)所示的,越相似的臺(tái)標(biāo),它們?cè)跇?shù)里的位置越近。同時(shí),本文也隨機(jī)地生成了另一個(gè)查詢樹(shù)。使用這兩棵樹(shù)和同樣的訓(xùn)練數(shù)據(jù)集,本文訓(xùn)練了兩個(gè)WFS樹(shù)檢測(cè)器。
3.1 soft cascade的長(zhǎng)度
當(dāng)選擇好查詢樹(shù),本文就可以開(kāi)始訓(xùn)練檢測(cè)器了。作者嘗試了不同的soft cascade的長(zhǎng)度。本文調(diào)整葉子節(jié)點(diǎn)上分類器的閾值,確保兩個(gè)檢測(cè)器擁有相同的分類結(jié)果。
3.2 檢測(cè)器的精確度
在本文的框架里,第一部分是整個(gè)結(jié)構(gòu)的核心。在soft cascade中設(shè)置不同的alpha參數(shù)值,然后對(duì)將作為根節(jié)點(diǎn)分類器的soft casca-de嘗試不同的長(zhǎng)度。接著,調(diào)整每個(gè)葉子節(jié)點(diǎn)分類器上的閾值,可以得到如圖4的ROC曲線。本文的soft cascade加WFS樹(shù)結(jié)構(gòu)的臺(tái)標(biāo)檢測(cè)精確度要優(yōu)于Huang的WFS樹(shù)。與此同時(shí),本文框架使用的特征數(shù)也比Huang的要少。
對(duì)于識(shí)別同一家電視臺(tái)的不同頻道,本文也采用了改進(jìn)后的WFS結(jié)構(gòu)。本文收集了9個(gè)不同的CCTV頻道中央一至中央九,訓(xùn)練了一個(gè)CCTV系列檢測(cè)器,它可以檢測(cè)并識(shí)別出CCTV標(biāo)志及其右側(cè)區(qū)域里的數(shù)字符號(hào)。本文實(shí)驗(yàn)的結(jié)果數(shù)據(jù)如表1:
4 結(jié)語(yǔ)
本文實(shí)現(xiàn)了一個(gè)基于多層樹(shù)形分類器結(jié)構(gòu)的多臺(tái)標(biāo)識(shí)別方法,此方法具有對(duì)多類別標(biāo)志識(shí)別的通用性。本文雖然在檢測(cè)樣本的平均特征數(shù)上有進(jìn)一步減少,提高了算法的速度,并且在分叉樹(shù)的葉子每個(gè)節(jié)點(diǎn)上增加了一個(gè)單類別cascade,降低了誤檢率。但是這種查詢樹(shù)結(jié)構(gòu)在增加新類型臺(tái)標(biāo)時(shí),需要重新生成和訓(xùn)練,花費(fèi)大量時(shí)間。如果能找到一種增量學(xué)習(xí)算法,在增加新類別時(shí),只需要對(duì)原有的查詢樹(shù)做局部修改,而不用全盤(pán)推翻重新計(jì)算,則該框架將更具實(shí)用性。