丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給深度學(xué)習(xí)大講堂
發(fā)送

0

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

本文作者: 深度學(xué)習(xí)大講堂 2016-08-10 14:13
導(dǎo)語:本文分上下兩篇,上篇主要介紹人臉檢測的基本流程,以及傳統(tǒng)的VJ人臉檢測器及其改進(jìn),下篇介紹基于深度網(wǎng)絡(luò)的檢測器,以及對目前人臉檢測技術(shù)發(fā)展的思考與討論。

雷鋒網(wǎng)按:本文作者鄔書哲, 中科院計(jì)算所智能信息處理重點(diǎn)實(shí)驗(yàn)室VIPL課題組博士生,研究方向:目標(biāo)檢測,尤其關(guān)注基于深度學(xué)習(xí)的目標(biāo)檢測方法。

本文分上下兩篇,上篇主要介紹人臉檢測的基本流程,以及傳統(tǒng)的VJ人臉檢測器及其改進(jìn),下篇介紹基于深度網(wǎng)絡(luò)的檢測器,以及對目前人臉檢測技術(shù)發(fā)展的思考與討論。為了讓本文更適合非計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)背景的讀者,文中對所涉及到的專業(yè)術(shù)語盡量以通俗的語言和用舉例的方式來進(jìn)行解釋,同時(shí)力求嚴(yán)謹(jǐn),以體現(xiàn)實(shí)事求是和一絲不茍的科學(xué)研究精神。   

這是一個(gè)看臉的世界!自拍,我們要藝術(shù)美顏;出門,我么要靚麗美妝。上班,我們要刷臉簽到;回家,我們要看臉相親。 當(dāng)手機(jī)把你的臉變得美若天仙,當(dāng)考勤機(jī)認(rèn)出你的臉對你表示歡迎,你知道是什么魔力讓冷冰冰的機(jī)器也變得溫情脈脈,讓呆呆的設(shè)備也變得善解人意嗎?今天就讓我們走近它們的內(nèi)心,了解這些故事背后的一項(xiàng)關(guān)鍵技術(shù):人臉檢測。    

看人先看臉,走在大街上,我們可以毫不費(fèi)勁地看到所有人的臉:棱角分明的國字臉,嬌小可人的瓜子臉,擦肩而過路人甲的臉,迎面走來明星乙的臉,戴著口罩被遮住的臉,斜向上45度仰角自拍的臉。可是,對于我們的計(jì)算機(jī)和各種終端設(shè)備而言,從眼前的畫面中把人臉給找出來,并不是一件容易的事情,原因就在于,一千個(gè)讀者就有一千個(gè)哈姆雷特,在你的眼里,人臉是這樣的:   

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

而在機(jī)器的眼里,人臉是這樣的:   

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

你沒看錯(cuò),圖像存儲在機(jī)器中不過就是一個(gè)由0和1組成的二進(jìn)制串!更確切地說,機(jī)器看到的是圖像上每一個(gè)點(diǎn)的顏色值,因此對于機(jī)器來說,一張圖像就是一個(gè)由數(shù)排成的陣列。試想一下,如果我把每個(gè)點(diǎn)的顏色值都念給你聽,你能告訴我對應(yīng)的這張圖像上有沒有人臉和人臉在哪里嗎?很顯然,這并不是一個(gè)容易解決的問題。    

如果手機(jī)沒法在自拍照中找到我們臉,那它就像一個(gè)失明的化妝師,沒法展現(xiàn)出我們最好的一面;如果考勤機(jī)沒法通過攝像頭看到我們的臉,那我們的笑就只是自作多情,它也根本不可能識別出我們到底是誰。人臉檢測架起了機(jī)器和我們之間溝通的橋梁,使得它能夠知道我們的身份(人臉識別),讀懂我們的表情(表情識別),和我們一起歡笑(人臉動(dòng)畫),與我們一起互動(dòng)(人機(jī)交互)。

人臉檢測的開始和基本流程    

具體來說,人臉檢測的任務(wù)就是判斷給定的圖像上是否存在人臉,如果人臉存在,就給出全部人臉?biāo)幍奈恢眉捌浯笮 S捎谌四槞z測在實(shí)際應(yīng)用中的重要意義,早在上世紀(jì)70年代就已經(jīng)有人開始研究,然而受當(dāng)時(shí)落后的技術(shù)條件和有限的需求所影響,直到上世紀(jì)90年代,人臉檢測技術(shù)才開始加快向前發(fā)展的腳步,在新世紀(jì)到來前的最后十年間,涌現(xiàn)出了大量關(guān)于人臉檢測的研究工作,這時(shí)期設(shè)計(jì)的很多人臉檢測器已經(jīng)有了現(xiàn)代人臉檢測技術(shù)的影子,例如可變形模板的設(shè)計(jì)(將人臉按照五官和輪廓?jiǎng)澐殖啥鄠€(gè)相互連接的局部塊)、神經(jīng)網(wǎng)絡(luò)的引入(作為判斷輸入是否為人臉的分類模型)等。這些早期的工作主要關(guān)注于檢測正面的人臉,基于簡單的底層特征如物體邊緣、圖像灰度值等來對圖像進(jìn)行分析,結(jié)合關(guān)于人臉的先驗(yàn)知識來設(shè)計(jì)模型和算法(如五官、膚色),并開始引入一些當(dāng)時(shí)已有的的模式識別方法。    

雖然早期關(guān)于人臉檢測的研究工作離實(shí)際應(yīng)用的要求還有很遠(yuǎn),但其中進(jìn)行檢測的流程已經(jīng)和現(xiàn)代的人臉檢測方法沒有本質(zhì)區(qū)別。給定一張輸入圖像,要完成人臉檢測這個(gè)任務(wù),我們通常分成三步來進(jìn)行:  

  1.選擇圖像上的某個(gè)(矩形)區(qū)域作為一個(gè)觀察窗口;   

 2.在選定的窗口中提取一些特征對其包含的圖像區(qū)域進(jìn)行描述;   

 3.根據(jù)特征描述來判斷這個(gè)窗口是不是正好框住了一張人臉。   

檢測人臉的過程就是不斷地執(zhí)行上面三步,直到遍歷所有需要觀察的窗口。如果所有的窗口都被判斷為不包含人臉,那么就認(rèn)為所給的圖像上不存在人臉,否則就根據(jù)判斷為包含人臉的窗口來給出人臉?biāo)诘奈恢眉捌浯笮 ?nbsp;   

那么,如何來選擇我們要觀察的窗口呢?所謂眼見為實(shí),要判斷圖像上的某個(gè)位置是不是一張人臉,必須要觀察了這個(gè)位置之后才知道,因此,選擇的窗口應(yīng)該覆蓋圖像上的所有位置。顯然,最直接的方式就是讓觀察的窗口在圖像上從左至右、從上往下一步一步地滑動(dòng),從圖像的左上角滑動(dòng)到右下角——這就是所謂的滑動(dòng)窗口范式,你可以將它想象成是福爾摩斯(檢測器)在拿著放大鏡(觀察窗口)仔細(xì)觀察案發(fā)現(xiàn)場(輸入圖像)每一個(gè)角落(滑動(dòng))的過程。 

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

別看這種用窗口在圖像上進(jìn)行掃描的方式非常簡單粗暴,它的確是一種有效而可靠的窗口選擇方法,以至于直到今天,滑動(dòng)窗口范式仍然被很多人臉檢測方法所采用,而非滑動(dòng)窗口式的檢測方法本質(zhì)上仍然沒有擺脫對圖像進(jìn)行密集掃描的過程。    

對于觀察窗口,還有一個(gè)重要的問題就是:窗口應(yīng)該多大?我們認(rèn)為一個(gè)窗口是一個(gè)人臉窗口當(dāng)且僅當(dāng)其恰好框住了一張人臉,即窗口的大小和人臉的大小是一致的,窗口基本貼合人臉的外輪廓。    

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

那么問題來了,即使是同一張圖像上,人臉的大小不僅不固定,而且可以是任意的,這樣怎么才能讓觀察窗口適應(yīng)不同大小的人臉呢?一種做法當(dāng)然是采用多種不同大小的窗口,分別去掃描圖像,但是這種做法并不高效。換一個(gè)角度來看,其實(shí)也可以將圖像縮放到不同的大小,然后用相同大小的窗口去掃描——這就是所謂的構(gòu)造圖像金字塔的方式。圖像金字塔這一名字非常生動(dòng)形象,將縮放成不同大小的圖像按照從大到小的順序依次往上堆疊,正好就組成了一個(gè)金字塔的形狀。

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

通過構(gòu)建圖像金字塔,同時(shí)允許窗口和人臉的貼合程度在小范圍內(nèi)變動(dòng),我們就能夠檢測到不同位置、不同大小的人臉了。另外需要一提的是,對于人臉而言,我們通常只用正方形的觀察窗口,因此就不需要考慮窗口的長寬比問題了。    

選好了窗口,我們開始對窗口中的圖像區(qū)域進(jìn)行觀察,目的是收集證據(jù)——真相只有一個(gè),我們要依靠證據(jù)來挖掘真相!在處理圖像的過程中,這個(gè)收集證據(jù)的環(huán)節(jié)我們稱之為特征提取,特征就是我們對圖像內(nèi)容的描述。由于機(jī)器看到的只是一堆數(shù)值,能夠處理的也只有數(shù)值,因此對于圖像所提取的特征具體表示出來就是一個(gè)向量,稱之為特征向量,其每一維是一個(gè)數(shù)值,這個(gè)數(shù)值是根據(jù)輸入(圖像區(qū)域)經(jīng)由某些計(jì)算(觀察)得到的,例如進(jìn)行求和、相減、比較大小等??偠灾?,特征提取過程就是從原始的輸入數(shù)據(jù)(圖像區(qū)域顏色值排列組成的矩陣)變換到對應(yīng)的特征向量的過程,特征向量就是我們后續(xù)用來分析和尋找真相的證據(jù)。   

特征提取之后,就到了決斷的時(shí)刻:判別當(dāng)前的窗口是否恰好包含一張人臉。我們將所有的窗口劃分為兩類,一類是恰好包含人臉的窗口,稱之為人臉窗口,剩下的都?xì)w為第二類,稱之為非人臉窗口,而最終判別的過程就是一個(gè)對當(dāng)前觀察窗口進(jìn)行分類的過程。因?yàn)槲覀兊淖C據(jù)是由數(shù)值組成的特征向量,所以我們是通過可計(jì)算的數(shù)學(xué)模型來尋找真相的,用來處理分類問題的數(shù)學(xué)模型我們通常稱之為分類器,分類器以特征向量作為輸入,通過一系列數(shù)學(xué)計(jì)算,以類別作為輸出——每個(gè)類別會對應(yīng)到一個(gè)數(shù)值編碼,稱之為這個(gè)類別對應(yīng)的標(biāo)簽,如將人臉窗口這一類編碼為1,而非人臉窗口這一類編碼為-1;分類器就是一個(gè)將特征向量變換到類別標(biāo)簽的函數(shù)。    

考慮一個(gè)最簡單的分類器:將特征向量每一維上的數(shù)值相加,如果得到的和超過某個(gè)數(shù)值,就輸出人臉窗口的類別標(biāo)簽1,否則輸出非人臉窗口的類別標(biāo)簽-1。記特征向量為,

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

分類器為函數(shù)f(x),那么有:    

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

這里的t就是前面所說的“某個(gè)數(shù)值”,其決定了分類器在給定特征向量下的輸出結(jié)果,我們稱其為分類器的參數(shù)。不同形式和類型的分類器會有不同的參數(shù),一個(gè)分類器可以有一個(gè)或者多個(gè)參數(shù),參數(shù)或者其取值不同則對應(yīng)到不同的分類器。選定了一個(gè)分類器之后,緊接著的一個(gè)問題就是:參數(shù)該怎么設(shè)置?具體到我們正在考慮的情況,就是:t的值該如何選?。?nbsp;  

要做出選擇,就要有一個(gè)目標(biāo),在分類問題中,目標(biāo)當(dāng)然就是盡可能正確地進(jìn)行分類,即分類的準(zhǔn)確率盡可能高。然而,盡管我們對目標(biāo)非常明確,我們也仍然沒法給出一個(gè)最優(yōu)的參數(shù)取值,因?yàn)槲覀儾⒉皇褂脵C(jī)器所采用的二進(jìn)制語言系統(tǒng),我們并不懂什么才是對機(jī)器最好的。于是我們只有一種選擇:把我們的目標(biāo)告訴機(jī)器,舉一些例子向其進(jìn)行解釋,然后讓機(jī)器自己去學(xué)習(xí)這個(gè)參數(shù),最后我們給機(jī)器設(shè)計(jì)一場考試,測試其是否滿足了我們的要求。我們從一些圖像上選出一部分人臉和非人臉窗口的樣例,用對應(yīng)的類別標(biāo)簽對其進(jìn)行標(biāo)注,然后將這些樣例劃分成兩個(gè)集合,一個(gè)集合作為分類器學(xué)習(xí)所使用的訓(xùn)練集,另一個(gè)集合作為最終考查分類器能力的測試集,同時(shí)我們設(shè)定一個(gè)目標(biāo):希望分類的準(zhǔn)確率能夠在80%以上。    

學(xué)習(xí)過程開始時(shí),我們先給分類器的參數(shù)設(shè)定一個(gè)初始值,然后讓分類器通過訓(xùn)練集中帶有“答案”(類別標(biāo)簽)的樣例,不斷去調(diào)整自己參數(shù)的取值,以縮小其實(shí)際的分類準(zhǔn)確率和目標(biāo)準(zhǔn)確率之間的差距。當(dāng)分類器已經(jīng)達(dá)到了預(yù)先設(shè)定的目標(biāo)或者其它停止學(xué)習(xí)的條件——期末考試的時(shí)間是不會因?yàn)槟銢]有學(xué)好而推遲的,或者分類器覺得自己已經(jīng)沒有辦法再調(diào)整了,學(xué)習(xí)過程就停止了,這之后我們可以考查分類器在測試集上的準(zhǔn)確率,以此作為我們評判分類器的依據(jù)。這一過程中,分類器調(diào)整自己參數(shù)的方式和分類器的類型、設(shè)定的目標(biāo)等都有關(guān),由于這部分內(nèi)容超出了本文所討論的范疇,也并不影響讀者對人臉檢測方法的理解,因此不再展開進(jìn)行講述。    

在確定了選擇窗口的策略,設(shè)計(jì)好了提取特征的方式,并學(xué)習(xí)了一個(gè)針對人臉和非人臉窗口的分類器之后,我們就獲得了構(gòu)建一個(gè)人臉檢測系統(tǒng)所需要的全部關(guān)鍵要素——還有一些小的環(huán)節(jié)相比之下沒有那么重要,這里暫且略去。    

由于采用滑動(dòng)窗口的方式需要在不同大小的圖像上的每一個(gè)位置進(jìn)行人臉和非人臉窗口的判別,而對于一張大小僅為480*320的輸入圖像,窗口總數(shù)就已經(jīng)高達(dá)數(shù)十萬,面對如此龐大的輸入規(guī)模,如果對單個(gè)窗口進(jìn)行特征提取和分類的速度不夠快,就很容易使得整個(gè)檢測過程產(chǎn)生巨大的時(shí)間開銷,也確實(shí)就因?yàn)槿绱?,早期所設(shè)計(jì)的人臉檢測器處理速度都非常慢,一張圖像甚至需要耗費(fèi)數(shù)秒才能處理完成——視頻的播放速度通常為每秒25幀圖像,這給人臉檢測投入現(xiàn)實(shí)應(yīng)用帶來了嚴(yán)重的障礙。

人臉檢測技術(shù)的突破:VJ人臉檢測器及其發(fā)展    

人臉檢測技術(shù)的突破發(fā)生在2001年,兩位杰出的科研工作者Paul Viola和Michael Jones設(shè)計(jì)了出了一個(gè)快速而準(zhǔn)確的人臉檢測器:在獲得相同甚至更好準(zhǔn)確度的同時(shí),速度提升了幾十上百倍——在當(dāng)時(shí)的硬件條件下達(dá)到了每秒處理15張圖像的速度,已經(jīng)接近實(shí)時(shí)速度25fps(即25幀每秒)。這不僅是人臉檢測技術(shù)發(fā)展的一個(gè)里程碑,也標(biāo)志著計(jì)算機(jī)視覺領(lǐng)域的研究成果開始具備投入實(shí)際應(yīng)用的能力。為了紀(jì)念這一工作,人們將這個(gè)人臉檢測器用兩位科研工作者的名字命名,稱之為Viola-Jones人臉檢測器,或者簡稱為VJ人臉檢測器。    

VJ人臉檢測之所以器能夠獲得成功,極大地提高人臉檢測速度,其中有三個(gè)關(guān)鍵要素:特征的快速計(jì)算方法——積分圖,有效的分類器學(xué)習(xí)方法——AdaBoost,以及高效的分類策略——級聯(lián)結(jié)構(gòu)的設(shè)計(jì)。VJ人臉檢測器采用Haar特征來描述每個(gè)窗口,所謂Haar特征,其實(shí)就是在窗口的某個(gè)位置取一個(gè)矩形的小塊,然后將這個(gè)矩形小塊劃分為黑色和白色兩部分,并分別對兩部分所覆蓋的像素點(diǎn)(圖像上的每個(gè)點(diǎn)稱為一個(gè)像素)的灰度值求和,最后用白色部分像素點(diǎn)灰度值的和減去黑色部分像素點(diǎn)灰度值的和,得到一個(gè)Haar特征的值。    

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

Haar特征反映了局部區(qū)域之間的相對明暗關(guān)系,能夠?yàn)槿四樅头侨四樀膮^(qū)分提供有效的信息,例如眼睛區(qū)域比周圍的皮膚區(qū)域要暗,通過Haar特征就可以將這一特點(diǎn)表示出來。但是由于提取Haar特征時(shí)每次都需要計(jì)算局部區(qū)域內(nèi)多個(gè)像素點(diǎn)灰度值之和,因此在速度上其并不快,為此VJ人臉檢測器引入了積分圖來加速Haar特征的提取。    

積分圖是一張和輸入圖像一樣大的圖,但其每個(gè)點(diǎn)上不再是存放這個(gè)點(diǎn)的灰度值,而是存放從圖像左上角到該點(diǎn)所確定的矩形區(qū)域內(nèi)全部點(diǎn)的灰度值之和。    

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

積分圖所帶來的好處是兩方面的,一方面它使得每次計(jì)算局部區(qū)域像素點(diǎn)的灰度值之和僅需要做4次加減法,與局部區(qū)域的大小無關(guān);另一方面它避免了在相同像素點(diǎn)上重復(fù)求和,只在最開始計(jì)算一次——相鄰的窗口有很大的重疊部分,對應(yīng)的Haar特征也會重疊,如果每次都重新計(jì)算像素點(diǎn)的灰度值之和,則重疊部分的計(jì)算是重復(fù)的。積分圖極大地加速了Haar特征的提取,向快速的檢測器邁出了第一步。   

除了特征提取,分類過程的速度對于檢測的速度也至關(guān)重要。分類的速度取決于分類器的復(fù)雜程度,也即從特征向量變換到類別標(biāo)簽的計(jì)算過程的復(fù)雜程度。復(fù)雜的分類器往往具有更強(qiáng)的分類能力,能夠獲得更好的分類準(zhǔn)確度,但是分類時(shí)的計(jì)算代價(jià)比較高,而簡單的分類器雖然計(jì)算代價(jià)小,但是分類準(zhǔn)確度也較低。那么有沒有兼顧計(jì)算代價(jià)和分類準(zhǔn)確度兩方面的辦法呢?當(dāng)然有,這就是AdaBoost方法。希望計(jì)算代價(jià)小,所以只用簡單的分類器,但是又希望分類準(zhǔn)確度高,于是把多個(gè)簡單的分類器組合起來——聚弱為強(qiáng),將多個(gè)弱分類器組合成一個(gè)強(qiáng)分類器,這就是AdaBoost方法的核心理念。通過AdaBoost方法來學(xué)習(xí)分類器,達(dá)到了以更小的計(jì)算代價(jià)換取同樣的分類準(zhǔn)確度的目的。    

造成人臉檢測速度慢的根本原因還在于輸入規(guī)模過大,動(dòng)輒需要處理幾十上百萬的窗口,如果這樣的輸入規(guī)模是不可避免的,那么有沒有可能在處理的過程中盡快降低輸入規(guī)模呢?如果能夠通過粗略地觀察快速排除掉大部分窗口,只剩下少部分窗口需要進(jìn)行仔細(xì)的判別,則總體的時(shí)間開銷也會極大地降低。從這樣的想法出發(fā),VJ人臉檢測器采用了一種級聯(lián)結(jié)構(gòu)來達(dá)到逐步降低輸入規(guī)模的目的。   

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

具體說來,VJ人臉檢測器將多個(gè)分類器級聯(lián)在一起,從前往后,分類器的復(fù)雜程度和計(jì)算代價(jià)逐漸增大,對于給定的一個(gè)窗口,先由排在最前面也最簡單的分類器對其進(jìn)行分類,如果這個(gè)窗口被分為非人臉窗口,那么就不再送到后面的分類器進(jìn)行分類,直接排除,否則就送到下一級分類器繼續(xù)進(jìn)行判別,直到其被排除,或者被所有的分類器都分為人臉窗口。這樣設(shè)計(jì)的好處是顯而易見的,每經(jīng)過一級分類器,下一級分類器所需要判別的窗口就會減少,使得只需要付出非常少的計(jì)算代價(jià)就能夠排除大部分非人臉窗口。從另一個(gè)角度來看,這實(shí)際上也是根據(jù)一個(gè)窗口分類的難度動(dòng)態(tài)地調(diào)整了分類器的復(fù)雜程度,這顯然比所有的窗口都用一樣的分類器要更加高效。    

VJ人臉檢測器通過積分圖、AdaBoost方法和級聯(lián)結(jié)構(gòu)取得的巨大成功對后續(xù)的人臉檢測技術(shù)研究產(chǎn)生了深遠(yuǎn)的影響,大量的科研工作者開始基于VJ人臉檢測器進(jìn)行改進(jìn),這些改進(jìn)也分別覆蓋了VJ人臉檢測器的三個(gè)關(guān)鍵要素。

特征的改進(jìn)和變遷    

雖然Haar特征已經(jīng)能夠刻畫人臉的一些特點(diǎn),但是相比于人臉復(fù)雜的變化模式,VJ人臉檢測器所采用的5種Haar特征還是過于簡單。光考慮姿態(tài)上的變化,人臉可能是斜著的(平面內(nèi)旋轉(zhuǎn)),也可能是仰著的或者側(cè)著的(平面外旋轉(zhuǎn)),同一個(gè)Haar特征在不同姿態(tài)的人臉上差異可能非常大,而同時(shí)又可能和非人臉區(qū)域上的特征更相近,這就很容易在分類的時(shí)候引起誤判。于是人們開始對Haar特征進(jìn)行擴(kuò)展,使得其能夠刻畫更加豐富的變化模式:   

1. 環(huán)形的黑白區(qū)域劃分模式,而不僅僅是上下或者左右型;

2. 旋轉(zhuǎn)的Haar的特征,即將原來提取Haar特征的局部小塊順時(shí)針或逆時(shí)針旋轉(zhuǎn)45度;   

3. 分離的Haar特征,即允許一個(gè)Haar特征由多個(gè)互相分離的黑白區(qū)域來計(jì)算,而不要求黑白區(qū)域必須處于一個(gè)矩形小塊中;   

4. 對角型Haar特征;    

5. 組合Haar特征,即對多個(gè)不同的Haar特征進(jìn)行組合和二值編碼;    

6. 局部組合二值特征,即在局部對特定的Haar特征按照一定的結(jié)構(gòu)進(jìn)行組合和二值編碼;    

7. 帶權(quán)多通道Haar特征,即一個(gè)Haar特征不再只包含黑白兩種塊,而允許有多種不同形狀和不同顏色的塊,其中不同的顏色對應(yīng)著不同的權(quán)值,表示像素點(diǎn)上求和之后所占的比重——原來只有1和-1兩種,多通道指的是在像素點(diǎn)上求和不僅僅是在灰度這一個(gè)通道上計(jì)算,而是同時(shí)在其它通道上計(jì)算(如RGB三個(gè)顏色通道;事實(shí)上,基于原圖計(jì)算而來和原圖同樣大小的任何一張圖都可以是圖像的一個(gè)通道)。    

這些擴(kuò)展極大地增強(qiáng)了Haar特征的表達(dá)能力,使得人臉窗口和非人臉窗口之間具有更好的區(qū)分性,從而提高了分類的準(zhǔn)確度。    

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

除了直接對Haar特征進(jìn)行改進(jìn),人們也同時(shí)在設(shè)計(jì)和嘗試其它特征。Haar特征本質(zhì)上是局部區(qū)域像素值的一種線性組合,其相對應(yīng)的更一般的形式則是不指定線性組合的系數(shù),允許系數(shù)為任意實(shí)數(shù),這被稱之為線性特征——這里的組合系數(shù)可以基于訓(xùn)練樣例來進(jìn)行學(xué)習(xí),類似于學(xué)習(xí)分類器參數(shù)的過程。稀疏粒度特征也是一種基于線性組合來構(gòu)造的特征,與線性特征所不同的是,稀疏粒度特征是將不同尺度(將100*100的圖像放大到200*200,它和原本大小就為200*200的圖像是處于不同的尺度上)、位置和大小的局部區(qū)域進(jìn)行組合,而線性特征只是組合同一個(gè)局部區(qū)域內(nèi)的像素值。    

LBP特征是一種二值編碼特征,其直接基于像素灰度值進(jìn)行計(jì)算,特點(diǎn)是在編碼時(shí)考慮的是兩個(gè)值的相對大小,并且按照一定的空間結(jié)構(gòu)來進(jìn)行編碼,局部組合二值特征就是在LBP特征的啟發(fā)下設(shè)計(jì)的;從計(jì)算上來看,提取LBP特征比提取Haar特征要快,但是Haar特征對于人臉和非人臉窗口的區(qū)分能力更勝一籌。簡化的SURF特征是一種和Haar特征相類似的特征,但是其計(jì)算的是局部區(qū)域中像素點(diǎn)的梯度和,并在求和的過程中考慮了梯度方向(所謂梯度,最簡單的一種情形就是指同一行上兩個(gè)不同位置像素值的差比上它們水平坐標(biāo)的差);SURF特征比Haar特征更為復(fù)雜,因此計(jì)算代價(jià)更高,但是由于其表達(dá)能力更強(qiáng),因此能夠以更少數(shù)目的特征來達(dá)到相同的區(qū)分度,在一定程度上彌補(bǔ)了其在速度上的不足。HOG特征也是一種基于梯度的特征,其對一個(gè)局部區(qū)域內(nèi)不同方向的梯度進(jìn)行統(tǒng)計(jì),計(jì)算梯度直方圖來表示這個(gè)區(qū)域。積分通道特征和多通道的Haar特征有些類似,但是其使用的通道更加多樣化,將通道的概念推廣為由原圖像變換而來并且空間結(jié)構(gòu)和原圖像對應(yīng)的任何圖像。聚合通道特征則在積分通道特征的基礎(chǔ)上進(jìn)一步加入了對每個(gè)通道進(jìn)行下采樣的操作,實(shí)現(xiàn)局部區(qū)域信息的聚合。    

在過去十幾年的探索過程中,涌現(xiàn)出的特征不勝枚舉,這里只選取了部分比較有代表性和反映了人們探索思路的特征進(jìn)行舉例。這里所有列舉的特征都有一個(gè)共同的特點(diǎn):都由科研工作者根據(jù)自己的經(jīng)驗(yàn)手工設(shè)計(jì),這些特征的設(shè)計(jì)反映了人們對問題的理解和思考。雖然隨著不斷的改進(jìn),設(shè)計(jì)出的特征已經(jīng)日臻完善,但直到現(xiàn)在,人們在特征上的探索還遠(yuǎn)沒有結(jié)束。

分類器及其學(xué)習(xí)方法的改進(jìn)    

分類器能力的強(qiáng)弱直接決定了分類準(zhǔn)確度的高低,而分類的計(jì)算代價(jià)是影響檢測速度的一個(gè)關(guān)鍵因素,因此,人們探索的另一個(gè)方向就是對分類器及其學(xué)習(xí)方法的改進(jìn)。    

采用AdaBoost方法由弱分類器構(gòu)建強(qiáng)分類器,這是一個(gè)順序執(zhí)行的過程,換言之,一旦一個(gè)弱分類器被選中,其就必定會成為強(qiáng)分類器的組成部分,不允許反悔,這其實(shí)是假設(shè)增加弱分類器一定會使得強(qiáng)分類器的分類準(zhǔn)確度更高,但是,這個(gè)假設(shè)并不總是成立。事實(shí)上,每次對弱分類器的選擇只是依照當(dāng)時(shí)的情況決定,而隨著新的弱分類器被增加進(jìn)來,從整體上來看,之前的選擇未必最優(yōu)?;谶@樣的想法,出現(xiàn)了允許回溯的FloatBoost方法。FloatBoost方法在選擇新的弱分類器的同時(shí),也會重新考查原有的弱分類器,如果去掉某個(gè)弱分類器之后強(qiáng)分類器的分類準(zhǔn)確度得到了提升,那說明這個(gè)弱分類器帶來了負(fù)面影響,應(yīng)該被剔除。    

VJ人臉檢測器中,相級聯(lián)的多個(gè)分類器在學(xué)習(xí)的過程中并不會產(chǎn)生直接的聯(lián)系,其關(guān)聯(lián)僅體現(xiàn)在訓(xùn)練樣例上:后一級分類器的訓(xùn)練樣例一定要先通過前一級分類器。不同分類器在學(xué)習(xí)時(shí)的獨(dú)立性會帶來兩方面的壞處:一是在每個(gè)分類器都是從頭開始學(xué)習(xí),不能借鑒之前已經(jīng)學(xué)習(xí)好的分類器的經(jīng)驗(yàn);二是每個(gè)分類器在分類時(shí)都只能依靠自己,不能利用其它分類器已經(jīng)獲得的信息。為此,出現(xiàn)了兩種改進(jìn)的方案:鏈?zhǔn)紹oosting方法和嵌套式Boosting方法。兩種方案都在學(xué)習(xí)新一級的分類器時(shí),都考慮之前已經(jīng)學(xué)好的分類器,區(qū)別在于鏈?zhǔn)紹oosting方法直接將前面各級分類器的輸出進(jìn)行累加,作為基礎(chǔ)得分,新分類器的輸出則作為附加得分,換言之,前面各級分類器實(shí)際上是新分類器的一個(gè)“前綴”,所有的分類器通過這種方式鏈在了一起;嵌套式Boosting方法則直接將前一級分類器的輸出作為新分類器第一個(gè)弱分類器的特征,形成一種嵌套的關(guān)系,其特點(diǎn)是只有相鄰的分類器才會互相影響。還有一種和嵌套式Boosting方法相類似的方案:特征繼承,即從特征而不是分類器的角度來關(guān)聯(lián)不同的分類器,具體而言,新的分類器在學(xué)習(xí)時(shí)會先繼承前一級分類器的所有特征,基于這些特征學(xué)習(xí)弱分類器,再此基礎(chǔ)上再考慮增加新的弱分類器,這一方案的特點(diǎn)在于其只引入了分類器學(xué)習(xí)時(shí)的相互影響,而在分類時(shí)分類器之間仍然是相互獨(dú)立的。    

相關(guān)的任務(wù)之間往往會相互產(chǎn)生促進(jìn)作用,相輔相成,而和人臉檢測密切相關(guān)的一個(gè)任務(wù)就是特征點(diǎn)定位:預(yù)測臉部關(guān)鍵點(diǎn)的位置,這些關(guān)鍵點(diǎn)可以是雙眼中心、鼻尖、嘴角等?;谶@樣一種想法,在2014年出現(xiàn)了Joint Cascade,即把檢測人臉?biāo)枰姆诸惼骱皖A(yù)測特征點(diǎn)位置的回歸器交替級聯(lián),同時(shí)進(jìn)行人臉檢測和特征點(diǎn)定位兩個(gè)任務(wù)。用特征點(diǎn)定位輔助人臉檢測的關(guān)鍵在于形狀索引特征的引入,即特征不再是在整個(gè)窗口中提取,而是在以各個(gè)特征點(diǎn)為中心的局部區(qū)域進(jìn)行提取,這樣的好處就在于提高了特征的語義一致性。不同的人臉其對應(yīng)的特征點(diǎn)位置是不同的,反過來看,也就是說相同的位置實(shí)際上對應(yīng)于臉部的不同區(qū)域,那么在相同區(qū)域提取的特征實(shí)際上表示的是不同的語義,簡單地說,就是在拿鼻子去和嘴巴匹配。采用形狀索引特征可以很好地避免這個(gè)問題,從而增大人臉和非人臉窗口之間的區(qū)分性。對于一個(gè)給定的窗口,我們并不知道特征點(diǎn)的位置,因此采用一個(gè)“平均位置”作為初始位置,即基于標(biāo)注有特征點(diǎn)坐標(biāo)的人臉樣例集,計(jì)算出的每個(gè)點(diǎn)坐標(biāo)的平均值;在平均位置的基礎(chǔ)上,我們提取特征預(yù)測各個(gè)特征點(diǎn)真實(shí)的位置,不過一次預(yù)測往往是不準(zhǔn)確的,就好像跑步的時(shí)候我們沒法直接從起點(diǎn)跳到終點(diǎn)一樣,所以需要不斷基于當(dāng)前確定的特征點(diǎn)位置來預(yù)測新的位置,逐步向其真實(shí)的位置靠近。這個(gè)過程很自然地形成了一種級聯(lián)結(jié)構(gòu),從而能夠和人臉檢測器耦合在一起,形成一種不同模型交替級聯(lián)的形式。

針對分類器學(xué)習(xí)過程中的每一個(gè)環(huán)節(jié),人們都進(jìn)行了細(xì)致而充分的探索,除了上面提到的幾個(gè)方向,在分類器分類閾值的學(xué)習(xí)、提升分類器學(xué)習(xí)的速度等問題上,也出現(xiàn)了很多出色的研究工作。大部分在分類器及其學(xué)習(xí)方法上進(jìn)行改進(jìn)的工作關(guān)注的還是Boosting方法(AdaBoost方法是Boosting方法的一個(gè)杰出代表)和相對簡單的分類器形式,如果能夠引入具有更強(qiáng)分類能力的分類器,相信能給檢測器帶來進(jìn)一步的性能提升,這一點(diǎn)在后文會有所涉及。

級聯(lián)結(jié)構(gòu)的演化    

分類器的組織結(jié)構(gòu)也是人們關(guān)心的一個(gè)重要問題,尤其是在面臨多姿態(tài)人臉檢測任務(wù)的時(shí)候。人臉的姿態(tài)是指人臉在三維空間中繞三個(gè)坐標(biāo)軸旋轉(zhuǎn)的角度,而多姿態(tài)人臉檢測就是要將帶旋轉(zhuǎn)的人臉給檢測出來,不管是斜著的(繞x軸旋轉(zhuǎn))、仰著的(繞y軸旋轉(zhuǎn))還是側(cè)著的(繞z軸旋轉(zhuǎn))。不同姿態(tài)的人臉在表觀特征上存在很大的差異,這給檢測器帶來了非常大的挑戰(zhàn),為了解決這一問題,通常采用分治的策略,即分別針對不同姿態(tài)的人臉單獨(dú)訓(xùn)練分類器,然后組合起來構(gòu)建成多姿態(tài)人臉檢測器。    

最簡單的多姿態(tài)人臉檢測器就是將針對不同姿態(tài)人臉的分類器采用并列式的結(jié)構(gòu)進(jìn)行組織,其中并列的每一個(gè)分類器仍然采用原來的級聯(lián)結(jié)構(gòu)(我們稱這種分類器為級聯(lián)分類器);在檢測人臉的過程中,一個(gè)窗口如果被其中一個(gè)級聯(lián)分類器分為人臉窗口,則認(rèn)為其確實(shí)是一個(gè)人臉窗口,而只有當(dāng)每一個(gè)級聯(lián)分類器都將其判別為非人臉窗口時(shí),才將其排除掉。這種并列式的組織架構(gòu)存在兩方面的缺陷:一是造成了檢測時(shí)間的成倍增長,因?yàn)榻^大部分窗口是非人臉窗口,這些窗口需要經(jīng)過每一個(gè)級聯(lián)分類器的排除;二是容易造成整體分類準(zhǔn)確度的降低,因?yàn)檎麄€(gè)檢測器分錯(cuò)的窗口包含的是所有級聯(lián)分類器分錯(cuò)的窗口。    

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

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

還有一種比較典型的結(jié)構(gòu)是樹形的級聯(lián)結(jié)構(gòu),從形狀上來看其和金字塔式的級聯(lián)結(jié)構(gòu)是一樣的,也是從上往下分類器的數(shù)目逐層增多,區(qū)別就在于樹形的級聯(lián)結(jié)構(gòu)中沒有同一層分類器之間的橫向連接,只有相鄰層分類器之間的縱向連接,即一個(gè)窗口在同一層上不會由多個(gè)分類器進(jìn)行分類,而會直接被送往下一層或者被排除。樹形級聯(lián)結(jié)構(gòu)通過引入分支跳轉(zhuǎn)機(jī)制,進(jìn)一步減少了對一個(gè)窗口進(jìn)行分類所需要的計(jì)算量,不過同時(shí)也帶來了新的問題,分支跳轉(zhuǎn)通常根據(jù)姿態(tài)估計(jì)(估計(jì)旋轉(zhuǎn)角度的范圍)的結(jié)果來進(jìn)行,而如果姿態(tài)估計(jì)出現(xiàn)錯(cuò)誤,就會出現(xiàn)某個(gè)姿態(tài)的人臉窗口被送給另一個(gè)姿態(tài)人臉對應(yīng)的分類器進(jìn)行分類的情況,容易導(dǎo)致錯(cuò)誤的分類。為了緩解這一問題,出現(xiàn)了允許多個(gè)分支同時(shí)跳轉(zhuǎn)的設(shè)計(jì),從而降低了由于跳轉(zhuǎn)錯(cuò)誤而引起分類錯(cuò)誤的風(fēng)險(xiǎn)。    

分治策略是處理多姿態(tài)人臉檢測任務(wù)最基本的策略,但要同時(shí)兼顧速度和分類準(zhǔn)確度并不是一件容易的事情,分類能力的增強(qiáng)不可避免地會帶來計(jì)算代價(jià)的增大,如何用更小的計(jì)算代價(jià)來換取更高的分類準(zhǔn)確度,這仍然是一個(gè)需要去思考和探索的問題。


人臉檢測器的比拼    

在不斷對人臉檢測器進(jìn)行改進(jìn)的過程中,有一個(gè)問題是不容忽視的:如何科學(xué)地比較兩個(gè)人臉檢測器的優(yōu)劣?簡單地說,出一套考題讓所有的檢測器進(jìn)行一場考試,誰得分高誰就更好。對于人臉檢測器而言,所謂考題(測試集)就是一個(gè)圖像集合,通常其中每張圖像上都包含至少一張人臉,并且這些人臉的位置和大小都已經(jīng)標(biāo)注好。關(guān)于得分,需要考慮檢測器兩方面的表現(xiàn),一是檢測率,也即對人臉的召回率,檢測出來的人臉占總?cè)四樀谋壤獪y試集中一共標(biāo)注了100張人臉,檢測器檢測出其中70張人臉,則檢測率為70%;二是誤檢(也稱為虛警)數(shù)目,即檢測器檢測出來的人臉中出現(xiàn)錯(cuò)誤(實(shí)際上不是人臉)的數(shù)目——檢測器一共檢測出80張人臉,然而其中有10個(gè)錯(cuò)誤,只有70個(gè)是真正的人臉,那么誤檢數(shù)目就是10。在這兩個(gè)指標(biāo)上,我們所希望的總是檢測率盡可能高,而誤檢數(shù)目盡可能少,但這兩個(gè)目標(biāo)之間一般是存在沖突的;在極端的情況下,如果一張臉也沒有檢測出來,那么誤檢數(shù)目為0,但是檢測率也為0,而如果把所有的窗口都判別為人臉窗口,那么檢測率為100%,而誤檢數(shù)目也達(dá)到了最大。在比較兩個(gè)檢測器的時(shí)候,我們通常固定一個(gè)指標(biāo),然后對比另一個(gè)指標(biāo),要么看相同誤檢數(shù)目時(shí)誰的檢測率高,要么看相同檢測率時(shí)誰的誤檢少。    

對于每一個(gè)檢測出的人臉,檢測器都會給出這個(gè)檢測結(jié)果的得分(或者說信度),那么如果人為地引入一個(gè)閾值來對檢測結(jié)果進(jìn)行篩選(只保留得分大于閾值得檢測結(jié)果),那么隨著這個(gè)閾值的變化,最終得檢測結(jié)果也會不同,因而其對應(yīng)得檢測率和誤檢數(shù)目通常也會不同。通過變換閾值,我們就能夠得到多組檢測率和誤檢數(shù)目的值,由此我們可以在平面直角坐標(biāo)系中畫出一條曲線來:以x坐標(biāo)表示誤檢數(shù)目,以y坐標(biāo)表示檢測率,這樣畫出來的曲線稱之為ROC曲線(不同地方中文譯法不一,如接收機(jī)曲線、接收者操作特征曲線等,這里直接采用英文簡寫)。ROC曲線提供了一種非常直觀的比較不同人臉檢測器的方式,得到了廣泛的使用。    

評測人臉檢測器時(shí)還有一個(gè)重要的問題:怎么根據(jù)對人臉的標(biāo)注和檢測結(jié)果來判斷某張人臉是否被檢測到了?一般來說,檢測器給出的檢測框(即人臉窗口)不會和標(biāo)注的人臉邊框完全一致,而且對人臉的標(biāo)注也不一定是矩形,例如還可能是橢圓形;因此當(dāng)給定了一個(gè)檢測框和一個(gè)標(biāo)注框時(shí),我們還需要一個(gè)指標(biāo)來界定檢測框是否和標(biāo)注框相匹配,這個(gè)指標(biāo)就是交并比:兩者交集(重疊部分)所覆蓋的面積占兩者并集所覆蓋面積的比例,一般情況下,當(dāng)檢測框和標(biāo)注框的交并比大于0.5時(shí),我們認(rèn)為這個(gè)檢測框是一個(gè)正確檢測的人臉。    

在早期的人臉檢測工作中,一般采用MIT-CMU人臉檢測數(shù)據(jù)集作為人臉檢測器的測試集,來比較不同的檢測器。這個(gè)測試集只包含幾百張帶有人臉的圖像,并且人臉主要是清晰且不帶遮擋的正面人臉,因而是一個(gè)相對簡單的測試集,現(xiàn)在幾乎已經(jīng)不再使用。在2010年,美國麻省大學(xué)的一個(gè)實(shí)驗(yàn)室推出了一個(gè)新的人臉檢測評測數(shù)據(jù)集:FDDB,這個(gè)集合共包含2845張帶有人臉的互聯(lián)網(wǎng)新聞圖像,一共標(biāo)注了5171張人臉,其中的人臉在姿態(tài)、表情、光照、清晰度、分辨率、遮擋程度等各個(gè)方面都存在非常大的多樣性,貼近真實(shí)的應(yīng)用場景,因而是一個(gè)非常具有挑戰(zhàn)性的測試集。FDDB的推出激發(fā)人們在人臉檢測任務(wù)上的研究熱情,極大地促進(jìn)了人臉檢測技術(shù)的發(fā)展,在此后的幾年間,新的人臉檢測方法不斷涌現(xiàn),檢測器在FDDB上的表現(xiàn)穩(wěn)步提高。從100個(gè)誤檢時(shí)的檢測率來看,從最初VJ人臉檢測器的30%,發(fā)展到現(xiàn)在已經(jīng)超過了90%——這意味著檢測器每檢測出50張人臉才會產(chǎn)生一個(gè)誤檢,這其中的進(jìn)步是非常驚人的,而檢測器之間的比拼還在繼續(xù)。

雷鋒網(wǎng)注:本文由作者發(fā)布于深度學(xué)習(xí)大講堂,轉(zhuǎn)載請聯(lián)系授權(quán)并保留出處和作者,不得刪減內(nèi)容。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

人臉檢測發(fā)展:從VJ到深度學(xué)習(xí)(上)

分享:
相關(guān)文章

專欄作者

高質(zhì)量原創(chuàng)內(nèi)容平臺,學(xué)術(shù)界、工業(yè)界一線專家撰稿,致力于推送人工智能與深度學(xué)習(xí)最新技術(shù)、產(chǎn)品和活動(dòng)。
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說