擴散模型生成帶漢字圖像,一鍵輸出表情包:OPPO等提出GlyphDraw
近來,文本生成圖像領域取得了很多意想不到的突破,很多模型都可以實現基于文本指令創建高質量和多樣化圖像的功能。雖然生成的圖像已經很逼真,但當前模型往往善于生成風景、物體等實物圖像,但很難生成帶有高度連貫細節的圖像,例如帶有漢字等復雜字形文本的圖像。
為了解決這個問題,來自 OPPO 等機構的研究者們提出了一個通用學習框架 GlyphDraw,旨在讓模型能夠生成嵌入連貫文本的圖像,這是圖像合成領域首個解決漢字生成問題的工作。
- 論文地址:https://arxiv.org/abs/2303.17870
- 項目主頁:https://1073521013.github.io/glyph-draw.github.io/
我們先來看一下生成效果,例如為展覽館生成警示標語:
生成廣告牌:
為圖片配上簡要的文本說明,文字樣式也可多樣化:
還有,最有趣也最實用的例子是生成表情包:
雖然結果存在一些瑕疵,但是整體生成效果已經很好了。總體來說,該研究的主要貢獻包括:
- 該研究提出了首個漢字圖像生成框架 GlyphDraw,其中利用一些輔助信息,包括漢字字形和位置在整個生成過程中提供細粒度指導,從而使漢字圖像高質量無縫嵌入到圖像中;
- 該研究提出了一種有效的訓練策略,限制了預訓練模型中可訓練參數的數量,以防止過擬合和災難性遺忘(catastrophic forgetting),有效地保持了模型強大的開放域生成性能,同時實現了準確的漢字圖像生成。
- 該研究介紹了訓練數據集的構建過程,并提出了一個新的基準來使用 OCR 模型評估漢字圖像生成質量。其中,GlyphDraw 獲得了 75% 的生成準確率,明顯優于以前的圖像合成方法。
模型介紹
該研究首先設計了復雜的圖像 - 文本數據集構建策略,然后基于開源圖像合成算法 Stable Diffusion 提出了通用學習框架 GlyphDraw,如下圖 2 所示。
Stable Diffusion 的整體訓練目標可以表示為如下公式:
GlyphDraw 基于 Stable Diffusion 中的交叉注意力機制,原始輸入潛在向量 z_t 被圖像潛在向量的 z_t、文本掩碼 l_m 和字形圖像 l_g 的級聯替代。
此外,通過使用特定領域的融合模塊,條件 C 配備了混合字形和文本特征。文本掩碼和字形信息的引入,讓整個訓練過程實現了細粒度的擴散控制,是提高模型性能的關鍵組成部分,最終得以生成帶有漢字文本的圖像。
具體來說,文本信息的像素表征,特別是象形漢字這種復雜的文本形式,與自然物體有明顯的不同。例如,中文詞語「天空(sky)」是由二維結構的多個筆畫組成,而其對應的自然圖像是「點綴著白云的藍天」。相比之下,漢字有非常細粒度的特性,甚至是微小的移動或變形都會導致不正確的文本渲染,從而無法實現圖像生成。
在自然圖像背景中嵌入字符還需要考慮一個關鍵問題,那就是在避免影響相鄰自然圖像像素的同時,還要精確地控制文本像素的生成。為了在自然圖像上呈現完美的漢字,作者精心設計了兩個集成到擴散合成模型中的關鍵組件,即位置控制和字形控制。
與其他模型的全局條件輸入不同,字符生成需要更多地關注圖像的特定局部區域,因為字符像素的潛在特征分布與自然圖像像素的潛在特征分布有很大差異。為了防止模型學習崩潰,該研究創新性地提出了細粒度位置區域控制來解耦不同區域之間的分布。
除了位置控制,另一個重要的問題是漢字筆畫合成的精細控制。考慮到漢字的復雜性和多樣性,在沒有任何明確先驗知識的情況下,僅僅只是從大量的圖像 - 文本數據集中學習是極其困難的。為了準確地生成漢字,該研究將顯式字形圖像作為額外的條件信息納入模型擴散過程。
實驗及結果
由于此前沒有專門用于漢字圖像生成的數據集,該研究首先構建了一個用于定性和定量評估的基準數據集 ChineseDrawText,然后在 ChineseDrawText 上測試比較了幾種方法的生成準確率(由 OCR 識別模型評估)。
該研究提出的 GlyphDraw 模型通過有效地使用輔助字形和位置信息達到了 75% 的平均準確率,從而證明了該模型出色的字符圖像生成能力。幾種方法的可視化比較結果如下圖所示:
此外,GlyphDraw 還可以通過限制訓練參數來保持開放域圖像合成性能,在 MS-COCO FID-10k 上一般圖像合成的 FID 僅下降了 2.3。
感興趣的讀者可以閱讀論文原文,了解更多研究細節。