一、引言
研究方向: 人脸属性识别,挑战问题在于从野外图像中识别出人脸属性,因为会遇到姿势、光线、遮挡等情况的影响
现有特征识别方法的缺点:(主要两大类)
- 全局方法:从整个图像中提取特征;问题在于无法得到准确的定位,且对物体的形变没有鲁棒性(泛化)
- 局部方法:先将图像分割成不同区域,在对各个区域提取特征,最后将多个局部特征融合起来作为最终特征;问题在于面对复杂人脸图像时可能无法识别
本文贡献: 针对复杂场景下无约束人脸属性识别问题提出了一个新的深度学习框架,同时揭示了一些有价值的事实
- 框架架构:集成两个CNNs:LNet和ANet,前者用于人脸定位,后者用于提取特征来用于属性识别分类
- 事实:
- 基于大量的目标分类和人脸身份识别的预训练,对提高人脸定位和属性识别的特征学习有很大帮助
- 好的面部定位特征可以帮助不住到丰富的面部变化,关于这些变化的更多监督信息有助于学习
- 进行预训练的深度学习模型会隐式地学习和发现语义概念/属性
二、方法
2.1 整体架构
先由
L
N
e
t
LNet
LNet 定位人脸,再由
A
N
e
t
ANet
ANet 提取特征,最后根据特征进行属性识别分类:
- L N e t LNet LNet又分 L N e t 0 LNet_0 LNet0 和 L N e t S LNet_S LNetS ,构成先后顺序,前者用于分割出一个包含头部和肩膀的区域,后者用于精准定位出人脸区域;都为四个卷积层+一个全连接层
- A N e t ANet ANet 有四个卷积层+一个全连接层,其中,前两个卷积层参数全局共享,后两个参数局部共享
- 使用 S V M SVM SVM 根据 A N e t ANet ANet 输出的特征向量来识别出人脸的各个属性
2.2 人脸定位——LNet
L N e t LNet LNet 是在 弱监督 环境下通过 图像级属性标签 的数据集进行训练
涉及的一些概念如下:
2.2.1 预训练
L N e t 0 LNet_0 LNet0 和 L N e t S LNet_S LNetS 都会进行 针对1000个一般对象类别的分类训练,数据集来自ImageNet大规模视觉识别挑战(ILSVRC) 2012
数据增强: 裁剪出每张图像的中心区域、四个角落区域获得新的图像,另外对其进行水平翻转,最终可以得到10个新图像
分类器: 采用
S
o
f
t
m
a
x
Softmax
Softmax,通过
S
G
D
SGD
SGD 和
B
P
BP
BP 进行优化
2.2.2 微调(fine-tuning)
L N e t 0 LNet_0 LNet0 和 L N e t S LNet_S LNetS 都会根据属性标签进行微调;为了进行微调,在训练阶段会增强一个输出层,而在验证阶段去除
损失函数: 使用交叉熵
2.2.3 人脸分割的阈值
如何将人脸(人脸-肩膀)从整幅图像中分割出 是 寻找到一个阈值: 当可能的分割窗口的分数大于该阈值则可以分割,否则是为背景
确定阈值: 使用 E d g e B o x EdgeBox EdgeBox在 S U N SUN SUN数据集上进行测试,每个图像被选出500个候选窗口,且每个窗口对应一个分数,分数越大越可能是一张脸
一个问题: 为什么丰富的属性信息可以实现准确的人脸定位?(why rich attribute information enables accurate face localization)
一个卷积层的输出结果中的通道数的大小意味着语义空间的大小,越大意味着能识别出更多的模式(一个通道对应一种模式,如一条腿,一个耳朵…)
卷积层的输出的通道数= 卷积核个数
我的理解: 当卷积核很多时,可以识别出很多属性信息,且一个对应一种,对一张图像进行预测时,想象成将图像很细很细地分割了,那么即使图像有复杂的面部变化,最后还是可以通过多个微小特征的整合定位到人脸
2.3 属性识别——ANet
2.3.1 预训练
A
N
e
t
ANet
ANet 首先会进行大量人脸身份识别的预训练过程,数据集采用
C
e
l
e
b
F
a
c
e
s
CelebFaces
CelebFaces,该数据集包含8000个人脸身份
损失函数: 当采用
s
o
f
t
m
a
x
softmax
softmax损失进行分类结果衡量时,具有挑战性,因为每个身份的样本数量是有限的,以此保证类内不变性;最后为了改善该性质,增加了相似度损失函数,用来降低同一身份的两个样本之间的距离
最后,预训练时结合了两个损失函数
2.3.2 特征提取
一个问题: 特征提取时, A N e t ANet ANet会在人脸区域内确定多个小窗口【应该是卷积核的不同造成的】,而这些窗口大量重叠,从而导致冗余计算
A
N
e
t
ANet
ANet的结构是前两个为参数全局共享的卷积,后两个是参数局部共享的卷积——局部卷积的有效性已在许多与人脸相关的任务中得到证明
当只是用全局卷积层时,计算量可以通过一些技术降低,且不需要逐个窗口评估其预测输出;而如果有局部卷积,则不可避免的出现冗余计算,需要逐个窗口评估
解决方法: 提出了 i n t e r w e a v e d o p e r a t i o n interweaved operation interweavedoperation——针对局部卷积的CNN的快速前馈方法:
- 应用局部卷积核时,先针对输入生成一个
i n t e r w e a v e d m a p interweaved map interweavedmap,再在这个生成的图上使用卷积核
原理: 由于 i n t e r w e a v e d m a p interweaved map interweavedmap 应用在整个图像,因此每个局部卷积核都转换为全局卷积,以便在不同的窗口之间共享其计算
交织策略:
假如一幅图像被分为33个单元,在下一个局部卷积层中有四个卷积核,大小都为22,那么卷积操作时,涉及的区域为{1,2,4,5},{2,3,5,6},…
应用前向反馈方法:先对相应区域进行交织,依次对单元进行通道填充,最终结果如下图;交织完所有涉及的卷积区域后,即可进行卷积