池源
還記得去年給大家介紹過(guò)的GANs嗎?是 Generative Adversarial Networks 的縮寫(xiě),即“生成式對(duì)抗網(wǎng)絡(luò)”,有點(diǎn)拗口。這是一種深度學(xué)習(xí) (deep learning) 的模型,如果大家記不清了,我來(lái)通俗解釋一下。GANs主要是由兩個(gè)CNN所組合而成的神經(jīng)網(wǎng)絡(luò),其中有兩個(gè)組件,Generator與Discriminator。GAN就像是一個(gè)問(wèn)答系統(tǒng),是使用警察跟罪犯的關(guān)系作為類(lèi)比。故事當(dāng)中,罪犯不斷制造假鈔來(lái)欺騙警察的眼睛,每被識(shí)破一次,就會(huì)重新調(diào)整制造假鈔的技術(shù),久而久之,就有辦法生成欺騙警察法眼的能力。
在 GANs 里面,有兩個(gè)天天對(duì)著干的神經(jīng)網(wǎng)絡(luò),一個(gè)努力生成逼真的假貨,一個(gè)努力鑒別假貨,通過(guò)不斷地學(xué)習(xí)和對(duì)抗,它們就能生成極其真實(shí)的假貨,非常奇妙。總之,GANs的出現(xiàn)那叫一個(gè)驚為天人。因?yàn)樗梢詿o(wú)中生有,創(chuàng)造出世界上不存在,但又極為真實(shí)的人臉。
沒(méi)錯(cuò),上面這些臉全都是 GANs 生成的
GANs被運(yùn)用到圖像增強(qiáng)領(lǐng)域,進(jìn)而名聲大噪。因?yàn)樗軐?shí)現(xiàn)一項(xiàng)我們以前不敢奢求的功能——去馬賽克。就拿2018年大火的軟件DeepCreamPy來(lái)說(shuō)吧,它就是利用GANs來(lái)實(shí)現(xiàn)去碼的。
這張圖片,用綠色畫(huà)筆涂上了碼。拿DeepCreamPy操作一番后,馬賽克神奇地消失了
這圖的解析度夠渣了吧,甚至可以直接數(shù)出它的解析度為16×16
經(jīng)過(guò)PULSE一處理,簡(jiǎn)直不要太清晰,放大頭發(fā)部分看看細(xì)節(jié),明明只有幾個(gè)像素格,它硬是還原成了絲縷分明的秀發(fā)
GANs效果大概是這樣,橫向?qū)Ρ纫幌?,效果的確不錯(cuò)。但肯定會(huì)有機(jī)友要說(shuō):就這水平?確實(shí),這張卡通圖片,去碼難度并不算高,能實(shí)現(xiàn)這樣的效果也不算啥。別急,時(shí)代在發(fā)展,技術(shù)在進(jìn)步。上個(gè)月,杜克大學(xué)推出了一款圖像增強(qiáng)工具,又一次勾起了筆者燥熱的心。這款工具叫PULSE,不扯虛的,PULSE能實(shí)打?qū)嵉匕阎卮a圖,處理成高畫(huà)質(zhì)大圖。
一張低解析度圖
學(xué)習(xí)之后,找出相似度最高的,把對(duì)應(yīng)的高畫(huà)質(zhì)圖進(jìn)行輸出
看了這些去碼作品,這真的不是魔法嗎?很久以前,我們要提高一張圖片的解析度,往往是利用插值法,在低解析度的圖片中填充像素。就比如PS的改變圖像大小,后來(lái)有了GANs,雖然也是填充像素,但憑借機(jī)器學(xué)習(xí),填充的方法變得更高級(jí),更像是AI在憑經(jīng)驗(yàn):“猜”。但總的來(lái)說(shuō),以上方法去碼效果有限。而杜克大學(xué)的PULSE思路就很巧妙了,它選擇反其道而行。
AI并不急著去填充低解析度圖片,而是把自己以前GANs出來(lái)的高畫(huà)質(zhì)圖,壓縮成低解析度和你給的圖片對(duì)比。如果你不理解的話,我們?cè)俅蛞粋€(gè)通俗的比方。物理考試中,有一道填空題,需要補(bǔ)全一個(gè)公式,你如果去推導(dǎo)E和C的關(guān)系,估計(jì)這輩子都填不出正確答案。
但是換種思路,在腦海中回憶背過(guò)的公式,其中含有E和C,且跟它長(zhǎng)得像的……不就是愛(ài)因斯坦質(zhì)能方程嘛(質(zhì)能方程E=mc,E表示能量,m代表質(zhì)量,而c則表示光速,該方程主要用來(lái)解釋核變反應(yīng)中的質(zhì)量虧損和計(jì)算高能物理中粒子的能量)!明白了吧,直接推導(dǎo)就像是去碼演算法中的老方法,而從回憶中找相似,就類(lèi)似于杜克大學(xué)的PULSE。
電影藝術(shù)也可以用上這種技術(shù),哪里還需要花錢(qián)請(qǐng)演員,費(fèi)勁地布景、表演、拍攝,直接做個(gè)粗糙的腳本,剩下交給AI
當(dāng)然,AI的實(shí)際能力也并非完美,牛氣沖天的PULSE剛公布沒(méi)多久,就被網(wǎng)友們發(fā)現(xiàn)了問(wèn)題。有網(wǎng)友拿出身邊朋友的照片,手動(dòng)壓縮了一番,然后把它放進(jìn)PULSE里,輸出的結(jié)果,讓人始料未及,出來(lái)的這個(gè)面孔,雖然是張很真實(shí)的臉,但跟本尊大相徑庭。更坑爹的是,本尊本來(lái)是個(gè)黑人,卻被AI硬生生還原成了白人。緊接著,又有網(wǎng)友發(fā)現(xiàn)不僅是黑人,用亞洲面孔去測(cè)試,輸出的結(jié)果也會(huì)變成白人。
左為輸入圖,右為PULSE處理后的結(jié)果
由于圖庫(kù)沒(méi)有匹配,馬里奧的AI輸出簡(jiǎn)直不忍目睹
AI這一搞果然引起軒然大波。很多人出來(lái)批評(píng),認(rèn)為AI存在偏見(jiàn),或者圖片庫(kù)比對(duì)完全無(wú)法和顯示接軌,一時(shí)之間罵聲四起。其實(shí),PULSE會(huì)出現(xiàn)這樣的結(jié)果,原因不難猜測(cè)。PULSE基于英偉達(dá)的 StyleGAN,而 StyleGAN 所使用的 FlickFaceHQ 資料集當(dāng)中大部分都是白人面孔。
它就像一個(gè)從小只見(jiàn)過(guò)白人的小朋友,當(dāng)然會(huì)以為全世界的人都是白人。與其說(shuō)是偏見(jiàn),倒不如講是認(rèn)知局限。隨著演算法的精進(jìn),資料集日漸豐富,AI 的認(rèn)知局限肯定會(huì)越來(lái)越少。除此之外,PULSE犯的錯(cuò)誤還不止搞錯(cuò)人種,網(wǎng)友們還拿卡通形象試了試,比如游戲 Wolfenstein 中的卡通像素臉。
PULSE并沒(méi)有把它變成卡通高畫(huà)質(zhì)大圖,而是用補(bǔ)真實(shí)人臉的方式,輸出了一張不倫不類(lèi)的奇怪臉。Minecraft 當(dāng)中的像素角色,有同樣的遭遇,也就是說(shuō),現(xiàn)階段的AI補(bǔ)臉,雖然看起來(lái)像模像樣,但本質(zhì)上還是瞎補(bǔ)的,它根本無(wú)法還原圖片原本的細(xì)節(jié)。所以,如果是警察辦案,真的采用PULSE處理的照片來(lái)確定嫌犯,八成會(huì)抓錯(cuò)人。AI還需要更聰明,才能應(yīng)對(duì)這個(gè)復(fù)雜的人類(lèi)世界里千奇百怪的問(wèn)題啊。