?

基于YOLOv3與CRNN的自然場景文本識別

2022-08-16 03:27吳啟明宋雨桐
計算機工程與設計 2022年8期
關鍵詞:文本框準確率標簽

吳啟明,宋雨桐

(1.河池學院 計算機與信息工程學院,廣西 宜州 546300; 2.華中科技大學 計算機科學與技術學院,湖北 武漢 430074)

0 引 言

自然場景中文本區域偏轉角度及文本區域邊緣復雜多樣,而且受限于采集圖像時光照環境和采集設備的性能,圖像中會包含一些噪聲數據,影響了最終識別效果。因此,尋找一種在自然場景中的文本檢測與識別技術顯得尤為重要。

文本檢測與識別技術在國內外已經有相關團隊和學者在研究[1-6],比如Jiri Matas團隊,視覺幾何團隊(VGG)以及微軟亞洲研究院(MSRA)等,學者中有華南理工大學金連文教授、華中科技大學白翔教授、中國科學院大學葉齊祥教授等,他們在自然場景文本檢測研究中獲得了重大成果。

為了降低自然場景中圖像包含的噪聲以及文本區域偏轉角度對識別效率的影響,本文借鑒了已有成果后提出使用YOLOv3[7]與CRNN[8]模型解決在自然場景下中文和英文文本的檢測與識別問題。降低文本區域偏轉角度對識別效率影響的具體實現為,在一系列固定寬度的文本框中使用文字朝向檢測算法,檢測出朝向為0、90、180、270度文本框,再使用小角度估算函數對其它角度的文本框進行微調[9]。然后使用YOLOv3檢測單個固定寬度的小文本框,并采用文本框聚類算法連接這些小文本框,以此獲得完整的文本檢測框。最后使用CRNN模型識別這些文本檢測框中的內容,為了解決識別結果文本行中沒有空格的問題,采用Viterbi算法[10]對英文文本進行分詞,增強閱讀體驗。為了提高實驗的說服力,本文在相同的實驗場景中把CTPN[11]與DenseNet模型和YOLOv3與CRNN模型的檢測與識別結果進行對比分析,進一步驗證YOLOv3與CRNN模型在自然場景文本檢測識別任務中的優越性。為了展示檢測與識別結果,本文設計了文本檢測與識別系統,方便給用戶呈現識別檢測結果。

1 算法實現

1.1 文字朝向檢測算法

先采用VGG16網絡模型進行遷移訓練檢測文字朝向。VGG16網絡模型見表1,共有5段卷積層,前2段(B1、B2)有2個卷積層,后3段(B3、B4、B5)有3個卷積層,每段結尾連接最大池化層(MP)來縮小圖片尺寸,最終由兩個全連接層(F1、F2)及softmax進行四分類角度(0°,90°,180°和270°)預測。

表1 VGG16網絡模型具體參數

首先要對圖像預處理,需要去除噪聲并剪切,最終輸出尺寸為(224,224,3)的圖像,接下來進行零均值化處理,處理完的圖像加載到VGG16網絡輸入層(Input),用于預測文字朝向并旋轉調整。VGG16模型實現框架為keras,初始學習率為0.000 01,損失函數為交叉熵函數,優化方法為隨機梯度下降法,在此基礎上使用10萬張圖片訓練模型并進行測試,實驗準確率為95.10%。

圖1為未加入文字朝向檢測算法與加入文字朝向檢測算法的結果對比。除四分類角度(0°,90°,180°和270°)外其它角度,本文采用小角度估算函數預測并旋轉圖像,為了保證計算速度規定只能在(-15,15)度范圍內調整。

圖1 文字朝向檢測算法使用結果對比

傾斜角度計算步驟為,首先將圖像灰度化,同時等比例縮放到(600-900)像素范圍內。然后進行歸一化處理。最后計算每行圖像的均值與方差向量,如果圖像中沒有文本傾斜情況,此時方差最大,對應的角度就是傾斜角度。

1.2 YOLOv3文本區域檢測算法

1.2.1 YOLOv3模型文本檢測網絡框架

傳統YOLOv3目標檢測算法更適用于一般物體的檢測,將其用于自然場景文本文字檢測任務中并不能發揮其優勢。相對于自然場景中的常規物體,自然場景中的文本行長度、尺寸比例更加復雜多樣,為文本行定位增加了難度。為了解決上述問題,先檢測單個固定寬度的小文本段,繼而再將這些小文本段聚類,得到一條文本行。

圖2為YOLOv3網絡結構,其中使用75個卷積層來分析文本特征。而且網絡結構不包含全連接層,所以可以輸入任意大小的圖像。此外整個YOLOv3結構中也沒有出現池化層,因此通過調整卷積核的步長stride=(2,2) 來替代池化層實現下采樣的效果,并且往下一層傳遞時尺度不變。同時YOLOv3通過借鑒ResNet網絡對殘差信息的學習方式來優化檢測速度。

圖2 YOLOv3文本檢測網絡結構

同時為了提高檢測精度,本文也借鑒了類似FPN網絡的思路,首先將每種尺度預測3個邊界框,然后按照anchor設計方式得到9個聚類中心,最后將這9個聚類分給3個尺寸的邊界框。

1.2.2 YOLOv3模型訓練

(1)環境配置

實驗環境配置如下:

實驗采用的硬件環境為12 G內存,i7處理器windows 10 ×64;CUDA 8.0.61;CUDNN 5.1.10;開發環境為python 3.6;編輯環境為Pytorch 1.0.1;調用的函數庫為opencv 3.4.2.16;開發框架為keras 2.1.5。

(2)訓練數據集

圖3 txt格式標簽

由于YOLOv3模型限定輸入文件格式為xml,因此本論文使用python程序將txt格式的標簽文件轉換為xml格式標簽文件,最終效果如圖4所示??梢钥闯鰔ml格式標簽文件中包含了文本的分類標簽、文本區域起始點的坐標、文本圖像的大小、文本的內容、文本區域偏離起始點的角度及文本區域長寬。為解決在識別過程中出現的中文亂碼顯示問題,首先將xml格式的文本采用HTML實體編碼,然后再解碼成漢字。

圖4 xml格式標簽

(3)模型訓練

基于keras和tensorflow加載YOLOv3模型實現遷移學習。cluster_number為9,最小分隔寬度值為8, scales[416,512,608,608,608,768,960,1024],遷移訓練完成后再通過K-means進行計算,得出anchors為 {8,11, 8,22, 8,34, 8,49, 8,70, 8,98, 8,142, 8,228, 8,522}。

使用GPU訓練YOLOv3模型,設置輸入圖像尺寸為608×608,初始學習率為0.001,訓練過程中按0.1倍進行調整。epoch設定為100,batch_size設定為32。經過實驗得出YOLOv3的loss和confidence_loss值如圖5所示。

圖5 YOLOv3的loss值和confidence_loss值

由圖5可知,YOLOv3模型在訓練過程中,loss由0.9056降至0.8313后波動逐漸減小,confidence_loss由0.6857降至0.6443后波動逐漸減小,說明loss值隨著訓練次數的增加有序下降,最終趨于收斂。相對而言驗證集的損失值曲線val_loss波動幅度較大,但隨著迭代次數的增加最終趨于收斂,表明YOLOv3模型在ICDAR2017數據集中的檢測效果趨于穩定。最終將訓練好的YOLOv3模型用于檢測,結果如圖6所示。

圖6 YOLOv3模型檢測出的text_proposal

1.3 文本框聚類算法

YOLOv3模型輸出一系列固定寬度的文本框,然后將這些固定寬度的文本框采用文本線構造算法連接起來。

假設某圖有圖7所示的A文本框和B文本框,采用如下算法構造文本行:

(1)按x坐標對文本框index依次排序;

(2)計算每個固定寬度的文本框boxi的pair(boxi), 組成pair(boxi,boxj);

(3)通過pair(boxi,boxj) 建立連接圖,最終得到一個文本檢測框。

圖7 文本框聚類算法構造文本行

文本框聚類算法建立文本框boxi的pair(boxi,boxj) 步驟為:

(1)正向尋找

1)尋找在水平正方向上與文本框boxi距離小于50的文本框為候選文本框集合;

2)從步驟1)的候選文本框中挑出滿足boxi水平方向overlapv>0.7的文本框;

3)從步驟2)的文本框中挑出滿足softmax score最大的boxj。

(2)反向尋找

1)尋找在水平正負方向上與文本框boxi距離小于50的文本框為候選文本框集合;

2)從上述步驟1)的候選文本框中挑出滿足boxi水平方向overlapv>0.7的文本框;

3)從上述步驟2)的文本框中挑出滿足softmax score最大的boxk。

(3)對比scorei和scorek

判斷scorei≥scorek是否為最長連接,如果是最長連接,設置Graph(i,j)=True; 否則將繼續尋找該連接所在的最長連接。

在進行文本區域檢測時,借鑒“微分”思想將待檢測文本分割成一系列等寬的文本框,然后再由文本線構造算法合并成一個圖8所示的完整文本檢測框。

圖8 檢測的文本框聚類結果

1.4 CRNN文本識別算法

主要研究基于CRNN的自然場景文本識別,CRNN可在不依賴詞典的情況下實現識別不定長文本序列。研究發現基于CRNN的自然場景文本識別任務準確率較高。

1.4.1 CRNN文本識別算法原理

CRNN文本識別算法在自然場景的文本識別中集成了特征提取、序列建模和轉錄功能。

如圖9所示在自然場景文本識別中CRNN包括了卷積層(Conv)、循環層(ReCurrent Layers)和轉錄層(Transcription Layers),主要用于特征提取、序列建模和轉錄功能。

圖9 CRNN識別原理

首先在卷積層中獲得輸入圖像的特征序列,然后在循環層中對這些特征序列進行每幀預測,最后在轉錄層將其轉換成標簽。

圖9的卷積層(Conv)中包含Conv和MaxPool,用于將輸入圖像(32,100,3)變成一組卷積特征矩陣(1,25,512),然后用BN網絡對這些卷積特征矩陣進行歸一化。圖10所示歸一化后的特征向量與特征圖之間一一對應且從左向右依次排列。

圖10 特征序列

圖11所示,在循環層中通過深度雙向LSTM結構,對每幀xt預測其特征序列X=x1,…,xt的標簽yt。 深度雙向LSTM網絡可以記憶長段序列輸入,本文設置最大時間序列長度T為25,設置xt(1

圖11 深度雙向LSTM結構

循環層的預測結果標簽yt, 通過CRNN頂部的轉錄層轉換為標簽序列。CRNN頂部的轉錄層使用CTC算法計算損失函數,理論上可以簡化訓練過程從而加快收斂。

CRNN頂部的轉錄層分為有詞典轉錄和無詞典轉錄;無詞典轉錄模式下,主要通過預測結果標簽中概率最大的標簽來確定該目標文本的標簽;有詞典轉錄模式下,首先定位目標文本,然后通過模糊匹配確定該目標文本的標簽。

轉錄層通過每幀預測結果標簽yt來表明標簽序列y=y1,…,yt。 并且y=y1,…,yt中的任意結果標簽yt∈R|L′|都是集合L′=L∪{blank} 的一個概率分布。首先在序列π∈L′T上定義映射函數B用于去除空標簽和重復標簽,然后將去除空標簽和重復標簽的序列π∈L′T寫入序列1,就比如序列“--hh-e-l-ll-oo--”經過映射函數B移除空標簽和重復標簽后變成“hello”。條件概率為將所有序列π∈L′T通過映射函數B映射到序列l的概率之和

(1)

相比于先前的專家學者在自然場景文本識別領域的研究,CRNN文本識別算法具有4種獨特的屬性:

(1)CRNN模型可實現端到端訓練。

(2)CRNN模型不需要字符分割,可以自動識別任意長度的文本序列。

(3)CRNN模型在有詞典狀態和無詞典狀態均有良好的魯棒性和準確性。

(4)CRNN模型更適用于自然場景問題中。在IIIT-5K、街景文本和ICDAR數據集中驗證了其優越的性能。

1.4.2 CRNN模型文本識別網絡框架

CRNN網絡詳細參數見表2。為了在中文訓練和英文訓練中更好兼容,調整CRNN模型中后兩個MaxPool2d層的stride為2×1,進而增加了特征序列的長度,提高了不同寬度下的字符識別效果。同時為了使網絡收斂速度加快,本文在模型第3個卷積層之后加入Batchnorm2d層。

表2 CRNN模型文本識別網絡

1.4.3 CRNN模型訓練

(1)訓練數據集

采用的圖像數據集中包含字符6031個,針對包含字符的單張圖像,依次進行預處理、模糊處理、灰度處理、部分遮擋處理、背景處理。然后再針對圖像中字符本身的特點選擇對圖像進行拉伸或變換處理。最終生成360萬張大小280×32的文本圖片,其中每張圖片包含10個字符。

(2)模型訓練

圖12 CRNN模型訓練所得驗證集精確度和loss值

分析上圖可知,隨著訓練次數的增加模型的準確率逐漸提高,loss值逐漸下降,并呈收斂趨勢,表明訓練逐漸趨于穩定。

最終利用訓練好的CRNN模型進行識別,結果如圖13所示。

圖13 CRNN模型識別結果

1.5 Viterbi分詞算法

如圖14(a)為輸入數據,圖14(b)為CRNN網絡返回的無空格數據,此類數據無法正確分割英文單詞,因此本文采用動態規化算法(Viterbi)[9]分隔英文單詞。

通過Viterbi找到隱含狀態序列,即位于馬爾可夫信息源上下文和隱馬爾可夫模型(HMM)中生成概率最高的序列維特比路徑。

假設HMM中的整個狀態空間表示為S(i∈S), 其中狀態i初始概率為πi, 從狀態i到j的概率表示為ai,j。 觀察到的值為y1,y2,…,yt。 通過下面的迭代關系給出產生觀察值的最可能狀態序列x1,x2,…,xt

P1,k=πk-P(y1|k)

(2)

式(2)中的P(y1|k) 表示處于隱狀態k所對應值y1的產生概率,πk表示k的初始概率

(3)

式(3)中的Pt,k表示在0~t中的最大序列概率值,此時的k為最終狀態;然后用參數x的反向指針獲得維特比路徑。

式(3)所示,Viterbi對于當前狀態最佳值的計算依賴于當前狀態的 |S| 個值和前一狀態的 |S| 個值,總共有T個狀態,每個狀態需要計算O(|S|2) 次,因此總時間復雜度為O(T×|S|2)。

通過對比圖14(a)的輸入圖片和圖14(b)的識別結果,發現識別結果中的英文字符串沒有空格,導致難以分割單詞從而降低可讀性。圖14(c)使用Viterbi算法,結果顯示英文字符串被分詞,由此可證Viterbi算法可以解決英文字符串的分詞問題。

2 檢測與識別系統框架

圖15為文本檢測識別系統架構,其中YOLOv3網絡負責文字檢測模塊,CRNN網絡負責文字識別模塊。

圖15 系統架構

文字檢測與識別系統為B/S架構,圖16所示從Web頁面上傳圖片后先存儲到數據庫,然后從數據庫批量讀取待識別圖片,并使用文字朝向算法預測角度并旋轉,再通過YOLOv3模型將圖片中的文字輸出為定長的文本框,將這些文本框使用聚類算法連接成一個文本行,之后將文本行送入CRNN模型識別,識別出的結果使用Viterbi分詞算法進行分詞處理,最后在前端頁面展示分詞處理結果。

圖16 系統前端頁面

3 識別結果對比分析

3.1 YOLOv3與CRNN模型識別結果

YOLOv3與CRNN模型在不同的自然場景文本圖像識別中均有良好的效果,并且識別速度快,能夠滿足實際的識別需求。圖17為選取100幅場景文本圖像在YOLOv3與CRNN模型中進行測試,得到檢測時間與文本框個數間的關系。

圖17 YOLOv3與CRNN模型文本框檢測個數和 檢測與識別的時間關系

分析上圖得出,在自然場景文本圖像檢測與識別中,模型在0.7 s內就能檢測出大部分文本框,多次實驗發現平均在1 s以內就能檢測出大部分文本框,因此設定閾值0為1 s,以閾值為標準剔除超過閾值的數據,最終求得平均檢測時間為0.4258 s。

3.2 CTPN與DenseNet模型識別結果

基于DenseNet,使用keras框架搭建模型并訓練。在GPU環境中運行5個epoch,batch_size取128,實驗識別率為97.3%。

經過實驗得出DenseNet模型與CTPN檢測用時7.934 s,檢測與識別共用時12.994 s。DenseNet在訓練集中準確率較高,但加入Viterbi分詞算法后英文文本的識別準確率會降低,由此可證在DenseNet模型中加入Viterbi算法后會降低其識別準確率。

這里存在一個問題,由于DenseNet模型是用于識別低像素圖片,因此采用DenseNet模型,需要首先壓縮圖片像素,然后再檢測識別,這樣降低像素的方式如果出現圖片中字符較多的情況會導致檢測性能下降,從而影響后續的識別效果。

為了進一步分析CTPN與DenseNet模型識別結果,采用與YOLOv3與CRNN模型實驗中相同的100幅場景文本圖像進行測試,得到CTPN與DenseNet模型文本框個數與識別時間的關系。

圖18所示,在自然場景文本圖片識別任務中DenseNet與CTPN模型在2 s內可識別出大多數文本框個數,在0.2 s~1.4 s之間識別出的文本框數最多。在1.6 s內基本上能夠完成文本框識別,由此給定閾值為1.6 s,以閾值為標準,刪除大于閾值的數據,最終求得平均檢測識別時間為0.8250 s。

圖18 DenseNet與CTPN與文本框檢測個數 及檢測與識別的時間關系

3.3 兩種模型識別結果對比分析

提出兩種檢測與識別模型,并設計相關實驗,最終得出CRNN與YOLOv3模型的以下特點:

(1)檢測方面,CTPN模型的檢測精度比YOLOv3模型低。具體表現在CTPN模型在大間距字符文本行中檢測精度低,而且會出現邊緣檢測不準確的情況。同時CTPN模型在檢測方向上也有限制,只能檢測水平方向的文本,而YOLOv3模型在多文字朝向檢測場景中仍然保持很好的檢測效果。

(2)識別方面,CRNN模型在中英文混合的自然場景中識別準確率比DenseNet模型高,說明CRNN模型有較強的魯棒性;而且DenseNet模型只能讀取低分辨率圖片,一旦圖片中字符數量增多時識別準確率就會降低,這就導致最終識別準確率降低。

(3)檢測與識別速度方面,通過在相同數據集上測試。表3為相同的實驗環境和場景文本數據集中,CTPN與DenseNet模型和YOLOv3與CRNN模型檢測與識別時間對比,實驗結果表明CRNN模型與YOLOv3的檢測與識別速度明顯優于CTPN與DenseNet模型。

表3 CTPN與DenseNet模型和YOLOv3與 CRNN模型檢測與識別時間對比/s

綜上所述,通過對比兩種模型的識別結果得出,在自然場景中的中英文文本圖像檢測與識別任務中,YOLOv3與CRNN模型不論是檢測與識別準確率和檢測與識別速度方面都具有顯著的優勢。

4 結束語

為了提升現有的自然場景圖片文本檢測與識別技術,本文提出使用CRNN與YOLOv3模型進行自然場景下的文本檢測識別,實驗采用文字朝向檢測算法和小角度估算函數提升了文字朝向檢測算法的準確率,并使用YOLOv3和文本框聚類算法確定待識別文本行,最終使用CRNN識別文本。相比較傳統的DenseNet與CTPN模型,CRNN與YOLOv3模型的識別準確率和識別效率都最優。

雖提升了自然場景文本的識別準確率和識別效率,但仍有不足之處需要更深入探究,具體如下:

(1)由于中文數據集中缺少繁體字,手寫體及彎曲文本,導致CRNN模型對這類中文字體識別準確率低,從而降低了整體識別準確率,接下來將在數據集中補充這類中文字體。

(2)在模糊圖像中的識別準確率較低,可以嘗試對模糊圖像進行增強處理,或許可以提高識別準確率。

猜你喜歡
文本框準確率標簽
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
巧用文本框實現PPT多圖片排版
PPT文本框的另類應用
無懼標簽 Alfa Romeo Giulia 200HP
高速公路車牌識別標識站準確率驗證法
不害怕撕掉標簽的人,都活出了真正的漂亮
圖片動畫玩異樣
讓衣柜擺脫“雜亂無章”的標簽
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合