0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

人臉識別的原理揭秘

汽車玩家 ? 來源:百聯(lián)科創(chuàng)中心科研中心 ? 作者:百聯(lián)科創(chuàng)中心科研 ? 2020-01-01 10:17 ? 次閱讀

我們知道人臉識別在這幾年應用的相當廣泛,目前已有人臉考勤、人臉社交、人臉支付等一系列使用場景。“人臉識別”這項“黑科技”對生活中的各個領域都產(chǎn)生了非常重要的影響,特別這幾年機器學習的流行,使得人臉識別在應用和準確率更是達到了一個較高的水準。

下面將帶著大家揭秘下這項黑科技的原理。

人臉識別流程:

人臉識別是由以下步驟組成

利用HOG算法找出所有人臉。

對人臉進行l(wèi)andmark,對齊人臉。

利用神經(jīng)網(wǎng)絡找出人臉的特點,編碼人臉。

計算兩張人臉的歐氏距離,確定是否是同一人。

簡易流程圖如下:

第一步:找出所有面孔

很顯然在我們在人臉識別的流程中得首先找到圖片中的人臉。我們在使用手機或相機拍照時都會有人像模式,它能輕松的檢測出人臉的位置,幫助相機快速對焦。

對于找出圖片中的物體,我們統(tǒng)稱為 OD (Object Detection 物體檢測),物體檢測業(yè)界有很多優(yōu)秀的算法和框架可以使用,對于人臉檢測我們將使用一種叫做 HOG(Histogram of Oriented Gradients 方向梯度直方圖)的算法,它能夠檢測物體的輪廓。

首先我們把圖片灰度化,因為顏色信息對于人臉檢測而言沒什么用。

我們分析每個像素以及其周圍的像素,根據(jù)明暗度畫一個箭頭,箭頭的指向代表了像素逐漸變暗的方向,如果我們重復操作每一個像素,最終像素會被箭頭取代。這些箭頭被稱為梯度(gradients),它們能顯示出圖像從明亮到黑暗流動的過程。

分析每個像素對我們來說有點不劃算,因為它太過細節(jié)化了,我們可能會迷失在像素的海洋里,我們應該從更高的角度觀察明暗的流動。

為此我們將圖像分割成16x16像素的小方塊。在每個小方塊中,計算出每個主方向有多少個梯度(有多少指向上,指向右上,指向右等)。然后用指向性最強的那個方向箭頭來代替原來那個小方塊。

最終結(jié)果,我們把原始圖像轉(zhuǎn)換成一個非常簡單的HOG表達形式,它可以很輕松的捕獲面部的基本結(jié)構(gòu)。

為了在HOG圖像中找到臉部,我們需要做的是,與已知的一些HOG圖案中,匹配最相似的部分。這些HOG圖案都是重其他面部訓練數(shù)據(jù)中提取出來的。

第二步:臉部的不同姿勢

我們已經(jīng)找出了圖片中的人臉,那么如何鑒別面朝不同方向的人臉呢?

對于電腦來說,朝向不同的人臉是不同的識別內(nèi)容,為此我們需要適當?shù)恼{(diào)整扭曲圖片中的人臉,使得眼睛和嘴總是與被檢測者重疊。

為了達到目的我們將使用一種面部特征點估計(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ù)我們將圖片進行旋轉(zhuǎn),縮放和錯切,使得眼睛和嘴巴盡可能的靠近中心

現(xiàn)在人臉基本上對齊了,這使得下一步更加準確

第三步:給臉部編碼

我們還有個核心的問題沒有解決, 那就是如何區(qū)分不同的人臉。

最簡單的方法就是把我們第二步中發(fā)現(xiàn)的未知人臉與我們已知的人臉作對比。當我們發(fā)現(xiàn)未知的面孔與一個以前標注過的面孔看起來相似的時候,就可以認定他們是同一個人。

我們?nèi)祟惸芡ㄟ^眼睛大小,頭發(fā)顏色等等信息輕松的分辨不同的兩張人臉,可是電腦怎么分辨呢?沒錯,我們得量化它們,測量出他們的不同。那要怎么做,才能得出測量人臉的最可靠的方法?以及如何測量人臉的數(shù)值呢?例如耳朵大小、鼻子長度、眼睛的顏色。

實際上,人類對于人臉這些信息很容易分辨,可是對于計算機,這些信息沒什么價值。實際上最準確的方法是讓計算機自己找出他要收集的測量值。深度學習,比人類更懂得哪些面部測量值比較重要。

所以,解決方案是訓練一個深度卷積神經(jīng)網(wǎng)絡,訓練讓它為臉部生成128個測量值。

每次訓練要觀察三個不同的臉部圖像:

1. 加載一張已知的人的面部訓練圖像

2. 加載同一個人的另一張照片

3. 加載另外一個人的照片

然后,算法查看它自己為這三個圖片生成的測量值。再然后,稍微調(diào)整神經(jīng)網(wǎng)絡,以確保第一張和第二張生成的測量值接近,而第二張和第三張生成的測量值略有不同。

我們要不斷的調(diào)整樣本,重復以上步驟百萬次,這確實是個巨大的挑戰(zhàn),但是一旦訓練完成,它能攻輕松的找出人臉。

慶幸的是 OpenFace 上面的大神已經(jīng)做完了這些,并且他們發(fā)布了幾個訓練過可以直接使用的網(wǎng)絡,我們可以不用部署復雜的機器學習,開箱即用,感謝開源精神。

人臉識別的原理揭秘

這128個測量值是什么鬼?

其實我們不用關心,這對我們也不重要。我們關心的是,當看到同一個人的兩張不同照片時,我們的網(wǎng)絡需要能得到幾乎相同的數(shù)值。

第四步:從編碼中找出人的名字

最后一步實際上是最簡單的一步,我們需要做的是找到數(shù)據(jù)庫中與我們的測試圖像的測量值最接近的那個人。

如何做呢,我們利用一些現(xiàn)成的數(shù)學公式,計算兩個128D數(shù)值的歐氏距離

人臉識別的原理揭秘

哈,這樣我們得到一個歐式距離值,系統(tǒng)將給它一個認為是同一個人歐氏距離的閥值,即超過這個閥值我們就認定他們是 同 (失) 一 (散) 個 (兄) 人 (弟)。

人臉識別就這樣達成啦,來來我們再回顧下流程:

使用HOG找出圖片中所有人臉的位置。

計算出人臉的68個特征點并適當?shù)恼{(diào)整人臉位置,對齊人臉。

把上一步得到的面部圖像放入神經(jīng)網(wǎng)絡,得到128個特征測量值,并保存它們。

與我們以前保存過的測量值一并計算歐氏距離,得到歐氏距離值,比較數(shù)值大小,即可得到是否同一個人。

人臉識別應用場景

人臉識別分兩大步驟,人臉檢測和人臉識別,它們應用場景也各不相同。

人臉識別的原理揭秘

人臉檢測實質(zhì)上是實現(xiàn)找出人臉,得到人臉的位置的功能,我們可以在美顏,換膚,摳圖,換臉的一些場景中使用到它。我們可以通過系統(tǒng)API調(diào)用相機完成對預覽針的實時渲染,那些看上去的黑科技我們也可以玩啦。

人臉識別則可以應用在會員、支付等場景,帶給用戶更酷炫的使用體驗,大家快來試試吧。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人臉識別
    +關注

    關注

    76

    文章

    4061

    瀏覽量

    83487
  • 機器學習
    +關注

    關注

    66

    文章

    8482

    瀏覽量

    133938
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    人臉識別的研究范圍和優(yōu)勢

    的主要目的是在輸入的整幅圖像上尋找人臉區(qū)域。2.人臉表征采取某種方式檢測人臉和數(shù)據(jù)庫中的人臉。3.人臉
    發(fā)表于 06-29 11:52

    人臉識別的三大模式

    機場安檢人員通過換班來保證識別的準確率。其次1:N則是在海量的人像數(shù)據(jù)庫中找出當前用戶的人臉數(shù)據(jù)并進行匹配。1:N具有動態(tài)比對與非配合的特 點,動態(tài)對比是指通過對動態(tài)視頻流的截取來獲得人臉數(shù)據(jù)并進
    發(fā)表于 08-06 14:15

    S32V視覺處理平臺怎么實現(xiàn)人臉識別的應用?

    汽車行業(yè)ADAS功能需求日益增長,防疲勞駕駛是一個熱門方向,對于駕駛員狀態(tài)的檢測,人臉識別是基礎,只有快速準確地識別人臉,才能對人臉狀態(tài)進
    發(fā)表于 11-26 06:36

    人臉識別的全部源代碼

    Google Glass-- 谷歌眼鏡核心源碼人臉識別的全部源代碼(在Visual C++6.0下可以運行識別)l智能分析接口(支持車牌識別,人
    發(fā)表于 08-06 07:21

    靜態(tài)人臉識別和動態(tài)人臉識別的區(qū)別對比分析

    人臉識別,是基于人的臉部特征信息進行身份識別的一種生物識別技術。作為一種新型而且發(fā)展較快的技術,很多人對這門技術并沒有清晰的理解和認識。比如說,人臉
    發(fā)表于 02-26 11:48 ?1w次閱讀

    人臉識別的好處與壞處

    本視頻首先介紹了人臉識別的好處,分別有自然性、非強制性、非接觸性、并發(fā)性等,其次介紹了人臉識別的壞處。
    的頭像 發(fā)表于 03-04 14:35 ?3.1w次閱讀

    人臉識別的原理

    本文主要詳細介紹了人臉識別的原理,分別從人臉檢測、人臉跟蹤、人臉比對等。
    的頭像 發(fā)表于 03-04 14:55 ?1.2w次閱讀

    人臉識別的原理說明

    人臉識別是基于人的臉部信息,進行身份識別的一種生物識別技術,人臉識別時首先判斷是否存在
    發(fā)表于 06-17 14:36 ?3866次閱讀

    何為人臉識別_人臉識別的應用場景

    人臉識別技術是如今十分熱門的一項技術,掌握人臉識別技術的優(yōu)勢不言而喻。下面,我們將首先介紹人臉識別的
    發(fā)表于 10-30 16:02 ?3222次閱讀

    人臉識別的優(yōu)點和識別方法

    人臉識別廠家淺談人臉識別的智能優(yōu)點
    發(fā)表于 02-06 11:58 ?837次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識別的</b>優(yōu)點和<b class='flag-5'>識別</b>方法

    人臉識別和指紋識別哪個安全?人臉識別和指紋識別的利弊及風險

      人臉識別是基于人的臉部特征信息進行身份識別的一種生物識別技術。用攝像機或攝像頭采集含有人臉的圖像或視頻流,并自動在圖像中檢測和跟蹤
    發(fā)表于 08-03 16:55 ?5552次閱讀

    人臉識別的算法有哪些

    人臉識別的算法有哪些 人臉識別算法現(xiàn)在已經(jīng)廣泛應用于各個領域,如安防、商業(yè)、醫(yī)療等。人臉識別算法
    的頭像 發(fā)表于 08-09 18:34 ?7384次閱讀

    生物識別人臉識別的區(qū)別

    人臉圖片或視頻進行分析和識別,以確定個體身份的一種方法。本文將探討生物識別人臉識別的概念、應用領域和區(qū)別。
    發(fā)表于 08-28 17:29 ?2118次閱讀

    人臉檢測與識別的方法有哪些

    人臉檢測與識別是計算機視覺領域中的一個重要研究方向,具有廣泛的應用前景,如安全監(jiān)控、身份認證、智能視頻分析等。本文將詳細介紹人臉檢測與識別的方法。 引言
    的頭像 發(fā)表于 07-03 14:45 ?1107次閱讀

    如何設計人臉識別的神經(jīng)網(wǎng)絡

    人臉識別技術是一種基于人臉特征信息進行身份識別的技術,廣泛應用于安全監(jiān)控、身份認證、智能門禁等領域。神經(jīng)網(wǎng)絡是實現(xiàn)人臉
    的頭像 發(fā)表于 07-04 09:20 ?970次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品