When Age-Invariant Face Recognition Meets Face Age Synthesis:A Multi-Task Learning Framework
為了在人臉識別中最小化年齡變化的影響,之前的工作要么通過最小化身份和年齡相關特征之間的相關性來提取與身份相關的有區分度特征,稱為年齡不變人臉識別(age-invariant face recognition, AIFR),或者通過將不同年齡組的人臉轉換成相同年齡組的人臉來消除年齡差異,這被稱為人臉年齡合成(face age synthesis, FAS);然而,前者缺乏模型解釋的可視化結果,而后者則存在影響downstream識別的偽影。因此,本文提出了一個統一的多任務框架來共同處理這兩個任務,稱為MTL-Face,它可以學習年齡不變的身份相關表征,同時實現令人驚喜的人臉合成。首先,我們通過注意力機制將混合的人臉特征分解為兩個不相關的分量——身份相關和年齡相關特征,然后通過多任務訓練和連續域自適應將這兩個分量去相關。與傳統的實現group-level FAS的one-hot編碼相比,我們提出了一種新的身份條件模塊來實現identity-level FAS,並通過權重共享策略來提高合成人臉的年齡平滑度。此外,我們還收集並發布了包含年齡和性別標注的跨年齡人臉數據集,以促進AIFR和FAS的發展。在五個基准跨年齡數據集上的大量實驗表明,我們提出的MTLFace優於現有的最先進的AIFR和FAS方法。我們進一步在兩個流行的通用人臉識別數據集上驗證了MTLFace,顯示了其在自然環境下具有競爭力的人臉識別性能。代碼可https://github.com/Hzzone/MTLFace.
1. Introduction
多年來,人臉識別一直是計算機視覺領域的研究熱點。最近,基於深度學習的方法通過使用深度神經網絡增強人臉識別模型,取得了優異的性能,甚至在一些場景中超過了人類[13,21,42]。傳統的想法是利用基於margin的度量來增加類內的緊湊性,並使用大量數據訓練模型來提高人臉識別性能[53]。
盡管普通人臉識別(GFR)取得了顯著的成功,但如何將年齡變化的影響最小化是當前人臉識別系統在許多實際應用(如尋找走失兒童)中正確識別人臉的一個長期挑戰。因此,實現無年齡變化的人臉識別,即年齡不變人臉識別(AIFR)具有重要意義。然而,AIFR在以下三個方面仍然具有極大的挑戰性。首先,當跨年齡人臉識別的年齡差異較大時,年齡變化會對人臉外觀產生較大影響,影響人臉識別的性能。第二,人臉年齡合成(FAS)是一個涉及人臉衰老/年輕化(也稱年齡進展/退化)的復雜過程,因為人臉外觀在很長一段時間內會發生劇烈變化,人與人之間也有所不同。最后,在保持身份不變的情況下,獲取大量成對的人臉數據集來訓練模型以得到具有自然效果的人臉是不可行的。
為了克服這些問題,目前的AIFR方法大致可以分為生成模型和判別模型兩大類。對於人臉圖像,生成模型[9,22,34]的目的是將不同年齡的人臉轉換為相同年齡的人臉,以輔助人臉識別。最近,生成對抗網絡(GANs)[12]已被成功地用於提高合成人臉的圖像質量[24,27,51,56,58];他們通常使用one-hot編碼來指定目標年齡群。然而,one-hot編碼代表了年齡groud-level人臉轉換,忽略了identity-level個性化模式,並導致了意想不到的偽影。因此,由於人臉合成的不愉快和身份的意外變化,AIFR的性能無法顯著改善。另一方面,判別模型[5,49]側重於從混合信息中分離出與身份相關的信息來提取年齡不變特征,從而使人臉識別系統只期望得到與身份相關的信息。雖然在AIFR中取得了良好的性能,但它們不能為用戶(如警察)提供可視化的結果作為進一步驗證身份的生成方法,這可能會在許多實際應用的決策過程中損害模型的可解釋性。
為了進一步提高生成模型的圖像質量,並為判別模型提供模型的可解釋性,我們提出了一種統一的多任務學習框架,同時實現AIFR和FAS,稱為MTLFace,可以同時實現兩個任務;即學習年齡不變的身份相關表示,同時實現令人愉悅的人臉合成。更具體地說,我們首先通過注意機制將混合的高級特征分解為兩個不相關的分量——身份相關和年齡相關的特征。然后我們在一個多任務學習框架中將這兩個部分去相關,其中一個年齡估計任務是提取年齡相關的特征,而一個人臉識別任務是提取身份相關的特征;此外,帶有梯度反轉(gradient reversal)層[8]的連續跨年齡鑒別器進一步鼓勵了與身份相關的年齡不變特征。此外,我們提出了一個身份條件模塊來實現FAS的identity-level轉換模式,並采用權重共享策略來提高合成人臉的年齡平滑度;也就是說,人臉的老化是平滑的。大量的實驗表明,與現有的最先進的AIFR和FAS方法相比,其性能更優越,在自然環境下的人臉識別中具有競爭力。圖1展示了我們的MTLFace中同一個人的年齡進展/退化的例子,表明我們的框架可以在保留身份的同時合成逼真的人臉。
我們的貢獻總結如下。首先,我們提出了一個統一的多任務學習框架來聯合處理AIFR和FAS,該框架可以學習年齡不變的身份相關表征,同時實現效果好的人臉合成。其次,我們提出了一種基於注意力的特征分解方法在高級特征maps上分離與年齡相關和身份相關的特征,與之前對特征向量的無約束分解相比,該方法可以約束分解過程。結合年齡估計和人臉識別任務,同時結合連續域自適應來監督分解過程。第三,與之前實現年齡group-level人臉轉換的one-hot編碼相比,我們提出了一種新的身份條件模塊來實現identity-level人臉轉換,並通過權重共享策略提高合成人臉的年齡平滑度。第四,在5個基准數據集上進行了大量實驗,驗證了該框架對AIFR和FAS的有效性,並在2個流行的GFR數據集上取得了較好的性能。最后,我們收集並發布了數百萬張具有年齡和性別標注的跨年齡人臉數據集,可以促進AIFR和FAS的發展。此外,該方法也有望用於其他與人臉相關的研究任務;例如,預訓練人臉年齡估計。
2. Related Work
Age-invariant face recognition (AIFR). 以前的研究通常通過從混合特征中分離年齡不變特征來處理年齡變化。例如,[10]采用隱因子分析(hidden factor analysis, HFA)對混合特征進行因子分解,從而減少身份相關特征的年齡變化。[52]利用潛在因子引導的卷積神經網絡(LF-CNN)將HFA[10]擴展為深度學習框架。同時,[60]引入了年齡估計任務來指導AIFR。最近,基於CNN的判別方法在AIFR中取得了很好的結果。OE-CNN[49]對AIFR采用了一種改進的softmax損失[26],將人臉嵌入分解為兩個正交分量,身份相關特征和年齡相關特征分別表示為angular方向和radial方向。同樣,DAL[45]在假設兩個成分不相關的情況下,以對抗的方式進行特征分解。
與我們相關的工作是[59],它采用基於cGANs的模型,利用跨年齡域的對抗訓練提取年齡不變表征,同時實現兩項任務。然而,它產生了只有微妙變化的過度平滑的人臉。與[59]不同,我們的框架具有以下優點:1)我們的特征分解是通過注意機制在特征maps上進行的;2)采用帶梯度反轉層的連續域自適應學習年齡不變的身份相關表征;3)身份條件模塊可以實現identity-level人臉合成,提高合成人臉的年齡平滑度。
Face age synthesis (FAS). 現有的FAS方法大致可分為基於物理模型、基於原型和基於深度生成模型的方法。基於物理模型的方法[36,37,43]機械地模擬外觀隨時間的變化,但它們的計算成本很高,並且需要在很長時間內同一個人的大量配對圖像。基於原型的方法[20,40]利用每個年齡段的人臉平均值來實現人臉的老化/年輕化,因此不能很好地保留身份。基於深度生成模型的方法[33,48]利用深度神經網絡來完成這一任務。例如, recurrent face aging(RFA)[48]使用了一種回歸神經網絡來建模年齡進展/退化的中間過渡狀態,通過這些過渡狀態可以實現平滑的人臉衰老過程。受生成對抗網絡(GANs)[12],特別是條件對抗網絡(cGANs)[29]強大的生成高質量圖像能力的啟發,近年來許多研究[17,58,51,56]都利用生成對抗網絡來提高合成人臉的視覺質量,並利用未配對的年齡數據訓練模型。例如,[58]使用了一個條件對抗自動編碼器(CAAE),通過遍歷一個低維人臉manifold來實現年齡進展/退化。[51]引入感知損失來在人臉衰老/年輕化過程中保持身份。[56]設計了一個金字塔結構的鑒別器,以增強老化細節。
然而,這些方法主要是為了提高生成人臉的視覺質量,由於group-level人臉變換產生的偽影以及身份的意外變化,很難提高AIFR的性能。我們的方法在以下幾個方面有所不同:1)所提出的MTLFace同時實現了AIFR和FAS,提高了AIFR中與身份相關的信息的視覺質量;2)提出的身份條件模塊(ICM)實現了identity-level人臉年齡合成,不同於之前的group-level人臉年齡合成;3) ICM中的權重共享策略可以提高合成人臉的年齡平滑度。
3. Methodology
圖2展示了提出的MTLFace的結構,其將在下面的章節中詳細介紹。
(e處用id特征去計算Age regression和Age Classification前還要經過一個Gradient Reversal Layer,該梯度反轉層在正向傳播期間保持輸入不變,並在反向傳播期間通過將其乘以一個負標量來反轉梯度。域分類時,若源域(身份)的標簽是0,目標域(年齡)的標簽是1,最大化域分類誤差就是讓域判別器分不清源域和目標域,如此這樣源域和目標域在分布上就變得對齊了。又因為計算損失時是最小化損失,所以反向傳播時乘以一個負標量。目標是將域自適應嵌入到學習表征的過程中,使最終的分類決策基於對域變化既具有鑒別性又不變性的特征,即在源和目標域中具有相同或非常相似的分布,使得得到的Identity Related Feature與年齡無關,但又能做身份識別)
Gradient Reversal Layer代碼為:

#coding:utf-8 import torch.nn as nn from torch.autograd import Function import torch class GradientReverseFunction(Function): @staticmethod def forward(ctx: Any, input: torch.Tensor, coeff: Optional[float] = 1.) -> torch.Tensor: ctx.coeff = coeff #默認為1 output = input * 1.0 return output @staticmethod def backward(ctx: Any, grad_output: torch.Tensor) -> Tuple[torch.Tensor, Any]: return grad_output.neg() * ctx.coeff, None #所以反向傳播其實就是給梯度加了個負號 class GradientReverseLayer(nn.Module): def __init__(self): super(GradientReverseLayer, self).__init__() def forward(self, *input): return GradientReverseFunction.apply(*input)
詳情可見 Domain-adversarial training of neural networks - 1 - 論文學習
3.1. Attention-based Feature Decomposition
隨着時間的推移,人臉發生了很大的變化,年齡變化通常會導致類內距離的增加,這是AIFR的關鍵問題。因此,由於混合的人臉表征與不相關的信息(如人臉形狀和紋理變化)嚴重糾纏在一起,因此正確識別同一個人的兩張具有很大的差距的人臉是有很大的挑戰性的。最近,Wang等人設計了一個線性因子分解模塊,將特征向量分解為兩個不相關的分量[45]。正式來說,給定從輸入圖像中抽取的特征向量
,其線性因子分解模塊可定義為:
其中和
分別表示年齡相關和身份相關的分量。這種分解是通過殘差映射來實現的。但存在以下缺陷:1)該分解是針對一維特征向量的,生成的身份相關分量缺乏人臉的空間信息,不適合FAS;2)這種分解是不受約束的,可能導致訓練不穩定。
為了解決這些缺陷,我們建議通過一種注意力機制,即基於注意的特征分解(AFD),在高級語義空間分解混合特征maps。主要原因是在特征向量上的操作比在特征maps上的操作更復雜,因為像胡須、皺紋等衰老/年輕化的效果出現在語義特征空間,而在一維特征上卻消失了。正式來說,我們使用類似ResNet的backbone作為encoder 去從輸入圖像
中抽取混合特征maps
,即
,AFD可以定義為:
其中表示element-wise乘法,σ表示一個注意力模塊。這樣,在年齡估計任務的監督下,注意模塊可以將特征maps中的年齡相關信息分離出來,剩余部分作為身份相關信息,由人臉識別任務監督。結果表明,注意機制約束了分解模塊,較好地檢測出語義特征maps中的年齡相關特征。我們注意到
被假定只包含由兩個相應任務驅動的年齡和身份信息,其余的信息如背景信息對FAS也是重要的,這些信息通過從編碼器到解碼器的skip連接保存下來。圖2(b)詳細說明了提出的AFD。
在本文中,我們采用通道注意(CA)[15]和空間注意(SA)[54]的和平均值來突出通道和空間層次上的年齡相關信息。注意,這兩個注意力的輸出有不同的大小,我們先將它們每個拉伸到原始輸入大小,然后求平均值。不同的注意力模塊,如CA, SA和CBAM[54]也在第4節被測試。
3.2. Identity Conditional Module
主流的人臉衰老研究[24,27,51,56,58]通常將年齡分成幾個不重疊的年齡組,因為隨着時間的變化較小,年齡差距較小。這些方法通常使用one-hot編碼來指定控制衰老/年輕化過程的目標年齡組[24,51,58],如圖3(a)所示。因此,一個group-level的衰老/年齡化模式,例如人們在30歲時留胡子,由於使用了one-hot年齡條件,每個年齡組都可以了解到。其缺點有兩方面:1)one-hot編碼代表了年齡group-level衰老/年輕化模式,忽視了identity-level個性化模式,特別是對於不同的性別和種族;2)one-hot編碼可能不能保證合成人臉的平滑性。
為了解決這些問題,我們提出了一個身份條件塊(ICB)來實現identity-level老化/年輕化模式,並使用權重共享策略來提高合成人臉的年齡平滑性。該算法以AFD中的身份相關特征作為輸入,學習identity-level的老化/年輕化模式。接下來,我們提出一種權值共享策略來提高合成人臉的年齡平滑度,從而在相鄰年齡組之間共享一些卷積濾波器,如圖3(b)所示。這個想法背后的原理是,隨着時間的推移,人臉會逐漸改變,共享的濾波器可以學習相鄰年齡組之間的一些共同的衰老/年輕化模式。注意,通過1 × 1的卷積從512維減少到128維,以減少計算成本。本文用超參數s來控制兩個相鄰年齡組共享多少個濾波器,其根據經驗值設為1/8;也就是說,相鄰的兩個年齡組共享16個過濾器。我們將ICBs堆疊起來,形成一個身份條件模塊(ICM)。
ICM代碼為:

class TaskRouter(nn.Module): #sigma默認設置為0.1, unit_count默認設置為128,age_group默認為7 #即共享濾波器數量默認為sigma*unit_count=12.8,向上取整為13 def __init__(self, unit_count, age_group, sigma): super(TaskRouter, self).__init__() #去掉(age_group - 1) * sigma * unit_count個共享的濾波器后 #age_group個年齡組需要的濾波器數為conv_dim,即819 conv_dim = int((age_group - (age_group - 1) * sigma) * unit_count) self.register_buffer('_unit_mapping', torch.zeros((age_group, conv_dim))) # self._unit_mapping = torch.zeros((age_group, conv_dim)) start = 0 for i in range(age_group): #第i個age標記[start: start + unit_count]的128個位置為1,表示當輸入的圖age為i時,挑選的是標記為1的特征 #又因為start間隔為115,所以相鄰年齡之間共享13個過濾器 self._unit_mapping[i, start: start + unit_count] = 1 start = int(start + (1 - sigma) * unit_count) #增加int((1-0.1)*128)=115 # print('start is : ', start) #115,230,345,460,575,690,805 def forward(self, inputs, task_ids): #task_ids為輸入對應的年齡 # print('inputs size is : ', inputs.shape) #torch.Size([batch_size, 819, 14, 14]) #輸入為identity Related Feature #self._unit_mapping索引對象 #第二個參數0表示按行索引,1表示按列索引 #第三個參數為索引序號 #相當於得到task_ids對應的mapping #task_ids大小為(batch_size, ) mask = torch.index_select(self._unit_mapping, 0, task_ids.long()) \ .unsqueeze(2).unsqueeze(3) # print("mask shape is : ", mask.shape) #mask shape is : torch.Size([batch_size, 819, 1, 1]),這里的2是batch_size # print("inputs shape is : ", inputs.shape) #inputs shape is : torch.Size([batch_size, 819, 14, 14]) inputs = inputs * mask return inputs class ResidualBlock(nn.Module): def __init__(self, unit_count, age_group, sigma): super(ResidualBlock, self).__init__() conv_dim = int((age_group - (age_group - 1) * sigma) * unit_count) self.conv1 = nn.Sequential(nn.Conv2d(conv_dim, conv_dim, 3, 1, 1), nn.BatchNorm2d(conv_dim)) self.router1 = TaskRouter(unit_count, age_group, sigma) self.conv2 = nn.Sequential(nn.Conv2d(conv_dim, conv_dim, 3, 1, 1), nn.BatchNorm2d(conv_dim)) self.router2 = TaskRouter(unit_count, age_group, sigma) self.relu1 = nn.PReLU(conv_dim) self.relu2 = nn.PReLU(conv_dim) def forward(self, inputs): x, task_ids = inputs[0], inputs[1] residual = x x = self.router1(self.conv1(x), task_ids) x = self.relu1(x) x = self.router2(self.conv2(x), task_ids) return {0: self.relu2(residual + x), 1: task_ids}
詳情看源碼
(這樣得到的即是年齡不變的,能夠進行人臉識別;但是它又能夠訓練得到identity-level age condition,進行衰老/年輕化的人臉合成)
3.3. Multi-task Learning Framework
本節介紹我們的MTLFace,包括AIFR和FAS。
Age-invariant face recognition (AIFR) task. 為了鼓勵AFD去魯棒地分解特征,我們使用年齡估計任務和一個人臉識別任務去監督特征分解。具體來說,通過一個年齡估計任務描繪年齡變化,同時
編碼了身份相關信息。我們使用一個帶有兩個 分別有512和101個神經元的 線性層的年齡估計網絡A去得到類似deep expectation(DEX)[39]的年齡回歸,通過計算一個softmax期望值去學習年齡分布。另一個線性層
則添加在最后用於年齡分類,正則化學習到的分布。在這里,N是年齡組的數量。用於優化年齡估計的損失函數可定義為:
其中分別為ground truth年齡、ground truth年齡組、用於年齡回歸的均方差(MSE)和用於年齡組分類的交叉熵(CE)損失。
接下來我們使用512個神經元的線性層 去抽取特征向量,然后使用CosFace損失去監督用於身份分類的
的學習。我們還介紹了一個跨年齡域對抗學習,通過一個帶有梯度反轉層(GRL)[8]的連續域自適應[46]去鼓勵
為年齡不變的(即某個人不同年齡的照片得到的
是相同的)。AIFR最終的損失為:
其中,第一項是CosFace損失,第二項是年齡估計損失,最后一項是域適應損失,yid是身份標簽,λ∗控制不同損失項的平衡。請注意,第二個和第三個項使用相同的網絡結構,但有不同的輸入,並且是獨立訓練的。為了簡單起見,我們忽略了激活函數和batchNorm,除了AFD之外,我們的人臉識別模型嚴格按照[6]中的設置設計。
Face age synthesis (FAS) task. 圖2(f)展示了本文方法的FAS過程。詳細來說,identity-level age condition源於具有區分度的人臉表征,使用由一系列的身份條件塊(ICBs)組成的身份條件模塊得到 。然后,解碼器D根據從編碼器E中提取的多級高分辨率特征(multi-level high-resolution features),在學習到的identity-level age condition的控制下,重建老化/年輕化的人臉。形式上,將輸入人臉
渲染給目標年齡為t的
的過程可以寫成:
其中表示從編碼器
的不同層抽取的不同級的高分辨率特征的索引。
為了提高生成人臉的視覺質量,使用GANs框架對FAS任務進行訓練。在本文中,我們采用[18]的PatchDiscriminator作為我們的discriminator 來強調生成圖像和真實圖像的local-patch。為了提高生成圖像的質量和穩定訓練過程,利用least-squares GANs[28]對GANs框架進行優化,具體公式如下:
(即使用生成的和表示target label的
,即目標輸入對應的年齡條件串聯后輸入判別器,得到的結果
來計算損失)
其中是使用在傳統cGANs框架中用於對齊年齡條件的one-hot編碼,
表示沿通道維度的矩陣串聯。為了保存輸入人臉的身份且改善年齡准確度,我們利用編碼器
和AFD去監督FAS任務。最后,如圖2所示,我們可以實現人臉整體的端到端的衰老和年輕化。這個過程可以表述為:
(就是使用生成的圖輸入到編碼器
中得到生成的圖的
和
,然后使用
進行Age Estimation后的年齡和生成圖對應的target age t計算age loss,使用生成圖的身份
與其原始身份
計算身份損失)
用於優化FAS任務的最終的損失為:
其中控制FAS任務中不同損失項的重要性。
在least-squares GANs中用於優化判別器的損失函數為:
(使用原圖和對應的表示source_label,即原圖年齡的
串聯后輸入判別器得到
,用來計算第一項損失值;然后使用生成的
和表示target label的
,即目標輸入對應的年齡條件串聯后輸入判別器,得到的結果
來計算后一項損失。目的是讓判別器能夠正確判定原圖和生成圖的年齡)
在測試階段,與現有FAS方法的唯一區別是我們的方法需要指定相應的濾波器組。因此,我們的方法具有與[14]類似的優點,只需對輸入人臉進行一次編碼,而不是以往方法[24,27,51,56,58]的N次編碼(其中N為年齡組的數量),能顯著降低計算成本。
Optimization and inference. 在我們的MTLFace中,AIFR學習判別人臉表征和年齡估計,而FAS產生視覺結果,提高了AIFR模型的可解釋性。因此,以GAN-like的方式優化這兩個任務,可以共同完成這兩個任務;它們相互影響,相互促進。換句話說,AIFR鼓勵FAS渲染人臉以保留其身份,而FAS可以促進身份相關特征的提取,並提高AIFR模型的可解釋性。因此,我們在一個統一的、多任務的、端到端框架中交替訓練這兩個任務。
4. Experiments
4.1. Implementation Details
Data collection. 目前對AIFR的研究缺乏一個包含數百萬張年齡差距較大的人臉圖像的大規模人臉數據集。為了促進AIFR和FAS的發展,我們創建並發布了一個新的跨年齡名人的170萬張臉數據集(LCAF)。具體來說,我們首先使用public Azure Facial API[2]來從[6]提供的干凈MS-Celeb-1M數據集中估算人臉的年齡和性別。然后,我們從總共5M張人臉中隨機選取人臉,檢查人臉是否標注正確,如果有明顯的錯誤,我們會盡量手動糾正;我們主要關注20歲以下的年輕人,他們經常被API[2]錯誤標記。最后,通過平衡年齡和性別,構建了一個大規模的平衡的年齡數據集。為了進行公平比較,我們進一步構建了跨年齡人臉數據集(SCAF)的子集,其中包含來自12K個個體[45,49]的約50萬張圖像。我們注意到,訓練(LCAF)和測試數據可能很少,甚至沒有身份重疊,因為[6]已經通過檢查訓練和測試數據之間的人臉相似性,從clean MS-Celeb-1M數據集中刪除了500多個身份。參考主流文獻[14,23,24,27,56],每個年齡組的時間跨度為10年,本文將年齡分為7個無重疊組;例如10-, 11-20, 21-30, 31-40, 41-50, 51-60, and 61+。請注意,在7組中執行FAS比之前的研究中在4組中執行FAS更具挑戰性。圖4給出了SCAF的示例圖像和數據集統計。
Training details. 我們采用類似於[6]的ResNet-50作為編碼器。在解碼器
中,對身份年齡條件進行雙線性采樣,並使用兩個殘差塊[13]從
中提取的多級高分辨率特征進行處理,每一個都經過instance normalization[44]和ReLU激活。合成的人臉尺寸為112 × 112,由1 × 1卷積層生成。ICM有四個ICBs。在鑒別器
中,6個卷積層的步數為2,2,2,2,1,1,除最后一個卷積層外都遵循spectral normalization[30]和leaky ReLU激活,輸出7 × 7置信度map。用SGD優化AIFR,初始學習率為0.1,momentum為0.9;用Adam訓練ICM、解碼器
和
,學習率固定為10−4,β1為0.9,β2為0.99。我們在8個NVIDIA GTX 2080Ti gpu上訓練了批處理大小為512的所有模型,LCAF迭代次數為110K, SCAF迭代次數為36K。AIFR的學習率先從0線性增高到0.1,然后在LCAF的5K、70K和90K迭代數 以及 SCAF的1K、20K和23K迭代數上, 學習率都降低了0.1倍。損失函數中的超參數根據經驗設置為:
為0.001,
為0.002,
為75,
為0.002,
為10。CosFace[47]的乘數margin和縮放因子分別設置為0.35和64。所有圖像都對齊為112x112,帶有MTCNN[57]檢測的5個面部landmarks,然后線性歸一化到[-1,1]
4.2. Evaluation on AIFR
接下來,我們在多個跨年齡基准數據集(包括CACD-VS[4]、CALFW[61]、AgeDB[31]和FG-NET[1])上評估MTLFace,並與最先進的方法進行比較。請注意,由於[45,49,59]中的版本僅供商業使用,因此不包括MORPH。
Result on AgeDB. AgeDB[31]包含手工標注年齡標簽的568個不同受試者的16488張人臉圖像。提出了四種人臉pair不同年齡差異下的年齡不變人臉驗證協議;即5年、10年、20年和30年。與LFW[16]類似,對於每個協議,該數據集被分割為10個fold,每個fold包含300個類內對和300個類間對。我們嚴格遵循30年的協議來進行10-fold交叉驗證,因為30年的協議是最具挑戰性的。我們使用SCAF訓練的模型來評估其在AgeDB上的表現,以便進行公平比較。表1a顯示了與其他最先進的AIFR方法相比,我們的模型的驗證准確度,顯示了本文方法的優越性能。
Result on CALFW. Cross-age labeled faces in the wild (CALFW)數據集[61]設計用於年齡差異較大的無約束人臉驗證,其中包含了使用LFW中相同身份收集的4,025個個體的12,176張人臉圖像。類似地,我們遵循與LFW相同的協議,其中每個fold包含600對正和負對。我們在LCAF上訓練模型,在這個數據集上評估我們的方法,結果如表1b所示。特別是,我們的方法與最新最先進的AIFR方法相比有很大的優勢,在CALFW上建立了一個新的最先進的方法。
Result on CACD-VS. 作為AIFR的公共年齡數據集,跨年齡名人數據集(cross-age celebrity dataset, CACD)包含了2000名自然環境下名人的163446張人臉圖像,在年齡、光照、姿勢等方面存在顯著差異。自被搜索引擎收集以來,CACD一直存在着錯誤標記和重復圖像的噪聲。因此,為了進行公平比較,我們構造了一個仔細標注后的CACD版本,即CACD verification sub-set(CACD-VS),它也遵循LFW的協議。表1c給出了該方法與其他最先進技術在CACD-VS[4]上的比較。我們的MTL-Face大大超過了其他最先進的技術,在最新的技術上得到了0.15的改進。
Result on FG-NET. FG-NET[1]是AIFR最受歡迎和最具挑戰性的年齡數據集,它包括從自然環境收集的82名受試者的1002張人臉圖像,這些受試者的年齡有很大的變化,從兒童到老人。我們嚴格遵循[45,49]中的評估pipeline。具體來說,該模型在SCAF上進行訓練,並在leave-one-out和Megaface challenge 1 (MF1)協議下進行測試。在leave-one-out協議中,一張人臉被用來匹配其他的臉,重復1002次。rank-1識別率如表1d所示。我們的方法大大優於以前的工作。另一方面,MF1包含來自690K不同的個體的額外的1M張圖像,作為gallery集的干擾,其中模型在large和small訓練集協議下進行評估。small協議要求訓練集小於0.5M張圖像。在FG-NET上嚴格遵循small協議來評估我們訓練好的模型,實驗結果報告在表1e中。由於MF1中的干擾包含大量錯誤標記的probe和gallery人臉圖像,我們的方法獲得了與其他方法相比更有競爭力的性能。
Ablation study. 為了研究不同模塊在MTLFace中的有效性,我們基於AIFR的四個基准數據集進行了消融研究,考慮了我們方法的以下變體:1)Baseline:我們去除所有額外的組件,只用CosFace損失來訓練人臉識別模型。2) +Age:該變體在CosFace和年齡估算損失的共同監督下訓練,類似於[45,60]。3) +AFD (CA)、+AFD (SA)、+AFD (CBAM)、+AFD:這4個變體通過不同的注意模塊(CA[15]、SA[54]、CBAM[54]和新提出的注意模塊),利用基於注意的特征分解方法,突出了不同層次的年齡相關信息。4)Ours:我們提出的MTLFace是由AFD和跨年齡域自適應損失同時訓練的。實驗結果見表1f。我們注意到AgeDB-30的Baseline模型的驗證准確率高於ArcFace和DAAE,因為訓練數據(即SCAF)是年齡平衡的,這是我們收集數據集的一個重要特征。即使在人臉識別模型中執行年齡估計任務,與Baseline模型相比,它也不能得到AIFR的任何改進。另一方面,AFD在所有跨年齡數據集上實現了顯著的性能改進。然而,由於AFD同時強調了通道和空間層面的年齡相關信息,相比於single level(CA和SA)或sequential level(CBAM),我們的方法實現了一致的性能改進,顯示了其有效性。此外,使用跨年齡域的對抗訓練導致額外的性能改進。
4.3. Evaluation on GFR
為了驗證我們的MTLFace對一般人臉識別(GFR)的泛化能力,我們進一步在LFW[16]和Megaface Challenge 1 Facescrub (MF1-Facescrub)[19]數據集上進行了實驗。LFW[16]是最受歡迎的GFR公共基准數據集,它包含來自5749名受試者的13233張人臉圖像。MF1-Facescrub[19]使用來自530名名人的106,863張人臉圖像的Facescrub數據集[32]作為probe集。MF1最具挑戰性的問題是,它在gallery庫中額外使用了1百萬張人臉圖像來分散人臉匹配的注意力。也就是說,由於MF1中的噪聲干擾極大,MF1的結果不如LFW可靠。我們嚴格遵循與[45,49]相同的過程,其中訓練數據集包含0.5M張圖像(SCAF)。表1g報告了LFW上的驗證率和MF1-Facescrub中針對最先進的GFR方法的rank-1識別率。我們的方法在兩個數據集上都取得了較好的性能,證明了我們的MTLFace具有很強的泛化能力。我們強調,我們提出的MTLFace可以提供逼真的合成人臉來提高模型的可解釋性,這是其他方法所沒有的[45,49]。
4.4. Evaluation on FAS
我們進一步評估了在SCAF上訓練的FAS模型。圖5給出了LCAF、MORPH、FG-NET等外部數據集上的一些樣本結果。該方法能夠較好地模擬不同年齡組的人臉年齡合成過程,具有較高的視覺保真度。盡管存在種族、性別、表情和遮擋方面的差異,合成的人臉仍然像照片一樣真實,在皮膚、肌肉和皺紋上有自然的細節,同時始終保持身份,確認了所提方法的泛化能力。
我們與先前的研究,包括CAAE[58]和AIM[59],在MORPH和FGNET上進行了定性比較。從圖6可以看出,CAAE和AIM由於圖像重建都會產生過於光滑的人臉,而我們的MTLFace則是利用身份年齡條件,基於編碼器提取的多層次特征來合成人臉。需要注意的是,競爭對手的結果是直接從他們自己的論文中引用的,這是一種公平的比較,在FAS文獻[14,23,24,27,56]中被廣泛采用,以避免任何由於自我實現而導致的偏差或錯誤。年齡准確性和身份保留兩項評價標准與CAAE[58]、IPCGAN[51]的定量比較以及身份條件模塊的消融研究可見附錄。
5. Conclusion
在本文中,我們提出了一個多任務學習框架,稱為MTLFace,以同時實現AIFR和FAS。我們提出了兩個新的模塊:將特征分解為與年齡和身份相關的特征的AFD 以及 實現identity-level的人臉年齡合成的ICM。在跨年齡和通用基准數據集上的大量實驗證明了本文方法的優越性。