訂閱
糾錯
加入自媒體

人臉識別是如何實現(xiàn)的?揭sir幫你解答!

近日

維識科技智能工程教育中心

開展了一場別開生面的

人臉識別技術(shù)知識公開課

本次公開課主講人為

維識教育科技金牌講師

揭李迪

揭sir本科畢業(yè)于谷歌首席科學家Geoffrey Hinton(圖靈獎獲得者,被稱為“神經(jīng)網(wǎng)絡(luò)之父”、“深度學習鼻祖”)的母校愛丁堡大學(Edinburgh University)。研究生師從香港浸會大學(HKBU)國際電子電氣工程協(xié)會(IEEE)院士劉繼明(jiming LIU)。曾經(jīng)擔任融鏈科技項目總監(jiān)、金力軟件項目經(jīng)理。參與了公安部旗下與商湯競標的閉路攝像頭人臉檢測項目。精通物體檢測語義分割NLP自然語言處理與AI項目全棧落地WANN無權(quán)重機器人等國內(nèi)外領(lǐng)先技術(shù)。

揭sir簡介

人臉識別

其實是對人臉特征進行分析計算

并進行身份識別的一種生物識別技術(shù)

即用攝像機或攝像頭采集

含有人臉的照片或視頻

對其中的人臉進行檢測和跟蹤

進而達到識別、辨認人臉的目的

人臉識別技術(shù)發(fā)展到今天

主要有兩種用途

人臉驗證

人臉驗證做的是1:1的比對。也就是說我們先告訴人臉識別系統(tǒng),我是張三,然后用來驗證站在機器面前的“我”到底是不是張三。

人臉識別

人臉識別做的是1:N的比對。也就是說系統(tǒng)采集了我的一張照片之后,從數(shù)萬人或者數(shù)百萬人的庫里自動找出“我是誰”。

而“刷臉”

只是人臉識別中

比較具體可感的一部分

事實上人臉識別

能夠給大家?guī)淼?/p>

遠遠不僅是“刷臉”付款這么簡單

目前

人臉識別在

金融、安防、交通

電子商務(wù)、娛樂、醫(yī)療等領(lǐng)域

均有著廣泛應(yīng)用

了解了什么是人臉識別之后

那么問題來了

它是怎么實現(xiàn)的呢?

關(guān)于人臉識別

目前有很多經(jīng)典的算法

基于幾何特征法、局部特征分析法

基于彈性模型法、特征臉法

及神經(jīng)網(wǎng)絡(luò)法等

神經(jīng)網(wǎng)絡(luò)方法在人臉識別上的應(yīng)用比起前述幾類方法來有一定的優(yōu)勢,因為對人臉識別的許多規(guī)律或規(guī)則進行顯性的描述是相當困難的,而神經(jīng)網(wǎng)絡(luò)方法則可以通過學習的過程獲得對這些規(guī)律和規(guī)則的隱性表達,它的適應(yīng)性更強,一般也比較容易實現(xiàn)。

卷積神經(jīng)網(wǎng)絡(luò)(CNN)的前級包含了卷積和池化操作,可以實現(xiàn)圖片的特征提取和降維,最近幾年由于計算機算力的提升,很多人都開始轉(zhuǎn)向這個方向。

所以

本次公開課

揭sir以CNN為技術(shù)背景

介紹了人臉識別的基本思路


先用人臉檢測方法檢測出人臉位置,然后根據(jù)返回的坐標、尺寸把臉用數(shù)組切片的方法截取下來,然后把截取的小圖片送進訓練好的卷積神經(jīng)網(wǎng)絡(luò)模型,得出人臉的分類結(jié)果,最后在原圖片上打上包圍框并且把結(jié)果寫在包圍框的上端。

當然

實現(xiàn)以上步驟的前提是

有一個訓練好的可以做人臉識別的模型

因為訓練的好壞直接影響識別的準確度

所以

本次課程的重點放在了訓練上

揭sir通過簡述

從LeNet到VGG-Net的網(wǎng)絡(luò)架構(gòu)演進

LeNet

亮點

定義了CNN的基本架構(gòu)

卷積層、池化層、全連接層

是CNN的鼻祖


AlexNet

亮點

更深的網(wǎng)絡(luò)

數(shù)據(jù)增廣

ReLU

dropout

LRN


ZF-Net

亮點

網(wǎng)絡(luò)結(jié)構(gòu)沒什么改進

只是調(diào)了調(diào)參

性能較AlexNet提升了不少

VGG-16

亮點

卷積層使用更小的filter尺寸和間隔。與AlexNet相比,可以看出VGG-Nets的卷積核尺寸還是很小的,比如AlexNet第一層的卷積層用到的卷積核尺寸就是11*11,這是一個很大卷積核了。而反觀VGG-Nets,用到的卷積核的尺寸無非都是1×1和3×3的小卷積核,可以替代大的filter尺寸。

他指出:CNN從90年代的LeNet開始,21世紀初沉寂了10年,直到12年AlexNet開始又再煥發(fā)第二春,從ZF-Net到VGG-Nets,網(wǎng)絡(luò)越來越深,架構(gòu)越來越復雜,解決反向傳播時梯度消失的方法也越來越巧妙。但萬變不離其宗的是CNN基本架構(gòu)為:卷積層、池化層與全連接層。層數(shù)發(fā)生變化,但CNN的流程并沒有變化。因此,充分理解了卷積層、池化層與全連接層,就可以找到入門CNN的訣竅了。

卷積層

(Convolution)

關(guān)于卷積層我們先來看什么叫

卷積操作

上圖較大網(wǎng)格表示一幅圖片,有顏色填充的網(wǎng)格表示一個卷積核,卷積核的大小為3*3。假設(shè)我們做步長為1的卷積操作,表示卷積核每次向右移動一個像素(當移動到邊界時回到最左端并向下移動一個單位)。卷積核每個單元內(nèi)有權(quán)重,上圖的卷積核內(nèi)有9個權(quán)重。在卷積核移動的過程中將圖片上的像素和卷積核的對應(yīng)權(quán)重相乘,最后將所有乘積相加得到一個輸出。上圖經(jīng)過卷積后形成一個6*4的圖。

在了解了卷積操作后

我們來看下卷積層的特點

局部感知

在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中每個神經(jīng)元都要與圖片上每個像素相連接,這樣的話就會造成權(quán)重的數(shù)量巨大造成網(wǎng)絡(luò)難以訓練。而在含有卷積層的的神經(jīng)網(wǎng)絡(luò)中每個神經(jīng)元的權(quán)重個數(shù)都是卷積核的大小,這樣就相當于沒有神經(jīng)元只與對應(yīng)圖片部分的像素相連接。這樣就極大的減少了權(quán)重的數(shù)量。同時我們可以設(shè)置卷積操作的步長,假設(shè)將上圖卷積操作的步長設(shè)置為3時每次卷積都不會有重疊區(qū)域(在超出邊界的部分補自定義的值)。

局部感知的直觀感受如下圖


ps:使用局部感知的原因是一般人們認為圖片中距離相近的部分相關(guān)性較大,而距離比較遠的部分相關(guān)性較小。在卷積操作中步長的設(shè)置就對應(yīng)著距離的遠近。但是步長的設(shè)置并無定值需要使用者嘗試。

參數(shù)共享

在介紹參數(shù)共享前我們應(yīng)該知道卷積核的權(quán)重是經(jīng)過學習得到的,并且在卷積過程中卷積核的權(quán)重是不會改變的,這就是參數(shù)共享的思想。這說明我們通過一個卷積核的操作提取了原圖的不同位置的同樣特征。簡單來說就是在一幅圖片中的不同位置的相同目標,它們的特征是基本相同的。

其過程如下圖

多核卷積

如權(quán)值共享的部分所說我們用一個卷積核操作只能得到一部分特征可能獲取不到全部特征,這么一來我們就引入了多核卷積。用每個卷積核來學習不同的特征(每個卷積核學習到不同的權(quán)重)來提取原圖特征。

上圖的圖片經(jīng)過三個卷積核的卷積操作得到三個特征圖。需要注意的是,在多核卷積的過程中每個卷積核的大小應(yīng)該是相同的。

池化層

(Pooling)

池化層降低了各個特征圖的維度,但可以保持大部分重要的信息。

池化層夾在連續(xù)的卷積層中間,壓縮數(shù)據(jù)和參數(shù)的量,減小過擬合,池化層并沒有參數(shù),它只不過是把上層給它的結(jié)果做了一個降采樣(數(shù)據(jù)壓縮)。

降采樣有兩種常用的方式

Max pooling

選取最大的

我們定義一個空間鄰域

并從窗口內(nèi)的修正特征圖中取出最大的元素

最大池化被證明效果更好一些

Average pooling

平均的

我們定義一個空間鄰域

并從窗口內(nèi)的修正特征圖算出平均值

無論是max pool

還是average pool

都有分信息被舍棄

那么部分信息被舍棄后

會損壞識別結(jié)果嗎?

因為卷積后的Feature Map中

有對于識別物體不必要的冗余信息

我們降采樣就是

為了去掉這些冗余信息

所以并不會損壞識別結(jié)果

全連接層

(Fully connected)

在全連接層中所有神經(jīng)元都有權(quán)重連接,通常全連接層在卷積神經(jīng)網(wǎng)絡(luò)尾部。當前面卷積層抓取到足以用來識別圖片的特征后,接下來的就是如何進行分類。通常卷積網(wǎng)絡(luò)的最后會將末端得到的長方體平攤成一個長長的向量,并送入全連接層配合輸出層進行分類。比如,在下面圖中我們進行的圖像分類為四分類問題,所以卷積神經(jīng)網(wǎng)絡(luò)的輸出層就會有四個神經(jīng)元。


四分類問題

我們從卷積神經(jīng)網(wǎng)絡(luò)的卷積層、池化層以及全連接層來講解卷積神經(jīng)網(wǎng)絡(luò),我們可以認為全連接層之間的在做特征提取,而全連接層在做分類,這就是卷積神經(jīng)網(wǎng)絡(luò)的核心。

而三者與卷積神經(jīng)網(wǎng)絡(luò)的關(guān)系

可以這么理解

卷積神經(jīng)網(wǎng)絡(luò)在形式上有一點點像

咱們的“人民代表大會制度”

卷積核的個數(shù)相當于候選人

圖像中不同的特征

會激活不同的“候選人”(卷積核)

池化層

(僅指最大池化)

起著類似于“合票”的作用

不同特征在對不同的

“候選人”有著各自的喜好

全連接相當于是“代表普選”

所有被各個區(qū)域選出的代表

對最終結(jié)果進行“投票”

全連接保證了receiptive field是整個圖像

既圖像中各個部分(所謂所有代表)

都有對最終結(jié)果影響的權(quán)利

舉個栗子

以VGG-16為例

對224x224x3的輸入

最后一層卷積可得輸出為7x7x512

如后層是一層含4096個神經(jīng)元的FC

則可用卷積核為

7x7x512x4096的全局卷積

來實現(xiàn)這一全連接運算過程

它把特征representation整合到一起

輸出為一個值

這樣做

有一個什么好處就是

大大減少特征位置對分類帶來的影響

再舉個簡單的栗子

從上圖我們可以看出

貓在不同的位置

輸出的feature值相同

但是位置不同

對于電腦來說

特征值相同

但是特征值位置不同

那分類結(jié)果也可能不一樣

這時

全連接層filter的作用就相當于

貓在哪我不管

我只要貓

于是我讓filter去把這個貓找到

實際就是把feature map

整合成一個值

這個值大,有貓

這個值小,那就可能沒貓

和這個貓在哪關(guān)系不大了

魯棒性有大大增強

因為空間結(jié)構(gòu)特性被忽略了

所以全連接層不適合用于

在方位上找Pattern的任務(wù)

比如segmentation

全連接層中一層的一個神經(jīng)元

就可以看成一個多項式

我們用許多神經(jīng)元去擬合數(shù)據(jù)分布

但是只用一層fully connected layer

有時候沒法解決非線性問題

而如果有兩層

或以上fully connected layer

就可以很好地解決非線性問題了

我們都知道

全連接層之前的作用是提取特征

全理解層的作用是分類

我們現(xiàn)在的任務(wù)是去區(qū)別一圖片是不是貓

假設(shè)這個神經(jīng)網(wǎng)絡(luò)模型已經(jīng)訓練完了

全連接層已經(jīng)知道

當我們得到以上特征

我就可以判斷這個東東是貓了

因為全連接層的作用主要就是實現(xiàn)分類

從下圖

我們可以看出

紅色的神經(jīng)元表示這個特征被找到了

(激活了)

同一層的其他神經(jīng)元

要么貓的特征不明顯

要么沒找到

當我們把這些找到的特征組合在一起

發(fā)現(xiàn)最符合要求的是貓

OK

我認為這是貓了

貓頭有這么些個特征

于是我們下一步的任務(wù)

就是把貓頭的這么些子特征找到

比如眼睛、耳朵

道理和區(qū)別貓一樣

當我們找到這些特征

神經(jīng)元就被激活了

(上圖紅色圓圈)

這細節(jié)特征又是怎么來的

就是從前面的卷積層,池化層來的

全連接層參數(shù)特多

(可占整個網(wǎng)絡(luò)參數(shù)80%左右)

ps:至于VGG-Nets之后GoogLeNet引入Inception結(jié)構(gòu)代替單純卷積+激活的傳統(tǒng)操作,中間層的輔助LOSS單元,后面的全連接層全部替換為簡單的全局平均pooling;ResNet在網(wǎng)絡(luò)結(jié)構(gòu)上做了較大創(chuàng)新等發(fā)展,本次公開課并未做過多闡述,有興趣的童鞋可自行查閱相關(guān)資料了解。

最后,揭sir

以Facenet與Face Recognition為訓練模型

讓童鞋們實操了一把人臉識別的全流程

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號