走近人臉檢測:從 VJ 到深度學習(上)



而在機器的眼里,人臉是這樣的:

你沒看錯,圖像存儲在機器中不過就是一個由0和1組成的二進制串!更確切地說,機器看到的是圖像上每一個點的顏色值,因此對於機器來說,一張圖像就是一個由數排成的陣列。試想一下,如果我把每個點的顏色值都念給你聽,你能告訴我對應的這張圖像上有沒有人臉和人臉在哪里嗎?

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

具體來說,人臉檢測的任務就是判斷給定的圖像上是否存在人臉,如果人臉存在,就給出全部人臉所處的位置及其大小。由於人臉檢測在實際應用中的重要意義,早在上世紀70年代就已經有人開始研究,然而受當時落后的技術條件和有限的需求所影響,直到上世紀90年代,人臉檢測技術才開始加快向前發展的腳步,在新世紀到來前的最后十年間,涌現出了大量關於人臉檢測的研究工作,這時期設計的很多人臉檢測器已經有了現代人臉檢測技術的影子,例如可變形模板的設計(將人臉按照五官和輪廓划分成多個相互連接的局部塊)、神經網絡的引入(作為判斷輸入是否為人臉的分類模型)等。這些早期的工作主要關注於檢測正面的人臉,基於簡單的底層特征如物體邊緣、圖像灰度值等來對圖像進行分析,結合關於人臉的先驗知識來設計模型和算法(如五官、膚色),並開始引入一些當時已有的的模式識別方法。
雖然早期關於人臉檢測的研究工作離實際應用的要求還有很遠,但其中進行檢測的流程已經和現代的人臉檢測方法沒有本質區別。給定一張輸入圖像,要完成人臉檢測這個任務,我們通常分成三步來進行:
1.選擇圖像上的某個(矩形)區域作為一個觀察窗口;
2.在選定的窗口中提取一些特征對其包含的圖像區域進行描述;
3.根據特征描述來判斷這個窗口是不是正好框住了一張人臉。
檢測人臉的過程就是不斷地執行上面三步,直到遍歷所有需要觀察的窗口。如果所有的窗口都被判斷為不包含人臉,那么就認為所給的圖像上不存在人臉,否則就根據判斷為包含人臉的窗口來給出人臉所在的位置及其大小。
那么,如何來選擇我們要觀察的窗口呢?所謂眼見為實,要判斷圖像上的某個位置是不是一張人臉,必須要觀察了這個位置之后才知道,因此,選擇的窗口應該覆蓋圖像上的所有位置。顯然,最直接的方式就是讓觀察的窗口在圖像上從左至右、從上往下一步一步地滑動,從圖像的左上角滑動到右下角——這就是所謂的滑動窗口范式,你可以將它想象成是福爾摩斯(檢測器)在拿着放大鏡(觀察窗口)仔細觀察案發現場(輸入圖像)每一個角落(滑動)的過程。

別看這種用窗口在圖像上進行掃描的方式非常簡單粗暴,它的確是一種有效而可靠的窗口選擇方法,以至於直到今天,滑動窗口范式仍然被很多人臉檢測方法所采用,而非滑動窗口式的檢測方法本質上仍然沒有擺脫對圖像進行密集掃描的過程。
對於觀察窗口,還有一個重要的問題就是:窗口應該多大?我們認為一個窗口是一個人臉窗口當且僅當其恰好框住了一張人臉,即窗口的大小和人臉的大小是一致的,窗口基本貼合人臉的外輪廓。

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

通過構建圖像金字塔,同時允許窗口和人臉的貼合程度在小范圍內變動,我們就能夠檢測到不同位置、不同大小的人臉了。另外需要一提的是,對於人臉而言,我們通常只用正方形的觀察窗口,因此就不需要考慮窗口的長寬比問題了。
選好了窗口,我們開始對窗口中的圖像區域進行觀察,目的是收集證據——真相只有一個,我們要依靠證據來挖掘真相!在處理圖像的過程中,這個收集證據的環節我們稱之為特征提取,特征就是我們對圖像內容的描述。由於機器看到的只是一堆數值,能夠處理的也只有數值,因此對於圖像所提取的特征具體表示出來就是一個向量,稱之為特征向量,其每一維是一個數值,這個數值是根據輸入(圖像區域)經由某些計算(觀察)得到的,例如進行求和、相減、比較大小等。總而言之,特征提取過程就是從原始的輸入數據(圖像區域顏色值排列組成的矩陣)變換到對應的特征向量的過程,特征向量就是我們后續用來分析和尋找真相的證據。
特征提取之后,就到了決斷的時刻:判別當前的窗口是否恰好包含一張人臉。我們將所有的窗口划分為兩類,一類是恰好包含人臉的窗口,稱之為人臉窗口,剩下的都歸為第二類,稱之為非人臉窗口,而最終判別的過程就是一個對當前觀察窗口進行分類的過程。因為我們的證據是由數值組成的特征向量,所以我們是通過可計算的數學模型來尋找真相的,用來處理分類問題的數學模型我們通常稱之為分類器,分類器以特征向量作為輸入,通過一系列數學計算,以類別作為輸出——每個類別會對應到一個數值編碼,稱之為這個類別對應的標簽,如將人臉窗口這一類編碼為1,而非人臉窗口這一類編碼為-1;分類器就是一個將特征向量變換到類別標簽的函數。
考慮一個最簡單的分類器:將特征向量每一維上的數值相加,如果得到的和超過某個數值,就輸出人臉窗口的類別標簽1,否則輸出非人臉窗口的類別標簽-1。記特征向量為

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

這里的t就是前面所說的“某個數值”,其決定了分類器在給定特征向量下的輸出結果,我們稱其為分類器的參數。不同形式和類型的分類器會有不同的參數,一個分類器可以有一個或者多個參數,參數或者其取值不同則對應到不同的分類器。選定了一個分類器之后,緊接着的一個問題就是:參數該怎么設置?具體到我們正在考慮的情況,就是:t的值該如何選取?
要做出選擇,就要有一個目標,在分類問題中,目標當然就是盡可能正確地進行分類,即分類的准確率盡可能高。然而,盡管我們對目標非常明確,我們也仍然沒法給出一個最優的參數取值,因為我們並不使用機器所采用的二進制語言系統,我們並不懂什么才是對機器最好的。於是我們只有一種選擇:把我們的目標告訴機器,舉一些例子向其進行解釋,然后讓機器自己去學習這個參數,最后我們給機器設計一場考試,測試其是否滿足了我們的要求。我們從一些圖像上選出一部分人臉和非人臉窗口的樣例,用對應的類別標簽對其進行標注,然后將這些樣例划分成兩個集合,一個集合作為分類器學習所使用的訓練集,另一個集合作為最終考查分類器能力的測試集,同時我們設定一個目標:希望分類的准確率能夠在80%以上。
學習過程開始時,我們先給分類器的參數設定一個初始值,然后讓分類器通過訓練集中帶有“答案”(類別標簽)的樣例,不斷去調整自己參數的取值,以縮小其實際的分類准確率和目標准確率之間的差距。當分類器已經達到了預先設定的目標或者其它停止學習的條件——期末考試的時間是不會因為你沒有學好而推遲的,或者分類器覺得自己已經沒有辦法再調整了,學習過程就停止了,這之后我們可以考查分類器在測試集上的准確率,以此作為我們評判分類器的依據。這一過程中,分類器調整自己參數的方式和分類器的類型、設定的目標等都有關,由於這部分內容超出了本文所討論的范疇,也並不影響讀者對人臉檢測方法的理解,因此不再展開進行講述。
在確定了選擇窗口的策略,設計好了提取特征的方式,並學習了一個針對人臉和非人臉窗口的分類器之后,我們就獲得了構建一個人臉檢測系統所需要的全部關鍵要素——還有一些小的環節相比之下沒有那么重要,這里暫且略去。
由於采用滑動窗口的方式需要在不同大小的圖像上的每一個位置進行人臉和非人臉窗口的判別,而對於一張大小僅為480*320的輸入圖像,窗口總數就已經高達數十萬,面對如此龐大的輸入規模,如果對單個窗口進行特征提取和分類的速度不夠快,就很容易使得整個檢測過程產生巨大的時間開銷,也確實就因為如此,早期所設計的人臉檢測器處理速度都非常慢,一張圖像甚至需要耗費數秒才能處理完成——視頻的播放速度通常為每秒25幀圖像,這給人臉檢測投入現實應用帶來了嚴重的障礙。
人臉檢測技術的突破:VJ人臉檢測器及其發展

人臉檢測技術的突破:VJ人臉檢測器及其發展

人臉檢測技術的突破發生在2001年,兩位傑出的科研工作者Paul Viola和Michael Jones設計了出了一個快速而准確的人臉檢測器:在獲得相同甚至更好准確度的同時,速度提升了幾十上百倍——在當時的硬件條件下達到了每秒處理15張圖像的速度,已經接近實時速度25fps(即25幀每秒)。這不僅是人臉檢測技術發展的一個里程碑,也標志着計算機視覺領域的研究成果開始具備投入實際應用的能力。為了紀念這一工作,人們將這個人臉檢測器用兩位科研工作者的名字命名,稱之為Viola-Jones人臉檢測器,或者簡稱為VJ人臉檢測器。
VJ人臉檢測之所以器能夠獲得成功,極大地提高人臉檢測速度,其中有三個關鍵要素:特征的快速計算方法——積分圖,有效的分類器學習方法——AdaBoost,以及高效的分類策略——級聯結構的設計。VJ人臉檢測器采用Haar特征來描述每個窗口,所謂Haar特征,其實就是在窗口的某個位置取一個矩形的小塊,然后將這個矩形小塊划分為黑色和白色兩部分,並分別對兩部分所覆蓋的像素點(圖像上的每個點稱為一個像素)的灰度值求和,最后用白色部分像素點灰度值的和減去黑色部分像素點灰度值的和,得到一個Haar特征的值。

Haar特征反映了局部區域之間的相對明暗關系,能夠為人臉和非人臉的區分提供有效的信息,例如眼睛區域比周圍的皮膚區域要暗,通過Haar特征就可以將這一特點表示出來。但是由於提取Haar特征時每次都需要計算局部區域內多個像素點灰度值之和,因此在速度上其並不快,為此VJ人臉檢測器引入了積分圖來加速Haar特征的提取。
積分圖是一張和輸入圖像一樣大的圖,但其每個點上不再是存放這個點的灰度值,而是存放從圖像左上角到該點所確定的矩形區域內全部點的灰度值之和。

積分圖所帶來的好處是兩方面的,一方面它使得每次計算局部區域像素點的灰度值之和僅需要做4次加減法,與局部區域的大小無關;另一方面它避免了在相同像素點上重復求和,只在最開始計算一次——相鄰的窗口有很大的重疊部分,對應的Haar特征也會重疊,如果每次都重新計算像素點的灰度值之和,則重疊部分的計算是重復的。積分圖極大地加速了Haar特征的提取,向快速的檢測器邁出了第一步。
除了特征提取,分類過程的速度對於檢測的速度也至關重要。分類的速度取決於分類器的復雜程度,也即從特征向量變換到類別標簽的計算過程的復雜程度。復雜的分類器往往具有更強的分類能力,能夠獲得更好的分類准確度,但是分類時的計算代價比較高,而簡單的分類器雖然計算代價小,但是分類准確度也較低。那么有沒有兼顧計算代價和分類准確度兩方面的辦法呢?當然有,這就是AdaBoost方法。希望計算代價小,所以只用簡單的分類器,但是又希望分類准確度高,於是把多個簡單的分類器組合起來——聚弱為強,將多個弱分類器組合成一個強分類器,這就是AdaBoost方法的核心理念。通過AdaBoost方法來學習分類器,達到了以更小的計算代價換取同樣的分類准確度的目的。
造成人臉檢測速度慢的根本原因還在於輸入規模過大,動輒需要處理幾十上百萬的窗口,如果這樣的輸入規模是不可避免的,那么有沒有可能在處理的過程中盡快降低輸入規模呢?如果能夠通過粗略地觀察快速排除掉大部分窗口,只剩下少部分窗口需要進行仔細的判別,則總體的時間開銷也會極大地降低。從這樣的想法出發,VJ人臉檢測器采用了一種級聯結構來達到逐步降低輸入規模的目的。

具體說來,VJ人臉檢測器將多個分類器級聯在一起,從前往后,分類器的復雜程度和計算代價逐漸增大,對於給定的一個窗口,先由排在最前面也最簡單的分類器對其進行分類,如果這個窗口被分為非人臉窗口,那么就不再送到后面的分類器進行分類,直接排除,否則就送到下一級分類器繼續進行判別,直到其被排除,或者被所有的分類器都分為人臉窗口。這樣設計的好處是顯而易見的,每經過一級分類器,下一級分類器所需要判別的窗口就會減少,使得只需要付出非常少的計算代價就能夠排除大部分非人臉窗口。從另一個角度來看,這實際上也是根據一個窗口分類的難度動態地調整了分類器的復雜程度,這顯然比所有的窗口都用一樣的分類器要更加高效。
VJ人臉檢測器通過積分圖、AdaBoost方法和級聯結構取得的巨大成功對后續的人臉檢測技術研究產生了深遠的影響,大量的科研工作者開始基於VJ人臉檢測器進行改進,這些改進也分別覆蓋了VJ人臉檢測器的三個關鍵要素。

特征的改進和變遷

雖然Haar特征已經能夠刻畫人臉的一些特點,但是相比於人臉復雜的變化模式,VJ人臉檢測器所采用的5種Haar特征還是過於簡單。光考慮姿態上的變化,人臉可能是斜着的(平面內旋轉),也可能是仰着的或者側着的(平面外旋轉),同一個Haar特征在不同姿態的人臉上差異可能非常大,而同時又可能和非人臉區域上的特征更相近,這就很容易在分類的時候引起誤判。於是人們開始對Haar特征進行擴展,使得其能夠刻畫更加豐富的變化模式:
1. 環形的黑白區域划分模式,而不僅僅是上下或者左右型;
2. 旋轉的Haar的特征,即將原來提取Haar特征的局部小塊順時針或逆時針旋轉45度;
3. 分離的Haar特征,即允許一個Haar特征由多個互相分離的黑白區域來計算,而不要求黑白區域必須處於一個矩形小塊中;
4. 對角型Haar特征;
5. 組合Haar特征,即對多個不同的Haar特征進行組合和二值編碼;
6. 局部組合二值特征,即在局部對特定的Haar特征按照一定的結構進行組合和二值編碼;
7. 帶權多通道Haar特征,即一個Haar特征不再只包含黑白兩種塊,而允許有多種不同形狀和不同顏色的塊,其中不同的顏色對應着不同的權值,表示像素點上求和之后所占的比重——原來只有1和-1兩種,多通道指的是在像素點上求和不僅僅是在灰度這一個通道上計算,而是同時在其它通道上計算(如RGB三個顏色通道;事實上,基於原圖計算而來和原圖同樣大小的任何一張圖都可以是圖像的一個通道)。
這些擴展極大地增強了Haar特征的表達能力,使得人臉窗口和非人臉窗口之間具有更好的區分性,從而提高了分類的准確度

除了直接對Haar特征進行改進,人們也同時在設計和嘗試其它特征。Haar特征本質上是局部區域像素值的一種線性組合,其相對應的更一般的形式則是不指定線性組合的系數,允許系數為任意實數,這被稱之為線性特征——這里的組合系數可以基於訓練樣例來進行學習,類似於學習分類器參數的過程。稀疏粒度特征也是一種基於線性組合來構造的特征,與線性特征所不同的是,稀疏粒度特征是將不同尺度(將100100的圖像放大到200200,它和原本大小就為200*200的圖像是處於不同的尺度上)、位置和大小的局部區域進行組合,而線性特征只是組合同一個局部區域內的像素值。
LBP特征是一種二值編碼特征,其直接基於像素灰度值進行計算,特點是在編碼時考慮的是兩個值的相對大小,並且按照一定的空間結構來進行編碼,局部組合二值特征就是在LBP特征的啟發下設計的;從計算上來看,提取LBP特征比提取Haar特征要快,但是Haar特征對於人臉和非人臉窗口的區分能力更勝一籌。簡化的SURF特征是一種和Haar特征相類似的特征,但是其計算的是局部區域中像素點的梯度和,並在求和的過程中考慮了梯度方向(所謂梯度,最簡單的一種情形就是指同一行上兩個不同位置像素值的差比上它們水平坐標的差);SURF特征比Haar特征更為復雜,因此計算代價更高,但是由於其表達能力更強,因此能夠以更少數目的特征來達到相同的區分度,在一定程度上彌補了其在速度上的不足。HOG特征也是一種基於梯度的特征,其對一個局部區域內不同方向的梯度進行統計,計算梯度直方圖來表示這個區域。積分通道特征和多通道的Haar特征有些類似,但是其使用的通道更加多樣化,將通道的概念推廣為由原圖像變換而來並且空間結構和原圖像對應的任何圖像。聚合通道特征則在積分通道特征的基礎上進一步加入了對每個通道進行下采樣的操作,實現局部區域信息的聚合。
在過去十幾年的探索過程中,涌現出的特征不勝枚舉,這里只選取了部分比較有代表性和反映了人們探索思路的特征進行舉例。這里所有列舉的特征都有一個共同的特點:都由科研工作者根據自己的經驗手工設計,這些特征的設計反映了人們對問題的理解和思考。雖然隨着不斷的改進,設計出的特征已經日臻完善,但直到現在,人們在特征上的探索還遠沒有結束。

級聯結構的演化

分類器的組織結構也是人們關心的一個重要問題,尤其是在面臨多姿態人臉檢測任務的時候。人臉的姿態是指人臉在三維空間中繞三個坐標軸旋轉的角度,而多姿態人臉檢測就是要將帶旋轉的人臉給檢測出來,不管是斜着的(繞x軸旋轉)、仰着的(繞y軸旋轉)還是側着的(繞z軸旋轉)。不同姿態的人臉在表觀特征上存在很大的差異,這給檢測器帶來了非常大的挑戰,為了解決這一問題,通常采用分治的策略,即分別針對不同姿態的人臉單獨訓練分類器,然后組合起來構建成多姿態人臉檢測器。
最簡單的多姿態人臉檢測器就是將針對不同姿態人臉的分類器采用並列式的結構進行組織,其中並列的每一個分類器仍然采用原來的級聯結構(我們稱這種分類器為級聯分類器);在檢測人臉的過程中,一個窗口如果被其中一個級聯分類器分為人臉窗口,則認為其確實是一個人臉窗口,而只有當每一個級聯分類器都將其判別為非人臉窗口時,才將其排除掉。這種並列式的組織架構存在兩方面的缺陷:一是造成了檢測時間的成倍增長,因為絕大部分窗口是非人臉窗口,這些窗口需要經過每一個級聯分類器的排除;二是容易造成整體分類准確度的降低,因為整個檢測器分錯的窗口包含的是所有級聯分類器分錯的窗口。
有人設計了一種金字塔式的級聯結構,金字塔的每一層對應於對人臉姿態(旋轉角度)的一個划分,從頂層到底層划分越來越細,級聯的每個分類器只負責區分非人臉和某個角度范圍內的人臉。對於一個待分類的窗口,從最頂層的分類器開始對其進行分類,如果其被分為人臉窗口,則送入到下一層的第一個分類器繼續進行分類,如果其被分為非人臉窗口,則送入到同一層的下一個分類器繼續進行分類,當在某一層上所有的分類器都將其分為非人臉窗口時,就確認其為非人臉窗口,將其排除。金字塔式的級聯結構也可以看成是一種特殊的並列式結構,只不過每個級聯分類器相互之間有共享的部分,這樣最直接的好處就在於減少了計算量,共享的部分只需要計算一次,同時在底層又保留了分治策略所帶來的好處——子問題比原問題更加容易,因此更容易學習到分類准確度更高的分類器。

還有一種比較典型的結構是樹形的級聯結構,從形狀上來看其和金字塔式的級聯結構是一樣的,也是從上往下分類器的數目逐層增多,區別就在於樹形的級聯結構中沒有同一層分類器之間的橫向連接,只有相鄰層分類器之間的縱向連接,即一個窗口在同一層上不會由多個分類器進行分類,而會直接被送往下一層或者被排除。樹形級聯結構通過引入分支跳轉機制,進一步減少了對一個窗口進行分類所需要的計算量,不過同時也帶來了新的問題,分支跳轉通常根據姿態估計(估計旋轉角度的范圍)的結果來進行,而如果姿態估計出現錯誤,就會出現某個姿態的人臉窗口被送給另一個姿態人臉對應的分類器進行分類的情況,容易導致錯誤的分類。為了緩解這一問題,出現了允許多個分支同時跳轉的設計,從而降低了由於跳轉錯誤而引起分類錯誤的風險。
分治策略是處理多姿態人臉檢測任務最基本的策略,但要同時兼顧速度和分類准確度並不是一件容易的事情,分類能力的增強不可避免地會帶來計算代價的增大,如何用更小的計算代價來換取更高的分類准確度,這仍然是一個需要去思考和探索的問題。

人臉檢測器的比拼
在不斷對人臉檢測器進行改進的過程中,有一個問題是不容忽視的:如何科學地比較兩個人臉檢測器的優劣?簡單地說,出一套考題讓所有的檢測器進行一場考試,誰得分高誰就更好。對於人臉檢測器而言,所謂考題(測試集)就是一個圖像集合,通常其中每張圖像上都包含至少一張人臉,並且這些人臉的位置和大小都已經標注好。關於得分,需要考慮檢測器兩方面的表現,一是檢測率,也即對人臉的召回率,檢測出來的人臉占總人臉的比例——測試集中一共標注了100張人臉,檢測器檢測出其中70張人臉,則檢測率為70%;二是誤檢(也稱為虛警)數目,即檢測器檢測出來的人臉中出現錯誤(實際上不是人臉)的數目——檢測器一共檢測出80張人臉,然而其中有10個錯誤,只有70個是真正的人臉,那么誤檢數目就是10。在這兩個指標上,我們所希望的總是檢測率盡可能高,而誤檢數目盡可能少,但這兩個目標之間一般是存在沖突的;在極端的情況下,如果一張臉也沒有檢測出來,那么誤檢數目為0,但是檢測率也為0,而如果把所有的窗口都判別為人臉窗口,那么檢測率為100%,而誤檢數目也達到了最大。在比較兩個檢測器的時候,我們通常固定一個指標,然后對比另一個指標,要么看相同誤檢數目時誰的檢測率高,要么看相同檢測率時誰的誤檢少。
對於每一個檢測出的人臉,檢測器都會給出這個檢測結果的得分(或者說信度),那么如果人為地引入一個閾值來對檢測結果進行篩選(只保留得分大於閾值得檢測結果),那么隨着這個閾值的變化,最終得檢測結果也會不同,因而其對應得檢測率和誤檢數目通常也會不同。通過變換閾值,我們就能夠得到多組檢測率和誤檢數目的值,由此我們可以在平面直角坐標系中畫出一條曲線來:以x坐標表示誤檢數目,以y坐標表示檢測率,這樣畫出來的曲線稱之為ROC曲線(不同地方中文譯法不一,如接收機曲線、接收者操作特征曲線等,這里直接采用英文簡寫)。ROC曲線提供了一種非常直觀的比較不同人臉檢測器的方式,得到了廣泛的使用。
評測人臉檢測器時還有一個重要的問題:怎么根據對人臉的標注和檢測結果來判斷某張人臉是否被檢測到了?一般來說,檢測器給出的檢測框(即人臉窗口)不會和標注的人臉邊框完全一致,而且對人臉的標注也不一定是矩形,例如還可能是橢圓形;因此當給定了一個檢測框和一個標注框時,我們還需要一個指標來界定檢測框是否和標注框相匹配,這個指標就是交並比:兩者交集(重疊部分)所覆蓋的面積占兩者並集所覆蓋面積的比例,一般情況下,當檢測框和標注框的交並比大於0.5時,我們認為這個檢測框是一個正確檢測的人臉。
在早期的人臉檢測工作中,一般采用MIT-CMU人臉檢測數據集作為人臉檢測器的測試集,來比較不同的檢測器。這個測試集只包含幾百張帶有人臉的圖像,並且人臉主要是清晰且不帶遮擋的正面人臉,因而是一個相對簡單的測試集,現在幾乎已經不再使用。在2010年,美國麻省大學的一個實驗室推出了一個新的人臉檢測評測數據集:FDDB,這個集合共包含2845張帶有人臉的互聯網新聞圖像,一共標注了5171張人臉,其中的人臉在姿態、表情、光照、清晰度、分辨率、遮擋程度等各個方面都存在非常大的多樣性,貼近真實的應用場景,因而是一個非常具有挑戰性的測試集。FDDB的推出激發人們在人臉檢測任務上的研究熱情,極大地促進了人臉檢測技術的發展,在此后的幾年間,新的人臉檢測方法不斷涌現,檢測器在FDDB上的表現穩步提高。從100個誤檢時的檢測率來看,從最初VJ人臉檢測器的30%,發展到現在已經超過了90%——這意味着檢測器每檢測出50張人臉才會產生一個誤檢,這其中的進步是非常驚人的,而檢測器之間的比拼還在繼續。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM