• <table id="4yyaw"><kbd id="4yyaw"></kbd></table>
  • <td id="4yyaw"></td>
  • 發布時間:2020-10-26 13:53 原文鏈接: 人臉檢測發展:從VJ到深度學習(一)

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

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

    人臉檢測發展:從VJ到深度學習

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

    人臉檢測發展:從VJ到深度學習

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

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

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

      具體來說,人臉檢測的任務就是判斷給定的圖像上是否存在人臉,如果人臉存在,就給出全部人臉所處的位置及其大小。由于人臉檢測在實際應用中的重要意義,早在上世紀70年代就已經有人開始研究,然而受當時落后的技術條件和有限的需求所影響,直到上世紀90年代,人臉檢測技術才開始加快向前發展的腳步,在新世紀到來前的最后十年間,涌現出了大量關于人臉檢測的研究工作,這時期設計的很多人臉檢測器已經有了現代人臉檢測技術的影子,例如可變形模板的設計(將人臉按照五官和輪廓劃分成多個相互連接的局部塊)、神經網絡的引入(作為判斷輸入是否為人臉的分類模型)等。這些早期的工作主要關注于檢測正面的人臉,基于簡單的底層特征如物體邊緣、圖像灰度值等來對圖像進行分析,結合關于人臉的先驗知識來設計模型和算法(如五官、膚色),并開始引入一些當時已有的的模式識別方法。

      雖然早期關于人臉檢測的研究工作離實際應用的要求還有很遠,但其中進行檢測的流程已經和現代的人臉檢測方法沒有本質區別。給定一張輸入圖像,要完成人臉檢測這個任務,我們通常分成三步來進行:

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

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

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

      檢測人臉的過程就是不斷地執行上面三步,直到遍歷所有需要觀察的窗口。如果所有的窗口都被判斷為不包含人臉,那么就認為所給的圖像上不存在人臉,否則就根據判斷為包含人臉的窗口來給出人臉所在的位置及其大小。

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

    人臉檢測發展:從VJ到深度學習

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

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

     人臉檢測發展:從VJ到深度學習

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

    人臉檢測發展:從VJ到深度學習

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


  • <table id="4yyaw"><kbd id="4yyaw"></kbd></table>
  • <td id="4yyaw"></td>
  • 调性视频