《A Lightened CNN for Deep Face Representation》論文解讀 本文來自中科院,原文地址爲: https://arxiv.org/abs/1511.02683

《A Lightened CNN for Deep Face Representation》論文解讀(原文地址鏈接http://blog.csdn.net/tinyzhao/article/details/53127870)


本文來自中科院,原文地址爲:

https://arxiv.org/abs/1511.02683

代碼地址:

https://github.com/AlfredXiangWu/face_verification_experiment

正如前面《人臉驗證:DeepID》博客所說,人臉驗證任務中需要關心兩個問題:一個是人臉特徵提取,另一個就是如何判斷是不是同一個人。特徵提取的方法有LBP等傳統方法,也有DeepID這樣的深度學習方法。判斷是不是同一個人的方法簡單的有餘弦相似度,複雜的有Joint Bayesian。本文主要的內容集中於人臉特徵提取,就是使用Lighten CNN提取特徵。

概述

爲了得到更好的準確度,深度學習的方法都趨向更深的網絡和多個模型ensemble,這樣導致模型很大,計算時間長。本文提出一種輕型的CNN,在取得比較好的效果同時,網絡結構簡化,時間和空間都得到了優化,可以跑在嵌入式設備和移動設備上。

相關研究

用CNN進行人臉驗證分爲三種。一種是使用人臉分類的任務訓練CNN提取特徵,然後用分類器判斷是不是同一個人。第二種是直接優化驗證損失。第三種是將人臉識別和驗證任務同時進行。本文框架是屬於第一種。

網絡結構

architecture

本文網絡結構如上圖所示,和DeepID一樣,在訓練時使用人臉分類的任務進行訓練,最後得到256維的人臉特徵。具體而言,網絡結構如下,文章提出了兩種結構,網絡的主要結構是一樣的,文章更多是集中在了第一種結構。

結構

網絡最後一層是Sofmax層,實現分類的目的,fc1的結果就是人臉的特徵。

MFM激活函數

本文使用了一種稱爲MFM的激活函數,這個結構也很簡單。在輸入的卷積層中,選擇兩層,取相同位置較大的值。

MFM

寫成公式:

fkij=max1kn(Ckij,Ck+nij)

輸入的卷積層爲2n層,取第k層和第k+n層中較大的值作爲輸出,MFM輸出就變成了n層。激活函數的梯度爲

fCk={10ifCkijCk+nijotherwise

這樣激活層有一半的梯度爲0,MFM可以得到稀疏的梯度。MFM激活函數相比於ReLU函數,ReLU函數得到的特徵是稀疏高維的,MFM可以得到緊實(compact)的特徵,還能實現特徵選擇和降維的效果。

實驗

本文使用的數據集是CASIA-WebFace,有10575個人的493456張照片。訓練使用了Caffe。輸入圖片爲144*144的黑白圖片,隨機裁剪成128*128的大小。全連接層Dropout設置爲0.7。不同層SGD的參數也不一樣,前面除了fc2層,momentum設爲0.9,weight decay爲5e-4,fc2層爲了防止過擬合,weight decay爲5e-3。learning rate從1e-3降到5e-5。最終在GTX980上訓練了兩週。

結果

獲取特徵後,作者簡單使用cosine similarity進行人臉驗證。在LFW上,model A正確率爲97.77%,model B爲98.13%。可以看出這個結果是可以接受的。文章的模型A爲26M,在i7-4790上測試一張圖片的時間爲71ms,我在驍龍808上測試是0.8s。

table

總結

本文網絡屬於輕量級結構,模型相對較小,前向計算速度快,能夠在嵌入式設備上使用。雖然精度沒有達到最高,但是屬於可以接受的範圍。

發佈了25 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章