無(wú)懼圖像中的文字,TextDiffuser提供更高質(zhì)量文本渲染
近幾年來(lái),Text-to-Image 領(lǐng)域取得了巨大的進(jìn)展,特別是在 AIGC(Artificial Intelligence Generated Content)的時(shí)代。隨著 DALL-E 模型的興起,學(xué)術(shù)界涌現(xiàn)出越來(lái)越多的 Text-to-Image 模型,例如 Imagen,Stable Diffusion,ControlNet 等模型。然而,盡管 Text-to-Image 領(lǐng)域發(fā)展迅速,現(xiàn)有模型在穩(wěn)定地生成包含文本的圖像方面仍面臨一些挑戰(zhàn)。
嘗試過(guò)現(xiàn)有 sota 文生圖模型可以發(fā)現(xiàn),模型生成的文字部分基本上是不可讀的,類似于亂碼,這非常影響圖像的整體美觀度。
現(xiàn)有 sota 文生圖模型生成的文本信息可讀性較差
經(jīng)過(guò)調(diào)研,學(xué)術(shù)界在這方面的研究較少。事實(shí)上,包含文本的圖像在日常生活中十分常見(jiàn),例如海報(bào)、書(shū)籍封面和路牌等。如果 AI 能夠有效地生成這類圖像,將有助于輔助設(shè)計(jì)師的工作,激發(fā)設(shè)計(jì)靈感,減輕設(shè)計(jì)負(fù)擔(dān)。除此之外,用戶可能只希望修改文生圖模型結(jié)果的文字部分,保留其他非文本區(qū)域的結(jié)果。
因此,研究者希望設(shè)計(jì)一個(gè)全面的模型,既能直接由用戶提供的 prompt 生成圖像,也能接收用戶給定的圖像修改其中的文本。目前該研究工作已被NeurIPS 2023接收。
- 論文地址:https://arxiv.org/abs/2305.10855
- 項(xiàng)目地址:https://jingyechen.github.io/textdiffuser/
- 代碼地址:https://github.com/microsoft/unilm/tree/master/textdiffuser
- Demo地址:https://huggingface.co/spaces/microsoft/TextDiffuser
TextDiffuser 的三個(gè)功能
本文提出了 TextDiffuser 模型,該模型包含兩個(gè)階段,第一階段生成 Layout,第二階段生成圖像。
TextDiffuser框架圖
模型接受一段文本 Prompt,然后根據(jù) Prompt 中的關(guān)鍵詞確定每個(gè)關(guān)鍵詞的 Layout(也就是坐標(biāo)框)。研究者采用了 Layout Transformer,使用編碼器-解碼器的形式自回歸地輸出關(guān)鍵詞的坐標(biāo)框,并用 Python 的 PILLOW 庫(kù)渲染出文本。在這個(gè)過(guò)程中,還可以利用 Pillow 現(xiàn)成的 API 得到每個(gè)字符的坐標(biāo)框,相當(dāng)于得到了字符級(jí)別的 Box-level segmentation mask?;诖诵畔?,研究者嘗試微調(diào) Stable Diffusion。
他們考慮了兩種情況,一種是用戶想直接生成整張圖片(稱為 Whole-Image Generation)。另一種情況是 Part-Image Generation,在論文中也稱之為 Text-inpainting,指的是用戶給定一張圖像,需要修改圖里的某些文本區(qū)域。
為了實(shí)現(xiàn)以上兩種目的,研究者重新設(shè)計(jì)了輸入的特征,維度由原先的 4 維變成了 17 維。其中包含 4 維加噪圖像的特征,8 維字符信息,1 維圖像掩碼,還有 4 維未被 mask 圖像的特征。如果是 Whole-image generation,研究者將 mask 的區(qū)域設(shè)為全圖,反之,如果是 part-image generation,就只 mask 掉圖像的一部分即可。擴(kuò)散模型的訓(xùn)練過(guò)程類似于 LDM,有興趣的伙伴可以參考原文方法部分的描述。
在 Inference 階段,TextDiffuser 非常靈活,有三種使用方式:
- 根據(jù)用戶給定的指令生成圖像。并且,如果用戶不大滿意第一步 Layout Generation 生成的布局,用戶可以更改坐標(biāo)也可以更改文本的內(nèi)容,這增加了模型的可控性。
- 直接從第二個(gè)階段開(kāi)始。根據(jù)模板圖像生成最終結(jié)果,其中模板圖像可以是印刷文本圖像,手寫(xiě)文本圖像,場(chǎng)景文本圖像。研究者專門(mén)訓(xùn)練了一個(gè)字符集分割網(wǎng)絡(luò)用于從模板圖像中提取 Layout。
- 同樣也是從第二個(gè)階段開(kāi)始,用戶給定圖像并指定需要修改的區(qū)域與文本內(nèi)容。并且,這個(gè)操作可以多次進(jìn)行,直到用戶對(duì)生成的結(jié)果感到滿意為止。
構(gòu)造的 MARIO 數(shù)據(jù)
為了訓(xùn)練 TextDiffuser,研究者搜集了 1000 萬(wàn)張文本圖像,如上圖所示,包含三個(gè)子集:MARIO-LAION, MARIO-TMDB 與 MARIO-OpenLibrary。
研究者在篩選數(shù)據(jù)時(shí)考慮了若干方面:例如在圖像經(jīng)過(guò) OCR 后,只保留文本數(shù)量為 [1,8] 的圖像。他們篩掉了文本數(shù)量超過(guò) 8 的文本,因?yàn)檫@些文本往往包含大量密集文本,OCR 的結(jié)果一般不太準(zhǔn)確,例如報(bào)紙或者復(fù)雜的設(shè)計(jì)圖紙。除此之外,他們?cè)O(shè)置文本的區(qū)域大于 10%,設(shè)置這個(gè)規(guī)則是為了讓文本區(qū)域在圖像的比重不要太小。
在 MARIO-10M 數(shù)據(jù)集訓(xùn)練之后,研究者將 TextDiffuser 與現(xiàn)有其他方法做了定量與定性的對(duì)比。例如下圖所示,在 Whole-Image Generation 任務(wù)中,本文的方法生成的圖像具有更加清晰可讀的文本,并且文本區(qū)域與背景區(qū)域融合程度較高。
與現(xiàn)有工作比較文本渲染性能
研究者還做了定性的實(shí)驗(yàn),如表 1 所示,評(píng)估指標(biāo)有 FID,CLIPScore 與 OCR。尤其是 OCR 指標(biāo),本文方法相對(duì)于對(duì)比方法有很大的提升。
表1:定性實(shí)驗(yàn)
對(duì)于 Part-Image Generation 任務(wù),研究者嘗試著在給定的圖像上增加或修改字符,實(shí)驗(yàn)結(jié)果表明 TextDiffuser 生成的結(jié)果很自然。
文本修復(fù)功能可視化
總的來(lái)說(shuō),本文提出的 TextDiffuser 模型在文本渲染領(lǐng)域取得了顯著的進(jìn)展,能夠生成包含易讀文本的高質(zhì)量圖像。未來(lái),研究者將進(jìn)一步提升 TextDiffuser 的效果。