深度挖坑系列之三:人臉識別,角度空間,歐氏空間,margin
13 人贊了文章
這是深度挖坑系列的第三篇,可能也是有關人臉識別方向的最後一篇。
第二篇,講network的,由於某些原因,沒有寫完,之後會補上。
寫這篇文章的目的,大概有三個:第一,將第一篇中feature norm的東西補完;第二,最近sensetime用asoftmax在megaface上面刷到了99.8,說一下margin相關的東西;第三,說一說face comparing的局限性。
最後,說一下,因為本人比較懶,所以這篇裡面的東西不會給出出處,希望讀者能夠自己搜索。
一:角度空間
從sphereface這篇文章開始,人臉識別就從原來的訓練、測試都使用歐氏距離 變成 訓練、測試都使用餘弦距離,後面的cosface,amsoftmax,arcface均是如此,其分類boundary分別為:
除了sphereface沒有進行feature normalization操作,保留了圖像質量信息。其餘的都進行了feature normalization操作,這也是我們第一篇文章裡面討論的重點,這裡,我來詳細的分析一下feature normlization的特點:
- feature normalization之後,強制將訓練圖片的質量都認為是1,其導致的結果便是非人臉也會在其中佔據一個空間,當做測試的時候,兩張質量很低的人臉相似度會很高,並且無法通過feature norm來判斷這張圖片的質量(arcface實測)。
- 這導致了arcface,cosface對於vggface2這樣的數據集無能為力,因為裡面的圖片質量並不都是1.
- 問題在於,我們做分類的時候,這張圖片到自己類中心的距離是要小於到其他類中心的距離,但是在標註的時候卻沒有這樣做。
- 解決的方法是人為的將訓練集裡面不是人臉的圖片刪除,這可是一個大工程(手動狗頭
我們來看vggface2中的一個例子:
我並不認為這張圖片的質量好到使他能夠和別的id區分開來。
考慮一個更為極端的情況,假設我們的訓練數據中出現了非人臉,並且我們的網路已經足夠好,那麼他的特徵應該跟非人臉的特徵比較像,但是由於標註問題,使得我們的網路不得不去優化這種outlier,從而導致結果變差。
二:歐氏空間
相較於角度空間,歐氏空間有幾個明顯的好處:
- 人臉的類中心長度都是1,非人臉長度為0,這樣當訓練集中出現非人臉的時候,類中心不會被優化。
- 具有圖片質量信息,在測試的時候可以進行圖像質量評價。
問題是:訓練集裡面的圖片只有label信息,並沒有質量信息,歐氏空間的圖片質量信息從何而來?
三:network,margin,過擬合
回到剛剛的問題,圖片的質量信息從何而來?
要知道我們用的是softmax,分對類的樣本feature norm會增加,而沒有分對類的樣本feature norm則會減少。
所以1.質量信息和是否具有區分度有關。
但是當我們選一個足夠牛逼的network,使得訓練集裡面的樣本都分類正確,然後又沒有weight_decay的話,圖片的feature norm是可以無限大的。
有了weight_decay,feature norm就不可能無限大了,由於weight_decay是每次迭代都做一次,所以在訓練集裡面具有較少分布的樣本其feature norm自然就會比具有較多分布的樣本低。
所以這個時候2.質量信息代表的是訓練集裡面的分布信息。
當然我們更想要1,所以我們要給這個足夠牛逼的network製造一點麻煩,我們要加個margin,使得這個network沒有辦法使得所有的樣本都滿足margin。
如果這個network還是牛逼到加了margin仍然能夠分對類呢?那麼很遺憾,過擬合了。
一個比較好的例子就是用Amsoftmax訓練webface,當網路選擇resnet20的時候能夠達到很好的效果,但是一旦選用resnet50,立馬過擬合。
vggface2同理,resnet20和resnet101下面完全就是兩個結果。
四:最優的配置應該是怎麼樣的?
我們需要明白一點,學術圈裡面的人臉識別方法是沒有辦法在實際中用的。
那麼,要使這個模型在實際情況下能用,應該怎麼辦呢?
第一:network的選取,為了能夠使模型在各種角度,各種光照下面運行良好,一個牛逼的network是必須的。
第二:訓練樣本的數量:由於牛逼的network會導致過擬合問題,所以,大量的訓練樣本也是必須的(這裡大量的意思是各種情況下的人臉圖片都要有,這也就是為何要做data balance的重要性)
第三:度量空間:訓練選擇歐氏距離,測試選擇餘弦距離(+圖片質量評價)。
第四:margin:在大量樣本的情況下,象徵性的加個margin,使得模型更加魯棒。
或許sensetime在megaface上面的99.8的描述能夠說明上述問題:
We trained the deep residual attention network(attention-56) with A-softmax to learn the face feature.
The training dataset is constructed by the novel dataset building techinique, which is critical for us to improve the performance of the model. The results are the cleaned test set performance released by iBUG_DeepInsight.Wang F, Jiang M, Qian C, et al. Residual attention network for image classification[J]. arXiv preprint arXiv:1704.06904, 2017.Deng J, Guo J, Zafeiriou S. ArcFace: Additive Angular Margin Loss for Deep Face Recognition[J]. arXiv preprint arXiv:1801.07698, 2018.Liu W, Wen Y, Yu Z, et al. Sphereface: Deep hypersphere embedding for face recognition[C]//The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2017, 1.
雖然A-softmax並不是最好的margin方法,但是只要訓練數據足夠,其實也沒有什麼問題。
五:face comparing的局限性
作為一名演算法工程師(或者PM),必須了解到演算法(產品)的局限性,人臉識別並不能解決所有的識別問題。
所以,不要再來問為什麼一個人帶著墨鏡+帶著口罩無法準確識別了,你簡直就是在侮辱我的智商。
這篇文章裡面有很多點我都沒有進行深入的講解,讀者可以自行進行思考。最後,如果你對我所說的都有共鳴的話,那麼恭喜,你離脫坑不遠了。
推薦閱讀:
※蓋茨、馬雲、劉強東,科技大佬的辦公室什麼樣?
※互聯網時代,你也可以成為網紅
※【華為曝光智能世界產業版圖】2025 年全球智能終端將達400億,智能助理普及率超90%
※漫威世界的正確打開方式------科技之於世界的善惡
※輕科技質感雷達鑽霸系列鏤空腕錶簡評