亚洲免费一级高潮_欧美极品白嫩视频在线_中国AV片在线播放_欧美亚洲日韩欧洲在线看

您現(xiàn)在所在的位置:首頁 >關(guān)于奇酷 > 行業(yè)動態(tài) > 人臉識別的原理到底是什么?

人臉識別的原理到底是什么?

來源:奇酷教育 發(fā)表于:

人臉識別流程。

  Iphone X的發(fā)布,革命性的取消了TouchID(指紋識別),而添加了更酷的 FaceID(人臉識別) 模塊,F(xiàn)aceID 不簡單的運(yùn)用在解鎖上,還可以在支付,表情等場景中應(yīng)用,給開發(fā)者帶來更酷更豐富的應(yīng)用,Iphone X 在多個硬件傳感器的加持下,可以采集3萬個點來感知用戶的面部特征。
 
  我們知道人臉識別在這幾年應(yīng)用相當(dāng)廣泛,人臉考勤,人臉社交,人臉支付,哪里都有這黑科技的影響,特別這幾年機(jī)器學(xué)習(xí)流行,使得人臉識別在應(yīng)用和準(zhǔn)確率更是達(dá)到了一個較高的水準(zhǔn)。
 
  1、人臉識別流程
 
  人臉識別是由一系列的幾個相關(guān)問題組成的:
 
  首先找到一張圖片中的所有人臉。
 
  對于每一張臉來說,無論光線明暗或面朝別處,它依舊能夠識別出是同一個人的臉。
 
  能夠在每一張臉上找出可用于他人區(qū)分的獨(dú)特之處,比如眼睛多大,臉有多長等等。
 
  最后將這張臉的特點與已知所有人臉進(jìn)行比較,以確定這個人是誰。
 
  第一步:找出所有的面孔
 
  很顯然在我們在人臉識別的流程中得首先找到圖片中的人臉。我們在使用手機(jī)或相機(jī)拍照時都會有人像模式,它能輕松的檢測出人臉的位置,幫助相機(jī)快速對焦。
 
  人臉識別的原理到底是什么?看完這篇文章你就知道!
 
  我們得感謝 保羅·比奧拉(Paul Viola)和邁克爾·瓊斯(Michael Jones)在2000年發(fā)明了一種能夠快速在廉價相機(jī)上運(yùn)行的人臉檢測方法,人臉檢測在相機(jī)上的應(yīng)用才成為主流。然而現(xiàn)在我們有更可靠的解決方案HOG(Histogram of Oriented Gradients)方向梯度直方圖,一種能夠檢測物體輪廓的算法。
 
  首先我們把圖片灰度化,因為顏色信息對于人臉檢測而言沒什么用。
  人臉識別的原理到底是什么?看完這篇文章你就知道!
 
  我們分析每個像素以及其周圍的像素,根據(jù)明暗度畫一個箭頭,箭頭的指向代表了像素逐漸變暗的方向,如果我們重復(fù)操作每一個像素,最終像素會被箭頭取代。這些箭頭被稱為梯度(gradients),它們能顯示出圖像從明亮到黑暗流動的過程。
  人臉識別的原理到底是什么?看完這篇文章你就知道!
 
  分析每個像素對我們來說有點不劃算,因為它太過細(xì)節(jié)化了,我們可能會迷失在像素的海洋里,我們應(yīng)該從更高的角度觀察明暗的流動。
 
  為此我們將圖像分割成16x16像素的小方塊。在每個小方塊中,計算出每個主方向有多少個剃度(有多少指向上,指向右上,指向右等)。然后用指向性最強(qiáng)的那個方向箭頭來代替原來那個小方塊。
  人臉識別的原理到底是什么?看完這篇文章你就知道!
 
  最終結(jié)果,我們把原始圖像轉(zhuǎn)換成一個非常簡單的HOG表達(dá)形式,它可以很輕松的捕獲面部的基本結(jié)構(gòu)。
 
  為了在HOG圖像中找到臉部,我們需要做的是,與已知的一些HOG圖案中,看起來最相似的部分。這些HOG圖案都是重其他面部訓(xùn)練數(shù)據(jù)中提取出來的。
 
  第二步:臉部的不同姿勢
 
  我們已經(jīng)找出了圖片中的人臉,那么如何鑒別面朝不同方向的人臉呢?
 
  對于電腦來說朝向不同的人臉是不同的東西,為此我們得適當(dāng)?shù)恼{(diào)整扭曲圖片中的人臉,使得眼睛和嘴總是與被檢測者重疊。
 
  為了達(dá)到目的我們將使用一種面部特征點估計(face landmark estimation)的算法。其實還有很多算法都可以做到,但我們這次使用的是由瓦希德·卡奇米(Vahid Kazemi)和約瑟菲娜·沙利文(Josephine Sullivan)在 2014 年發(fā)明的方法。
 
  這一算法的基本思路是找到68個人臉上普遍存在的點(稱為特征點, landmark)。
  人臉識別的原理到底是什么?看完這篇文章你就知道!
 
  下巴輪廓17個點 [0-16]
 
  左眉毛5個點 [17-21]
 
  右眉毛5個點 [22-26]
 
  鼻梁4個點 [27-30]
 
  鼻尖5個點 [31-35]
 
  左眼6個點 [36-41]
 
  右眼6個點 [42-47]
 
  外嘴唇12個點 [48-59]
 
  內(nèi)嘴唇8個點 [60-67]
 
  有了這68個點,我們就可以輕松的知道眼睛和嘴巴在哪兒了,后續(xù)我們將圖片進(jìn)行旋轉(zhuǎn),縮放和錯切,使得眼睛和嘴巴盡可能的靠近中心。
 
  現(xiàn)在人臉基本上對齊了,這使得下一步更加準(zhǔn)確。
 
  第三步:給臉部編碼
 
  我們還有個核心的問題沒有解決, 那就是如何區(qū)分不同的人臉。
 
  最簡單的方法就是把我們第二步中發(fā)現(xiàn)的未知人臉與我們已知的人臉作對比。當(dāng)我們發(fā)現(xiàn)未知的面孔與一個以前標(biāo)注過的面孔看起來相似的時候,就可以認(rèn)定他們是同一個人。
 
  我們?nèi)祟惸芡ㄟ^眼睛大小,頭發(fā)顏色等等信息輕松的分辨不同的兩張人臉,可是電腦怎么分辨呢?沒錯,我們得量化它們,測量出他們的不同,那要怎么做呢?
 
  實際上,對于人臉這些信息很容易分辨,可是對于計算機(jī),這些值沒什么價值。實際上最準(zhǔn)確的方法是讓計算機(jī)自己找出他要收集的測量值。深度學(xué)習(xí)比人類更懂得哪些面部測量值比較重要。
 
  所以,解決方案是訓(xùn)練一個深度卷積神經(jīng)網(wǎng)絡(luò),訓(xùn)練讓它為臉部生成128個測量值。
 
  每次訓(xùn)練要觀察三個不同的臉部圖像:
 
  加載一張已知的人的面部訓(xùn)練圖像
 
  加載同一個人的另一張照片
 
  加載另外一個人的照片
 
  然后,算法查看它自己為這三個圖片生成的測量值。再然后,稍微調(diào)整神經(jīng)網(wǎng)絡(luò),以確保第一張和第二張生成的測量值接近,而第二張和第三張生成的測量值略有不同。
 
  我們要不斷的調(diào)整樣本,重復(fù)以上步驟百萬次,這確實是個巨大的挑戰(zhàn),但是一旦訓(xùn)練完成,它能攻輕松的找出人臉。
 
  慶幸的是 OpenFace 上面的大神已經(jīng)做完了這些,并且他們發(fā)布了幾個訓(xùn)練過可以直接使用的網(wǎng)絡(luò),我們可以不用部署復(fù)雜的機(jī)器學(xué)習(xí),開箱即用,感謝開源精神。
  人臉識別的原理到底是什么?看完這篇文章你就知道!
 
  這128個測量值是什么鬼?
 
  其實我們不用關(guān)心,這對我們也不重要。我們關(guān)心的是,當(dāng)看到同一個人的兩張不同照片時,我們的網(wǎng)絡(luò)需要能得到幾乎相同的數(shù)值。
 
  第四步:從編碼中找出人的名字
 
  最后一步實際上是最簡單的一步,我們需要做的是找到數(shù)據(jù)庫中與我們的測試圖像的測量值最接近的那個人。
 
  如何做呢,我們利用一些現(xiàn)成的數(shù)學(xué)公式,計算兩個128D數(shù)值的歐氏距離。
 
  人臉識別的原理到底是什么?看完這篇文章你就知道!
 
  這樣我們得到一個歐式距離值,系統(tǒng)將給它一個認(rèn)為是同一個人歐氏距離的閥值,即超過這個閥值我們就認(rèn)定他們是 同 (失) 一 (散) 個 (兄) 人 (弟)。
  人臉識別就這樣達(dá)成啦,來來我們再回顧下流程:
 
  使用HOG找出圖片中所有人臉的位置。
 
  計算出人臉的68個特征點并適當(dāng)?shù)恼{(diào)整人臉位置,對齊人臉。
 
  把上一步得到的面部圖像放入神經(jīng)網(wǎng)絡(luò),得到128個特征測量值,并保存它們。
 
  與我們以前保存過的測量值一并計算歐氏距離,得到歐氏距離值,比較數(shù)值大小,即可得到是否同一個人。
 
  2、人臉識別應(yīng)用場景
 
  人臉識別分兩大步驟,人臉檢測和人臉識別,它們應(yīng)用場景也各不相同。
 
  人臉識別的原理到底是什么?看完這篇文章你就知道!
 
  人臉檢測目的是找出人臉,得到人臉的位置,我們可以在美顏,換膚,摳圖,換臉 的一些場景中使用到它。我們可以通過系統(tǒng)API調(diào)用相機(jī)完成對預(yù)覽針的實時渲染,那些看上去的黑科技我們也可以玩啦。