NO IMAGE

上半年跨度到下半年之後,深度學習又進一步推送到了AI的頂端,很多領域都開始涉及到Deep Learning,而在人臉領域,已經被廣泛應用,今天本平臺再一次詳細說說人臉領域的一些知識,想進一步讓更多人的有進一步深入的熟知!


最近因為種種原因,這方面的知識有得到大家的認可和對其有很大的興趣,所以平臺今天再一次分享這領域知識,讓已明白的人更加深入理解,讓初學者有一個好的開端與認知,謝謝大家對本平臺的支援!


讓我開始說說人臉這個技術,真的是未來不可估計的IT技術,不知道未來會有多少企業為了這個技術潛心研究,現在就來看看最近的技術和未來的發展吧!

我先大概說下遇到的一些問題:


Ø 影象質量人臉識別系統的主要要求是期望高質量的人臉影象,而質量好的影象則在期望條件下被採集。影象質量對於提取影象特徵很重要,因此,即使是最好的識別演算法也會受影象質量下降的影響;

Ø 照明問題:同一張臉因照明變化而出現不同,照明可以徹底改變物體的外觀;

Ø 姿勢變化:從正面獲取,姿勢變化會產生許多照片,姿態變化難以準確識別人臉;

Ø 面部形狀/紋理隨著時間推移的變化:有可能隨著時間的推移,臉的形狀和紋理可能會發生變化;

Ø 相機與人臉的距離:如果影象是從遠處拍攝的,有時從較長的距離捕獲的人臉將會遭遇質量低劣和噪音的影響;

Ø 遮擋:使用者臉部可能會遮擋,被其他人或物體(如眼鏡等)遮擋,在這種情況下很難識別這些採集的臉。


就先說這些問題吧,其實在實際生活中,還有更多的問題需要去解決,但是上述所說的問題是典型且主要的待解決問題,也是現在大家比較關注的一些問題。讀者您可以自己再去總結一些,其實很easy!


在DL沒有出現之前,大家都是在用傳統的機器演算法和統計學的演算法來對以上問題進行研究,仔細想想,該領域的領頭人真的很厲害,能做出那麼多經典的演算法,下面我先簡單介紹幾個典型的演算法框架:

1) 基於Adaboost人臉檢測

Adaboost人臉檢測演算法,是基於積分圖、級聯檢測器和Adaboost演算法的方法,該方法能夠檢測出正面人臉且檢測速度快。其核心思想是自動從多個弱分類器的空間中挑選出若干個分類器,構成一個分類能力很強的強分類器。

缺點:而在複雜背景中,AdaBoost人臉檢測演算法容易受到複雜環境的影響,導致檢測結果並不穩定,極易將類似人臉區域誤檢為人臉,誤檢率較高。

2) 基於特徵的方法(引用“Summary of face detection based on video”)

基於特徵的方法實質就是利用人臉的等先驗知識匯出的規則進行人臉檢測。

  1. 邊緣和形狀特徵:人臉及人臉器官具有典型的邊緣和形狀特徵,如人臉輪廓、眼瞼輪廓、虹膜輪廓、嘴脣輪廓等都可以近似為常見的幾何單元;

  2. 紋理特徵:人臉具有特定的紋理特徵,紋理是在圖上表現為灰度或顏色分佈的某種規律性,這種規律性在不同類別的紋理中有其不同特點;

  3. 顏色特徵:人臉的面板顏色是人臉表面最為顯著的特徵之一,目前主要有RGB,HSV,YCbCr,YIQ,HIS等彩色空間模型被用來表示人臉的膚色,從而進行基於顏色資訊的人臉檢測方法的研究。

3) 基於模板的方法

基於模板匹配的方法的思路就是通過計算人臉模板和待檢測影象之間的相關性來實現人臉檢測功能的,按照人臉模型的型別可以分為兩種情況:

  1. 基於通用模板的方法,這種方法主要是使用人工定義的方法來給出人臉通用模板。對於待檢測的人臉影象,分別計算眼睛,鼻子,嘴等特徵同人臉模板的相關性,由相關性的大小來判斷是否存在人臉。通用模板匹配方法的優點是演算法簡單,容易實現,但是它也有自身缺點,如模板的尺寸、大小、形狀不能進行自適應的變化,從而導致了這種方法適用範圍較窄;

  2. 基於可變形模板的方法,可變形模板法是對基於幾何特徵和通用模板匹配方法的一種改進。通過設計一個可變模型,利用監測影象的邊緣、波峰和波谷值構造能量函式,當能量函式取得最小值時,此時所對應的模型的引數即為人臉面部的幾何特徵。這種方法存在的不足之處在於能量函式在優化時十分複雜,消耗時間較長,並且能量函式中的各個加權係數都是靠經驗值確定的,在實際應用中有一定的侷限性。

4) 基於統計理論的方法

基於統計理論的方法是指利用統計分析與機器學習的方法分別尋找人臉與非人臉樣本特徵,利用這些特徵構建分類,使用分類進行人臉檢測。它主要包括神經網路方法,支援向量機方法和隱馬爾可夫模型方法。基於統計理論的方法是通過樣本學習而不是根據人們的直觀印象得到的表象規律,因此可以減小由於人眼觀測不完整和不精確帶來的錯誤而不得不擴大檢測的範圍,但是這種方法需要大量的統計特性,樣本訓練費時費力。

以上也都是通過快速閱讀得到的一些結論,大部分都是直接引用文章作者的語句。其中在這些方法中,都有很多改進,比如PCA Adaboost,HMM等。。。。。。


現在用傳統的技術已經不能再有新的突破,所以現在流行了DL架構,打破了人類的極限,又將檢測,識別,跟蹤等技術上升到另一個高度。

現在來簡單講講最近幾年神經網路的牛X之處。

1)Retinal Connected Neural Network (RCNN) 

640?wx_fmt=png2)Rotation Invariant Neural Network (RINN) 

640?wx_fmt=png3)Principal Component Analysis with ANN (PCA & ANN)

640?wx_fmt=png4)Evolutionary Optimization of Neural Networks

640?wx_fmt=png640?wx_fmt=png

5)Multilayer Perceptron (MLP)

640?wx_fmt=png

6) Gabor Wavelet Faces with ANN

640?wx_fmt=png

還有好多就不一一介紹看了(先進的沒有介紹,因為想必大家都有閱讀,所以。。。嘿嘿,相信大家通過大量閱讀一定已經有了自己的想法,趕快去實現吧!)。在此推薦讀者你閱讀《Recent Advances in Face Detection》,分析的特別詳細,希望對大家有幫助,謝謝!

對了,現在不是因為影象中的人臉檢測,識別都已經很出色了,很多團隊都做到接近滿分了,所以現在來說說未來的趨勢,也許這已經不算趨勢,因為現在已經有很多人在這條路上摸爬打滾,而且有些團隊也有一些成就,希望接下來大家在這領域都能取得好成就。加油!!!


最新深度網路用語人臉的部分介紹與分析:

DeepID網路結構

DeepID是第一代,其結構與普通的卷積神經網路差點兒相同。結構圖例如以下:

640?wx_fmt=png

該結構與普通的卷積神經網路的結構相似。可是在隱含層,也就是倒數第二層,與Convolutional layer 4和Max-pooling layer3相連,鑑於卷積神經網路層數越高視野域越大的特性,這種連線方式能夠既考慮區域性的特徵,又考慮全域性的特徵。

實驗結論

  • 使用multi-scale patches的convnet比僅僅使用一個僅僅有整張人臉的patch的效果要好。

  • DeepID自身的分類錯誤率在40%到60%之間震盪,儘管較高。但DeepID是用來學特徵的。並不須要要關注自身分類錯誤率。

  • 使用DeepID神經網路的最後一層softmax層作為特徵表示,效果非常差。

  • 隨著DeepID的訓練集人數的增長,DeepID本身的分類正確率和LFW的驗證正確率都在新增。






DeepID2

相對於DeepID有了較大的提高。

其主要原因在於在DeepID的基礎上加入了驗證訊號。詳細來說。原本的卷積神經網路最後一層softmax使用的是Logistic Regression作為終於的目標函式,也就是識別訊號;但在DeepID2中,目標函式上加入了驗證訊號。兩個訊號使用加權的方式進行了組合。

兩種訊號及訓練過程

識別訊號公式例如以下:

640?wx_fmt=png

驗證訊號公式例如以下:

640?wx_fmt=png

因為驗證訊號的計算須要兩個樣本,所以整個卷積神經網路的訓練過程也就發生了變化,之前是將所有資料切分為小的batch來進行訓練。  如今則是每次迭代時隨機抽取兩個樣本,然後進行訓練。

實驗結論

  • 對lambda進行調整。也即對識別訊號和驗證訊號進行平衡,發現lambda在0.05的時候最好。使用LDA中計算類間方差和類內方差的方法進行計算。

得到的結果例如以下:

640?wx_fmt=png

能夠發現,在lambda=0.05的時候,類間方差差點兒不變,類內方差下降了非常多。  這樣就保證了類間區分性,而降低了類內區分性。





DeepID2

DeepID2 有例如以下貢獻,第一點是繼續更改了網路結構;第二點是對卷積神經網路進行了大量的分析,發現了幾大特徵。包含: 神經單元的適度稀疏性,該性質甚至能夠保證即便經過二值化後,仍然能夠達到較好的識別效果; 高層的神經單元對人比較敏感,即對同一個人的頭像來說。總有一些單元處於一直啟用或者一直抑制的狀態。DeepID2 的輸出對遮擋很魯棒。

網路結構變化

相比於DeepID2,DeepID2 做了例如以下三點改動:

  • DeepID層從160維提高到512維。

  • 訓練集將CelebFaces 和WDRef資料集進行了融合。共同擁有12000人,290000張圖片。

  • DeepID層不僅和第四層和第三層的max-pooling層連線,還連線了第一層和第二層的max-pooling層。






DeepID3

DeepID3有兩種不同的結構,分別為DeepID3 net1DeepID3 net2。相對DeepID2 ,它的層數更多,網路更深。同時還借鑑了VGGGoogLeNet,引入了inception layer,這個主要是用在了DeepID3 net2裡面。網路中還出現了連續兩個conv layer直接相連的情況,這樣使得網路具有更大的receptive fields和更復雜的nonlinearity,同時還能限制引數的數量。

效能

在訓練樣本上,DeepID3仍採用原來DeepID2 中使用的樣本,在25個image patches產生的網路上作對比時,DeepID3 net1優勢最為明顯,而DeepID3 net2提升不大顯著。 

0?wx_fmt=jpeg





再來說說VALSE 2017

VALSE 的發起者之一——中科院計算所的山世光研究員的報告:《人臉檢測與識別年度進展概述

640?wx_fmt=png

這就不詳細寫,因為該連結都有清楚的表示:

https://mp.weixin.qq.com/s/RrqZmm3NiAT3vOtcqt0xGg


下面我來給大家提供一些公開的資料庫網址:

■Annotated Database (Hand, Meat, LV Cardiac, IMM face) (Active Appearance Models)
■AR Face Database (http://cobweb.ecn.purdue.edu/~aleix/aleix_face_DB.html)
■BioID Face Database (BioID Face Database | facedb | BioID)
■Caltech Computational Vision Group Archive (Cars, Motorcycles, Airplanes, Faces, Leaves, Background) (Computational Vision: Archive)
■Carnegie Mellon Image Database (motion, stereo, face, car, …) (CMU VASC Image Database)
■CAS-PEAL Face Database (The PEAL Face Database)
■CMU Cohn-Kanade AU-Coded Facial Expression Database (http://www.ri.cmu.edu/projects/project_421.html
■CMU Face Detection Databases (http://www.ri.cmu.edu/projects/project_419.html)
■CMU Face Expression Database (http://amp.ece.cmu.edu/projects/FaceAuthentication/download.htm)
■CMU Face Pose, Illumination, and Expression (PIE) Database (http://www.ri.cmu.edu/projects/project_418.html)
■CMU VASC Image Database (motion, road sequences, stereo, CIL’s stereo data with ground truth, JISCT, face, face expressions, car) (CMU VASC Image Database)
■Content-based Image Retrieval Database (Index of /groundtruth)
■Face Video Database of the Max Planck Institute for Biological Cybernetics (Welcome)
■FERET Database (frvt.org)
■FERET Color Database (The Color FERET Databasehttp://face.nist.gov/colorferet/ )
■Georgia Tech Face Database (http://www.anefian.com/face_reco.htm)
■German Fingerspelling Database (http://www.anefian.com/face_reco.htm)
■Indian Face Database (http://http://www.cs.umass.edu/~vidit/IndianFaceDatabase)
■MIT-CBCL Car Database (Pedestrian Data)
■MIT-CBCL Face Recognition Database (CBCL FACE RECOGNITION DATABASE)
■MIT-CBCL Face Databases (CBCL SOFTWARE)
■MIT-CBCL Pedestrian Database (New Page 1)
■MIT-CBCL Street Scenes Database (CBCL StreetScenes Database Download Page:)
■NIST/Equinox Visible and Infrared Face Image Database (http://www.equinoxsensors.com/products/HID.html)
■NIST Fingerprint Data at Columbia (Link)
■ORL Database of Faces (The Database of Faces)
■Rutgers Skin Texture Database (http://www.caip.rutgers.edu/rutgers_texture/)
■The Japanese Female Facial Expression (JAFFE) Database (Japanese Female Facial Expression (JAFFE) Database
■The Ohio State University SAMPL Image Database (3D, still, motion) (http://sampl.ece.ohio-state.edu/database.htm)
■The University of Oulu Physics-Based Face Database (Center for Machine Vision and Signal Analysis)
■UMIST Face Database (http://images.ee.umist.ac.uk/danny/database.html)
■USF Range Image Data (with ground truth) (USF Range Image Database)
■Usenix Face Database (hundreds of images, several formats) (Link)
■UCI Machine Learning Repository (http://www1.ics.uci.edu/~mlearn/MLSummary.html)
■USC-SIPI Image Database (collection of digitized images) (SIPI Image Database)
■UCD VALID Database (multimodal for still face, audio, and video) (VALID Database)
■UCD Color Face Image (UCFI) Database for Face Detection (http://ee.ucd.ie/~prag/)
■UCL M2VTS Multimodal Face Database (http://www.tele.ucl.ac.be/PROJECTS/M2VTS/m2fdb.html)
■Vision Image Archive at UMass (sequences, stereo, medical, indoor, outlook, road, underwater, aerial, satellite, space and more) (SIPI Image Database)
■Where can I find Lenna and other images? (comp.compression Frequently Asked Questions (part 1/3)Section – [55] Where can I find Lenna and other images?)
■Yale Face Database (http://cvc.yale.edu/projects/yalefaces/yalefaces.html)
■Yale Face Database B (http://cvc.yale.edu/projects/yalefaces/yalefaces.html)


最後我附上我近期做的效果圖,是基於視訊中人臉檢測與識別的,因為沒有標準,公共的資料集,所以我就用室內場景劇作為訓練資料,最後的效果很不錯,希望以後有同學做人臉的,我們可以一起討論,共同進步,謝謝!

640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

有興趣的朋友,可以看我上傳的視訊,謝謝!(發現檢測過程還是有一些問題,主要是因為訓練資料集不夠)

網址:http://pan.baidu.com/s/1eR6ppQyy

密碼:gs9g


額外還做了一些靜態的人臉檢測:

效果很不錯,最近也在閱讀“企鵝”公司做的人臉,在國際權威人臉識別資料庫LFW上,騰訊優圖實驗室在無限制條件下人臉驗證測試(unrestricted labeled outside data)中提交的最新成績為99.80%,提升了上次99.65%的成績,再次在這一測試中重新整理紀錄拔得頭籌,參與測試的還有百度、Face 等團隊。

640?wx_fmt=png

很厲害,不愧是網際網路三巨頭之一,值得向他們學習!

我也展示下我做的一些小實驗,效果也很好。

640?wx_fmt=jpeg


現在再來詳細聊聊最近比較熱火的人臉框架,都是基於深度學習基礎之上,在該領域也得到了很高的重視。

一、ScaleFace

0?wx_fmt=png

採用ResNet網路,輸入單張圖片。 在網路不同階段引出分支,然後後接RPNFast R-CNN。 共有3個分支,每個分支只負責檢測對應範圍的人臉。

0?wx_fmt=png

訓練過程:

  • 每個分支只處理對應尺度的樣本,其他樣本直接忽略;

  • 輸入影象最長邊限定為小於等於1300;

  •  IOU大於0.5認為是正樣本,IOU處於 [0,0.1] 和 [0.1,0.3]的負樣本按1:1選用;

  • 訓練時proposal保留2000,測試時保留500。

二、Face R-CNN

0?wx_fmt=png

主要改進點:

(1) Center loss

對於最後的二分類,在softmax的基礎上增加了center loss。為了使得center loss均衡,一個mini batch中正負樣本比例限制為1:1.

(2) Online Hard Example Mining (OHEM)

每次從正負樣本中各選出loss最大的N個樣本加入下次訓練。

(3) Multi-Scale Training

為了弱化尺度影響(或者更好地檢測小目標),訓練階段圖片會經過不同尺度縮放。

效果:

0?wx_fmt=png

三、Finding Tiny Face

0?wx_fmt=png

0?wx_fmt=png

左圖: 直觀來看,擴大感受野範圍,可以有效幫助識別“small”人臉;(對於大的人臉,這點影響不是很大);

右圖: 僅僅採用3倍感受野不能充分把握尺度變化,文章採用固定300畫素的感受野效果則不錯。

0?wx_fmt=png

如上圖,res*表示不同層級的特徵,X越大表示感受野越大。

  • 增加更多的上下文資訊(感受野)有助於檢測;

  • 對於小人臉,483×483的感受野造成了效能下降,作者通過對比訓練和測試效能認為是過擬合;

  • 對於大的人臉,更大的感受野帶來的提升已經不是很明顯。

結論: 不同尺度目標檢測都使用同樣大小的感受野。

效果:

0?wx_fmt=png

四、Compact CascadeCNN

0?wx_fmt=png

流程圖:

0?wx_fmt=png

五、MTCNN

Stage1: Proposal Net:

0?wx_fmt=png

Stage2: Refine Net

0?wx_fmt=png

Stage3: Output Net

0?wx_fmt=png

還有很多人臉檢測的框架,以後本平臺會慢慢把總結的分享給大家,也感謝大家對我們的支援與關注,謝謝!


如果您對人臉比較感興趣,可以繼續瀏覽以下推送連結:

人證核驗系統解決方案

未來人工智慧之人臉領域技術

深層網路面部表情的特徵學習

人臉檢測與識別技術(怎麼去創新?)

有效遮擋檢測的魯棒人臉識別

深度卷積網路遷移學習的臉部表情識別

人臉檢測與識別的趨勢和分析(增強版)


0?wx_fmt=jpeg