多任務人臉屬性分析
5 人贊了文章
前言
人臉分析在多媒體、社交網路分析、計算機視覺等領域有著非常廣泛的應用,不同於我們所熟知的「人臉檢測」、「人臉驗證」、「人臉比對」等技術。人臉分析可以理解為「給定一張肖像圖,演算法自動給出對其的屬性分析值,例如「是否戴了口罩」、「是否帶了美瞳」、「是否有雙下巴」、「長得是否好看」等等」,是個非常有意思的研究方向。在Face Attribute Analysis方向目前比較權威的benchmark是香港中文大學湯曉鷗實驗室標註的CelebA。
多任務學習可以簡單理解為模型一次性可以同時處理兩個以上的任務,而傳統的模型通常只能解決一個特點的任務(例如性別識別、種族識別等);進入Deep Learning時代,尤其是在CV相關的很多任務上,其實很多情況下的特徵都是可以共享的,此處「可以共享」的意思就是說「無論你是用了什麼樣的網路結構、在什麼Loss下、在什麼相關的數據集上進行訓練」均可以取得不錯的效果(不一定是state-of-the-art,但也是非常不錯的成績)。
正文
這篇筆記是CVPR2018上一篇利用多任務學習來做人臉屬性分析的Paper,名字叫《Partially Shared Multi-Task Convolutional Neural Network With Local Constraint for Face Attribute Learning》。idea和自己之前的投稿比較相似,在此記錄一下。
傳統的Multi-Task Learning往往會設計成Multi-Branch的結構,即底層layers學習universal feature representation,而高層branch layers學習task-specific feature representation,而且不少實驗都發現通過這樣joint training可以提高每一個task的性能。傳統的Multi-Task Learning Model在分支以後,往往就是「各學各的」,彼此之間沒有交集,這篇文章提出了一種partially shared architecture,使得分支以後的branch之間依然可以交互學習,並且集成了identity information,進一步促進了人臉屬性分類任務的精度提升。如下圖所示:
文章中提出的PS-MCNN(partially-shared multi-task CNN)包含兩個部分:TSNet(Task-specific Networks)和SNet(Shared Networks),其中TSNet學習task-specific representation,而SNet學習shared universal representation。SNet的每一層都獲得了從前一層TSNet的額外輸入,並且傳遞到下一層的TSNet和SNet:
在PS-Net的構建方面,作者利用人臉屬性在人臉的相對位置來對其進行分組,例如:
Upper group包含了:頭髮、眉毛、是否戴帽子等信息;
Middle group包含了:鼻子、臉蛋、是否帶耳環等信息;
Lower Group包含了:嘴巴、鬍鬚、是否戴項鏈等信息;
Whole image group包含了全局信息:性別、是否化了妝、長得是否好看等等。
此外,作者藉助Local learning constraint 來使得局部特徵相似的樣本之間更可能地接近,意思就是說,相似個體之間的人臉屬性也應當是具備更高的相似度,作者定義了LCLoss:
然後整體的優化目標如下:
網路結構如下:
然後就是SGD優化演算法去迭代~~~~~~
作者實驗證明PS-MCNN-LC在CelebA和LFWA數據集上取得了非常好的效果。
這篇CVPR思路上也比較簡單,feature fusion也是比較常用的操作。但是在分支後通過SNet進行交互學習,從而促進information flow是個值得借鑒的地方(大多數MTL Model是在分支之後,互相之間就沒啥事兒了~)。
結語
目前MTL儘管在很多benchmark上都取得了不錯的成績,但一個比較麻煩的事情是一些超參數需要調整,例如從哪裡開始分支?最後聯合Loss的權重 也需要手工調整。前段時間看了一篇Cross-Stitch Networks,但還沒有完美解決這個問題,期待接下來在MTL領域有更多大新聞出現!
這篇paper大致過了一遍,沒有細看,若有錯誤,歡迎指出~ ^_^
Reference
- Deep Learning Face Attributes in the Wild
- Partially Shared Multi-Task Convolutional Neural Network With Local Constraint for Face Attribute Learning
推薦閱讀:
※《Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering》論文筆記
※每天一練P17-Python和OpenCV做圖像處理(平移和旋轉)
※激活函數/損失函數匯總
※如何用flask部署pytorch模型
TAG:深度學習DeepLearning | 人工智慧 | 計算機視覺 |