BAIR提出MC-GAN,使用GAN實現字體風格遷移

2020-12-22 機器之心Pro

選自BAIR

作者:Samaneh Azadi

機器之心編譯

參與:Nurhachu Null、路

近日,BAIR 發布博客提出 MC-GAN(Multi-Content GAN),可以快速生成相同風格的字體。

左圖:已有的一張電影海報;右圖:使用 MC-GAN 生成的新電影名稱。

文本是二維設計中的一個顯著視覺元素。藝術家投入了大量時間設計在視覺上與其他元素的形狀和紋理相兼容的字形。這個過程需要大量勞動,藝術家們通常只設計標題或注釋所必需的字形子集,這使得設計完成後文本很難更改,或者很難把看到的字體實例遷移到自己的項目中。

早期字形合成研究集中在輪廓的幾何建模上,局限於特定的字形拓撲上(例如,不能應用到裝飾字體或者手寫體),並且不能與圖像輸入一起使用。隨著深度神經網絡的興起,研究者研究了從圖像進行字形建模的問題。另一方面,合成與局部觀察相一致的數據在計算機視覺和圖形學中是一個有趣的問題,例如,多視角圖像生成、補全圖像中的缺失區域,以及三維形狀的生成。字體數據是一個典型的例子,它提供了文字樣式和內容的清晰分解。

條件生成對抗網絡(cGANS)[1] 的最新進展在許多生成應用中取得了成功。然而,它們只有在相當特定的領域中才能發揮最佳效果,無法適應通用領域或多領域遷移。類似地,當被直接用來生成字體時,cGAN 模型會生成嚴重的失真。例如,給定下面五個字母:

條件生成對抗網絡模型無法以同一種風格生成 26 個字母:

用於 Few Shot 字體風格遷移的多內容生成對抗網絡

我們設計了多內容 GAN 架構 [2] 來為每個觀察到的字符集(只具備少量觀察到的字形)重新訓練定製的魔法網絡,而不是為所有可能的字體裝飾訓練單個網絡。該模型考慮沿著信道的內容(即 A-Z 字形)和沿著網絡層的樣式(即字形裝飾),將給定字形的樣式遷移到模型未見過的字形的內容。

多內容 GAN 模型包括用於預測粗糙字形形狀的堆疊 cGAN 架構和用於預測最終字形顏色和紋理的裝飾網絡(ornamentation network)。第一個網絡稱為 GlyphNet,用於預測字形掩碼;第二個網絡稱為 OrnaNet,用於微調從第一個網絡生成字形的顏色和裝飾。每個子網絡遵循條件生成對抗網絡(cGAN)的結構,並修改該結構以達到使字形風格化或裝飾預測的特定目的。

網絡架構

下面是 GlyphNet 示意圖,它從一組訓練字體中學習字體流形的一般形狀。GlyphNet 的輸入和輸出是字形的堆棧,其中每個字母分配有一個通道。在每個訓練迭代中,x_1 包含一個由 y_1 字形組成的隨機子集,剩餘輸入通道被清零。

通過這種新穎的字形堆棧設計,跨網絡信道學習不同字形之間的相關性得以實現,並實現風格自動遷移。下圖通過結構類似性(SSIM)指標在包含 1500 個字體樣例的隨機集合上展示了這種相關性。計算每個生成字形與其真實字形之間的結構相似性時,當一次觀察到一個字母時,共發現了 25 種分布。這些曲線圖顯示了當觀察到字母 β(藍色)時生成字母 α 的分布 α|β 與當給出除 β 以外的任何其它字母(紅色)時生成字母 α 的分布 α|β。在生成 26 個字母中的每一個字母時,兩個信息量最大的給定字母和兩個信息量最少的給定字母的分布如圖所示。例如,從圖的第五行來看,與其他字母相比,字母 F 和 B 在生成字母 E 方面是最有信息貢獻的,而 I 和 W 是信息最少的。其他例子中,O 和 C 是構造 G 的最具指導性的字母,R 和 B 是生成 P 的最具指導性的字母。

因此,對於任何僅有幾個觀察字母的期望字體,預訓練的 GlyphNet 要生成全部的 26 個 A-Z 字形。但是我們應該如何遷移裝飾呢?第二個網絡 OrnaNet 採用這些生成的字形,在簡單的整形變換(reshape transformation)和灰度信道重複之後(在下圖中用 T 表示),使用條件 GAN 架構生成具備期望顏色和裝飾的輸出。OrnaNet 的輸入和輸出是批量的 RGB 圖像,而不是堆棧(其中每個字母的 RGB 信道是其對應的灰度字形的重複)。OrnaNet 中的多個正則化器會懲罰風格化字母掩膜與其對應字形形狀的偏差。

結果

下面,我們將使用單個單詞給出的字體樣式演示例句。

此外,以下是 OrnaNet 預測的逐步改進:

參考資料

[1] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A. Efros. "Image-to-Image Translation with Conditional Adversarial Networks." CVPR 2017.

[2] Samaneh Azadi, Matthew Fisher, Vladimir Kim, Zhaowen Wang, Eli Shechtman, and Trevor Darrell. "Multi-Content GAN for Few-Shot Font Style Transfer." CVPR 2018.

論文連結:https://arxiv.org/abs/1712.00516

GitHub 連結:https://github.com/azadis/MC-GAN

原文連結:http://bair.berkeley.edu/blog/2018/03/13/mcgan/

相關焦點

  • GAN的原理及在來也的應用
    03GAN的應用:圖到圖翻譯、風格遷移圖到圖翻譯可以看做風格遷移的一種實現方式。針對圖像而言,給定圖A和圖B,其中將A作為風格遷移的對象,通過特定算法將B擁有的風格賦予A,如下圖:關於風格遷移的發展,綜述文章Neural Style Transfer: A Review描述的十分具體。
  • 資源 | NIPS 2017 Spotlight論文Bayesian GAN的TensorFlow實現
    來自 Uber AI Lab 的 Yunus Saatchi 等人今年五月提出了 Bayesian GAN——利用一個簡單的貝葉斯公式進行端到端無監督/半監督 GAN 學習。該研究的論文已被列入 NIPS 2017 大會 Spotlight。最近,這篇論文的另一作者 Andrew Gordon Wilson 在 GitHub 上發布了 Bayesian GAN 的 TensorFlow 實現。
  • TF - GAN入門:TensorFlow 2.0 的輕量級 GAN 庫
    具影響力的論文:https://github.com/tensorflow/gan#who-uses-tf-gan今天,各個推出 TF-GAN 的新版本。此版本擁有諸多升級和新功能:Cloud TPU 支持:您現在可以使用 TF-GAN 在 Google 的 Cloud TPU 上訓練 GAN。
  • 訓練GAN,你應該知道的二三事
    GANs 最初由 Ian Goodfellow [1] 於 2014 年提出,目前已經在圖像、語音、文字等方面得到廣泛研究和應用,特別是在圖像生成方面,可謂是遍地開花,例如圖像風格遷移(style transfer)、圖像修復(image inpainting)、超解析度(super resolution)等。
  • 輕鬆構建 PyTorch 生成對抗網絡(GAN)
    本文的課題是用機器學習方法『模仿手寫字體』,為了完成這個課題,您將親手體驗生成對抗網絡的設計和實現。『模仿手寫字體』與人像生成的基本原理和工程流程基本是一致的,雖然它們的複雜性和精度要求有一定差距,但是通過解決『模仿手寫字體』問題,可以為生成對抗網絡的原理和工程實踐打下基礎,進而可以逐步嘗試和探索更加複雜先進的網絡架構和應用場景。《生成對抗網絡》(GAN)由 Ian Goodfellow 等人在 2014年提出,它是一種深度神經網絡架構,由一個生成網絡和一個判別網絡組成。
  • GAN快速入門資料推薦:17種變體的Keras開原始碼,附相關論文
    >深度卷積生成對抗網絡模型是作為無監督學習的一種方法而提出的,GAN在其中是最大似然率技術的一種替代。比如在MNIST數據集上,InfoGAN成功地分別學會了書寫風格和數字的形狀。,是為了解決GAN無監督學習訓練中梯度消失的問題,在鑑別器上使用了最小平方損失函數。
  • 別人家的高中生:入大學前,Ta詳細梳理了GAN的發展脈絡
    Goodfellow 等人 2014 年提出的 GAN 生成的圖像。/wiseodd.github.io/techblog/2016/12/24/conditional-gan-tensorflow/CycleGAN利用 GAN 變體 CycleGAN 進行風格遷移。
  • 能生成Deepfake也能診斷癌症,GAN與惡的距離
    另一方面,我們可以使用樣式遷移。但這只會提取一個特定圖像的風格並將其轉移到另一個圖像,這意味著我們無法轉化一些假設性事物,如將馬轉化為斑馬。然而,CycleGAN會學習從一個圖像域到另一個域的映射。所以我們就說一下所有的莫奈畫作訓練。他們使用的方法非常優雅。
  • 實景照片秒變新海誠風格漫畫:清華大學提出CartoonGAN
    因此,如果有專業技術能夠自動將真實世界的照片轉換為高品質的漫畫風格畫面,對於畫師來說是非常有幫助的一件事:這可以為他們節省大量時間,讓他們專注於更有意義和創造性的工作。風格遷移工具也可以為 Instagram 和 Photoshop 等圖像編輯軟體提供新功能。圖 1. 漫畫風格的一個示例:(a)是真實世界的一個場景,其漫畫形象出現在動畫電影《你的名字。》中。
  • 經典GAN實戰教程:理解並運行自己的GAN生成手寫數字
    通過介入某些GAN unit顯示圖像修改論文提出使用基於分割的網絡剖析方法,允許對generator神經網絡的內部工作進行剖析和可視化。對於文本GAN,Guy Tevet和他的團隊提出使用傳統的基於概率的語言模型度量來評估。本次練習,主要通過網站comet.ml來實現。Comet.ml允許數據科學家和開發人員輕鬆監視、比較和優化其機器學習模型。
  • 教程 | 在Keras上實現GAN:構建消除圖片模糊的應用
    Keras 代碼地址:https://github.com/RaphaelMeudec/deblur-gan此外,請查閱 DeblurGAN 的原始論文(https://arxiv.org/pdf/1711.07064.pdf)及其 Pytorch 版本實現:https://github.com/KupynOrest/DeblurGAN/。
  • 一些fancy的GAN應用
    ,近四年來被AI研究者瘋狂研(guan)究(shui),更有大神建立一個GAN zoo,收集了上百種不同的GAN:https://github.com/hindupuravinash/the-gan-zoo 事實上隨著GAN理論的不斷完善,GAN逐漸展現出了自己非凡的魅力,在一些應用領域開始大放異彩,由此衍生了一些非常fancy的應用。
  • 萬字綜述之生成對抗網絡(GAN)
    翻譯過程中會保持源域圖像內容不變,但是風格或者一些其他屬性變成目標域。 Paired two domain data成對圖像翻譯典型的例子就是 pix2pix,pix2pix 使用成對數據訓練了一個條件 GAN,Loss 包括 GAN 的 loss 和逐像素差 loss。
  • GAN(生成對抗網絡)萬字長文綜述
    利用判別器進行半監督學習 基於 GAN 的半監督學習方法 [12] 提出了一種利用無標籤數據的方法。實現方法和原始 GAN 基本一樣,具體框架如下 [13]:域適應域適應是一個遷移學習裡面的概念。簡單說來,我們定義源數據域分布為 Ds(x,y),目標數據域分布為 DT(x,y)。對於源域數據,我們有許多標籤,但是對於目標域的數據沒有標籤。我們希望能通過源域的有標籤數據和目標域的無標籤數據學習一個模型,在目標域泛化的很好。遷移學習的「遷移」二字指的是源域數據分布向目標域數據分布的遷移。
  • G7 | Create An English Poem Based on Gan Jiang and Mo Ye
    Later gan jiang bought the female swordBut the king asked,「where is the male sword?And instead of 3 month, it takes you three years.
  • 看GAN如何一步步控制圖像生成風格?詳解StyleGAN進化過程
    風格混合與混合正則化之前我們生成潛在因子 z,並作為生成風格的單一源頭。而使用混合正則化後,我們轉而使用另一個潛在因子 z₂,在達到特定空間解析度之後再生成風格。如下圖所示,我們使用生成圖像「source B」的潛在因子得到粗糙空間解析度(4×4 到 8×8)的風格,使用「source A」的潛在因子得到精細空間解析度的風格。因此,生成的圖像具備 source B 的高級風格,如姿勢、髮型、臉型和眼鏡,而生成圖像中的所有顏色(眼睛、頭髮、光線)和更精細的人臉特徵則來自 source A。
  • 簡單易用 TensorFlow 代碼集,GAN通用框架、函數
    使用Optionpadding='SAME'pad_typesnRaloss_funcganlsganhingewganwgan-gpdragangan
  • Amazon全新GAN模型給你全方位無死角美顏
    Amazon One團隊最近提出了一個可以對生成的圖像進行顯式屬性控制的GAN訓練框架,能夠通過設置確切的屬性來控制生成的圖像,如年齡、姿勢、表情等。這篇論文目前已經發布在arxiv上,並且在Google網盤中有相應的補充說明。目前大多數編輯GAN生成的圖像的方法都是通過利用隱空間解構屬性來實現部分控制,這些屬性是在標準GAN訓練後隱式獲得的。
  • 萬字長文解讀GAN:從基本概念、原理到實際應用
    但是和 GAN 不同的是:生成式模型對比1.4 GAN 常見的模型結構1.4.1 DCGANDCGAN 提出使用 CNN 結構來穩定 GAN 的訓練,並使用了以下一些翻譯過程中會保持源域圖像內容不變,但是風格或者一些其他屬性變成目標域。Paired two domain data成對圖像翻譯典型的例子就是 pix2pix,pix2pix 使用成對數據訓練了一個條件 GAN,Loss 包括 GAN 的 loss 和逐像素差 loss。
  • 涵蓋18+ SOTA GAN實現,這個圖像生成領域的PyTorch庫火了
    GAN 自從被提出後,便迅速受到廣泛關注。我們可以將 GAN 分為兩類,一類是無條件下的生成;另一類是基於條件信息的生成。