近年来,随着深度学习的发展和大规模数据集的出现,深度学习在很多领域也取得了进展,但其中「人脸复原」(Face Restoration)任务仍然缺乏系统性的综述。
最近,来自南京大学、澳大利亚国立大学、中山大学、帝国理工学院和腾讯的研究者们全面回顾并总结了基于深度学习的人脸复原技术的研究进展,对人脸复原方法进行了分类,讨论了网络架构、损失函数和基准数据集,并对现有SOTA方法进行了系统性性能评测。
论文链接:https://arxiv.org/abs/2211.02831
仓库链接:https://github.com/TaoWangzj/Awesome-Face-Restoration
这篇文章也是人脸复原领域首篇综述,其主要贡献为:
1. 回顾了人脸复原任务中主要的退化模型、常用的评价指标,并总结了人脸图像显著性的特点;
2. 总结了目前人脸复原面临的挑战,对现有方法进行分类及概述。方法主要包括两大类:基于先验的深度学习复原方法和无先验的深度学习复原方法;
3. 梳理了方法中使用的基本网络架构、基本网络模块、损失函数和标准数据集;
4. 在公共基准数据集上对现有SOTA方法进行了系统性实验评测;
5. 分析了人脸复原任务未来发展前景。
文章的整体架构
人脸复原(Face Restoration, FR)是底层视觉中一个特定的图像复原问题,旨在从低质量的输入人脸图像中恢复出高质量的人脸图像。通常来说,退化模型可以描述为:
其中I(lq)是低质量人脸图像, D是与噪声不相关的退化函数, n是加性高斯噪声。当退化函数D不同的时候,就对应了不同的退化模型。因此,FR任务可以视为是求解上述退化模型的逆过程,它可以表示为:
其中根据退化函数不同,人脸复原任务主要可以分为以下五大类,其分别对应着不同的退化模型:
1. 人脸去噪任务(Face Denoising, FDN):去除人脸图像中的噪声,恢复出高质量的人脸;
2. 人脸去模糊任务(Face Deblurring, FDB):去除人脸图像中的模糊,恢复出高质量的人脸;
3. 人脸超分辨率任务(Face Super-Resolution, FSR):从低质量的低分辨率人脸中恢复出高分辨率高质量的人脸;
4. 人脸去伪影任务(Face Artifact Removal, FAR):去除人脸图像压缩过程中出现的伪影,恢复出高质量的人脸;
5. 盲人脸复原任务(Blind Face Restoration, BFR):将未知退化的低质量人脸复原成高质量人脸;
与一般自然图像的复原任务不同,人脸图像具有很强的结构性信息,因此人脸复原任务可以利用人脸图像的先验信息来辅助人脸的复原过程,先验信息主要可以分为以下三部分:
人的屬性資訊:如性別,年齡,是否配戴眼鏡,如下圖所示;
人的身份資訊;
其他先驗資訊:如下圖所示,代表性的先驗有人臉landmark,人臉熱圖,人臉解析圖和3D人臉先驗;
人臉復原面臨的主要挑戰
1. 人臉復原本身就是一個不適定的問題。
因為低品質人臉影像的退化類型和退化參數是事先未知的,從退化的影像中估計高品質的人臉影像是一個不適定問題。
另一方面,在實際場景中,人臉影像的退化是複雜多樣的。因此,如何設計有效且穩健的人臉復原模型來解決這個不適定的問題具有一定的挑戰性。
2. 探索未知的人臉先驗較為困難。
現有人臉復原演算法很難充分利用人臉先驗知識,因為人臉先驗(例如臉部成分和臉部標誌)通常是從低品質人臉影像中估計的,低品質的人臉可能造成先驗估計的不準確,這直接影響人臉復原演算法的表現。
另一方面,真實場景拍攝的人臉影像往往包含複雜多樣的退化類型,找到合適的人臉先驗來輔助人臉復原過程是非常困難的。因此,如何挖掘合理的人臉先驗具有一定的挑戰性。
3. 缺乏大型公開基準資料集。
隨著深度學習技術的發展,基於深度學習的方法在人臉復原方面表現出令人印象深刻的表現。大多數基於深度學習的人臉復原方法強烈依賴大規模資料集來訓練網路。
然而,目前大多數人臉復原方法通常在非公開資料集上訓練或測試的。因此,目前很難直接且公平地比較現有人臉復原方法。
此外,缺乏高品質和大規模的基準限制了模型的潛力。然而,如何取得大規模的人臉資料依然很困難,因此,為人臉復原任務建立合理的公開基準資料集有一定的挑戰性。
4. 人臉復原演算法在實際場景下泛化能力有限。
儘管基於深度學習方法在人臉復原方面取得了較好的性能,但大多數方法是依賴監督策略進行訓練。
也就是說,這些方法需要成對的(低品質和高品質影像對) 資料集,如果這個條件不滿足,它們效能會大幅降低。
另一方面,很難在現實場景中收集到具有成對樣本的大規模資料集。因此,在合成資料集上訓練的演算法在實際場景下泛化能力很弱,這限制了模型在實際場景中的適用性。因此,如何提高人臉演算法在實際場景下泛化能力具有一定的挑戰性。
到目前為止,研究人員提出了許多人臉復原演算法來嘗試解決上述的挑戰。下圖顯示了基於深度學習的人臉復原方法的一個簡潔的里程碑。
如圖所示,自2015年以來,基於深度學習的人臉復原方法的數量逐年增加。
這些人臉復原方法分為兩類:基於先驗的深度學習復原方法和基於非先驗的深度學習復原方法。
而對於基於先驗的深度學習復原方法,我們將其分為三類: 基於幾何先驗的深度學習復原方法,基於參考先驗的深度復原方法和基於生成先驗的深度復原方法。
以下將具有代表性的人臉復原演算法進行簡要介紹。
基於幾何先驗的深度復原方法(Geometric Prior Based Deep Restoration Methods)
該方法主要利用影像中人臉獨特的幾何形狀和空間分佈資訊來幫助模型逐步恢復高品質的人臉。典型的幾何先驗有人臉landmark,人臉熱圖,臉部解析圖和臉部成分。代表性工作有:
SuperFAN:是第一個同時實現人臉超解析度和人臉landmark定位任務的端對端方法。
這個方法的核心想法是使用聯合任務訓練策略來引導網路學習更多的人臉幾何資訊來輔助模型實現高效的人臉超解析度和人臉landmark定位。
MTUN:是一個包含兩個分支網路的人臉復原方法,其中第一個分支網路用來實現人臉影像的超分辨率,第二個分支用於估計臉部組成的熱力圖。
#這個方法表明,利用低品質人臉影像中的人臉元素資訊可以進一步提高演算法人臉復原的效能。
PSFR-GAN:是一種基於多尺度漸進式網路的盲人臉復原方法。這個方法的核心想法是透過使用多尺度低品質人臉影像和人解析圖作為輸入,透過語義感知風格轉換來逐步恢復出人臉的臉部細節。
基於參考先驗的深度復原方法(Reference Prior Based Deep Restoration Methods
##以往人臉復原方法只是依靠退化影像來估計人臉先驗,然而人臉圖像退化過程通常是高度病態的,僅僅通過退化的圖像這些方法無法獲得準確的人臉先驗。 因此,另外一類方法透過使用額外的高品質人臉圖像來獲得的臉部結構或臉部成分字典作為人臉參考先驗來指導模型進行高效地人臉復原。代表性工作有: GFRNet: 此網路模型由一個扭曲網路(WarpNet)和一個重構網路(RecNet)。WarpNet是來提供扭曲引導訊息,目的是透過產生流場對參考影像進行扭曲來修正臉部的姿勢和表情。 RecNet將低品質的圖像和扭曲的引導訊息同時作為輸入來產生高品質的人臉圖像。 GWAInet: 這個工作是在GFRNet的基礎上提出的,它以對抗生成的方式進行訓練,以產生高品質的人臉影像。與GFRNet相比,GWAInet在訓練階段不依賴人臉標記,這個模型更加關注整個人臉區域從而增加了模型的穩健性。 DFDNet: 該方法首先利用K-means演算法從高品質影像中為感知上顯著的臉部成分(即左/右眼睛、鼻子和嘴)生成深度字典;然後,從生成的組件字典中選擇最相似的組件特徵,將細節轉移到低品質的人臉影像中,指導模型進行人臉復原。 基於生成先驗的深度復原方法(Generative Prior Based Deep Restoration Methods) 隨著生成對抗網路(GAN)的快速發展,研究發現,預先訓練的人臉GAN模型,如StyleGAN、StytleGAN2能夠提供更豐富的人臉先驗(如幾何和臉部紋理)。 因此,研究人員開始利用GAN生成的先驗輔助模型進行人臉復原。代表性工作有: PULSE: 這個工作核心是迭代優化預訓練StyleGAN的latent code, 直到輸出和輸入之間的距離低於閾值,從而實現高效的人臉超分辨率。 GFP-GAN: 這個工作利用預先訓練的GAN模型中豐富多樣的先驗作為生成先驗來指導模型進行盲人臉復原。這個方法主要包含一個降質去除模組和一個基於預訓練GAN模型的先驗模組,這兩個模組透過一個latent code連接和幾個通道分割空間特徵轉換層進行高效資訊傳遞。 GPEN: 這個方法核心思路是有效整合GAN和DNN兩中不同的框架優勢實現高效的人臉復原。 GPEN首先學習一個用於生成高品質人臉圖像的GAN模型;然後將這個預先訓練好的GAN模型嵌入到一個深度卷積網絡中作為先驗解碼器;最後通過微調這個深度卷積網絡實現人臉復原。 基於非先驗的深度復原方法:(Non-prior Based Deep Restoration Methods) 雖然大多數基於深度學習的人臉復原方法可以在人臉先驗的幫助下恢復滿意的人臉,但依賴人臉先驗在一定程度上加劇了生成人臉圖像的成本。 為了解決這個問題,另一類方法旨在設計一個端到端的網路模型來直接學習低品質和高品質人臉圖像之間的映射函數,而不需要引入任何額外的人臉先驗。代表性工作有: BCCNN: 一種用於人臉超分辨的雙通道卷積神經網路模型。它由一個特徵提取器和一個圖像生成器組成,其中特徵提取器從低分辨率人臉圖像中提取魯棒的人臉表示而圖像生成器自適應地將提取的人臉表示與輸入的人臉影像進行融合,產生高解析度影像。 HiFaceGAN: 這個方法將人臉復原問題轉換為語意引導的生成問題,並設計了HifaceGAN模型來實現人臉復原。這個網路模型是一個包含多個協作抑制模組和補充模組的多階段框架,這種結構設計減少了模型對退化先驗或訓練結構的依賴性。 RestoreFormer: 這是一種基於Transformer的端對端人臉復原方法。它主要探索了對上下文資訊建模的全空間注意力機制。 這個方法核心思路主要有兩點,第一個是提出了一個多頭交叉注意力層來學習損壞查詢和高品質鍵值對之間的全空間互動。第二點是,注意力機制中的key-value 對是從高品質字典中採樣獲得的,它蘊含高品質的人臉特徵。#
下圖全面地總結了近年來基於深度學習的人臉復原方法的特點。
#其中Plain表示基於非先驗的深度復原方法,Facial component 和Geometric prior表示基於幾何先驗的深度復原的兩類方法,Reference prior表示基於參考先驗的深度復原方法,Generative prior 表示基於非先驗的深度復原方法,Deep CNN, GAN, ViT分別表示模型使用深度卷積神經網絡,生成對抗網路和Visual Transformer網路結構。
這個部分全面地回顧了基於深度學習的人臉復原方法的技術發展過程,主要從以下幾個面向進行總結和分析:網路模型的基本架構、使用的基本模組、模型使用的損失函數和人臉相關的基準資料集。
網路架構
#現有基於深度學習的人臉復原方法的網路架構主要分為三類:基於先驗引導的方法,基於GAN網路結構的方法和基於ViT網路結構的方法。因此,我們將在本節討論這些發展。
基於先驗引導的方法
#這類方法主要可以分為四種,分別為基於前置先驗的人臉復原方法(Pre-prior face restoration method),聯合先驗估計和人臉復原的方法(Joint prior face restoration method),基於中間先驗的人臉復原方法(Pre-prior face restoration method),基於參考先驗的人臉復原方法(Reference-prior face restoration method)。
以上四種方法的簡明結構圖如下:
#基於前置先驗的人臉復原方法通常先使用先驗估計網路(如人臉先驗估計網路或預訓練的人臉GAN模型)從低品質輸入影像中估計人臉先驗,然後利用一個網路利用人臉先驗和人臉圖像生成高品質的人臉。
典型的方法如下圖所示,研究人員設計了一個人臉解析網絡,先從輸入模糊人臉圖像中提取人臉語義標籤,然後將模糊圖像和人臉語意標籤同時輸入一個去模糊網路中來產生清晰的人臉影像。
#聯合先驗估計和人臉復原方法主要是挖掘了人臉先驗估計任務和人臉復原任務之間的互補性關係。這類方法通常聯合訓練人臉復原網絡和先驗估計網絡,因此這類方法同時兼顧了兩個子任務的優點,這能直接提高人臉復原任務的效能。
典型的方法如下圖所示,研究人員提出了一種聯合人臉對齊和人臉超解析度的網路模型,該方法共同估計人臉的landmark 位置和超解析度人臉影像。
#基於中間先驗的人臉復原方法的核心想法是先使用一個復原網路產生粗人臉影像,然後從粗影像中估計人臉先驗訊息,這樣比直接從輸入的低品質的影像可以獲得更精確的先驗資訊。
典型的方法如下圖所示,研究人員提出了FSRNet網路模型,這個模型在網路中間進行人臉先驗估計。
具體的,FSRNet先用一個粗SR網絡對圖像進行粗恢復;然後分別用一個細SR編碼器和一個先驗估計網絡對粗結果圖像進行先驗估計和細化;最後將影像細化特徵和先驗資訊同時輸入到一個精細SR解碼器,恢復出最終的結果。
#基於GAN網路結構的方法
#這類方法主要分為兩種類型:基於樸素GAN架構的方法(Plain GAN method)和基於預訓練GAN嵌入式結構的方法(Pre-trained GAN embedding method)。
這兩種方法的簡明結構圖如下所示:
基於普通GAN架構的方法通常是在網路模型中引入對抗性損失,然後使用對抗性學習策略來聯合優化判別器和生成器(人臉復原網路),從而生成更逼真的人臉圖像。
典型的方法如下圖所示,研究人員提出了HLGAN網路模型,這個模型由兩個生成對抗網路組成。
第一個是 High-to-Low GAN網絡,它使用非成對的影像進行訓練來學習高解析度影像的退化過程。第一個網路的輸出(即低解析度人臉影像)被用來訓練第二個 Low-to-High GAN網絡,從而實現人臉超解析度。
基於預訓練GAN嵌入式結構的方法的核心思路是利用預訓練的人臉GAN模型(如StyleGAN)中的潛在先驗,然後將潛在先驗融合到人臉復原的過程中,借助於潛在先驗和對抗學習策略來實現高效的人臉復原。
典型的方法如下圖所示,研究人員設計了一個GFP-GAN 模型,這個模型主要包含一個降質去除模組和一個基於預訓練GAN模型的先驗模組,這兩個模組透過一個latent code連接和幾個通道分割空間特徵轉換層進行高效率資訊傳遞。
基於ViT網路結構的方法
最近Visual Transformer (ViT)網路架構在自然語言處理和電腦視覺等領域展現了卓越的效能,這也啟發了Transformer 架構在人臉復原任務的應用。
典型的方法如下圖所示,基於Swin Transformer,研究人員提出了一種用於人臉復原的端對端Swin Transformer U-Net (STUNet)網路。
在STUNet 中,transformer模組利用自註意力機制和移位視窗策略來幫助模型專注於更多有利於人臉復原的重要特徵,這個方法取得了良好的效能。
在網路模型中常用的模組
在人臉復原領域,研究者設計了各種類型的基礎模組來建立強大的人臉復原網路。常用的基礎模組如下圖所示,其中這些基礎模組主要有殘差模組(Residual Block),Dense模組(Dense Block),注意力模組(Channel attention block, Residual channel attention block, spatial attention block)和Transformer 模組(Transformer block)。
損失函數
人臉復原任務中常見的損失函數主要有以下幾類:Pixel-wise loss (主要包括L1和L2損失), Perceptual loss, Adversarial loss, face-specific loss。各項人臉復原方法以及他們所使用的損失函數總結在下表中:
資料集
人臉復原任務相關的公開資料集以及相關統計資料總結如下:
##效能比較
###本文總結並測試了一些具代表性的人臉復原方法在PSNR/SSIM/MS-SSIM/ LPIPS/NIQE等方面的效能################定量結果比較######################################################### ######定性结果比较
方法复杂性比较
尽管基于深度学习的人脸复原方法已经取得了一定的进展,但是仍然存在许多挑战和未解决的问题。
网络结构设计
对于基于深度学习的人脸复原方法,网络结构可以对方法的性能产生显著的影响。
例如,由于Transformer 架构的强大能力,最近的基于Transformer 的方法通常具有更好的性能。基于GAN的方法可以生成视觉上令人更加愉悦的人脸图像。
因此,在设计网络时,值得从不同的结构如CNN、GAN和ViT中进行学习和研究。
另一方面,最近基于Transformer的模型通常含有更大的参数,并且需要更高的计算成本,这使得它们难以部署在边缘设备中。
因此,如何设计一个性能强大的轻量级网络是未来工作的另一个潜在研究方向。
面部先验与网络的融合
作为特定领域的图像复原任务,人脸特征可以用于人脸复原任务。在设计模型时,许多方法旨在利用人脸先验来恢复真实的人脸细节。
尽管一些方法试图将几何先验、面部组件、生成先验或3D先验引入人脸复原的过程,但如何将先验信息更加合理地集成到网络中仍然是这个任务一个有前途的方向。
此外,进一步挖掘新的与人脸相关的先验,例如来自预训练GAN的先验或网络中的数据统计,也是这个任务的另一个方向。
损失函数和评价指标
对于人脸复原任务,广泛使用的损失函数有 L1 损失、L2 损失、感知损失、对抗性损失和人脸特定损失,如表3所示。
现有方法通常不使用单个损失函数,而是将多个损失函数与相应的权重相结合训练模型。但是,目前还不清楚如何设计更加合理的损失函数来指导模型训练。
因此,在未来,预计会有更多的工作寻求更准确的损失函数(例如,通用或人脸任务驱动的损失函数),以促进人脸复原这个任务的发展。此外,损失函数可以直接影响模型的评估结果。如表 5、6和7所示,L1损失和L2损失在PSNR、SSIM和MS-SSIM 方面往往获得更好的结果。
感知损失和对抗性损失往往会产生更令人愉悦的结果(即产生高 LPIPS、FID和NIQE值)。因此,如何开发能够兼顾人和机器两方面的指标进行模型性能更加合理地评估也是未来一个很重要的方向。
计算开销
现有的人脸复原方法通常是通过显著地增加网络的深度或宽度来提高复原性能,而忽略了模型的计算成本。
繁重的计算成本阻止了这些方法在资源有限的环境中使用,例如移动或嵌入式设备。
例如,如表8所示,最先进的方法RestoreFormer 有72.37M参数量和340.80G MACs的计算量,这在现实世界的应用程序中部署它是非常困难的。因此,开发具有更少计算成本的模型是未来重要的方向。
基准数据集
与图像去模糊、图像去噪和图像去雾等其他底层视觉任务不同,人脸复原的标准评估基准很少。
例如,大多数人脸复原方法通常在私有数据集上进行实验(从FFHQ合成训练集)。
研究人员可能倾向于使用偏向于他们提出的方法的数据。另一方面,为了进行公平比较,后续工作需要花费大量时间来合成私有数据集并重新训练其他比较方法。此外,最近广泛使用的数据集规模通常较小,不适合深度学习方法。
因此,開發標準的基準資料集是人臉復原任務的一個方向。未來,我們期望社區的研究人員能夠建立更多標準和高品質的基準數據集。
影片人臉復原
#隨著手機和相機等行動裝置的普及,影片人臉復原任務變得越來越重要。然而,現有的工作主要集中在影像人臉復原任務上,而視訊相關的人臉復原工作較少。
另一方面,視訊去模糊、視訊超解析度和視訊去雜訊等其他底層視覺任務近年來發展迅速。
因此,影片人臉復原是社群的一個潛在方向。視訊人臉復原任務可以從以下兩個面向來考慮。
首先,對於基準資料集,我們可以考慮為此任務建立高品質的視訊資料集,這可以快速促進視訊相關演算法的設計和評估,這有利於人臉復原社群的發展;
其次,對於視訊復原方法,我們應該透過充分考慮連續視訊畫面之間的空間和時間資訊來開發基於視訊的人臉復原方法。
真實世界的人臉復原和應用
現有方法依靠合成資料來訓練網路模型。然而,經過訓練的網路不一定在現實世界的場景中表現出良好的泛化能力。
如圖19所示,大多數人臉復原方法在面對真實世界的人臉影像時效果不佳。因為合成資料和現實世界資料之間存在著很大的資料域差距。
儘管一些方法引入了一些解決方案來解決這個問題,例如無監督技術或學習真實影像退化技術。然而,他們仍然依賴一些特定的假設,即所有圖像都有類似的退化。
因此,現實世界的應用仍然是人臉復原任務的一個具有挑戰性的方向。
此外,一些方法表明,人臉恢復可以提高人臉驗證和人臉辨識等後續任務的表現。然而,如何在一個框架中將人臉復原任務與這些任務結合也是未來的研究方向。
其他相關任務
#除了上面討論的人臉復原任務,還有很多與人臉復原相關的任務,包括人臉修飾、照片素描合成、人臉到人臉翻譯、人臉修復、顏色增強和舊照片恢復。
例如,臉部修復旨在透過匹配或學習來恢復臉部影像的缺失區域。它不僅需要在語義上為缺少的臉部組件產生新的像素,而且還應該保持臉部結構和外觀的一致性。舊照片修復是修復舊照片的任務,老照片的退化是相當多樣且複雜的(例如,雜訊、模糊和褪色)。
此外,有些任務著重於臉部風格遷移,例如人臉到人臉翻譯和臉部表情分析,這與人臉復原任務不同。
因此,將現有的人臉復原的方法應用到這些相關任務中,也是一個很有前景的方向,這可以觸發更多的應用落地。
參考資料:https://arxiv.org/bs/2211.02831
以上是萬字解讀首篇「人臉復原」綜述!南大、中山、澳國立、帝國理工等聯合發布的詳細內容。更多資訊請關注PHP中文網其他相關文章!