肖進勝 趙 陶 熊聞心 楊 天 姚渭箐
①(武漢大學電子信息學院 武漢 430072)
②(國網湖北省電力有限公司信息通信公司 武漢 430077)
在當代社會,各級國家機關、社會團體、企事業單位都使用印章作為一種重要的標記信物。隨著圖像處理技術發展,光學字符識別 (Optical Character Recognition, OCR) 等技術也取得了巨大的發展,同時隨著電子化與無紙化辦公的進一步普及,印章電子化也成為一種趨勢。如果能夠使用圖像處理與光學字符識別的相關技術對中文印章內的文字進行檢測與識別,使用機器快速地對印章的內容進行檢測與分類,可以有效地提高文檔分類的效率與準確率,節省人力,具有巨大的應用價值。
印章內容檢測與識別借鑒自然場景文字識別的相關方法,一般分為文字區域檢測與文字內容識別。Lin等人[1]對近幾年場景文字檢測與識別的各類方法進行了分析。聯結文本提議網絡(Connectionist Text Proposal Network, CTPN)[2]是文本檢測的常用網絡,奠定文本檢測算法的基礎,但只能檢測水平文本行。SegLink算法[3]將每個字符切割為更易檢測的細粒度文字塊,然后將各個小文字塊連接成單詞,便于識別長度變化范圍很大、帶方向的單詞和文本行。Zhou等人[4]提出一種高效和高精度的場景文本檢算法(an Efficient and Accurate Scene-Text detector, EAST),該模型使用全卷積網絡(Fully Convolutional Networks, FCN)[5]生成多尺度融合的特征圖,然后在此基礎上進行像素級的文本塊預測,可以實現多尺度的自然文本文字框檢測。目前時序分類機制(Connectionist Temporal Classification, CTC)[6]和注意力機制(Seq2Seq)[7]廣泛應用于文字識別領域。CTC算法用雙向長短時記憶網絡(Bi-directional Long Short-Term Memory, BLSTM)[8]對字符圖像進行特征提取,用CTC損失函數對特征圖進行編碼與去冗。基于注意力機制的文字識別方法利用中間向量完成文字的編碼與解碼輸出,能夠提高檢測效率和效果[9]。
方形印章中的文字呈水平分布,這類文本檢測已經十分成熟,而中文常見印章內容都呈圓環排列,其識別工作仍具有很大的挑戰。本文深入研究國內外印章內容識別技術的發展狀況,提出了角度優化網絡的印章內容識別算法。利用極坐標對印章文字進行展開,克服圓形印章文字方向不統一的問題,同時為了防止展開過程中印章文字發生形變,在展開的同時進行雙線性插值。針對印章文字展開后依舊上下起伏和傾斜等情況,將旋轉區域提議網絡(Rotation Region Proposal Networks,RRPN)[10]運用至文本檢測之中,使得文本提議框融入角度信息,并利用貝塞爾曲線對文本進行擬合。印章識別部分將卷積循環神經網絡(Convolutional Recurrent Neural Network, CRNN)文字識別網絡中的C T C 轉錄層替換為注意力機制Seq2Seq,并利用文本匹配算法對識別結果進行修正。本文算法在印章預處理、文字區域提取和文字內容識別等各個方面有一定的優勢,具有一定的參考價值和實用性。
算法的預處理部分的主要任務是對印章進行提取與展開,對于呈環形排列的中文印章,利用極坐標展開將環形文字展開為矩形文字,在轉換的同時也融合了雙線性插值,克服了環形文字轉換之后產生的形變問題。文字檢測與識別部分提取印章文字區域和識別具體內容。將展開的印章圖像使用包含RRPN的CTPN對文字區域進行提取,然后利用貝塞爾曲線對文本框進行擬合,最后將提取的文字區域輸入至使用注意力轉移機制的CRNN網絡進行文字識別,并進行文本匹配輸出印章內部的文字。整個架構如圖1所示。

圖1 印章識別架構圖
預處理的主要任務是對合同內的印章進行提取與展開,將印章圖像由RGB顏色空間轉換為CELAB顏色空間,由A, B通道確定印章所在位置,調節L通道閾值克服印章顏色亮度帶來的影響。在CIELAB顏色空間中對印章區域進行提取,可以有效地將印章文字與背景文字分離。同時利用極坐標轉換,可以將需要檢測的印章環形文字展開為橫向排列的文字,克服了印章內部文字方向不統一的問題。在進行極坐標轉換的過程中同時結合雙線性插值,使得展開后每個像素點的值不只是簡單地取決于原圖中的單一像素點,而是由原圖中的多個像素點共同來決定。印章提取和極坐標轉換的示意分別如圖2、圖3所示。

圖2 印章提取效果
如圖3所示,圓圖中點p(i,j)在方圖中對應的坐標為q(x,y),方圖中的每一列對應圓圖中的一個圓環,圓圖的半徑為R,方圖的長寬為N×M, M,N與實際的印章大小有關,一般展開后方圖的每一行對應于印章的圓周,每一列對應于圓周上的每一條半徑。定義縮放因子λt=N/R,角度因子為λt=2π/M,圓圖上圖像坐標系(i,j)和矩形坐標系(x,y)的變換關系為

圖3 極坐標轉換示意圖

極坐標轉換為直角坐標圖像的過程中,采用了雙線性插值,對圖像進行拉伸。極坐標展開的效果如圖4所示。

圖4 印章展開效果圖


文本提議框分類標簽值l=1,0分別代表該提議框為正樣本、負樣本,p是通過Softmax函數計算的文本概率值。i為細粒度文本提議框的索引值。v?為 真值中標注的文本框位置標簽值。Lcls采用對數似然概率損失函數,Lreg采用L1損失函數。回歸與分類損失函數具有不同的變化范圍。為克服不同尺寸文本提議框對損失函數的影響,需對這些坐標信息進行歸一化



圖5 RRPN網絡

改進后的CTPN網絡的文本提議框帶有一定的角度,其文本覆蓋范圍也包含水平方向上的變化,為了克服角度帶來的影響,在合并的過程中考慮交并比的同時也應該保證角度信息。帶角度信息的文本合并過程包含兩類:(1)對于存在交并比(Intersection Over Union, IOU)大于0.7的文本提議框,選擇最大IOU的文本提議框進行合并;(2)若文本提議框的IOU都在[0.3, 0.7]范圍內,選擇角度差值最小的文本提議框,并且該角度值必須小于π /12。文本框合并過程如圖6所示。

圖6 貝塞爾曲線擬合文本線

為了驗證RRPN和貝塞爾曲線在印章文字檢測中的有效性,設計了關于RRPN和貝塞爾曲線的消融實驗,圖7是實驗效果對比圖。
由圖7對比可以發現,加入貝塞爾曲線相對于加入RRPN能夠使得文本檢測更精準,而通過對比圖7(c)和圖7(d),可以發現RRPN的加入為之后貝塞爾曲線擬合文本區域提供了更貼合文本的文本提議框。

圖7 RRPN與貝塞爾曲線消融實驗
本文采用CRNN網絡對印章區域進行特征的提取,然后利用Seq2Seq對提取的特征進行解碼,檢測輸出印章的文字內容。文本識別網絡如圖8所示。

圖8 文本識別網絡
將提取的印章圖片輸入網絡,得到尺寸為{1×25×512}的特征圖xt,t ∈[1,n] 。 特征圖x作為Seq2Seq語義轉錄層的輸入,通過編碼器(Enc)把輸出的特征圖轉換為一個語義特征向量C,然后通過解碼器(Dec)將語義特征向量轉換為輸出字符。加入Seq2Seq轉錄層之后的網絡計算過程如下:
編碼器輸入由當前時刻的特征向量xt與上一時刻編碼器輸出ht?1共同決定,當前時刻編碼器的輸出為ht,計算公式為

其中,f(·)為特征圖提取器,然后通過編碼器將特征圖中所有的向量進行匯集,融合為一個語義特征向量C,融合的過程表示為e nc,計算公式為

然后利用解碼器對該語義特征向量C進行解碼,當前時刻的輸出結果yt由 該語義特征向量C和之前時刻的所有輸出共同表示,解碼的過程為

在上述的Seq2Seq模型中所有的輸入都先轉化為中間語義向量C,然后再進行解碼,在進行編碼的過程中其實每個字符的權重都是不相同的。模型能夠選擇性的關注輸入序列有用的部分,即注意力機制。在Seq2Seq中注意力機制表現為給每個特征圖中的序列學習一個獨立的權重aij。即

實際的印章內容檢測應用過程中,我們可以獲得目標印章的先驗信息,只需保證被檢測印章內容能夠與預設的印章內容相近即可。加入文本匹配,文本自動調整成與其相近的先驗印章內容,能使整個文本識別的結果更準確。文本相似度算法基于字面含義匹配算法,常見的方法是將兩個字符串通過哈希映射后,再比較每個字符串哈希值的差異。在印章的文字信息識別過程中必須嚴格按照字符的字面信息進行匹配,所以本文采用基于字面匹配的文本相似度計算方法-Simhash算法[12]。其處理步驟如下:
(1)分詞:計算每個字符在文本內容中的權重分量,構造字符權重數組;
(2)計算字符哈希值:利用哈希函數計算每一個字符權重數組元素的哈希值,該哈希值由二進制表示;
(3)加權:根據權重數組中每一個元素對應的權重計算其加權值;
(4)縱向相加:將第3步得到的加權值縱向相加以得到加權和;
(5)降維:將縱向相加后的加權和歸一化,大于0取1,反之則取為0。得到最終字符串的指紋簽名;
(6)相似度比較:將上述生成的字符串指紋簽名與預存字符串指紋簽名進行比較,依據距離值選出最接近的印章內容。
目前國內并沒有公開的中文印章數據集,因此,本文采集了大量的紙質合同建立了一個中文印章數據集,其中該數據集是本文作者建立的,還未公開。該數據包含真實的印章360張,電子印章340張。數據集中的每一份樣本都統一縮放至360×360,并以24位深度bmp格式存儲。實驗階段中,把該數據集分成兩組,第1組300張用于訓練,第2組60張用于測試。
文字檢測常使用DetEval[13]評價方式計算精確率P、召回率R與F值。DetEval評價方法基于真實框G的面積與實際檢測框D的面積關系。計算方法為

針對印章文字的檢測,我們使用相同的訓練集和測試集在多種文字檢測算法進行了比較,由于本文的文字檢測算法是針對印章文字的特點提出的,所以在文字檢測效果上有較大的進步,對于印章文字區域的擬合效果最佳,詳細的實驗結果如表1所示。

表1 印章文字檢測效果對比(%)
各類對比方法的實際效果對比如圖9所示。

圖9 文字提取效果對比
基于圖像灰度分布的MSER算法進行文字提取時會包含大量的背景信息。而Faster-RCNN[14]算法的anchor并不適合文字細長的特點,容易使得各個文字區域割裂,并且MSER與Faster-RCNN并不包含角度信息,所以對于印章內的倒立文字無法去除。將Faster-RCNN中的文本提議框改進后產生的CTPN網絡,將文字檢測分割為對細粒度的文本提議框的檢測,同樣不包含角度信息,造成文字檢測的召回率較低。EAST方法包含角度信息,能夠檢測傾斜的文字,但是該方法對文字角度沒有限制,容易產生一對多的情況,也容易將背景信息容納入檢測結果中。PSENET利用寬度優先搜索算法對文字區域進行擴展,可以檢測任意形狀的文字,因而具有很高的檢測精度,然而具有較低的召回率。本文方法采用RRPN網絡,對每個文本提議框融入了角度信息,并且限定了角度的范圍,使得該算法能夠適合印章文字呈波浪形排列的特點。同時通過貝塞爾擬合對印章的文本框線進行擬合,能夠有效去除背景信息,減少印章文字檢測中的干擾信息。
本文所有對比方法均在本文自制的印章數據集上進行訓練測試,數據集中的文字圖片都經過了文字檢測算法的正確檢測,去除了非識別步驟帶來的影響。
將CRNN中的CTC轉錄層替換為Seq2Seq注意力機制后,文字識別的召回率和效率都有一定的提升。使用CTC轉錄層的CRNN文字識別網絡的召回率為71.3%,而使用Seq2Seq轉錄模塊的文本識別網絡的召回率為74.8%,并且平均識別時間幾乎相同。使用Seq2Seq轉錄模塊的文本識別網絡在采用文本匹配模塊后召回率由74.8%提升為84.4%,相比較CRNN識別效果提升13.1%。而本文采用Seq2Seq轉錄模塊和Simhash文本匹配后的文字識別準確度和效率都有較大的提升。詳細的實驗數據對比如表2所示。

表2 印章文字識別效果對比
針對文本文匹配模塊可能會造成的文字識別缺失或者識別錯誤的問題,本文通過預設的字符對識別結果進行校正可以輸出正確的結果。同時也對Simhash, BM25[15]和TF-IDF等多種文本匹配方法在相同測試集上做了比較,文本匹配算法嚴格依照文字的字面含義進行匹配,并且通過調整各類算法在進行文本匹配時的閾值,當采用Simhash文本匹配閾值為20時,其文字識別的召回率84.4%為最高。文本匹配對比數據如圖10所示。
從表2和圖10中可以看出本文方法的優勢,而印章檢測中所出現的錯誤樣例大部分是由于印章在合同上的印跡顏色較淺,字跡模糊;印章識別中所出現的錯誤樣例大部分是由于背景文字對印章的內容造成了遮蓋。

圖10 文本匹配對比
根據合同內部中文印章的文字分布特點,對印章的提取、預處理、檢測與識別各部分的關鍵技術進行了研究,結合印章文字的特點對各個部分做出了針對性的改進,本文方法的印章文字召回率為82.17%,檢測準確率為87.47%,F值為84.73%,印章文字識別的召回率為84.4%。在實驗平臺上的平均檢測耗時為640 ms。說明了本文方法在具有較好檢測效果的同時也具有較快的檢測速度。