机器学习之人脸识别(Face Recognition)
機器學習之機器是如何識別人臉(Face Recognition)的?
目前,一些機器學習技術已經被廣泛應用于人臉識別、人臉支付以及身份認證領域,例如支付寶的FACEID,阿里的Alipay,ETC等等。
這個領域內的算法多以傳統的Eigen Face, LBP Face, Adaboost為主,面對一張人臉時,我們首先要進行的是進行人臉特征的提取,比如鼻子、眼睛等,之后對這些特征進行分析比對,確認人物基本信息。而機器主要是通過數學模型學習輪廓、紋理等細節,將機器提取出來的細節(特征提取,Feature extraction)輸入到分類模型中進行分類(分類,Classification),從而識別人臉。
以卷積神經網絡為例,在提取了大量的基本信息之后:
1、Input Image - > Detect
這一步我們做的主要是將原始圖像輸入去detect,讓機器提取一些關鍵點。
2、Detect - > Transform - > Crop
這一步要做的事情就是要檢測人臉中的關鍵點,然后根據這些關鍵點對人臉做對齊校準。比如原先人臉可能比較歪,根據關鍵點使用仿射變換將人臉統一“擺正”,盡量去消除姿勢不同帶來的誤差。這一步一般叫Face Alignment。
3、Crop - > Representation
這一步就是使用深度卷積網絡,將輸入的人臉圖像,轉換成一個向量的表示。
在理想的狀況下,我們希望“向量表示”之間的距離就可以直接反映人臉的相似度:
1)對于同一個人的人臉圖像,對應的向量的歐幾里得距離應該比較小。
2)對于不同人的人臉圖像,對應的向量之間的歐幾里得距離應該比較大。
4、實際應用
1)N:1(驗證你是誰):給定一張圖片或識別一張人臉,檢測數據庫中與之最相似的人臉。
2)1:1(驗證你是不是你):只需比對采集的圖像特征和數據庫中你的特征即可。
5、對于圖像有噪音干擾(用GAN)
1)有遮擋
2)化妝,整容
早期傳統的人臉識別模型其實是沒有辦法對抗這些干擾項的,但現在可以利用對抗模型(Generative Adversarial Network,GAN )對圖像進行還原,然后再進行識別即可。GAN的基本原理是生成器(Generator)和判別器(Discriminator)相互博弈達到動態平衡的過程,Generator用于生成仿真樣本,Discriminator用于鑒定生成的樣本,生成的樣本足夠真實就會欺騙Discriminator,因此兩者必須同等優秀,需要有各自獨立的神經網絡模型,并且能夠利用LOSS實現自我優化。
一個有趣的關于GAN的例子是假鈔的制作:
Generator:制造假鈔的人
Discriminator:警察
a)制造假鈔的人生產假鈔
b)警察判斷是否是假鈔,如果認為是假鈔,說明假鈔與真鈔存在區別
c)制造假鈔的人按照警察給出的反饋改進假鈔制造工藝
重復以上3個步驟,直到警察無法區分假鈔和真鈔為止。
訓練GAN的基本步驟:
1.對噪聲集和實際數據集進行采樣,選擇m個。
2.使用這些數據訓練判別器。
3.采樣大小為m的不同的噪聲集。
4.在此數據上訓練生成器。
從步驟1開始重復。
總結
以上是生活随笔為你收集整理的机器学习之人脸识别(Face Recognition)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学四年生活总结_大学四年生活总结
- 下一篇: 关于浏览器输入一个网址后页面经历的过程总