人臉屬性識別
人臉屬性識別是給定一張人臉圖片,判斷某一屬性是否存在,屬性包括眼鏡、領帶、性別等40個,數據集采用CelebA
人臉屬性識別是一項具有挑戰性的項目,主要是因為:數據集不均衡、人臉屬性存在相關性、不同人臉屬性的難度不同、不同人臉屬性關注人臉的不同區域
what are doing
weakly localization - ICCV2019
- 原始論文為所有屬性在一起提取出特征,然后對不同的屬性關注不同的區域;能否提前將不同屬性的區域提取出來,與原始特征組合成兩路特征,參與卷積操作?
- 使用無規則的四邊形,而不是使用長方形
- 使用其他的atttention模塊
attention+LSTM
PFLD
- 使用了多個尺度特征的融合,average pooling得到,已實現但未訓練
- 提出了一種數據不均衡的損失函數
難例挖掘和課程學習
class balanced loss
使用多個不同的網絡作為backbone
- DenseNet + ResNet
Baseline
- MobileNetV2
- Resnet50
數據集不均衡
在CelebA中,某些屬性存在着極端的數據不均衡,如bald屬性,正樣本數很少,這樣會導致模型直接全部預測為負樣本,而且准確率還很高。
-
樣本重采樣:過采樣或欠采樣
-
損失函數加權
- balanced cross entropy:根據正負樣本比例增大少數樣本的損失函數權重(正負樣本比例的gamma次方)
- focal loss:不僅可以解決樣本不平衡問題,還可以對難分類的樣本更多關注
- 一個實現:NIH-X-Ray-focal-loss
- weighted focal loss:《deep imbalanced attribute classification using attention aggregation》
- loss penalty:《MTCNN with weighted loss penalty for facial attribute prediction》
-
縮放threshold:不同的屬性使用不同的threshold
人臉屬性的相關性
人臉屬性並不是獨立存在的,而是相互之間存在很強的相關性,如絡腮胡常常伴隨着男性屬性,如何利用人臉屬性的相關性至關重要。
- 手工分組:將屬性划分為n個大類,划分標准包括:人臉區域、局部和全局、主觀與客觀、是否和人的身份相關
- CNN+RNN:利用RNN進行搜索相關性,但是如何從CNN過渡到RNN?
- 見博客
- 圖卷積網絡
- 《multi-label image recognition with graph convolutional networks》
- 《Relation-aware pedestrian attribute recognition with graph convolutional networks》
人臉屬性的難度不同
值得注意的是,每個屬性的預測難度不同,如預測是否戴眼鏡要比預測性別簡單
- 動態調整每個屬性loss的占比:根據loss下降的快慢衡量任務的難度,或者loss下降和acc上升兩者的快慢衡量任務的難度
- 《adaptively weighted multi-task deep network for person attribute classification》
- 《Deep multi-task multi-label CNN for effective facial attribute classification》
人臉屬性關注人臉不同區域
不同屬性與人臉不同的區域相關,如戴眼鏡與眼睛區域有關,性別與全局區域有關
- 不同屬性有不同的視覺注意力
- 《deep imbalanced attribute classification using visual attention aggregation》
- 《learning spatial regularization with image level supervisions for multi-label image classification》
- 《HydraPlusNet: Attentive deep features for pedestrian analysis》
- 《Improving pedestrian attribute recognition with weakly-supervisied multi-scale attribute-specific localization》
其他
-
multi-scale: 將中間層的feature map進行global average pooling, 然后concat到最后的fc層,一起進行分類 (類似於DenseNet)
-
Attention機制:在網絡模塊中加入SE block
-
DSN:不僅在最后一層引入監督函數,在中間層也引入監督函數,參考鏈接
-
在不同任務之間引入Focal loss,見知乎討論
待調研
Multi-task with attention :提出了一種新的動態加權的算法
pedestrian attribute recognition with localization:為每個屬性找到其分類的區域,值的一看
multi-label attention region:通過選擇注意力區域協助多標簽分類
乳腺癌圖片分類:CNN+RNN,對圖像進行分塊
RetinaNet病灶檢測:提出了類似於ICCV2019的結構,提出了attention gate
Attribute aware attention細顆粒度分類: keras實現
CBAM: Convolutional Block Attention Module, ECCV2018
知乎cv attention專欄 : 各種CV attention
多標簽分類 :知乎的多標簽分類討論
awesome imbalanced learning : 關於數據集不均衡的repo,有論文和代碼