【论文笔记】HyperFace: ADeep Multi-task Learning Framework for Face Detection
2016-10-12 20:40
501 查看
HyperFace: ADeep Multi-task Learning
Framework for Face Detection, Landmark
Localization, Pose Estimation, and Gender
Recognition
然而由于多个卷积层包含的信息十分庞大,难以直接拿来做多任务学习,所以需要一种特征融合(feature fusion)技术用以将多层的特征信息线性或非线性的结合到一块子空间上。论文构建了一个单独的fusion-CNN 层用来复用hyperfeatures,利用该fusion-CNN输出的特征做多任务学习。
主要的贡献有如下四点:
1):提出了一种新的CNN框架,可以复用中间层特征做多任务学习。
2):提出了两种后处理方法,迭代区域选择和基于关键点的NMS,可以有效提示整体性能。
3):对比了采用单任务学习和多任务学习下的R-CNN性能差别。
4):4种任务在各非约束评测集上都取得了突破性结果。
算法主要包含三个模块,第一个模块从图像中产生候选区并resize到227*227输入到网络;第二个模块是CNN,如上图所示,做二分类,分类出是否为人脸,如果是人脸则输出关键点、姿态、性别预测结果;第三个模块是一个后处理,包含候选区迭代和基于关键点的NMS。
1、 CNN特征分布于各层中,浅层网络反映局部特征信息,适于关键点检测和姿态估计,深层网络反映全局特征信息,适于检测和分类。
2、 多任务协同学习被证明比单任务独立学习更加有效。
基于这两点,设计了HYPERFACE这种网络结构,由于相邻层网络包含着较多的重复信息,所以在采样特征时,间隔选择网络提取特征即可。
作者设计的网络基于AlexNet,提取的中间网络层分别是max1,conv3,pool5,由于三个层的特征维度不同,所以不能直接将其拼接在一起,作者设计了conv1a和conv3a卷积层卷积Max1和Conv3的特征,获得归一化的统一特征维度,最后和pool5拼接在一起,得到6*6*768维度的feature maps,由于特征庞大,又增加了卷积核为1*1的Conv_all卷积层将特征降维到6*6*192[1],之后是一个全连接层,输出3072维的特征向量,之后将该特征向量分为5个部分,每一个512维,用于分别学习不同任务。在每一个全连接层后部署非线性ReLU激活函数。为了不丢失局部信息,在fusion网络中不使用任何pooling操作。
p表示该区域是人脸的概率,从Fc_detection获取得到。
xi,yi为关键点坐标,x,y为人脸中心的坐标,w,h为人脸宽高,对于缺失的关键点,被设置为(0,0)。使用Euclidean损失函数,如下所示:
为预测的归一化后的相对坐标值,N是关键点数量,vi为1时表示该关键点在此区域可见,否则为0,也就是说,对于那些不可见点,不参与运算。
vi表示该候选框,第i个关键点是否可见的真值,1为可见,反之为0,
为其预测值。
为预测值。
g=0表示male,为1表示female。(p0,p1)是一个2维预测向量,由网络计算得到。
为各结果相关权重,取值为:
,分别对应上面5项。
IRP
作者先指出了Fast_SS(作者使用的一种Selective Search的改进算法)的不足,其不能准确定位一些噪声较大的人脸,导致其在检测过程中因分数过低而被漏检。于是,作者采用了一种新的策略,使用FaceRectCalculator[2](应该是一种借助关键点信息生成人脸框的工具)借助关键点信息产生候选区域。在网络中预测一轮后,再利用新的关键点信息生成新的人脸框,迭代该过程。论文设置的迭代次数为1,伪代码如下所示:
L-NMS
跟其他NMS算法的不同就是不以人脸框坐标作为参数,而是以关键点中的最小四个角坐标作为参数,作者觉得这样的话更加人脸紧凑,可以避免相邻脸被合并或漏检等情况。伪代码如下:
NMS取top-k的结果,人脸框选择得分最大的,其余几项选择top-k的中值,也就是说,最终结果由top-k决定的投票结果,作者设置k为5.
我的心得:这篇论文很难付诸应用,因为其速度实在难以令人接受,其亮点在于中间层特征的利用和多任务学习,这两点相辅相成,往往比单任务学习可以取得更好的效果。
关于作者指出selective search耗费了太长时间,其实faster r-cnn已经解决了该问题,借鉴faster r-cnn的RPNs网络,其实速度可以提升不少。
[1] .C. Szegedy, W. Liu, Y. Jia, P.Sermanet, S. Reed, D. Anguelov,D. Erhan, V. Vanhoucke, and A. Rabinovich. Goingdeeper withconvolutions. CoRR, abs/1409.4842, 2014.
[2] . M. Kostinger, P. Wohlhart, P. Roth,and H. Bischof. Annotated facial landmarks in the wild: A large-scale,real-world database for facial landmark localization. In IEEE InternationalConference on Computer Vision Workshops, pages 2144–2151, Nov 2011.
Framework for Face Detection, Landmark
Localization, Pose Estimation, and Gender
Recognition
概要
论文采用多任务学习的方法,实现了利用CNN 同时做人脸检测,关键点定位,姿态估计和性别预测4项任务。利用多任务学习同时完成几项人脸检测任务是该篇论文主要亮点。简介
这里提了一个概念——hyperfeatures,其实含义就是指提取多个卷积层的特征做多任务学习,之所以要这么做,是因为论文层数较浅的卷积层包含较多的细节、局部信息,更适合于关键点定位和姿态估计,对于层数较深的卷积层则包含较多的整体信息,可以用于人脸检测和性别预测。然而由于多个卷积层包含的信息十分庞大,难以直接拿来做多任务学习,所以需要一种特征融合(feature fusion)技术用以将多层的特征信息线性或非线性的结合到一块子空间上。论文构建了一个单独的fusion-CNN 层用来复用hyperfeatures,利用该fusion-CNN输出的特征做多任务学习。
主要的贡献有如下四点:
1):提出了一种新的CNN框架,可以复用中间层特征做多任务学习。
2):提出了两种后处理方法,迭代区域选择和基于关键点的NMS,可以有效提示整体性能。
3):对比了采用单任务学习和多任务学习下的R-CNN性能差别。
4):4种任务在各非约束评测集上都取得了突破性结果。
HYPERFACE
算法主要包含三个模块,第一个模块从图像中产生候选区并resize到227*227输入到网络;第二个模块是CNN,如上图所示,做二分类,分类出是否为人脸,如果是人脸则输出关键点、姿态、性别预测结果;第三个模块是一个后处理,包含候选区迭代和基于关键点的NMS。
HYPERFACE架构
在设计网络架构时,有两个前提,分别是:1、 CNN特征分布于各层中,浅层网络反映局部特征信息,适于关键点检测和姿态估计,深层网络反映全局特征信息,适于检测和分类。
2、 多任务协同学习被证明比单任务独立学习更加有效。
基于这两点,设计了HYPERFACE这种网络结构,由于相邻层网络包含着较多的重复信息,所以在采样特征时,间隔选择网络提取特征即可。
作者设计的网络基于AlexNet,提取的中间网络层分别是max1,conv3,pool5,由于三个层的特征维度不同,所以不能直接将其拼接在一起,作者设计了conv1a和conv3a卷积层卷积Max1和Conv3的特征,获得归一化的统一特征维度,最后和pool5拼接在一起,得到6*6*768维度的feature maps,由于特征庞大,又增加了卷积核为1*1的Conv_all卷积层将特征降维到6*6*192[1],之后是一个全连接层,输出3072维的特征向量,之后将该特征向量分为5个部分,每一个512维,用于分别学习不同任务。在每一个全连接层后部署非线性ReLU激活函数。为了不丢失局部信息,在fusion网络中不使用任何pooling操作。
训练过程
作者选择AFLW作为训练集,并从中抽取1000张作为测试集,采用了多种损失函数用以训练不同任务:人脸检测
作者使用Select Search用以生成候选区,IOU大于0.5时为正例(l=1),小于0.35的作为负例(l=0),使用softmax损失函数。p表示该区域是人脸的概率,从Fc_detection获取得到。
关键点定位
AFLW包含21个关键点信息,IOU大于0.35的作为正例被采用,所有关键点坐标被归一化,采用相对值,映射函数为:xi,yi为关键点坐标,x,y为人脸中心的坐标,w,h为人脸宽高,对于缺失的关键点,被设置为(0,0)。使用Euclidean损失函数,如下所示:
为预测的归一化后的相对坐标值,N是关键点数量,vi为1时表示该关键点在此区域可见,否则为0,也就是说,对于那些不可见点,不参与运算。
可见预测
作者这里还训练了一个用于预测关键点是否可见的分类器,采用IOU大于0.35的候选框作为正例,使用Euclidean损失函数,如下所示:vi表示该候选框,第i个关键点是否可见的真值,1为可见,反之为0,
为其预测值。
姿态估计
使用Euclidean损失函数训练roll(p1),pitch(p2),yaw(p3),IOU大于0.5的为正例:为预测值。
性别预测
IOU大于0.5的作为正例,损失函数为:g=0表示male,为1表示female。(p0,p1)是一个2维预测向量,由网络计算得到。
全局损失函数
为各结果相关权重,取值为:
,分别对应上面5项。
Testing
这里主要讲两个点,Iterative Region Proposals(IRP)和Landmarks-based Non-MaximumSuppression(L-NMS)。IRP
作者先指出了Fast_SS(作者使用的一种Selective Search的改进算法)的不足,其不能准确定位一些噪声较大的人脸,导致其在检测过程中因分数过低而被漏检。于是,作者采用了一种新的策略,使用FaceRectCalculator[2](应该是一种借助关键点信息生成人脸框的工具)借助关键点信息产生候选区域。在网络中预测一轮后,再利用新的关键点信息生成新的人脸框,迭代该过程。论文设置的迭代次数为1,伪代码如下所示:
L-NMS
跟其他NMS算法的不同就是不以人脸框坐标作为参数,而是以关键点中的最小四个角坐标作为参数,作者觉得这样的话更加人脸紧凑,可以避免相邻脸被合并或漏检等情况。伪代码如下:
NMS取top-k的结果,人脸框选择得分最大的,其余几项选择top-k的中值,也就是说,最终结果由top-k决定的投票结果,作者设置k为5.
Runtime
8核CPU加泰坦XGPU的配置也只能达到3s一张的水平,其中有2s用在selectivesearch上,但是作者指出,一次forward pass仅需0.2s,但是这速度依然够慢了。我的心得:这篇论文很难付诸应用,因为其速度实在难以令人接受,其亮点在于中间层特征的利用和多任务学习,这两点相辅相成,往往比单任务学习可以取得更好的效果。
关于作者指出selective search耗费了太长时间,其实faster r-cnn已经解决了该问题,借鉴faster r-cnn的RPNs网络,其实速度可以提升不少。
[1] .C. Szegedy, W. Liu, Y. Jia, P.Sermanet, S. Reed, D. Anguelov,D. Erhan, V. Vanhoucke, and A. Rabinovich. Goingdeeper withconvolutions. CoRR, abs/1409.4842, 2014.
[2] . M. Kostinger, P. Wohlhart, P. Roth,and H. Bischof. Annotated facial landmarks in the wild: A large-scale,real-world database for facial landmark localization. In IEEE InternationalConference on Computer Vision Workshops, pages 2144–2151, Nov 2011.
相关文章推荐
- 论文笔记《HyperFace: A Deep Multi-task Learning Framework ...》
- 论文笔记之:Heterogeneous Face Attribute Estimation: A Deep Multi-Task Learning Approach
- 论文《A Convolutional Neural Network Cascade for Face Detection》笔记
- DeepSense: a Unified Learning Framework for Time-Series Mobile Sensing Data Processing 论文笔记
- 论文笔记-MTCNN-Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Network
- 1604.Joint Detection and Identification Feature Learning for Person Search论文阅读笔记
- 论文笔记之---Joint Detection and Identification Feature Learning for Person Search
- 论文《A Convolutional Neural Network Cascade for Face Detection》笔记
- 【论文笔记】A Convolutional Neural Network Cascade for Face Detection
- 论文笔记 A Large Contextual Dataset for Classification,Detection and Counting of Cars with Deep Learning
- 【论文阅读笔记】A Multi-Task Learning Formulation for Predicting Disease Progression
- Joint Deep Learning For Pedestrian Detection(论文笔记-深度学习:行人检测)
- (论文笔记)Deep Learning Strong Parts for Pedestrian Detection
- 论文笔记之:Learning Cross-Modal Deep Representations for Robust Pedestrian Detection
- 论文《From Facial Parts Responses to Face Detection: A Deep Learning Approach》笔记
- 论文笔记:Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
- 【论文笔记】Adversarial Multi-task Learning for Text Classification
- Deep Region and Multi-label Learning for Facial Action Unit Detection简要论文笔记
- 论文笔记之:Co-saliency Detection via A Self-paced Multiple-instance Learning Framework
- 论文《A Convolutional Neural Network Cascade for Face Detection》笔记