段 熒,龍 華,2,瞿于荃,杜慶治,2,邵玉斌,2
1(昆明理工大學 信息工程與自動化學院,昆明 650000)2(昆明理工大學 云南省計算機重點實驗室,昆明 650000)
文字是人類信息最重要的載體和最集中的表象,記載了幾千年人類的文明和歷史,對中華文明的傳承和發展起著極其關鍵的作用.當前,文檔圖像中如果僅包含文字,尤其是印刷體文字的OCR(Optical Character Recognition,光學字符識別)已在各種領域中得到應用.然而,隨著歷史更迭發展,部分碑刻作品以及書畫作品在流傳過程中,由于各種不穩定的保存因素,導致作品遭受不同程度的污損,比如自然的老化、發霉受潮、污跡遍布、動物撕咬、風雨侵蝕、人為損壞等等,這些種種因素均會使字跡變得模糊不清或者局部殘缺.針對文物字畫和碑刻作品的破損書法作品,使用傳統的手工修復方法不僅流程繁復[1-3]而耗時較長,除了考究修復人員高超的復原技術和耐心之外,還要求對歷史事實持有科學而又嚴謹的態度.文本圖片的干擾修復同樣也具有現實意義,在識別文本圖片時大多數文檔都無法達到理想狀態,并且經常包含各種干擾信息,例如當人們在原始文檔上留下橫線等來標記文檔中的重要內容,或者文檔本身就存在各種橫線表示需要填寫信息或者其他提醒時,文檔圖像的OCR的識別率會急劇下降.雖然可以通過二值化[4]等算法進行預處理,但是對于與文字進行粘連的干擾部分卻依舊無法進行處理[5],對于不能識別的拒識字也有學者利用上下文信息的相關性進行后處理[6,7],進一步地提高準確率,當初步識別效果較差時該方法并不能顯著地提升準確率,并且它依賴一個健全的候選字庫以及上下文信息(即語言學知識)的運用.因此如何有效地去除干擾,對于減少文檔圖片拒識字,提升識別準確率具有不容忽視的作用,同時也向修復污損的文字作品提供了新的思路.
目前,文檔圖像去除干擾的工作可以分為兩類,一是類似于表格或是下劃線與文字信息沒有粘連的干擾,如Imtiaz等人[8]利用滑動窗口中的熵來判斷當前區域中是否包含干擾線,以達到去除規則干擾線條的目的,對于此類干擾可利用線條的結構性特征進行去除.而另一類則是與文字信息產生粘連的干擾,如Banerjee等人[9]使用連通元檢測干擾線區域,并對與文字粘連的干擾線進行了進一步的處理,但此方法仍然是針對線條類的干擾.而對于不規則圖案的干擾,此類算法卻沒有很好的泛化性.近年來,基于深度學習網絡的圖像修復(Image Inpainting)發展迅速,在2016年的CVPR會議上,Pathak D等人[10]結合CNN和GAN網絡首次提出圖像修復算法.在此算法的基礎之上許多作者也提出了改進算法[11,12],但此類方法的修復只是集中于圖像中心的矩形區域,如:Pathak D等人[10]和Yang等人[13]假設的干擾圖案是一個大小為64×64的矩形框,且位于128×128的圖像中心,此類方法不適用于去除文檔圖片之中的不規則干擾圖案.而Iizuka等人[14]和Yu等人[15]則突破了中心矩形框的干擾假設提出對不規則圖案進行修復,但此類算法往往需要依賴復雜的后處理,例如:Iizuka等人[14]采用快速行進算法[16](Fast Marching)和泊松融合[17](Poisson Image Blending)的方法對圖像進行修復,而Yu等人[15]則通過后處理優化網絡對原始預測結果進行進一步的優化.此外,還有利用非缺失部分的圖像統計信息來填充缺失部分的修復算法[18,19],但這樣的搜索需要耗費大量的計算成本,雖然之后提出了更快的Patch搜索算法—PatchMatch[20],但其處理速度仍無法滿足實時應用的需求且不能進行語義感知的Patch選擇.NVIDIA公司Liu等人[21]所提出的PConv(Partial Convolution,PConv)層使用傳統的卷積網絡,不依賴額外的后處理,通過不斷學習缺失區域和原始照片,對不規則的干擾部分進行修復,文章通過一系列的實驗研究表明Pconv方法優于PatchMatch[20],GL[14],GntIpt[15]等方法,該論文使用堆疊的部分卷積運算和自動掩碼更新步驟(Automatic Mask Update Step)來執行圖像修復,論證了圖片需要修補的部分會隨著層數的增加和更新而消失,因而該方法不受限于修復任何形狀或紋理的干擾圖像修復.2019年,Yu等人[22]提出使用門控卷積(GatedConv)對圖像進行修復,該方法采用了和CA模型類似的粗細兩級網絡,粗網絡先對污損圖像進行粗略修復,而細網絡則對細部特征進行修復.經本文實驗研究表明,GatedConv雖然相較于Liu等人[21]的方法修復效果有一定的提升,但卻在訓練過程中損失了大量計算資源和時長.
針對文字圖片、碑刻或書法作品中污損紋理以及顏色是不唯一、不固定的特點,將文獻[21]和文獻[22]應用于不規則干擾文字圖片數據庫,分析并對比兩者的復原效果后,提出基于U-Net框架和部分卷積的文本圖片修復算法.針對常見字體建立文字圖片修復模型,用于修復因各種不規則干擾而造成的字符污損,導致識別準確率下降的問題,并在嘗試在古代文字圖片上應用此模型,為進一步修復書法、碑刻等文字作品的污損文字進行理論及實踐的研究.
NVIDIA在2018年ICLR會議上發表了PConv層[21]對圖像進行修復的成果,此文章的對于圖像修復領域的貢獻如下:
1)提出了帶有自動掩碼更新步驟的部分卷積層;
2)使用跳躍式連接的典型卷積U-Net架構獲得了良好的修復效果,并以此得到最新的修復效果;
3)該方法首次證明了修補不規則干擾圖案在圖像修復領域是行之有效的;
4)公開了大型不規則mask數據集,可用于后續的訓練以及評估模型.
將PConv層表示為:
(1)

自動掩碼更新步驟如式(2)所示:

(2)
將輸入圖像包含滿足至少一個條件的像素點,標記為有效像素.在部分卷積層有足夠的連續應用的情況下,不斷修復圖像直至所有mask為1,即表示圖像修復完成.
Yu等人[22]提出使用門控卷積(GatedConv)對圖像進行修復,不同于部分卷積的硬門控掩碼更新策略,門控卷積是從數據中自動學習軟掩碼,如下式所示:
Gatingy,x=∑∑Wg·I
(3)
Gatingy,x=∑∑Wf·I
(4)
Oy,x=φ(Featurey,x)·σ(Gatingy,x)
(5)
其中σ是sigmoid函數,因此輸出門值在0和1之間,φ可以是任意激活函數如ReLU、ELU和LeakyReLU.Wg和Wf是兩個不同的卷積濾波器.
2006年在Hinton提出的深度信念網絡(DBN)[23]中首次提出編碼器-解碼器思路,而U-Net則是基于此結構建立的.U-Net網絡模型大多數情況下是應用于醫學圖像分割領域,網絡形狀呈現為U型故命名為U-Net.在U-Net網絡結構中編碼器作用是對輸入圖像的特征進行提取,降采樣的理論意義是增加對輸入圖像的一些小擾動的魯棒性,比如圖像平移、旋轉等,減少過擬合的風險并降低運算量,同時增加感受野的大小.降采樣的特征圖與同維度大小的上采樣特征圖通過跳躍連接(Skip Connection)將高低層次的特征進行融合,即使在樣本量較少的情況下也能達到較好的效果,且運算速度快.而解碼器則是利用前面編碼的抽象特征來恢復到原圖尺寸的過程,最終得到去除干擾后的結果.
除語義分割外U-Net網絡結構可用于原圖像去噪,在訓練階段使原圖與噪聲進行融合后放入編碼解碼器中,目標則是對加擾圖片進行還原后得到原圖.
目前就深度學習來說,并沒有完整公開的中文文檔識別數據集或者書法作品數據集,因此如何構建訓練測試數據成為主要任務.在數據集的準備過程中主要分為文本圖片數據集和mask數據集.
3.1.1 文本圖片數據集
目前,污損文字修復主要面臨問題是:
1.文字的載體和字體眾多,只能依靠書畫修復保護專家或者技術工人,利用其精湛的人工技術水平來達到理想的效果,修復過程耗時費力;
2.對于流傳作品較為稀少的名家,專業人員很難完美臨摹其風骨,且對修復人員的要求極高;
3.對于極其珍貴或被奉為孤本的書畫作品來說,手工修復難免會造成二次傷害.在文本圖片數據集的采集過程之中,應盡可能地貼合實際情況,滿足如下需求:
1)字體的多樣性.由于歷史因素、刊物出版和應用場景等不同應用場景,字體往往是不唯一的.考慮此原因本文選取基本的漢字字體進行數據制作,如:宋體、楷體、黑體等若干常見字體;
2)文字具有關聯性.文字的出現是為了滿足人類交流的需求,尤其是具有歷史價值和意義的碑文拓片以及書畫作品,往往不是以單字的形式存在,而是根據當時的語言規則進行組合且攜帶有一定的信息量,以篇章的形式進行流傳.而現代數字化的文本圖片,更多的也是起到信息傳遞的作用,所以在采集文本圖片時應選取具有關聯性的文字.本文文本圖片在文字內容上,選取4種具有關聯性的常見體裁:白話文、詩詞、散文和譯文;
3)字號大小和字體粗細的隨機性.由于掃描、排版等影響,文本圖片的字體大小以及粗細程度并不是統一的.本文在采集文本圖片數據時,對字號以及生成圖片的大小不做限定.
3.1.2 mask數據集
本文使用的mask數據集為文獻[21]之中公開的mask數據集和隨機生成的干擾圖案,并在訓練過程之中隨機對當前mask圖片進行拉伸,翻轉以及裁剪,以此保證訓練修復的mask種類足夠充分.
為測試對比不同干擾程度修復效果之間的差異性,本文通過使用式(6)的指標mrb將mask分為10個等級,干擾程度隨著等級的增加而增大.
(6)
上式,將函數mrb定義為mask干擾比,G表示的是滿足干擾條件的像素點數,而H和W分別代表當前mask的長與寬.3.2 文字圖片修復框架
本文通過將干擾圖片數據集放入文獻[21]和文獻[22]中進行實驗后分析實驗結果,根據文字修復的特點提出文字圖片修復算法.本文網絡模型建立于U-Net架構之上,分為編碼部分和解碼部分.輸入圖像Iin的大小為CIin×H×W,mask圖片M的大小與Iin相同,其大小為CM×H×W.將Iin和M轉為列向量后的個數設為n×1,如式(7)所示對Iin和M進行融合:
vGin{xi|xi=vIin[i]+vM[i],i=1,…,n}
(7)
其中vIin是由Iin所轉化的列向量,vM是由M所轉化的列向量,且vIin∈Rn,vM∈Rn.Gin為Iin和M融合后的圖像,那么vGin則為Gin所轉化的列向量,此時Gin的特征通道數為CIin+CM.
根據設定的網絡層數對圖像Gin進行部分卷積,為使生成圖像Iout與Iin的大小相等,編碼層部分負責提取Gin的特征值與信息,而解碼部分則是將當前圖片Inow與其對應編碼層中的特征信息量Tnow在通道維度上進行拼接,如式(8)所示,對文字圖片的風格進行融合與逼近.由上文所述Inow和Tnow的大小相等,設Inow和Tnow轉為列向量后的大小為m×1,那么根據式(8)將Inow和Tnow進行融合后得到Gnow.
vGnow=[vInow,vTnow]∈R2m
(8)
其中,vGnow,vInow,vTnow為Gnow,Inow,Tnow所轉化的列向量,且vInow∈Rm,vTnow∈Rm.
在編碼部分和解碼部分分別使用ReLU和Leaky ReLU作為激活函數,除首尾兩個PConv層之外,每個PConv層和激活層之間使用批量歸一化(Batch Normalization,BN)層[24].卷積核內核大小分別為7、5、5、3、3、3、3、3,通道大小分別為64、128、256、512、512、512、512、512,解碼器中包含8個上采樣層,解碼器中PConv層的輸出通道分別是512、512、512、512、256、128、64、3.
對于漢字來說長寬比和內部細節是重要特性,若圖像尺寸歸一化不當,會致使漢字內部結構粘合在一起,這樣會加大后續識別難度.將圖片寬度統一設為512后,經解碼部分的8次減半后最小達到2.對文本圖片數據集的圖片計算后H:W最小達到1:3.76,依照圖像尺寸取整原則,選取H:W為1:1、1:1.5、1:2、1:2.5、1:3和1:3.5這6種情況.經4.2節實驗后,依據峰值信噪比(Peak Signal to Noise Ratio,PSNR)[25]數值越大表示失真越小的原則,可知當H:W=1:3時,能夠取得最優效果,經計算后確定輸入圖片尺寸為512×1536.根據上文所述網絡結構以及輸入圖片尺寸得出圖1,其中白色方框“I”代表文本圖片,“M”代表mask圖片.

圖1 網絡架構圖Fig.1 Network architecture diagram
在計算損失值(LOSS)時,定義Iin為帶有干擾的文字圖像,M為初始的二進制mask,Iout為經過網絡預測后的輸出圖片,Igt為期望得到的原始文字圖像.
首先定義逐像素LOSS(Per-pixel Loss)為:
(9)
(10)
其中NIgt表示Igt之中的C×H×W,式(9)和式(10)分別代表L1在干擾和非干擾部分的網絡輸出損失.
為獲取更為清晰的圖像,提升生成圖像的感知效果,映入
文獻[26]中的感知LOSS,將其定義為:
(11)

定義全變分損失(Total Variation,TV)為Ltv,如式(12)所示:
(12)
其中R是干擾區域的0像素的膨脹區域.
在對文本圖片進行修復時,處理難點是準確預測殘缺漢字的缺失信息,復原干擾點與文字部件粘合的部分.對于場景圖片的修復來說,修復時可以依據干擾圖案邊緣多樣的彩色紋理信息,對缺失內容進行預測,而在文本圖片中干擾圖案邊緣的紋理信息卻沒有那么豐富,因而在預測缺失的文字部件時與場景圖片有一定區別.在構建損失函數時,本文相較于文獻[21]舍棄了復雜的多超參數,并結合干擾文本數據集的特點,通過對比實驗4.3.2將損失函數確定為:
Ltotal=Lvalid+Lhole+0.01Lperceptual+0.1Ltv
(13)
將mask數據集根據式(6)所計算出的mrb值,將mask數據集分為A-J共10類,如表1所示,表中mrbmin為當前等級的mrb值下限,mrbmax為當前等級的mrb值上限,train和test欄分別代表當前訓練集和測試集的張數.其中訓練集共為55219張,測試集共為12060張.

表1 不同等級張數統計表Table 1 Statistics table of different grades
根據表1進行分類后,A-J各個等級示例圖片如圖2所示,其中白色像素點為干擾部分.

圖2 干擾等級劃分示例Fig.2 Example of interference level division
本文對訓練文本數據集的長寬比進行計算之后,選取1∶1、1∶1.5、1∶2、1∶2.5、1∶3和1∶3.5這6種情況,使用相同數據集進行測試得出表2,根據測試結果顯示當H:W=1:3時取得較優效果,因而確定輸入圖片大小為512×1536.

表2 不同寬高比的實驗結果Table 2 Experimental results of different proportionsof width and height
4.3.1 實驗設置
實驗采用Ubuntu16.04.6系統,Python3.6.7,GeForce RTX 2080Ti,NVIDIA Tesla V100 GPU和Tensorflow1.14對數據進行訓練,采用Adam優化器對數據進行優化.
在mask數據集不考慮旋轉、翻轉和裁剪前提下,各個等級產生的數據量為:訓練集249600張、驗證集10160張以及測試集16500張.將10個等級mask使用GeForce RTX 2080Ti各訓練30輪,其中經過BN層每輪訓練10000次共計20輪,無BN層訓練每輪訓練5000次共訓練10輪,無BN層學習率為0.00005.最后將不同等級干擾mask進行混合,訓練集約為126.3萬,驗證集約為9.9萬,測試集約為15.3萬.
使用NVIDIA Tesla V100訓練55輪,其中經過BN層每輪訓練10000次各訓練40輪,無BN層每輪訓練5000次各訓練15輪,無BN層學習率為0.00005.采用PSNR作為圖像修復質量優劣的評價指標,衡量重建圖像與真實圖像在像素上的差異,其值越高說明差異越小[27].
4.3.2 算法性能對比
為驗證本文算法的有效性,在訓練時采用相同數據集和參數的情況下,與文獻[21]和文獻[22]進行對比研究,選取每次訓練中訓練集、驗證集和測試集的最優結果,實驗結果如表3和表4所示.

表3 不同算法PSNR值對比Table 3 Comparison of different algorithms PSNR

表4 不同算法LOSS值對比Table 4 Comparison of different algorithms LOSS
由實驗結果可知,本文模型在A等級時分別取得訓練集、驗證集和測試集的最佳效果,其中PSNR值最高達到32.58 dB,LOSS值最低達到0.015,PSNR值和LOSS 值隨著等級的增高而逐漸變差,但從總體上來看各個等級之間的差值隨著等級的升高而逐漸變小,對于E、F、G、H、I、J等級來說,使用混合mask訓練效果更佳.雖然在實驗之中文獻[22]的修復效果優于文獻[21],但文獻[22]的時長遠遠高于文獻[21]和本文算法.本文算法在干擾圖片數據的訓練集、驗證集和測試集上,PSNR值和LOSS值明顯優于文獻[21]和文獻[22],表明本文算法結合文本圖片的特點,通過深層特征提取和圖像融合對污損字符取得了更優的復原效果.
4.3.3 損失函數的影響
為驗證本文所提出的損失函數的效果,在相同數據集和參數設置的情況下,本文采用不同函數的組合進行實驗對比研究.實驗結果如表5所示,實驗結果表明,文獻[21]之中的損失函數復原效果較差,盡管Lvalid+Lhole和Lvalid+Lhole+0.01Lperceptual損失函數組合所復原的文字圖像在整體主觀視覺上與本文相差不大,但放大之后本文損失函數組合所復原的細部特征更加清晰,邊緣部分更加平滑自然.

表5 不同損失函數組合的復原效果對比Table 5 Comparison of inpainting effects of different LOSS function combinations
4.3.4 各個等級復原效果
本文算法在各個等級去干擾效果如圖3所示,其中每類從上到下的排列順序為加擾圖片,修復圖片和原圖.由實驗結果可知,本模型能夠根據已有筆畫細節對缺失部分進行預測,并保持缺失漢字的字體形狀和筆畫走向,對于完全遮擋的漢字(如:J類),在人眼也無法辯明的情況下,本模型在盡可能去除干擾的前提下同樣也進行了預測.

圖3 各個等級去干擾效果示例圖Fig.3 Examples of the effect of various levels of interference removal
4.3.5 識別率對比
為研究本模型的OCR識別率的變化情況,隨機選取測試結果不同干擾等級各1000張,共計10000張圖片,將加擾圖片和對應的修復圖片放入百度OCR接口,進一步計算識別準確率的變化情況,前200次識別結果如圖4所示,在此處識別率定義為識別正確字符數與總字符數的比值.由實驗結果可知,百度OCR對于干擾的圖片的平均識別率約為60.05%,而本模型對圖像修復后識別率約為90.54%,相較于未修復圖片識別率提升約30.49%.實驗結果表明文獻[21]、文獻[22]和本文算法對文字圖片修復后識別率分別提升20.34%,19.29%,30.49%,如圖5所示,本文算法對于不同等級的干擾修復展現了較好的魯棒性能,且對于漢字內部細節的修復能力相較于其他算法具有顯著提升.

圖4 去干擾前后百度OCR識別率變化圖Fig.4 Baidu OCR recognition rate changes before and after interference removal

圖5 不同算法修復后識別率對比圖Fig.5 Comparison of recognition rate after repair of different algorithms
4.3.6 文字拓片修復
為解決真實場景下的古代字體干擾情況,本文使用云南師范大學文字拓片數據集,旨在研究現實情況中文字拓片進行修復效果.該數據集包含不同種類,不同風格的書法字體,由于年代的不同,不同拓片的磨損情況也不一,這也是考量本文算法魯棒性的一個關鍵任務之一.首先將獲取到的拓片進行簡單的預處理,如:二值化、去干擾化等,然后使用本文算法對文字拓片進行修復后的結果如圖6所示,左側為修復前文字圖片,右側為修復后的圖片.現實環境下的石刻石碑,大多以裂縫,縫隙以及風雨磨損下的情況為主,經實驗證明本文算法對于缺損的碑文字體以及書畫作品,在去除干擾的前提下,對當前字體的筆畫風格進行了預測并達到了良好的效果.

圖6 真實數據實驗結果Fig.6 Experimental results with real data
本文基于U-Net框架和部分卷積運算建立文字圖片修復模型,旨在解決由于各種不規則干擾而造成字符破損,導致識別準確率下降的問題.本文根據測試圖片的字體,形狀以及筆畫走向對文字缺失部分進行預測,PSNR最高達到32.58 dB,LOSS最佳達到0.015.本文將mask分為10個不同的等級,在各項損失函數的約束下,進一步地提升網絡的特征提取和復原能力,重建出細節豐富、文體統一的文字圖像.實驗結果表明,與其他復原方法相比,本文方法在文字圖像的修復上主觀視覺效果和圖像質量評價結果均有明顯提升,文字識別率修復前后提升30.49%.同時使用本文方法對真實的文字拓片進行修復實驗并達到了良好效果,為修復書法、碑刻等文字作品的殘缺筆畫提供了可行性方案.