玩轉StyleGAN2模型:教你生成動漫人物

2021-01-19 雷鋒網

字幕組雙語原文:玩轉StyleGAN2模型:教你生成動漫人物

英語原文:Generating Anime Characters with StyleGAN2

翻譯:雷鋒字幕組(Icarus、)

生成式對抗網絡生成式對抗網絡(GAN)是一種能夠生成新內容的生成式模型。由於其有趣的應用,如生成合成訓練數據、創造藝術、風格轉換、圖像到圖像的翻譯等,這個話題在機器學習界真的很受歡迎。

GAN架構 [圖片由作者提供]

GAN由2個網絡組成,即生成器和鑑別器。生成器將嘗試生成假樣本,並愚弄鑑別器,使其相信是真實樣本。鑑別器將試圖從真假樣本中檢測出生成的樣本。這個有趣的對抗性概念是由Ian Goodfellow在2014年提出的。已經有很多資源可以用來學習GAN,因此為了避免冗餘,我就不解釋GAN了。

我推薦大家閱讀Joseph Rocca寫的這篇理解GAN的美文。

理解生成式對抗網絡(GANs)

StyleGAN2

英偉達在2018年發表了StyleGAN論文《A Style-Based Architecture for GANs》。該論文為GAN提出了一種新的生成器架構,允許他們控制生成樣本的不同細節水平,從粗糙的細節(如頭部形狀)到更精細的細節(如眼睛顏色)。

StyleGAN還融合了Progressive GAN的思想,即網絡最初在較低解析度(4x4)上進行訓練,穩定後再逐步增加更大的層數。這樣做,訓練時間變得更快,訓練也更穩定。

漸進式增長GAN[來源:薩拉-沃爾夫]

StyleGAN進一步改進了它,增加了一個映射網絡,將輸入向量編碼成一個中間的潛伏空間,w,然後將有單獨的值用來控制不同層次的細節。

StyleGAN生成器架構 [圖片由作者提供]。

為什麼要增加一個映射網絡?

GAN的問題之一是它的糾纏潛碼表示(輸入向量,z)。例如,假設我們有2個維度的潛伏碼,它代表了臉的大小和眼睛的大小。在這種情況下,人臉的大小與眼睛的大小高度糾纏在一起(眼睛越大也就意味著人臉越大)。另一方面,我們可以通過存儲臉部和眼睛的比例來簡化這個問題,這將使我們的模型更簡單,因為無糾纏的表示方式更容易讓模型解釋。

在糾纏表示下,數據分布不一定遵循正態分布,我們希望從那裡抽取輸入向量z的樣本。例如,數據分布會有這樣一個缺角,它代表了眼睛和臉部的比例變得不現實的區域。

[來源:文件]

如果我們從正態分布中對z進行採樣,我們的模型會試圖也生成缺失的區域,其中的比例是不現實的,由於沒有具有這種特徵的訓練數據Is,生成器會生成不良的圖像。因此,映射網絡的目的是拆分潛伏表徵,並扭曲潛伏空間,使其能夠從正態分布中採樣。

[來源:文件]

此外,在每個層次上有單獨的輸入向量w,允許生成器控制不同層次的視覺特徵。前幾層(4x4,8x8)將控制更高級別的細節,如頭型、姿勢和髮型。最後幾層(512x512,1024x1024)將控制更精細的細節,如頭髮和眼睛的顏色。

粗層次細節的變化(頭型、髮型、姿勢、眼鏡)[來源:文件]

細部細節的變化(發色)[來源:文件]

關於StyleGAN架構的完整細節,我推薦大家閱讀NVIDIA官方關於他們實現的論文。下面是論文本身的完整架構圖示。

[來源:基於風格的全球行動網文件架構]

隨機變化

StyleGAN還允許你通過在各自的圖層上給予噪聲來控制不同層次的細節的隨機變化。隨機變化是圖像上的小隨機性,不會改變我們的感知或圖像的身份,如不同的梳理的頭髮,不同的頭髮位置等。你可以在下面的動畫圖像中看到變化的效果。

粗隨機變化[來源:論文]

精細隨機變化[來源:論文]

StyleGAN還做了一些其他的改進,我在這些文章中就不一一介紹了,比如AdaIN的規範化和其他常規化。你可以閱讀官方論文,Jonathan Hui的這篇文章,或者Rani Horev的這篇文章來代替閱讀進一步的細節。

截斷技巧

當訓練樣本中存在代表性不足的數據時,生成器可能無法學習樣本,生成效果不佳。為了避免這種情況,StyleGAN使用了一個 "截斷技巧",通過截斷中間的潛伏向量w,迫使其接近平均值。

?(psi)是閾值,用來截斷和重新採樣高於閾值的潛向量。因此,如果使用更高的?,你可以在生成的圖像上獲得更高的多樣性,但它也有更高的機會生成奇怪或破碎的面孔。對於這個網絡來說,?的值在0.5到0.7之間,根據Gwern的說法,似乎可以得到一個具有足夠多樣性的好圖像。雖然,可以隨意試驗一下閾值。

用0.3磅/平方英寸(左)與0.7磅/平方英寸(中)與1.3磅/平方英寸(右)生成的3x3網格圖像。

生成動漫人物

我將使用Aaron Gokaslan預先訓練好的Anime StyleGAN2,這樣我們就可以直接加載模型並生成動漫臉。所以,打開你的Jupyter筆記本或Google Colab,讓我們開始編碼吧。

註:如果你有困難,可以參考我的Colab筆記本。

所以首先,我們應該克隆styleGAN repo。

如果你使用的是 Google Colab,你可以在命令前加上'!'來作為命令運行。!"git clone https://github.com/NVlabs/stylegan2.git

接下來,我們需要下載預訓練的權重並加載模型。當你使用Google Colab時,請確保你是在GPU運行時運行,因為模型被配置為使用GPU。

這段代碼是從這個筆記本上修改而來的。

現在,我們需要生成隨機向量z,作為生成器的輸入。讓我們創建一個函數,從給定的種子中生成潛伏代碼z。

然後,我們可以創建一個函數,將生成的隨機向量z,生成圖像。

現在,我們可以嘗試生成一些圖像,看看結果。

該函數將返回一個PIL.Image的數組。在Google Colab中,你可以直接通過列印變量來顯示圖像。這裡是第一張生成的圖片。

圖片由作者提供

讓我們用圖片的網格來顯示,這樣我們就可以同時看到多張圖片。

然後我們可以將生成的圖像顯示在3x3網格中。

圖片由作者提供

GAN的一個好處是,GAN有一個平滑和連續的潛伏空間,而不像VAE(Variational Auto Encoder)有間隙。因此,當你在潛伏空間中取兩個點,將產生兩個不同的面,你可以通過在兩個點之間取一個線性路徑來創建兩個面的過渡或插值。

潛在空間的插值[來源:Joseph Rocca]

讓我們在代碼中實現這一點,並創建一個函數來在z向量的兩個值之間進行插值。

讓我們看看插值結果。你可以看到,第一幅圖像逐漸過渡到第二幅圖像。

圖片由作者提供

現在我們已經完成了插值工作。我們終於可以嘗試製作上面縮略圖中的插值動畫了。我們將使用moviepy庫來創建視頻或GIF文件。

當你運行這段代碼時,它會生成一個插值的GIF動畫。你還可以使用頂部的變量修改持續時間、網格大小或fps。

生成的StyleGAN2插值GIF [圖片由作者提供]。

如果你做到了這一步,恭喜你! 你已經使用StyleGAN2生成了動畫面孔,並學會了GAN和StyleGAN架構的基礎知識。

下一步是什麼?

現在我們已經完成了,你還可以做什麼,進一步改進呢?以下是你可以做的幾件事。

其他數據集

顯然,StyleGAN並不局限於動漫數據集,還有很多可用的預訓練數據集,你可以盡情玩耍,比如真實的臉部圖像、貓咪、藝術和繪畫。請查看這個GitHub repo,了解可用的預訓練權重。另一方面,你也可以用自己選擇的數據集來訓練StyleGAN。

有條件的GAN

目前,我們無法真正控制我們想要生成的特徵,如頭髮的顏色,眼睛的顏色,髮型和配件。條件GAN允許你在輸入向量z旁邊給出一個標籤,從而將生成的圖像調節成我們想要的樣子。另外,你也可以嘗試通過回歸或手動來理解潛伏空間。如果你想往這個方向走,Snow Halcy repo也許能幫到你,因為他已經做了,甚至在這個Jupyter筆記本上做了互動。

鳴謝

我要感謝Gwern Branwen的大量文章和關於用StyleGAN生成動漫面孔的解釋,我在文章中強烈提到了這一點。我完全推薦你訪問他的網站,因為他的著作是一個知識的寶庫。此外,還可以去ThisWaifuDoesNotExists網站看看,那裡有StyleGAN模型生成動漫臉譜和GPT模型生成動漫情節。

雷鋒字幕組是一個由AI愛好者組成的翻譯團隊,匯聚五五多位志願者的力量,分享最新的海外AI資訊,交流關於人工智慧技術領域的行業轉變與技術創新的見解。

團隊成員有大數據專家,算法工程師,圖像處理工程師,產品經理,產品運營,IT諮詢人,在校師生;志願者們來自IBM,AVL,Adobe,阿里,百度等知名企業,北大,清華,港大,中科院,南卡羅萊納大學,早稻田大學等海內外高校研究所。

如果,你也是位熱愛分享的AI愛好者。歡迎與雷鋒字幕組一起,學習新知,分享成長。

相關焦點

  • 想用StyleGAN生成老婆?來看看這個小哥的復現細節吧
    在本文中,他編寫了一個可視化工具用於觀察 StyleGAN 模型中的特徵圖,對理解該模型起到了巨大作用。圖 1:修改單一位置的空間特徵圖以生成動漫人物「寫在前面」這篇技術博客介紹了一個使用生成式對抗網絡完成的項目。由於這是一個個人項目,我採用了一個在專業領域中通常不會使用的動漫人物數據集「DANBOORU2018」。
  • 看GAN如何一步步控制圖像生成風格?詳解StyleGAN進化過程
    選自Medium作者:Jonathan Hui機器之心編譯參與:魔王、杜偉GAN 能夠有條不紊地控制其生成圖像的風格嗎?你了解自己的風格嗎?大部分 GAN 模型並不了解。那麼,GAN 能夠有條不紊地控制其生成圖像的風格嗎?
  • StyleGAN2玩出新高度!從華盛頓到川普,無縫切換生成美國總統
    從華盛頓到川普,無縫切換一鏡到底作者完成的這個項目使用了 StyleGAN2 & face aligner來生成美國歷任的總統圖片。StyleGAN2將生成一個細緻的看起來真實的方形人臉圖像,並使用優化算法探索潛在的空間,以便找到一個給定類型的現實生活中的例子的準確表示。艾森豪到甘迺迪的切換也是非常流暢和逼真,「髮際線的變化也十分的感人」。
  • 簡單教你怎麼畫動漫人物的眼睛
    今天和大家一起學習一下:如何簡單去畫動漫人物的眼睛。喜歡動漫的們都很喜歡畫動漫人物的眼睛。與現實的眼睛相比,漫畫的眼睛有其獨特之處,它們可以傳達出人物的個性。在開始動筆練習之呢,我們先來學習一下眼睛的繪畫結構。(見下圖)以上就是眼睛的繪畫結構了,除了雙眼皮之外呢,基本上都是在畫眼睛時的必要部分以及該注意的事項。
  • 教你動漫人物手握火焰畫法教程!
    1、在不同的圖層上繪製任何圖形(水彩-100%)    2、在火焰中添加一些調整,並添加一些顏色變化。    以上就是靈貓課堂為大家從網絡上整理分享的教程啦,主要是教大家手握火焰的畫法教程!
  • 學好遊戲建模,你也可以自己做遊戲裡的人物和場景模型
    不過呢,現實實現不了,但在3d世界裡你可以實現了啊。你想啊,由你親手創造出來的人物武功了得,英俊瀟灑,想怎麼設計就怎麼設計,按照自己的想法,是不是更加牛逼?你知道一個酷酷的小姐姐是怎麼做出來的?兩步:建模,貼圖01什麼是建模,通俗易懂來說就是,把2D平面的東西3D立體化,把一個東西立體化之後,你就可以三百六十度旋轉觀察。這樣做出來的東西,我們稱之為模型。像王者榮耀、LOL、吃雞裡面的人物和場景就是用這個做的。
  • 動漫裡奇葩的轉生,轉生成史萊姆不算什麼,他轉生成一條狗!
    轉生成幼女本來生於現代的上班族,因為不相信神,因此你被神降下來懲罰,把他送到了一個戰亂年代,而來到這個戰亂年代後,男主發現一個奇葩的事情,那就是他轉生成了幼女。想想當初,他可是正宗的直男,但如今變成了一個說話幼稚的幼女,這轉生真的是相當奇葩啊。因此男主經常詛咒神,這一切都是神造成的!
  • DK新作教你輕鬆玩轉乘法
    比如孩子知道」7×8=56「,當你反過來問他」8×7=?」時,他可能就懵了。這就是典型的不理解,死記硬背「乘法口訣」的表現。孩子需要運用自己的方式來鞏固對數學概念的基礎性理解,而非單純記憶。就像教孩子學乘法,要先保證孩子理解加法的概念,然後循序漸進,而不是給孩子一張「九九乘法表」,讓他強行記憶就能學會。
  • 初學者怎麼畫動漫男生?這裡有教你畫動漫人物的步驟圖,很實用
    有不少畫友很喜歡用鉛筆畫動漫人物,可是對於初學者而言畫動漫人物還是有一定的難度的,以前愛畫君為大家分享過很多動漫人物畫法步驟,今天給大家看一下怎麼用鉛筆畫動漫男生,想學的趕緊拿起筆畫起來哦。其實畫動漫男生的頭部,其實有一定的方法和技巧的,以前愛畫君也為大家分享過動漫女生的頭部畫法跟這個是一樣的,畫友在畫的時候要找對點線面,下面是頭部畫法步驟圖。男人的頭部該怎麼畫呢?對於初學者而言剛開始畫的時候可能會很困難,這就需要大家多多練習了。有的畫友問愛畫君動漫人物的側臉怎麼畫啊?這部愛畫君為畫友整理出動漫人物側臉的畫法啦,大家可以一起來看下。
  • 馬克筆動漫人物手繪插畫作品,喜歡畫動漫人物的這組圖很實用
    現在很多畫畫的人還是很喜歡用馬克筆來畫的,馬克筆畫出來人物真的是很好看呢,顏色上比較的鮮豔,根據自己想畫的動漫人物來配色也比較簡單,愛畫君給大家帶來一些動漫人物手繪插畫,你們看看喜歡不喜歡。第一組分享的是畫師的手繪插畫作品圖,畫的是動漫男生顏色塗的還是很不錯的,喜歡畫動漫人物的可以用這組圖當作參考。(作者:karui_ix)接著給大家分享的這組圖還是有很多畫友比較喜歡的,這組圖畫的都是可愛的動漫美少女,色調上真的是很不錯,有一種朦朧的美感。
  • SaaS「全能王」快用雲商問世:10分鐘即可生成多平臺商城帶你玩轉...
    (原標題:SaaS「全能王」快用雲商問世:10分鐘即可生成多平臺商城帶你玩轉移動新零售)
  • 【流體】| 手把手教你ANSYS CFX仿真多相流VOF模型-以水池排水為例
    1、導入網格請參考前面老曾的文章《【流體】| 手把手教你如何用ANSYS CFX仿真流場,以混合器示例 》。本模擬是水在重力條件下自行流出,所以需要開啟浮力模型。選擇buoyant模型,重量方向設置為-Z方向。參考密度設置為密度較小的空氣的密度1.185 Kg/m3。
  • 變形金剛動漫人物:XM版本重甲機器恐龍首領-鋼鎖
    此雕塑模型中的鋼鎖並不能完成一個變形轉換為機器霸王龍的形象改變,但是部分關節如肩膀、手臂和頭部以及局部幾個小細節,可以在一定的範圍內實現活動或轉動,主要是為這一形象姿態擺放的需要。變形金剛動漫人物:再造狂派霸天虎城市列車-大火車
  • 《圍城》中的絕妙語言,看錢鍾書教我們玩轉比喻
    《圍城》中的絕妙語言,看錢鍾書教我們玩轉比喻《圍城》是錢鍾書先生的經典之作,被譽為「新儒林外史」。這部小說也是錢鍾書唯一一部長篇小說,被翻譯成20多種文字,堪稱中國文學的瑰寶。據說未稱重的比喻有六百多處,下面就一起來看一下錢鍾書先生是如何玩轉比喻的。其一,豐富的比喻。比喻通常可以使人的言語描述更加形象。「方鴻漸給鮑小姐一眼看的自尊心像洩盡氣的橡皮車胎。」輪胎洩氣之後是扁扁的,這裡將方鴻漸的自尊心比作輪胎,簡單又直觀。「她手上生的五根香腸,靈敏得很。」
  • 變形金剛動漫人物:跨界出現的漫威超級英雄飛行器 X-Spanse
    X-MEN改版之後的漫畫中造型Ultimate X-Spanse包括兩個X戰警劇情中的角色:金剛狼和超級反派劍齒虎 Sabretooth人物模型,還包含一組能量爆炸效果的造型,一個可以附著在兩隻手上的能量利爪,以及一個可以在金剛狼人物模型上附著的基於Psylocke的能量光環。
  • 這些動漫人物剪影你能猜出是誰嗎?只有真正的動漫迷能全猜出來哦
    大部分動漫中的角色,想必大家都能快速的認出來,但是如果動漫中的經典人物變成了剪影,你還能猜出是誰嗎?聽說只有真正的動漫迷才能全猜出來哦!第八個小編無能為力,猜不出來,你能認出嗎?你能認出這個經典的人物嗎?剪影二這位的剪影最有特點的應該是頭髮了,雖然看著頭髮下方應該是一縷縷的頭髮,但是整體看頭型卻有點像水蜜桃。話說,他身前橫著的帶絲帶狀物體的木棍是什麼東西呢?這個是來自「三大漫」中人物哦,你能猜出來嗎?剪影三這一位也是經典動漫中的人物哦。看剪影的特點,想必都會讓其奇怪的頭所吸引吧,有點像懶洋洋頭上的不明物體。
  • 教你一招 | MindMaster助你玩轉思維導圖
    (掃碼登錄網站)2.選擇模板並創建在電腦端安裝好MindMaster軟體後,打開軟體界面選擇登錄,能夠對相關的思維導圖進行保存和重新編輯。在軟體的界面當中,使用者可以依據自己想要設計的思維導圖選擇相關的模板,進而進行設計和分析。
  • 動漫學習第十課《人物身體比例畫法》
    2、動漫人物頭身比例在畫動漫人物時,我們為了將人物比例畫準確,我們以人物的頭部作為參照物,這就是人物頭身比例,通過頭身比例我們可以看到不同年齡階段的人物,例如兩頭身的孩童,五六頭身的成人等!在動漫中,頭身比例往往也代表著不同的繪畫風格,就像扣版人物通常在三頭身以下。
  • 徐報融媒公益動漫出爐,著名卡通人物阿U帶你「抗疫」
    徐報融媒公益動漫出爐,著名卡通人物阿U帶你「抗疫」 2020-02-02 11:08 來源:澎湃新聞·澎湃號·媒體
  • 聯想觸控大百科 教你玩轉YOGA快捷鍵
    教你玩轉YOGA快捷鍵    說到鍵盤錄入方式,不得不提到大家經常使用到的快捷鍵。