GhostVLAD for set-based face recognition 中提到了文章解決的是template-based face recognition。
VLAD: vector of locally aggregated descriptors. 由Jegou et al.在2010年提出,其核心思想是aggregated(積聚),主要應用於圖像檢索領域。
文章的3個貢獻:
- 提出一種網絡來聚合並embed網絡輸出的面部特征向量至一個compact的固定長度的表示。
- 提出一個新奇的GhostVLAD層,其中包含ghost clusters,不對聚合做貢獻。文中展示了一種高質量的自動加權方式來使得高質量的圖像比低質量的圖像貢獻更多。並且這個ghost clusters可以提高網絡能力來解決比較差質量的圖像。
- 文中探索了特征維度,簇的數目,不同訓練技術對識別性能的影響。最后作者在IJB-B數據集上遠超sota的identification和cerification指標。
那么這種set(template) based face recognition的難處何在?在於集合里的人臉可能有不同的姿態,表情,光照,甚至質量的差異也很大。如果我給low-quality和high-quality一樣的weight,那肯定會hurt performance。所以網絡應該更關注於informative ones。
比較set之間的相似性一個直接的做法就是我將每個subject的所有人臉特征都存儲起來,然后比較兩個subject的每一對圖像,這么做是非常耗存儲和時間。因此聚合方法能夠產生compact template representation。更重要的是,從image set獲取的representation應當更加具有判別性。同一subject的template descriptors應當互相close,反之則far apart。盡管一些工作利用average pooling和max pooling可以聚合到一個比較compact的template representation,本文尋找一種更好的方案。本文靈感來源於圖像檢索中的編碼方法:Fisher Vector encoding和T-embedding 增加從related和unrelated圖像塊提取到的描述子的可分性。於是作者也在利用了一種相似的encoding:NetVLAD來設計網絡。作者拓展NetVLAD結構to include ghost clusters。將這些低質量人臉視為ghost clusters。盡管沒有明確對template里的faces進行加權,這種特性自動會出現。即低質量人臉會contribute less。網絡以端到端的方式訓練,僅用identity-level labels。在IJB-A,IJB-B上面都有很大提升。
大致結構如上圖:對一個template中的每個圖片提取特征,然后利用GhostVLAD層來聚合這些descriptors到單一固定長度的vectors。最后的D維template描述子由FC層來削減維度,並附有BN和L2正則。
這個網絡應該有如下性質:
- 輸入任意數量圖像,輸出固定長度的template descriptor來表征輸入的image set
- 輸出的template descriptor應當是compact的,或低維,使得存儲較小便於更快的template comparisions。
- 輸出的template descriptor應當是discriminative的,使得同一subject的templates之間的相似性大於與其他不同subjects之間的相似性。(內聚性)
上面三條性質的實現方案分別如下:
- 利用一個修改后的NetVLAD層:GhostVLAD來聚合人臉描述子
- 通過一個trained layer實現維度縮減
- 因為整個網絡end-to-end被訓練,並且因為GhostVLAD層能夠down-weight低質量圖像的contribution,所以可以實現discriminative
本文的核心部件:GhostVLAD:NetVLAD with ghost clusters
這是個可訓練的aggregation layer。給定N個DF維的面部向量,計算一個單一的DF乘K維的輸出。它基於NetVLAD層實現了一個編碼過程,類似於VLAD encoding。所以是可微可訓練的。這個NetVLAD已被證實比average和max pooling的效果要好。這里簡要回顧一下論文NetVLAD(NetVLAD: CNN architecture for weakly supervised place recognition)。
作者拓展NetVLAD with "ghost" clusters為GhostVLAD。即作者在原有的K個類簇中額外的加了G個“ghost”類簇來形成soft assignments。
使用ghost clusters的一個直覺就是使得網絡更容易調整template中的每個face example。這通過assigning examples to be ignored to the ghost clusters來實現的。例如對於一個highly blurry的人臉圖像,將會被很大程度上assigned to a ghost cluster,使得它在non-ghost的clusters的權重就會趨近於0。那這樣就使得它對於template representation的貢獻是可忽略不計的。
一些訓練細節:
為了perform set-based training,重復在線采樣屬於同一identity的固定數目的圖像。
測試細節:
對於IJB-A和IJB-B做“1:1 face verification”和“1:N face identification”。
- 1:1 face verification的目的是決定兩個templates是否屬於同一人。通過設定templates之間的相似性閾值實現。驗證性能由ROC曲線評估,也就是驗證true accept rates(TAR)和false accept rates(FAR)的trade off。
- 1:N identification的做法是對於probe set的templates,要對給定的gallery中所有templates做評價。模型的評價方法有:true positive identification rate(TPIR)和false positive identification rate(FPIR)以及Rank-N。
結果:明顯對低質量圖像降低了權重。
論文:A Good Practice Towards Top Performance of Face Recognition: Transferred Deep Feature Fusion
A template refers to a collection of all media (images and/or video frames) of an interested face captured under different conditions that can be utilized as a combined single
representation for matching task.