騰訊老照片修復算法開源,細節(jié)到頭發(fā)絲,三種預訓練模型可下載
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
還記得這個能將老照片修復到纖毫畢現的GFPGAN嗎?
現在,它的代碼正式開源了!
官方已經在GitHub上傳了3個預訓練模型,3個版本的效果區(qū)別如下:
其中,V1.3是最近更新的一版,修復效果更加自然。同時還能在低質量輸入的情況下,輸出高質量結果。
自上線以來,GFPGAN已經在GitHub上攬星1.7w+,還曾登頂過熱榜第一。
更是在推特上引起過一波試玩熱潮:
這一項目由騰訊PCG ARC實驗室提出,其相關論文已被CVPR2021收錄。
3種預訓練模型可挑選
開源代碼主要分為預訓練和訓練兩個部分。
預訓練中以GFPGAN的V1.3版本為例,給出了預訓練模型的下載地址:
wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth -P Experiments/pretrained_models
然后,只需一行代碼就能開始預訓練模型推理了:
python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2
具體介紹如下:
Usage: python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2 [options]
-h show this help
-i input Input image or folder. Default: inputs/whole_imgs
-o output Output folder. Default: results
-v version GFPGAN model version. Option: 1 | 1.2 | 1.3. Default: 1.3
-s upscale The final upsampling scale of the image. Default: 2
-bg_upsampler background upsampler. Default: realesrgan
-bg_tile Tile size for background sampler, 0 for no tile during testing. Default: 400
-suffix Suffix of the restored faces
-only_center_face Only restore the center face
-aligned Input are aligned faces
-ext Image extension. Options: auto | jpg | png, auto means using the same extension as inputs. Default: auto
在這里,官方還展示了3種預訓練模型的區(qū)別在哪里。
與初始版本相比,后兩版在修復精度上有了明顯提升。
V1.2的銳化更明顯,同時還帶有一些美顏效果,所以在一些情況下會比較假面。
V1.3明顯解決了這一問題,使得輸出更加自然,還能進行二次修復;不過弊端是人物面部特征有時會發(fā)生變化(比如下圖中的安妮·海瑟薇示例)。
總之,V1.3并不完全優(yōu)于V1.2,大家可以按需選取合適的模型。
接下來到了訓練部分。
首先,數據集選用FFHQ;
然后,將下載好的預訓練模型其他數據放在experiments/pretrained_models文件夾里。
其他數據包括:
預訓練好的StyleGAN2模型,FFHQ人臉對齊模型文件和ArcFace模型。
接下來,修改相對應的配置文件options/train_gfpgan_v1.yml。
在這里,也可以嘗試不使用人臉對齊的簡單版本options/train_gfpgan_v1_simple.yml。
最后,就可以開始訓練了。
python -m torch.distributed.launch —nproc_per_node=4 —master_port=22021 gfpgan/train.py -opt options/train_gfpgan_v1.yml —launcher pytorch此外,官方還有兩則提醒。
第一,輸入更多高質量的人臉圖像,可以提高修復的效果。
第二,訓練中可能需要進行一些圖像預處理,比如美顏。
如果你選擇訓練V1.2版本,官方還給出了微調指南:
GFPGAN V1.2采用了clean架構,更加方便部署;它是從一個雙線性模型轉換而來,因此需要對其原有模型微調,然后再進行轉換。
Demo試玩
除了開源代碼,官方也早已開通了多個線上試玩通道。
在這里,我們用HuggingFace來給大家展示具體效果。
先來看看修復后的蒙娜麗莎女士,不僅面部的噪點都被去掉了,甚至連頭發(fā)上的紗巾都清晰可見。
修復的愛因斯坦,笑起來時臉上的褶皺更加明顯,頭發(fā)絲、胡茬也都被還原了出來。
最后再來看看修復后的青年馬化騰,這照片清晰地仿佛像昨天才拍出來一樣。
盲臉修復+大量先驗信息
GFPGAN能夠快速、高清地修復各種人臉圖像,主要是應用了盲臉修復 (blind face restoration)。
傳統人臉修復方法主要針對同一場景下、特定退化的人臉圖像修復。
比如此前一些人臉修復方法,會把奧巴馬的照片還原為白人面孔。這背后除了數據集存在偏差,還可能是算法沒有為每張人臉特征性建模。
盲臉修復就很好解決了這一弊端,它是指當點擴展函數未知或不確知的情況下,從低質的待修復人臉圖像恢復出清晰、高質的目標人臉圖像的過程。
本質上是一種非匹配性的人臉修復方法。
不過此前的一些盲臉修復方法在細節(jié)上表現不好,由此作者在GFPGAN中引入豐富的先驗信息,從而來保證高質量的輸出效果。
具體來看,在GFP-GAN的模型框架中,主要用到了一個退化清除模塊和一個預訓練的GAN作為先驗。
兩個模塊通過隱編碼映射和多個信道分割空間特征變化層(CS-SFT)連接。
訓練過程中,首先要對低質量人臉進行降噪等粗處理,然后保留面部信息。
在保真度方面,研究人員引入了一個面部損失( Facial Component Loss),判斷哪些細節(jié)需要提升保留,然后再用識別保留損失(Identity Preserving Loss)進行修復。
團隊介紹
本文論文一作是Xintao Wang,他是騰訊 ARC 實驗室(深圳應用研究中心)的研究員。
本科畢業(yè)于浙江大學,博士畢業(yè)于香港中文大學。
其博士期間師從湯曉鷗教授和Chen Change Loy教授。
研究方向為計算機視覺和深度學習,尤其關注圖像、視頻修復方面。
GitHub地址:
https://github.com/TencentARC/GFPGAN
論文地址:
https://arxiv.org/abs/2101.04061
試玩地址:
https://huggingface.co/spaces/akhaliq/GFPGAN