于文清
(河北地質大學 信息工程學院,河北 石家莊 050031)
目前場景文本檢測技術可以大致分為兩類,一類是傳統的場景文本檢測方法,另一類是基于深度學習的場景文本檢測方法。傳統的場景文本檢測方法大多是基于字符的,即先對字符進行檢測,然后將字符進行關聯組合,形成單詞。如易堯華[1]等人提出的結合MSCRs與MSERs的自然場景文本檢測以及張國和[2]等人提出的最大穩定極值區域與筆畫寬度變換的自然場景文本提取方法在某些場景中,字符非常模糊,甚至無法看清,采用傳統的場景文本檢測方法難以檢測出此類文字,因此基于深度學習的場景文本檢測方法被陸續提出。基于深度學習的場景文本檢測方法大體分為兩類,基于目標檢測的方法和基于分割的方法。基于目標檢測的方法通常把目標檢測的方法針對文本的特點來進行改進,進而應用到文本檢測中,Tian等人[3]在基于Faster-RCNN[4]思想的基礎上提出了用于檢測水平文本的CTPN。Ma等人[5]在基于Faster-RCNN的基礎上提出了一種通過對檢測框進行旋轉來檢測傾斜的文本的RRPN。Shi等人[6]在 SSD[7]的基礎上提出了可以處理多方向和任意長度的文本的 SegLink。由于該類方法對多方向文本和彎曲形文本的檢測效果不是很精準,因此有學者提出了基于分割的方法。基于分割的文本檢測方法可以不受文本形狀的限制,不僅可以檢測橫向和斜向的文本,而且還可以準確有效的檢測出不規則的文本,比基于目標檢測的方法,適用的范圍更廣。曠視科技采用基于分割的方法提出了PSENet[8]不僅可以對任意形狀的文本進行定位而且解決了過于接近的文本難以分離的問題,首先小比例縮放檢測,然后使用漸進擴展算法逐步擴展成完整的文本。
上述的文本檢測方法均可應用于人民幣文本檢測,但會存在以下問題:(1)若采用傳統的人民幣文本檢測方法,會存在以下幾個問題:當人民幣出現破損折角、文字模糊時,會難以檢測人民幣圖像文本區域,影響人民幣文本檢測的準確率;當拍攝采集的人民幣圖像受到光照強度、圖像變形、拍攝角度影響時,人民幣文本區域的定位會出現偏差,影響人民幣文本區域定位的精準度。(2)若采用基于目標檢測的人民幣文本檢測方法,由于拍攝的人民幣圖像受到圖像變形、拍攝角度影響時,很難使人民幣圖像的候選框與真值框之間具備較好的匹配關系,影響人民幣文本檢測的準確率。針對以上問題,本文將曠視科技提出的基于分割的 PSENet應用到人民幣文本檢測中不僅可以對人民幣圖像變形的文本進行定位而且解決了相鄰人民幣文本難以分離的問題,從而提高人民幣文本區域檢測的準確率。
由于殘差網絡(ResNet)解決了網絡深度達到飽和之后出現的梯度消散或梯度爆炸的問題,特征金字塔網絡(FPN)在不增加原有模型計算量的情況下,解決了物體檢測中的多尺度問題,因此PSENet采用在ImageNet數據集上預訓練的ResNet+FPN作為特征提取的網絡結構。
隨著深度神經網絡的發展,深度神經網絡模型的網絡層數變得越來越深,深度神經網絡的訓練因其層次加深而變得愈加困難,為了解決網絡深度達到飽和之后出現的梯度消散或梯度爆炸的問題,He Kaiming等人[9]提出了殘差網絡,其內部的殘差模塊使用了跳躍鏈接,緩解了在深度神經網絡中增加深度帶來了梯度消失的問題。殘差網絡是由多個殘差模塊堆疊而成,輸入一張圖像數據,殘差網絡首先將輸入數據依次送入卷積層、非線性激活函數層、批處理層;然后將處理結果送入到多個殘差模塊,經過批處理歸一化層和全連接層之后,最后得到輸出結果。令第l個殘差模塊的輸入為xl,那么下一層的輸出為:

其中,F(xl,Wl) 是殘差函數,Wl是該殘差函數對應的權重,f(*)是非線性激活函數Relu。殘差網絡具有五種不同深度的網絡結構,分別為ResNet18,ResNet34,ResNet50,ResNet101,ResNet152。本文所使用的是ResNet50。
在計算機視覺學科中,多維度的目標檢測一直以來都是通過將縮小或擴大后的不同維度圖片作為輸入來生成出反映不同維度信息的特征組合,這種辦法對硬件計算能力及內存大小有較高要求,只能在有限的領域內部使用,因此Lin等人提出了特征金字塔網絡[10](Feature Pyramid Networks for Object Detection,FPN)可以有效的在單一圖片視圖下生成對其的多維度特征表達,在不增加原有模型計算量的情況下,大幅度提升了物體檢測的性能。特征金字塔網絡有三部分組成,第一部分為自底向上部分,該部分的過程就是神經網絡普通的前向傳播過程,特征圖經過卷積核計算,通常會越變越小;第二部分為自底向上部分,該部分過程是將低分辨率的特征圖做 2倍上采樣,然后通過按元素相加,將上采樣映射與相應的自底而上映射合并,這個過程是迭代的,直到生成最終的分辨率圖;第三部分是橫向連接部分,該部分的過程是將上采樣的結果和自底向上生成的相同大小的特征圖進行融合,橫向連接的兩層特征在空間尺寸相同,這樣做可以利用底層定位細節信息。
PSENet是基于深度學習的場景文本檢測模型,它有兩方面的優勢,第一,其可以對任意形狀的文本進行定位;第二,其提出了一種漸進的尺度擴展算法,該算法可以成功區分相鄰的文本實例。PSENet由網絡結構和漸進尺度擴展算法兩部分組成。
PSENet采用在 ImageNet數據集上預訓練的ResNet+FPN作為特征提取的網絡結構。網絡結構的處理流程為:首先通過FPN自底向上部分提取圖像的特征,然后通過FPN橫向連接部分與自上而下部分連接融合產生新的特征圖P5,P4,P3,P2最后將特征圖P5,P4,P3逐層上采樣至特征圖P2尺寸并與P2級聯在一起得到融合特征F,如圖1所示。

圖1 PSENet算法處理流程Fig.1 Processing flow of psenet algorithm
PSENet采用基于廣度優先搜索的漸進式尺度擴展算法作為后處理算法,該算法對n個分割區域從小到大依次進行擴展并得到最終的預測結果。分割區域表示稱為“核”,并且對于一個文本實例,有幾個對應的內核。漸進式尺度擴展算法處理流程為:(1)從具有最小尺度的核開始往外擴張,由于尺度極小的核之間存在較大的幾何邊緣,因此很容易區分相鄰文本實例;(2)將找到的連通域的每個像素點以廣度優先搜索的方式,逐個向上下左右擴展;(3)重復上述過程,完成直到發現最大的核作為預測結果,最終得到文本區域。漸進式尺度擴展算法在算法1中進行了概述,在算法1中,T,P為中間結果,Q為隊列,Neighbor(·)表示 p 的相鄰像素,GroupByLabel(·)表示按標簽分組中間結果。“Si[q]=True”表示預測Si中像素q屬于文本部分。

表1 漸進式尺度擴展算法Tab.1 Sc ale expansion algorithm
PSENet的每個內核與原始的整個文本實例共享相似的形狀,并且它們都位于相同的中心點但在比例上不同,因此需要標簽生成部分產生不同比例的核對應的標簽。該模型的損失由整體文本實例(Sn)的損失和縮放后文本實例(S1→Sn)的損失兩部分組成,因此標簽生成是計算模型損失重要的一部分。
PSENet會產生不同比例的核(S1,S2,…,Sn),如圖1所示,因此在訓練的過程中,需要有和不同比例的核相對應的標簽,但在使用標注工具 roLabelImg制作數據集時只能制作完整文本框的標簽,為了得到不同尺度的分割圖相對應的標簽,需要對數據集給定的標簽進行縮放處理,通過對數據集給定的文本框(文本框是一個多邊形)pn縮減di個像素得到縮放后的標簽pi。假設縮放比例為ir,則pn和pi之間di的計算方式為:

其中Area(pn)表示多邊形pn的面積,perimeter(pn)表示多邊形pn的周長。
對于縮放比ri計算方式為:

其中,m∈(0,1]為縮放的最小比例,縮放比ri的取值范圍為[m,1]。
本文的損失函數由整體文本實例(Sn)的損失LC和縮放后文本實例(S1→Sn)的損失Ls的損失兩部分組成,損失函數L的定義為:

其中λ用于平衡整體文本實例的損失LC和縮放后文本實例的損失Ls,本文設置為 0.7。由于通常文本實例可能只占自然場景很小的一部分,因此LC、Ls都采用Dics系數進行損失函數的計算,計算方式為:

其中Si,x,y表示分割結果Si在(x,y)位置處的像素值,Gi,x,y表示標簽Gi在(x,y)位置處的像素值。為了避免誤檢,在訓練過程中采用在線難例挖掘算法(Online Hard Example Mining,OHEM)[11],則LC的計算方式為:

其中M為訓練過程中OHEM預測的文本區域,Ls的計算方式為:

其中W表示Sn中忽略非文本區域像素的掩模。
3.1.1 人民幣圖像的構成
人民幣圖像有人民幣冠字號、人民幣金額、中國人民銀行這三部分組成,如圖2所示。(1)人民幣冠字號字符一共有 10個字符,由固定的26個英文字母 10個阿拉伯數字共同組成,有的人民幣冠字號位于人民幣的左下角,有的人民幣版本存在雙冠字號,不僅左下角有冠字號,并且在右側邊也存在冠字號;(2)人民幣金額存在兩種表達,第一種由人民幣金額的阿拉伯數字表達,有的位于人民幣的中心、右上角及左下角三個位置,有的位于人民幣的中心、右上角兩個位置,第二種是由人民幣金額的繁字體表達,位于人民幣金額阿拉伯數字位置的下方;(3)有中國人民銀行5個漢字組成,位于人民幣金額阿拉伯數字位置的上方。

圖2 含有單冠字號和雙冠字號的人民幣圖像Fig.2 Image of RMB with single and double crown
3.1.2 數據集選取
人民幣圖像沒有公開的數據集用于訓練和測試,本文所用的人民幣的圖像數據集是均由roLabelImg軟件對人民幣圖像標注,標注后的人民幣圖像如圖3所示。人民幣圖像的文本行標注是一個繁瑣的過程,需要消耗大量的人力和精力,本實驗對1元、5元、10元、20元、50元、100元一共選取500張進行標注,人民幣圖像按照順時針的格式標注,順序為左上角、右上角、右下角、左下角。

圖3 標注后的人民幣圖像Fig.3 Annotated RMB image
本文在Linux系統上搭建實驗平臺,CPU型號為Inter@CoreTMi7-10750H,內存為16G,使用Python3.6作為編程語言,使用的深度學習框架為pytorch 1.0。本實驗使用ResNet-50作為基礎網絡并使用隨機梯度下降進行優化,初始學習率設為1e–4,訓練600輪。
本文采用場景文本檢測的任務中常用的評價指標:準確率(Precision,P)、召回率(Recall,R)、綜合評價指標(F-measure, F值),其中準確率、召回率、綜合評價指標的計算方式為:

其中D表示使用PSENet檢測出的人民幣文本框,G表示真實的文本框。Match(D,G)表示使用PSENet檢測的正確的人民幣文本框的數量,|D|表示使用PSENet檢測出的人民幣文本框的數量,|D|表示真實的文本框的數量。
本文使用PSENet對六種不同面值即一元,五元,十元,二十元,五十元,一百元的人民幣進行了檢測,如圖4所示,基于 PSENet的人民幣文本檢測方法的召回率為 95%,準確率為 98%,f-measure為 97%(實驗結果保留兩位)。經實驗證明 PSENet應用于人民幣文本檢測具有較好的參考價值。將 PSENet應用人民幣文本檢測有以下優點:(1)基于 PSENet的人民幣文本檢測方法受人民幣出現破損折角、文字模糊等問題影響較小,提高了人民幣文本檢測的準確率。(2)基于 PSENet的人民幣文本檢測方法解決了人民幣文本檢測易受圖像變形、光照強度、拍攝角度等影響的問題,提高了人民幣文本區域定位的精準度。(3)基于 PSENet的人民幣文本檢測方法是基于分割的文本檢測方法,可以使候選框與真值框之間具備較好的匹配關系。(4)基于 PSENet的人民幣文本檢測方法可以將相鄰的人民幣文本區分。(5)根據測試結果來看,將 PSENet應用于人民幣文本檢測檢測結果較好,為人民幣文本檢測的研究提供了新的思路,具有一定的應用價值。

圖4 人民幣檢測結果Fig.4 RM B test results
針對人民幣文本檢測準確率不高以及文本區域定位的精準度不準等問題,本文提出了基于PSENet的人民幣文本檢測方法,通過利用PSENet對變形文本進行定位以及可區分相鄰文本的特性,將其應用到人民幣文本檢測中不僅提高了文本區域定位的精準度而且提高人民幣文本檢測的準確率。通過實驗表明本文的方法取得了不錯的檢測效果,為人民幣文本檢測的研究提供了新的思路,具有一定的應用價值。本文雖然有效地提高了人民幣文本區域檢測準確率,但是場景圖像背景復雜性、受拍攝的外界環境影響等問題依然是人民幣文本檢測的巨大挑戰,人民幣文本檢測還有空間值得進一步的研究和完善。