付鴻林,張太紅,楊雅婷,艾孜麥提·艾瓦尼爾,馬 博
(1.新疆農業大學計算機與信息工程學院,新疆 烏魯木齊 830052;2.新疆農業信息化工程技術研究中心,新疆 烏魯木齊 830052;3.中國科學院新疆理化技術研究所多語種信息技術研究室,新疆 烏魯木齊 830011)
文本作為人類傳遞信息的代表,在圖像理解中起到至關重要的作用。隨著深度學習技術的進步,基于深度學習的場景文本檢測算法得到了很大的發展,與傳統方法相比,檢測精度有了明顯提升。深度學習之所以在計算機視覺中取得成功可以歸功于以下3 個方面:1)模型容量增大;2)硬件設備計算效率的提高;3)擁有大量標記數據可供使用。隨著高性能移動設備的快速發展和普及,場景文本檢測和識別技術已經成為計算機視覺領域的一個研究熱點。與文檔OCR相比,場景文本檢測和識別仍然存在很大的問題,比如文本的多樣性、復雜多變的圖像背景,以及外部因素的干擾(光照不均、分辨率低等因素)。目前,學術界公開的場景文本數據集(如ICDAR2013、SVT、RCTW 等)大多局限于主流文字(英文、中文等),而對少數民族語言和多語言的檢測和識別的數據集很少。因此,少數民族語言和多語種的場景文本數據集具有很高的研究價值和意義。
場景文本檢測和識別是一項具有挑戰性但非常有用的任務。在數據驅動的深度學習時代,數據集的大小將直接決定模型的性能。近年來,越來越多的文本圖像合成方法被用于場景文本檢測和識別任務中。這些方法結合不同的渲染算法進行建模,將文字渲染到背景圖像上。然而,如果合成的圖像與真實圖像不能完美契合,這將影響后續模型的訓練精度。
本文主要討論現實場景中的維文替換問題。據知,目前沒有針對維語的場景文字修改網絡被提出。替換自然場景中的維文的任務可以表示為:用戶提供的任意的維文文本替換圖像中存在的文本,并且替換結果難以區分。因此,在進行文本替換的同時,要盡可能保留原始圖像文本的字體、顏色、大小和圖像背景,從而使生成的圖像具有更真實的視覺效果。本文延續了SRNet[1]的框架思想,采用“分而治之”的策略,將場景文字修改任務分解為3 個子任務:文字風格遷移、背景修復和融合。本文方法也是通過GAN替換場景文本。與其他方法不同之處在于,本文引入高效的Transformer 模塊[2]重構網絡,優勢在于:1)在可以提取圖像全局特征的前提下,相比傳統視覺Transformer 模塊,計算量大大減少;2)在背景修復階段,可以綜合整張背景圖像信息,選取合適的紋理對文字區域進行填充,修復效果更佳;3)將卷積神經網絡強大的局部特征提取能力融入網絡中。此外,由于模型通過不同模塊之間協作完成場景文字修改,考慮到不同模塊的輸出結果在融合階段出現偏差,通過添加微調模塊對融合結果進行微調。采用WGAN 思想訓練網絡,相比原生成對抗訓練方法,可有效應對模型崩潰、梯度爆炸等問題。由于真實場景中沒有成對的數據集,本文使用合成數據對模型進行訓練,在真實場景圖像上進行測試。
生成對抗網絡自2014 年由Goodfellow[3]提出以來,其在計算機視覺中得到廣泛應用,如圖像生成[4-5]、藝術品生成[6]和視頻生成[7]。此外,可通過對抗訓練[8]來執行提高圖像質量、風格轉移[9]、圖像修復[10]、圖像超分辨率[11]和其他任務。CGAN[12]通過添加條件,使生成任務變得可控,增加可解釋性。DCGAN[13]首次將卷積神經網絡(CNN)引入到GAN中,解決了訓練不穩定、模型崩潰的問題。Stack-GAN[14]探索文本到圖像的轉換,并創建文本描述的內部表示。StyleGAN[15]提出了一種基于風格的生成器,以實現深層空間解耦,使生成圖像更加生動清晰。
目前已經存在一些場景文字修改的相關工作,最初的場景文字修改模型[16]是對每個字符做修改,盡管該方法可以應用到真實場景文字圖像中,但不能應對原始圖像中文字長度與目標文字長度不同的情況,進而影響模型生成性能。SRnet[1]為詞級別的STE 模型,模型整體結構為CNN,在提取特征時,無法獲得全局上下文信息。SwapText[17]通過TPS 算法,提取風格圖像文字位置特征應用于目標文字,在文字風格遷移模塊中加入自注意力機制,在一定程度上緩解CNN 本身的限制。RewriteNet[18]模型通過引入場景文字識別模型,將場景文字圖像中文字內容與風格進行解耦,通過識別模型提取文本內容信息,但當識別錯誤時,誤差也將進一步傳遞,造成生成圖像中文字內容錯誤。TextStyleBrush[19]通過對場景文字圖像風格與內容解耦,將風格特征進行映射,在合成圖像時與文字內容特征多尺度融合,以及通過引入預訓練識別模型進行識別校正,但該模型并不適用于跨語言的場景文字修改。Zhang 等人[20]將通道注意力機制嵌入SRnet 風格遷移模塊,以及監督圖像中文字結構信息,生成藏語場景文字圖像。PsGAN[21]在訓練時需要借助文字邊界檢測器,同時無法應對文字較小的情況。
本文提出的場景文字修改模型,簡稱TFGAN,主要由3個子網絡組成,分別為文字風格遷移模塊、背景修復模塊以及融合模塊。模型總體結構如圖1所示。
圖1 TFGAN模型總體結構圖
文字風格遷移模塊的目的在于提取原始風格圖像的前景風格特征,將其遷移到目標文字上。前景風格特征包括字體、字體顏色、文字布局等。文字風格遷移模塊的輸入為風格圖像和目標文字圖像,輸出為語義信息和目標文字,且風格保持原始圖像前景風格。它使用編碼器和解碼器模塊來完成相應計算。在編碼器中,原始圖像通過一個3×3尺度不變卷積將通道擴為48,再經過3 次下采樣和8 個Transformer 模塊,其中每次下采樣之后都經過不同數量的Transformer 模塊。目標文字圖像采用相同的編碼操作。將2 個編碼器得到的輸出特征按深度進行連接。在特征輸入解碼器之前對編碼器的輸出經過1×1 卷積使得通道數減半。在解碼器中,經過3 次上采樣,每次上采樣后都經過不同數量的Transformer 模塊。具體參數如表1 所示,其中TF 代表Transformer 模塊,down表示下采樣,up表示上采樣。
表1 編碼器和解碼器網絡結構
其中,Tconvert表示文字風格遷移模型,It為輸入的目標文字圖像,Is為輸入的風格文字圖像,Ot為文字風格遷移模型的輸出。這里本文使用像素損失來監督文字風格遷移模塊的輸出,文字風格遷移損失為:
其中,Tt為風格遷移模塊的標簽。
圖像背景修復模塊的目標是完成詞級別的場景文字擦除任務。這個模塊的輸入僅為原始風格文字圖像,輸出為原始風格圖像的背景圖像,原文字區域由適當的背景紋理進行填充。編碼器和解碼器模塊與文字風格遷移模塊相同,不同之處在于,將編碼器每次下采樣之前的特征圖與解碼器上采樣之后的特征圖按深度進行連接,并在后2 次連接后經過1×1 卷積將通道減半。在解碼器之后經過一個3×3 尺度不變卷積將輸出通道調整為3,輸出背景圖像,并計算背景修復的損失。
本文采用像素損失和WGAN 對抗損失來監督背景擦除模塊的輸出,圖像背景修復損失為:
其中,sp為譜歸一化,Tb為背景修復網絡的參考圖像,為背景修復網絡的判別器,Ob為背景修復網絡生成器的輸出結果,α為像素損失的權重系數,本文設置為10。
文字融合模塊是將之前2 個模塊的輸出進行融合,生成最終修改之后的場景文字圖像。模塊延續之前編碼器和解碼器框架,輸入為文字風格遷移模塊生成的前景文字圖像。在解碼器階段,將特征圖與相同尺寸的背景擦除模塊的解碼器特征圖按深度進行連接,在前2 個連接之后,采用1×1 卷積將通道減半,在第3 個連接之前對背景擦除模塊的特征圖采用1×1卷積將通道數減半再按深度進行連接。在解碼器之后,將特征圖輸入微調模塊,微調模塊為4 個Transformer模塊堆疊而成,使用3×3尺度不變卷積,將輸出通道變為3,得到修改文字之后的圖像。
本文采用像素損失和WGAN 對抗損失來監督修改之后的文字圖像,文字融合模塊損失為:
其中,為文字融合網絡的判別器,Tf為文字融合網絡的參考圖像,β為像素損失的權重系數,本文設置為10,Of為文字融合網絡生成器的輸出結果。
為使生成圖像更加真實,引入感知損失[22]和風格損失[23]。損失可以表示為:
其中,λ1為內容感知損失的權重,λ2為風格損失的權重,分別設置為1 和500。φi為在ImageNet[24]上預訓練的VGG-19 模型[25]的relu1_1 到relu5_1 的激活特征圖,N為5,G為Gram 矩陣。SR 為模型輸出的圖像,HR為標簽圖像。
整個框架的損失為:
本文使用的判別器與PatchGAN[26]網絡結構相似,但為應對模型崩潰與梯度爆炸等問題,采用WGAN 思想訓練網絡,將原PatchGAN 中的sigmoid 層去掉,將原結構中的批量歸一化替換為譜歸一化,最后一層不加譜歸一化。
本文采用的Transformer 模塊由多頭深度可分離卷積注意力機制模塊和門控深度可分離前饋網絡模塊2個部分構成。
2.2.1 多頭深度可分離卷積注意力機制模塊(MDTA)
Transformer 中主要的計算開銷來源于自注意力層,在傳統的SA(self-attention)中,key-query 點積的時間復雜度會隨輸入的空間像素呈平方倍增長,對于輸入圖像為W×H,其時間復雜度為O(W2H2),這極大地增加了模型計算的難度。為降低計算復雜度,本文使用MDTA組件,如圖2所示,MDTA的復雜度為線性復雜度。這里SA 通過計算通道之間的相關性,生成對全局上下文信息的隱式編碼注意力特征圖。除此之外,MDTA 的另一個重要組件為引入深度可分離卷積,在生成全局注意力特征圖之前,將CNN 提取局部信息的強大能力也融入到Transformer中來,這進一步減少了訓練參數。
圖2 MDTA組件結構圖
假設一個通過層歸一化的張量Y∈RH×W×C作為輸入,MDTA 為生成具有豐富的局部信息的query(Q),key(K)和value(V)特征向量,采用1×1 卷積去整合各通道之間的上下文信息,再經過3×3尺度不變深度可分離卷積對通道級的空間信息進行編碼,生成Q=為1×1 逐點卷積,Wd(·)為3×3 深度可分離卷積。在網絡中本文使用無偏差卷積。之后對query和key進行改變形狀,經過點積之后產生一個轉置注意力特征圖A,尺寸為C×C,代替原始Transformer產生的巨大的注意力特征圖,尺寸為HW×HW。綜上所述,MDTA 的處理過程可以定義為:
其中,X和為特征圖的輸入和輸出,最初的Q,K,V∈RH×W×C經 過 改 變 形 狀 變 為∈RC×HW;∈RC×HW∈RHW×C。ω為可學習的參數,在經過Softmax 激活函數之前對和的點積結果進行控制。與傳統的多頭自注意力機制相似,將通道的數量分別放入不同的“head”中并行計算。
2.2.2 門控前饋網絡模塊(GDFN)
GDFN 組件結構如圖3 所示,這個門控機制通過2 個平行路徑的線性轉換層進行逐元素點積的方式完成。采用Gelu 非線性激活函數。類似于MDTA中,GDFN 采用深度可分離卷積對空間上相鄰的元素信息進行編碼,有效地學習圖像的局部信息對于圖像的生成具有重要作用。這里假設輸入一個張量X∈RH×W×C,GDFN公式如下:
圖3 GDFN組件結構圖
其中,?表示逐像素相乘,θ表示Gelu 非線性激活函數,LN為層歸一化。GDFN控制網絡結構中各層級信息的傳遞,可以使各層級專注于更細粒度的特征,將其傳遞給其他層級。通過減少膨脹系數γ(此參數體現在圖3 中,通過1×1 卷積對通道數進行膨脹,通常設置為4,本文通過實驗調整將其設置為2.66),在能達到相同效果的同時減少了模型參數量和計算負擔。
本文實驗采用Pytorch 框架,虛擬環境為Python3.7 和CUDA 10.2,使用RMSprop 優化器,學習率為1×10-4,交替更新生成器與判別器參數,訓練20 萬步,即30 個epoch。在反向傳播時本文設置α=β=10,λ1=1,λ2=500,來規范每一部分的損失梯度;γ=2.66,批次設置為8,輸入尺寸為64×256。測試時可以輸入任意大小的圖像。本文模型在4 塊型號為V100 的GPU上完成訓練,使用的上采樣方式和下采樣方式為pixel-shuffle[27]和pixel-unshuffle。
合成數據集。為獲得成對的訓練數據,本文采用SRNet 提供的公開合成工具SRNet-Datagen,收集維語字體50種。背景圖像來源于SynthText提供的背景圖像數據集,以及DTD 背景紋理圖像數據集。合成英文訓練集5 萬對,測試集1500 對,以及對SRNet-Datagen 進行修改合成維文訓練集5 萬對,測試集1500對。
真實場景文字圖像。ICDAR13 自然場景文字圖像來源于Robust Reading Challenges 2013。首先通過該數據集提供的標簽對圖像中包含文字的區域進行裁剪,獲得場景文字圖像。本文將非英文字母以及字符數少于3的圖像去除,經過過濾可裁剪1598張詞級別場景文字圖像。
The Street View Text(SVT)是谷歌采集的街景場景文字圖像,圖像具有豐富的多樣性且包含了許多低分辨率的圖像,其中包含了350張圖像,測試249張(可裁剪647 張詞級別場景文字圖像),訓練101 張圖像(可裁剪257 張詞級別場景文字圖像)。值得注意的是本文提出的模型只在合成數據集上進行訓練,真實場景文字圖像只用作測試。
本文采用圖像生成領域中普遍使用的評估指標來評估本文的模型,其中包括:1)PSNR,峰值信噪比;2)SSIM,計算2 張圖像的平均結構相似度。PSNR 和SSIM的值越大,意味著結果越接近于標簽真值。
首先,對本文模型的背景修復模塊與其他STE模型中的背景修復模塊進行對比:SRnet背景修復模塊和SwapText 背景修復模塊。由于需要將修改之后的文字融合到原始風格圖像的背景上,若文字擦除不干凈將會影響最終生成圖像的質量。由于未公開代碼,本文對以下模型進行復現,在本文合成數據集上完成訓練和測試。這些方法均保持與原論文一致的配置參數。如表2 所示,本文所提出背景修復模塊相對于SRNet_bg(即SRNet 背景修復模塊)在PSNR 和SSIM指標上分別提升3.02 dB 和0.063。SwapText_bg(即SwapText背景修復模塊)通過使用空洞卷積來增大感受域,而本文通過高效Transformer模塊可以提取圖像的全局上下文信息,相對于空洞卷積提升更明顯。本文提出模型相比SRNet 模型,在英文合成數據集PSNR 和SSIM 分別提高1.74 dB 和0.138。為進一步驗證本文方法的有效性,本文選擇在字形更復雜的維語上進行文字修改,PSNR 和SSIM 分別提高1.43 dB和0.121,定量結果如表3所示。
表2 在英文合成數據上背景擦除模塊定量結果
表3 在合成數據集上定量結果
在這一節中,本文對設計的各個組件進行消融實驗。驗證各組件對模型整體效果的影響定量結果如表4所示。
表4 在英文合成數據上的定量結果
微調模塊。由于本文模型將STE 分解為3 個子任務,在融合階段將風格遷移模塊輸出的文字特征圖與背景修復輸出的背景特征圖進行融合,考慮到2 個子模塊之間存在融合偏差,風格文字不能很好地與背景完美融合,通過微調模塊對融合結果進行微調。
WGAN。由于原對抗損失造成模型訓練不穩定,易出現梯度爆炸等問題,采用WGAN 思想訓練,模型訓練更穩定,更易收斂到最優值。
如圖4 所示,第1 列、第3 列為輸入的風格圖像,第2 列、第4 列為對應圖像修改之后的維語場景文字圖像,可見在視覺效果上可以達到難以分辨的效果,且文字細節紋理清晰,表明本文模型可將輸入圖像的風格應用到維語上。為驗證本文模型在真實場景文字圖像上的修改效果,圖5、圖6 為在真實場景ICDAR13、SVT 數據集上的效果展示,上為英文到英文修改效果,下為英文到維文修改效果。
圖4 英語到維語樣例展示
圖5 ICDAR13 效果展示
圖6 SVT效果展示
本中通過設計一種基于生成對抗網絡的維語場景文字修改模型,采用高效的Transformer模塊進行構建,充分考慮了圖像全局與局部特征信息,彌補模型受限與卷積神經網絡接收域的問題。此外,添加了一個微調模塊對融合結果進行微調,處理不同模塊間的融合偏差,并采用WGAN思想訓練模型,有效應對模型崩潰、梯度爆炸的問題;對公開的合成工具進行修改,合成維語訓練集和測試集,使本文模型可以應用于維語場景文字修改,且無論在視覺效果還是評價指標上均取得不錯的效果,幫助構建跨語言場景文字圖像訓練語料。本文研究了在維語和英語上的修改效果,下一步將在其他語言上進行進一步研究并對模型進一步優化。