人臉識別是如何實(shí)現(xiàn)的?揭sir幫你解答!
近日
維識科技智能工程教育中心
開展了一場別開生面的
人臉識別技術(shù)知識公開課
本次公開課主講人為
維識教育科技金牌講師
揭李迪
揭sir本科畢業(yè)于谷歌首席科學(xué)家Geoffrey Hinton(圖靈獎獲得者,被稱為“神經(jīng)網(wǎng)絡(luò)之父”、“深度學(xué)習(xí)鼻祖”)的母校愛丁堡大學(xué)(Edinburgh University)。研究生師從香港浸會大學(xué)(HKBU)國際電子電氣工程協(xié)會(IEEE)院士劉繼明(jiming LIU)。曾經(jīng)擔(dān)任融鏈科技項(xiàng)目總監(jiān)、金力軟件項(xiàng)目經(jīng)理。參與了公安部旗下與商湯競標(biāo)的閉路攝像頭人臉檢測項(xiàng)目。精通物體檢測語義分割NLP自然語言處理與AI項(xiàng)目全棧落地WANN無權(quán)重機(jī)器人等國內(nèi)外領(lǐng)先技術(shù)。
揭sir簡介
人臉識別
其實(shí)是對人臉特征進(jìn)行分析計(jì)算
并進(jìn)行身份識別的一種生物識別技術(shù)
即用攝像機(jī)或攝像頭采集
含有人臉的照片或視頻
對其中的人臉進(jìn)行檢測和跟蹤
進(jìn)而達(dá)到識別、辨認(rèn)人臉的目的
人臉識別技術(shù)發(fā)展到今天
主要有兩種用途
①
人臉驗(yàn)證
人臉驗(yàn)證做的是1:1的比對。也就是說我們先告訴人臉識別系統(tǒng),我是張三,然后用來驗(yàn)證站在機(jī)器面前的“我”到底是不是張三。
②
人臉識別
人臉識別做的是1:N的比對。也就是說系統(tǒng)采集了我的一張照片之后,從數(shù)萬人或者數(shù)百萬人的庫里自動找出“我是誰”。
而“刷臉”
只是人臉識別中
比較具體可感的一部分
事實(shí)上人臉識別
能夠給大家?guī)淼?/p>
遠(yuǎn)遠(yuǎn)不僅是“刷臉”付款這么簡單
目前
人臉識別在
金融、安防、交通
電子商務(wù)、娛樂、醫(yī)療等領(lǐng)域
均有著廣泛應(yīng)用
了解了什么是人臉識別之后
那么問題來了
它是怎么實(shí)現(xiàn)的呢?
關(guān)于人臉識別
目前有很多經(jīng)典的算法
基于幾何特征法、局部特征分析法
基于彈性模型法、特征臉法
及神經(jīng)網(wǎng)絡(luò)法等
神經(jīng)網(wǎng)絡(luò)方法在人臉識別上的應(yīng)用比起前述幾類方法來有一定的優(yōu)勢,因?yàn)閷θ四樧R別的許多規(guī)律或規(guī)則進(jìn)行顯性的描述是相當(dāng)困難的,而神經(jīng)網(wǎng)絡(luò)方法則可以通過學(xué)習(xí)的過程獲得對這些規(guī)律和規(guī)則的隱性表達(dá),它的適應(yīng)性更強(qiáng),一般也比較容易實(shí)現(xiàn)。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)的前級包含了卷積和池化操作,可以實(shí)現(xiàn)圖片的特征提取和降維,最近幾年由于計(jì)算機(jī)算力的提升,很多人都開始轉(zhuǎn)向這個(gè)方向。
所以
本次公開課
揭sir以CNN為技術(shù)背景
介紹了人臉識別的基本思路
先用人臉檢測方法檢測出人臉位置,然后根據(jù)返回的坐標(biāo)、尺寸把臉用數(shù)組切片的方法截取下來,然后把截取的小圖片送進(jìn)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型,得出人臉的分類結(jié)果,最后在原圖片上打上包圍框并且把結(jié)果寫在包圍框的上端。
當(dāng)然
實(shí)現(xiàn)以上步驟的前提是
有一個(gè)訓(xùn)練好的可以做人臉識別的模型
因?yàn)橛?xùn)練的好壞直接影響識別的準(zhǔn)確度
所以
本次課程的重點(diǎn)放在了訓(xùn)練上
揭sir通過簡述
從LeNet到VGG-Net的網(wǎng)絡(luò)架構(gòu)演進(jìn)
①
LeNet
亮點(diǎn)
定義了CNN的基本架構(gòu)
卷積層、池化層、全連接層
是CNN的鼻祖
②
AlexNet
亮點(diǎn)
更深的網(wǎng)絡(luò)
數(shù)據(jù)增廣
ReLU
dropout
LRN
③
ZF-Net
亮點(diǎn)
網(wǎng)絡(luò)結(jié)構(gòu)沒什么改進(jìn)
只是調(diào)了調(diào)參
性能較AlexNet提升了不少
④
VGG-16
亮點(diǎn)
卷積層使用更小的filter尺寸和間隔。與AlexNet相比,可以看出VGG-Nets的卷積核尺寸還是很小的,比如AlexNet第一層的卷積層用到的卷積核尺寸就是11*11,這是一個(gè)很大卷積核了。而反觀VGG-Nets,用到的卷積核的尺寸無非都是1×1和3×3的小卷積核,可以替代大的filter尺寸。
他指出:CNN從90年代的LeNet開始,21世紀(jì)初沉寂了10年,直到12年AlexNet開始又再煥發(fā)第二春,從ZF-Net到VGG-Nets,網(wǎng)絡(luò)越來越深,架構(gòu)越來越復(fù)雜,解決反向傳播時(shí)梯度消失的方法也越來越巧妙。但萬變不離其宗的是CNN基本架構(gòu)為:卷積層、池化層與全連接層。層數(shù)發(fā)生變化,但CNN的流程并沒有變化。因此,充分理解了卷積層、池化層與全連接層,就可以找到入門CNN的訣竅了。
卷積層
(Convolution)
關(guān)于卷積層我們先來看什么叫
卷積操作
上圖較大網(wǎng)格表示一幅圖片,有顏色填充的網(wǎng)格表示一個(gè)卷積核,卷積核的大小為3*3。假設(shè)我們做步長為1的卷積操作,表示卷積核每次向右移動一個(gè)像素(當(dāng)移動到邊界時(shí)回到最左端并向下移動一個(gè)單位)。卷積核每個(gè)單元內(nèi)有權(quán)重,上圖的卷積核內(nèi)有9個(gè)權(quán)重。在卷積核移動的過程中將圖片上的像素和卷積核的對應(yīng)權(quán)重相乘,最后將所有乘積相加得到一個(gè)輸出。上圖經(jīng)過卷積后形成一個(gè)6*4的圖。
在了解了卷積操作后
我們來看下卷積層的特點(diǎn)
局部感知
在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中每個(gè)神經(jīng)元都要與圖片上每個(gè)像素相連接,這樣的話就會造成權(quán)重的數(shù)量巨大造成網(wǎng)絡(luò)難以訓(xùn)練。而在含有卷積層的的神經(jīng)網(wǎng)絡(luò)中每個(gè)神經(jīng)元的權(quán)重個(gè)數(shù)都是卷積核的大小,這樣就相當(dāng)于沒有神經(jīng)元只與對應(yīng)圖片部分的像素相連接。這樣就極大的減少了權(quán)重的數(shù)量。同時(shí)我們可以設(shè)置卷積操作的步長,假設(shè)將上圖卷積操作的步長設(shè)置為3時(shí)每次卷積都不會有重疊區(qū)域(在超出邊界的部分補(bǔ)自定義的值)。
局部感知的直觀感受如下圖
ps:使用局部感知的原因是一般人們認(rèn)為圖片中距離相近的部分相關(guān)性較大,而距離比較遠(yuǎn)的部分相關(guān)性較小。在卷積操作中步長的設(shè)置就對應(yīng)著距離的遠(yuǎn)近。但是步長的設(shè)置并無定值需要使用者嘗試。
參數(shù)共享
在介紹參數(shù)共享前我們應(yīng)該知道卷積核的權(quán)重是經(jīng)過學(xué)習(xí)得到的,并且在卷積過程中卷積核的權(quán)重是不會改變的,這就是參數(shù)共享的思想。這說明我們通過一個(gè)卷積核的操作提取了原圖的不同位置的同樣特征。簡單來說就是在一幅圖片中的不同位置的相同目標(biāo),它們的特征是基本相同的。
其過程如下圖
多核卷積
如權(quán)值共享的部分所說我們用一個(gè)卷積核操作只能得到一部分特征可能獲取不到全部特征,這么一來我們就引入了多核卷積。用每個(gè)卷積核來學(xué)習(xí)不同的特征(每個(gè)卷積核學(xué)習(xí)到不同的權(quán)重)來提取原圖特征。
上圖的圖片經(jīng)過三個(gè)卷積核的卷積操作得到三個(gè)特征圖。需要注意的是,在多核卷積的過程中每個(gè)卷積核的大小應(yīng)該是相同的。
池化層
(Pooling)
池化層降低了各個(gè)特征圖的維度,但可以保持大部分重要的信息。
池化層夾在連續(xù)的卷積層中間,壓縮數(shù)據(jù)和參數(shù)的量,減小過擬合,池化層并沒有參數(shù),它只不過是把上層給它的結(jié)果做了一個(gè)降采樣(數(shù)據(jù)壓縮)。
降采樣有兩種常用的方式
①
Max pooling
選取最大的
我們定義一個(gè)空間鄰域
并從窗口內(nèi)的修正特征圖中取出最大的元素
最大池化被證明效果更好一些
②
Average pooling
平均的
我們定義一個(gè)空間鄰域
并從窗口內(nèi)的修正特征圖算出平均值
無論是max pool
還是average pool
都有分信息被舍棄
那么部分信息被舍棄后
會損壞識別結(jié)果嗎?
因?yàn)榫矸e后的Feature Map中
有對于識別物體不必要的冗余信息
我們降采樣就是
為了去掉這些冗余信息
所以并不會損壞識別結(jié)果
全連接層
(Fully connected)
在全連接層中所有神經(jīng)元都有權(quán)重連接,通常全連接層在卷積神經(jīng)網(wǎng)絡(luò)尾部。當(dāng)前面卷積層抓取到足以用來識別圖片的特征后,接下來的就是如何進(jìn)行分類。通常卷積網(wǎng)絡(luò)的最后會將末端得到的長方體平攤成一個(gè)長長的向量,并送入全連接層配合輸出層進(jìn)行分類。比如,在下面圖中我們進(jìn)行的圖像分類為四分類問題,所以卷積神經(jīng)網(wǎng)絡(luò)的輸出層就會有四個(gè)神經(jīng)元。
四分類問題
我們從卷積神經(jīng)網(wǎng)絡(luò)的卷積層、池化層以及全連接層來講解卷積神經(jīng)網(wǎng)絡(luò),我們可以認(rèn)為全連接層之間的在做特征提取,而全連接層在做分類,這就是卷積神經(jīng)網(wǎng)絡(luò)的核心。
而三者與卷積神經(jīng)網(wǎng)絡(luò)的關(guān)系
可以這么理解
卷積神經(jīng)網(wǎng)絡(luò)在形式上有一點(diǎn)點(diǎn)像
咱們的“人民代表大會制度”
卷積核的個(gè)數(shù)相當(dāng)于候選人
圖像中不同的特征
會激活不同的“候選人”(卷積核)
池化層
(僅指最大池化)
起著類似于“合票”的作用
不同特征在對不同的
“候選人”有著各自的喜好
全連接相當(dāng)于是“代表普選”
所有被各個(gè)區(qū)域選出的代表
對最終結(jié)果進(jìn)行“投票”
全連接保證了receiptive field是整個(gè)圖像
既圖像中各個(gè)部分(所謂所有代表)
都有對最終結(jié)果影響的權(quán)利
舉個(gè)栗子
以VGG-16為例
對224x224x3的輸入
最后一層卷積可得輸出為7x7x512
如后層是一層含4096個(gè)神經(jīng)元的FC
則可用卷積核為
7x7x512x4096的全局卷積
來實(shí)現(xiàn)這一全連接運(yùn)算過程
它把特征representation整合到一起
輸出為一個(gè)值
這樣做
有一個(gè)什么好處就是
大大減少特征位置對分類帶來的影響
再舉個(gè)簡單的栗子
從上圖我們可以看出
貓?jiān)诓煌奈恢?/p>
輸出的feature值相同
但是位置不同
對于電腦來說
特征值相同
但是特征值位置不同
那分類結(jié)果也可能不一樣
這時(shí)
全連接層filter的作用就相當(dāng)于
貓?jiān)谀奈也还?/p>
我只要貓
于是我讓filter去把這個(gè)貓找到
實(shí)際就是把feature map
整合成一個(gè)值
這個(gè)值大,有貓
這個(gè)值小,那就可能沒貓
和這個(gè)貓?jiān)谀年P(guān)系不大了
魯棒性有大大增強(qiáng)
因?yàn)榭臻g結(jié)構(gòu)特性被忽略了
所以全連接層不適合用于
在方位上找Pattern的任務(wù)
比如segmentation
全連接層中一層的一個(gè)神經(jīng)元
就可以看成一個(gè)多項(xiàng)式
我們用許多神經(jīng)元去擬合數(shù)據(jù)分布
但是只用一層fully connected layer
有時(shí)候沒法解決非線性問題
而如果有兩層
或以上fully connected layer
就可以很好地解決非線性問題了
我們都知道
全連接層之前的作用是提取特征
全理解層的作用是分類
我們現(xiàn)在的任務(wù)是去區(qū)別一圖片是不是貓
假設(shè)這個(gè)神經(jīng)網(wǎng)絡(luò)模型已經(jīng)訓(xùn)練完了
全連接層已經(jīng)知道
當(dāng)我們得到以上特征
我就可以判斷這個(gè)東東是貓了
因?yàn)槿B接層的作用主要就是實(shí)現(xiàn)分類
從下圖
我們可以看出
紅色的神經(jīng)元表示這個(gè)特征被找到了
(激活了)
同一層的其他神經(jīng)元
要么貓的特征不明顯
要么沒找到
當(dāng)我們把這些找到的特征組合在一起
發(fā)現(xiàn)最符合要求的是貓
OK
我認(rèn)為這是貓了
貓頭有這么些個(gè)特征
于是我們下一步的任務(wù)
就是把貓頭的這么些子特征找到
比如眼睛、耳朵
道理和區(qū)別貓一樣
當(dāng)我們找到這些特征
神經(jīng)元就被激活了
(上圖紅色圓圈)
這細(xì)節(jié)特征又是怎么來的
就是從前面的卷積層,池化層來的
全連接層參數(shù)特多
(可占整個(gè)網(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為訓(xùn)練模型
讓童鞋們實(shí)操了一把人臉識別的全流程

最新活動更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會
-
即日-5.15立即報(bào)名>>> 【在線會議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評 >> 【評選啟動】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?