Title: DAA: A Delta Age AdaIN operation for age estimation via binary code transformer
导读
本文介绍了一种基于深度学习技术的年龄识别方法。相对于人类通过比较不同年龄的人来识别年龄,计算机难以获得每个年龄段的代表性图片。因此,研究人员设计了一种新的算法——Delta Age AdaIN (DAA)
,该算法通过学习每个年龄的均值和标准差,来得到每个年龄的style map
。同时,将年龄转化为二进制码作为输入进行迁移学习,获得连续的年龄特征信息。通过学习得到的两组二进制码映射值分别对应于比较年龄的均值和标准差。该算法由四个模块组成,即
FaceEncoder
DAA operation
Binary code mapping
AgeDecoder
最终,该算法通过年龄解码器获取差值年龄后,将所有比较年龄和差值年龄的平均值作为预测年龄。该方法能够用更少的参数在多个面部年龄数据集上表现优异。
背景介绍
人脸年龄估计在人机交互、人脸属性分析、市场分析等方面都具有重要作用。随着深度学习的兴起,许多深度结构,如VGG、ResNet、MobileNet等,已被用作特征学习方法来解决人脸年龄估计问题。
传统的人脸年龄估计方法大致有以下三种:
- 回归方法
- 分类方法
- 排名方法
其中,回归方法将标签视为连续的数值,而分类方法则将不同的年龄或年龄组视为独立的类别标签。分类方法又可以分为单标签学习和标签分布学习两种方法。标签分布学习的目标是学习一个标签分布,以表示描述一个实例时每个标签的相对重要性。排名方法则将年龄值视为排名数据,并使用多个二元分类器来确定面部图像中年龄的排名。
随着深度学习技术的发展,必不可少要引入神经网络的能量“硬train一发”。这些方法主要通过特征提取和建模来预测年龄。这与人类肉眼识别年龄的机制不同,人类通过将当前的经验信息与大多数人进行比较来获得年龄信息。由于获取不同种族代表性的年龄图像很难,计算机任务常常忽略比较学习的思路。但是在风格转换学习中,风格图像的均值和标准差是风格转换的关键。
受此启发,研究人员提出了一种新方法,即使用Delta Age Adaptive Instance Normalization
操作通过迁移学习来获取每个年龄段的代表性结果。该方法将当前图像转换为每个比较年龄的风格图,并学习当前年龄与所有比较年龄之间的特征差异,最终基于比较年龄差异来预测年龄。为了实现这个方法,研究人员将所有年龄转换为唯一的8位二进制代码,并通过全连接层学习比较年龄的均值和标准差向量。实验结果表明,该方法优于目前的最先进方法,可以很好地解决年龄估计问题。
相关工作
由于今天是我们第一次讲这个课题,带着学习的心态,让我们跟随作者的脚步一起了解下这个领域。
Facial age estimation
从机器学习的角度来看,人脸年龄估计可以分为两个步骤:特征提取和建模。年龄回归方法、年龄分类方法和年龄排名方法更加关注根据标签信息提出不同的研究方法。其中,回归方法将标签视为连续值,分类方法将标签视为独立的值,而排名方法则将标签视为排序数据。这些方法逐渐认识到衰老是一个缓慢而连续的过程,这意味着处理标签信息至关重要。
此外,一些研究者学习标签分布来表示每个标签的相对重要性,这也可以看作是一种特殊的人脸年龄分类方法。标签分布是当前研究的热点方向,但是获取成千上万张人脸图像的分布标签本身就是一个不容易的任务。
现如今,基于深度学习的方法在人脸年龄估计任务中也被广泛应用,其主要作用是对人脸进行特征提取。例如Ranking-CNN
、DEX
、DLDL
等方法中常采用AlexNet
、VGG
以及ResNet
等经典的骨干网络作为特征提取器。此外,还有一些研究专注于优化损失函数,例如MLloss
中便提出了通过分布学习进行鲁棒性年龄估计的均值-方差损失。同样的,还有人提出渐进式边界损失用于长尾年龄分类,旨在通过强制执行几个边界来自适应地细化年龄标签模式。有兴趣的读者可以自行查阅更多资料。
然而,上述的模型参数量还是比较庞大。因此,一些基于轻量化结构如MobileNet
、OCRNN
以及MRCNN
等被引入到面部年龄估计任务中。有个比较典型的方法就是SSR-Net
,其将网络参数压缩至40kb!还有便是 CVPR2019 上一篇C3AE
的工作中提出了一种极其紧凑且高效的级联上下文基础年龄估计模型。
C3AE
Style transfer and adaptive instance normalization
基于风格迁移技术生成面部年龄图像也是个非常有意思的方向。下面让我们先简单梳理下这方面的相关工作。
最先提出风格迁移的工作当属 Gatys 等人发表于 CVPR'2016 上的一篇工作,该方法通过计算两幅图像的内容和风格距离实现了风格迁移的方法。随后,Ulyanov 等人首次将BN
应用于生成器。Maximizing Quality and Diversity
中则通过实验则发现IN
相较于BN
可以显著提高收敛速度。紧接着,Dumoulin
等人发现,使用不同的尺度和位移进行IN操作,即条件实例标准化CIN
,可以生成具有不同风格的图像。最后,便是由 Huang 等人引入的AdaIN
自适应实例标准化技术,作者认为图像的艺术风格是特征图的每个特征通道的交叉空间统计信息,如均值和方差。因此,通过转移每个通道的均值和标准差,可以实现风格迁移。
StyleGAN
StyleGAN
便是一种基于AdaIN
风格转换思想的生成模型,它将传统输入移除并提出了一个基于样式的生成器,它以可学习常数为输入。该模型通过分别修改每个级别的输入来控制每个层级所表示的视觉特征,而不影响其他级别。StyleGAN2
则调整了AdaIN
的使用方式,有效避免了水滴状伪影的问题。
LATS & RAGAN
借助GAN
网络的优势,一些研究尝试生成高质量的面部年龄图像。例如,LATS
提出了一种合成寿命年龄变换的方法。RAGAN
则引入了个性化自指导方案,使得能够将输入人脸转换成各种目标年龄组,同时保留其身份特征。
方法
上图描述了一个年龄预测系统相关的架构,该框架基于深度学习和二进制编码映射技术所实现,共包含四个组件。下面带大家快速的过一遍,重点讲述 DAA 操作。
FaceEncoder 模块
该模块其实就是一个特征编码器,负责将面部年龄图像作为输入,并将其编码为一个特征向量,以捕捉面部的关键特征。
DAA 操作
DAA 操作是该框架最为关键的一个组件。正如之前提到的,我们希望通过将当前图像与所有年龄段最具代表性的图像进行比较来估计年龄。然而,通常很难获得所有年龄段的典型特征信息。在风格迁移学习中,均值和标准差被认为是图像风格最具代表性的特征。受此启发,作者希望可以通过迁移学习获得每个年龄段的代表性信息。然后,通过将输入年龄的特征与迁移年龄的特征进行比较,得到了特征差异。这便是DAA
操作的核心思想。
需要注意的是,在训练阶段,为了确保编码的连续性,这里对每个年龄组均执行 DAA 操作。而在测试阶段,我们可以通过选择等间隔的年龄进行 DAA 操作,以加速推理,同时保证连续性和稳健性。
二进制编码映射模块
在DAA
操作中,年龄是通过不同的年龄图像模板进行估计,类似于我们直接通过肉眼估算。然而,这种操作其实是很难获得代表性的对比图像。因此,作者希望使用随机输入的latent code
来学习年龄风格特征的平均值和标准差。而且,年龄是一个渐进的老化过程,也对应于每个年龄的代表性图像,即具有连续性的特征。显然,随机输入并无法满足这个要求。因此,本文基于年龄范围和二进制编码的特点,将随机latent code
替换为代表所有自然年龄值的8位二进制代码。二进制编码的独特性和连续性非常适用于该方法。
AgeDecoder 模块
简单直白,AgeDecoder 模块便是负责解码,其接收FaceEncoder
模块和二进制编码映射模块的输出,并将其解码以预测个体的年龄。
实验
本文方法在四个主流的面部年龄估计数据集Morph
、FG-Net
、IMDB-Wiki
以及MegaAge-Asian
进行广泛的实验对比和消融实验研究。评价指标采用用于回归任务常用的MAE
指标以及用于特定数据集Mega-Age
的cumulative accuracy
评估指标,其计算方式如下:
其中, 为总的测试图片数量, 代表绝对误差小于 的测试图像的数量。
可以看到,本文方法在没有显著增加模型参数量的情况下取得了更精确的年龄估计结果。
关于消融实验部分,可以简单的看下上图。
总结
本文提出了一种基于Delta Age AdaIN
的操作来通过迁移学习获取每个年龄段的代表性结果。所提出的DAA
是一种轻量级和高效的特征学习网络。DAA 将通过学习到每个内容图转换为 100 个代表各个年龄的 Delta 年龄图。为了获得连续的图像特征信息,我们将迁移学习的输入设置为二进制编码的格式。通过二进制编码的独特性和连续性特征,我们通过 DAA 操作使得融合的特征信息连续。该设计模块将二进制编码映射模块中学习到的值传输到 FaceEncoder 模块学习的特征映射中。在四个数据集上的实验充分表明所提方法的有效性。