有人設(shè)計(jì)了一種金字塔式的級(jí)聯(lián)結(jié)構(gòu),金字塔的每一層對(duì)應(yīng)于對(duì)人臉姿態(tài)(旋轉(zhuǎn)角度)的一個(gè)劃分,從頂層到底層劃分越來(lái)越細(xì),級(jí)聯(lián)的每個(gè)分類器只負(fù)責(zé)區(qū)分非人臉和某個(gè)角度范圍內(nèi)的人臉。對(duì)于一個(gè)待分類的窗口,從最頂層的分類器開(kāi)始對(duì)其進(jìn)行分類,如果其被分為人臉窗口,則送入到下一層的第一個(gè)分類器繼續(xù)進(jìn)行分類,如果其被分為非人臉窗口,則送入到同一層的下一個(gè)分類器繼續(xù)進(jìn)行分類,當(dāng)在某一層上所有的分類器都將其分為非人臉窗口時(shí),就確認(rèn)其為非人臉窗口,將其排除。金字塔式的級(jí)聯(lián)結(jié)構(gòu)也可以看成是一種特殊的并列式結(jié)構(gòu),只不過(guò)每個(gè)級(jí)聯(lián)分類器相互之間有共享的部分,這樣最直接的好處就在于減少了計(jì)算量,共享的部分只需要計(jì)算一次,同時(shí)在底層又保留了分治策略所帶來(lái)的好處——子問(wèn)題比原問(wèn)題更加容易,因此更容易學(xué)習(xí)到分類準(zhǔn)確度更高的分類器。

還有一種比較典型的結(jié)構(gòu)是樹(shù)形的級(jí)聯(lián)結(jié)構(gòu),從形狀上來(lái)看其和金字塔式的級(jí)聯(lián)結(jié)構(gòu)是一樣的,也是從上往下分類器的數(shù)目逐層增多,區(qū)別就在于樹(shù)形的級(jí)聯(lián)結(jié)構(gòu)中沒(méi)有同一層分類器之間的橫向連接,只有相鄰層分類器之間的縱向連接,即一個(gè)窗口在同一層上不會(huì)由多個(gè)分類器進(jìn)行分類,而會(huì)直接被送往下一層或者被排除。樹(shù)形級(jí)聯(lián)結(jié)構(gòu)通過(guò)引入分支跳轉(zhuǎn)機(jī)制,進(jìn)一步減少了對(duì)一個(gè)窗口進(jìn)行分類所需要的計(jì)算量,不過(guò)同時(shí)也帶來(lái)了新的問(wèn)題,分支跳轉(zhuǎn)通常根據(jù)姿態(tài)估計(jì)(估計(jì)旋轉(zhuǎn)角度的范圍)的結(jié)果來(lái)進(jìn)行,而如果姿態(tài)估計(jì)出現(xiàn)錯(cuò)誤,就會(huì)出現(xiàn)某個(gè)姿態(tài)的人臉窗口被送給另一個(gè)姿態(tài)人臉對(duì)應(yīng)的分類器進(jìn)行分類的情況,容易導(dǎo)致錯(cuò)誤的分類。為了緩解這一問(wèn)題,出現(xiàn)了允許多個(gè)分支同時(shí)跳轉(zhuǎn)的設(shè)計(jì),從而降低了由于跳轉(zhuǎn)錯(cuò)誤而引起分類錯(cuò)誤的風(fēng)險(xiǎn)。
分治策略是處理多姿態(tài)人臉檢測(cè)任務(wù)最基本的策略,但要同時(shí)兼顧速度和分類準(zhǔn)確度并不是一件容易的事情,分類能力的增強(qiáng)不可避免地會(huì)帶來(lái)計(jì)算代價(jià)的增大,如何用更小的計(jì)算代價(jià)來(lái)?yè)Q取更高的分類準(zhǔn)確度,這仍然是一個(gè)需要去思考和探索的問(wèn)題。
人臉檢測(cè)器的比拼
在不斷對(duì)人臉檢測(cè)器進(jìn)行改進(jìn)的過(guò)程中,有一個(gè)問(wèn)題是不容忽視的:如何科學(xué)地比較兩個(gè)人臉檢測(cè)器的優(yōu)劣?簡(jiǎn)單地說(shuō),出一套考題讓所有的檢測(cè)器進(jìn)行一場(chǎng)考試,誰(shuí)得分高誰(shuí)就更好。對(duì)于人臉檢測(cè)器而言,所謂考題(測(cè)試集)就是一個(gè)圖像集合,通常其中每張圖像上都包含至少一張人臉,并且這些人臉的位置和大小都已經(jīng)標(biāo)注好。關(guān)于得分,需要考慮檢測(cè)器兩方面的表現(xiàn),一是檢測(cè)率,也即對(duì)人臉的召回率,檢測(cè)出來(lái)的人臉占總?cè)四樀谋壤?mdash;—測(cè)試集中一共標(biāo)注了100張人臉,檢測(cè)器檢測(cè)出其中70張人臉,則檢測(cè)率為70%;二是誤檢(也稱為虛警)數(shù)目,即檢測(cè)器檢測(cè)出來(lái)的人臉中出現(xiàn)錯(cuò)誤(實(shí)際上不是人臉)的數(shù)目——檢測(cè)器一共檢測(cè)出80張人臉,然而其中有10個(gè)錯(cuò)誤,只有70個(gè)是真正的人臉,那么誤檢數(shù)目就是10。在這兩個(gè)指標(biāo)上,我們所希望的總是檢測(cè)率盡可能高,而誤檢數(shù)目盡可能少,但這兩個(gè)目標(biāo)之間一般是存在沖突的;在極端的情況下,如果一張臉也沒(méi)有檢測(cè)出來(lái),那么誤檢數(shù)目為0,但是檢測(cè)率也為0,而如果把所有的窗口都判別為人臉窗口,那么檢測(cè)率為100%,而誤檢數(shù)目也達(dá)到了最大。在比較兩個(gè)檢測(cè)器的時(shí)候,我們通常固定一個(gè)指標(biāo),然后對(duì)比另一個(gè)指標(biāo),要么看相同誤檢數(shù)目時(shí)誰(shuí)的檢測(cè)率高,要么看相同檢測(cè)率時(shí)誰(shuí)的誤檢少。
對(duì)于每一個(gè)檢測(cè)出的人臉,檢測(cè)器都會(huì)給出這個(gè)檢測(cè)結(jié)果的得分(或者說(shuō)信度),那么如果人為地引入一個(gè)閾值來(lái)對(duì)檢測(cè)結(jié)果進(jìn)行篩選(只保留得分大于閾值得檢測(cè)結(jié)果),那么隨著這個(gè)閾值的變化,最終得檢測(cè)結(jié)果也會(huì)不同,因而其對(duì)應(yīng)得檢測(cè)率和誤檢數(shù)目通常也會(huì)不同。通過(guò)變換閾值,我們就能夠得到多組檢測(cè)率和誤檢數(shù)目的值,由此我們可以在平面直角坐標(biāo)系中畫出一條曲線來(lái):以x坐標(biāo)表示誤檢數(shù)目,以y坐標(biāo)表示檢測(cè)率,這樣畫出來(lái)的曲線稱之為ROC曲線(不同地方中文譯法不一,如接收機(jī)曲線、接收者操作特征曲線等,這里直接采用英文簡(jiǎn)寫)。ROC曲線提供了一種非常直觀的比較不同人臉檢測(cè)器的方式,得到了廣泛的使用。