李顏
還記得這個(gè)能將老照片修復(fù)到纖毫畢現(xiàn)的GFPGAN嗎?現(xiàn)在,它的代碼正式開源了!官方已經(jīng)在GitHub上傳了3個(gè)預(yù)訓(xùn)練模型。其中,V1.3是最近更新的一版,修復(fù)效果更加自然。同時(shí)還能在低質(zhì)量輸入的情況下,輸出高質(zhì)量結(jié)果。自上線以來,GFPGAN已經(jīng)在GitHub上攬星1 7000多,還曾登頂過熱榜第一,更是在推特上引起過一波試玩熱潮。
開源代碼主要分為預(yù)訓(xùn)練和訓(xùn)練2個(gè)部分。預(yù)訓(xùn)練中以GFPGAN的V1.3版本為例,給出了預(yù)訓(xùn)練模型的下載地址,然后,只需一行代碼就能開始預(yù)訓(xùn)練模型推理了。
官方還展示了3種預(yù)訓(xùn)練模型的區(qū)別,與初始版本相比,后2版在修復(fù)精度上有了明顯提升。
V1.2的銳化更明顯,同時(shí)還帶有一些美顏效果,所以在一些情況下會(huì)比較假面。
V1.3明顯解決了這一問題,使得輸出更加自然,還能進(jìn)行二次修復(fù);不過弊端是人物面部特征有時(shí)會(huì)發(fā)生變化。
總之,V1.3并不完全優(yōu)于V1.2,大家可以按需選取合適的模型。
訓(xùn)練部分:首先,數(shù)據(jù)集選用FFHQ;然后,將下載好的預(yù)訓(xùn)練模型其他數(shù)據(jù)放在experiments / pretrained_ models文件夾里。其他數(shù)據(jù)包括:預(yù)訓(xùn)練好的StyleGAN2模型,F(xiàn)FHQ人臉對(duì)齊模型文件和ArcFace模型;
接下來,修改相對(duì)應(yīng)的配置文件options / train_gfpgan_v1. yml。在這里,也可以嘗試不使用人臉對(duì)齊的簡(jiǎn)單版本options/ train_gfpgan_v1_simple.yml;
最后,就可以開始訓(xùn)練了。
此外,官方還有兩則提醒:第一,輸入更多高質(zhì)量的人臉圖像,可以提高修復(fù)的效果;第二,訓(xùn)練中可能需要進(jìn)行一些圖像預(yù)處理,比如美顏。如果選擇訓(xùn)練V1.2版本,官方還給出了微調(diào)指南。
除了開源代碼,官方也早已開通了多個(gè)線上試玩通道,用HuggingFace來給展示修復(fù)后的蒙娜麗莎,不僅面部的噪點(diǎn)都被去掉了,甚至連頭發(fā)上的紗巾都清晰可見。修復(fù)的愛因斯坦,笑起來時(shí)臉上的褶皺更加明顯,頭發(fā)絲、胡茬也都被還原了出來。
GFPGAN能夠快速、高清地修復(fù)各種人臉圖像,主要是應(yīng)用了盲臉修復(fù)(Blind Face Restoration),傳統(tǒng)人臉修復(fù)方法主要針對(duì)同一場(chǎng)景下、特定退化的人臉圖像修復(fù)。比如此前一些人臉修復(fù)方法,會(huì)把Obama照片還原為白人面孔,這背后除了數(shù)據(jù)集存在偏差,還可能是算法沒有為每張人臉特征性建模。
盲臉修復(fù)就很好解決了這一弊端,它是指當(dāng)點(diǎn)擴(kuò)展函數(shù)未知或不確知的情況下,從低質(zhì)的待修復(fù)人臉圖像恢復(fù)出清晰、高質(zhì)的目標(biāo)人臉圖像的過程。
本質(zhì)上是一種非匹配性的人臉修復(fù)方法,不過此前的一些盲臉修復(fù)方法在細(xì)節(jié)上表現(xiàn)不好,由此作者在GFPGAN中引入豐富的先驗(yàn)信息,從而來保證高質(zhì)量的輸出效果。
在保真度方面,研究人員引入了一個(gè)面部損失(Facial Component Loss),判斷哪些細(xì)節(jié)需要提升保留,然后再用識(shí)別保留損失(Identity Preserving Loss)進(jìn)行修復(fù)。