人脸属性识别记录

人脸属性识别

人脸属性识别是给定一张人脸图片,判断某一属性是否存在,属性包括眼镜、领带、性别等40个,数据集采用CelebA

人脸属性识别是一项具有挑战性的项目,主要是因为:数据集不均衡、人脸属性存在相关性、不同人脸属性的难度不同、不同人脸属性关注人脸的不同区域

what are doing

weakly localization - ICCV2019

  • 原始论文为所有属性在一起提取出特征,然后对不同的属性关注不同的区域;能否提前将不同属性的区域提取出来,与原始特征组合成两路特征,参与卷积操作?
  • 使用无规则的四边形,而不是使用长方形
  • 使用其他的atttention模块

attention+LSTM

PFLD

  • 使用了多个尺度特征的融合,average pooling得到,已实现但未训练
  • 提出了一种数据不均衡的损失函数

难例挖掘和课程学习

class balanced loss

pytorch实现

使用多个不同的网络作为backbone

  • DenseNet + ResNet

Baseline

  • MobileNetV2
  • Resnet50

数据集不均衡

在CelebA中,某些属性存在着极端的数据不均衡,如bald属性,正样本数很少,这样会导致模型直接全部预测为负样本,而且准确率还很高。

  • 样本重采样:过采样或欠采样

  • 损失函数加权

    • balanced cross entropy:根据正负样本比例增大少数样本的损失函数权重(正负样本比例的gamma次方)
    • 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

    • 参考1, 参考2
    • 《MTCNN with weighted loss penalty for facial attribute prediction》
    • 《Deep multi-task multi-label CNN for effective facial attribute classification》

人脸属性的相关性

人脸属性并不是独立存在的,而是相互之间存在很强的相关性,如络腮胡常常伴随着男性属性,如何利用人脸属性的相关性至关重要。

  • 手工分组:将属性划分为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,见知乎讨论

待调研

dependency among labels

grad cam

CNN-RNN

Muitiple instance learning

label ambiguity

pedestrain attribute survey

task uncertainty

Multi-task with attention

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,有论文和代码

posted @ 2020-06-16 16:18  happy_fan  阅读(1516)  评论(0编辑  收藏  举报