殷 航 張 智 王耀林(武漢科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 湖北 武漢 430065) (智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室 湖北 武漢 430065) (武漢科技大學(xué)大數(shù)據(jù)科學(xué)與工程研究院 湖北 武漢 430065)
文字與符號是自然場景中很常見的、擁有豐富語義的重要部分,人們可以通過這些重要的文本信息更便捷地理解圖片中的內(nèi)容并表達場景的視覺信息[1]。在理解文本信息的過程中,對圖像中文本所在位置進行提取,即文本檢測,是第一步也是最重要的一步工作。在復(fù)雜場景下文本檢測的難點主要有光照與對比度的影響、文本行方向的影響、多語種文本混合的影響等[2]。近年來不少檢測算法都是針對英文,而中文文本檢測算法在同樣檢測標準下,其召回率與準確率均落后于英文的文本檢測,其原因在于中文字符的特征比26類的英文字符要多得多。目前對于圖像中中文檢測的需求日益增加,如外語翻譯、票據(jù)檢索、視頻字幕提取等。在計算機視覺的研究中,如何又快又準確地檢測多語種與畸變文本,一直都是熱門的話題與待解決的難題。
不少文本檢測算法的核心來自目標檢測算法,關(guān)于文本檢測的方法被分為了傳統(tǒng)的基于字符特征的檢測方式與目前主流的基于深度學(xué)習(xí)的檢測方式,因為卷積核能夠挖掘圖片更深維度的特征,在復(fù)雜場景中后者效果要比前者好很多。而基于深度學(xué)習(xí)的檢測方式按照檢測步驟細分為兩種,第一種是將目標框定位問題轉(zhuǎn)化為坐標回歸問題的one-stage,檢測質(zhì)量稍低但是檢測速度出色,有代表性的如實時對象檢測(You Only Look Once, YOLO)[3]、YOLO升級版(YOLOv2)[4];第二種是基于分類思想,先由算法計算候選區(qū)域,再利用卷積神經(jīng)網(wǎng)絡(luò)對候選區(qū)域進行分類整合的two-satge[5],有代表性的如Faster R-CNN[6]與SSD[7],這種算法特點是準確度高但是存在大量重復(fù)檢測,檢測速度慢。本文提出融合YOLOv2的升級版YOLOv3[8]與最大極值穩(wěn)定區(qū)域(Maximally Stable Extremal Region, MSER)[9]的YOLOv3-M算法以解決這一難題。YOLOv3直接對輸入圖像應(yīng)用算法并輸出類別和定位,不需要進行大量掃描,速度快。但是YOLOv3無法檢測傾斜的目標,為此引入MSER進行文本行傾斜度檢測,在YOLOv3確定的候選區(qū)域中通過MSER特征尋找中文字符,然后通過連接字符質(zhì)心計算文本行與水平軸線的角度,完成文本行傾斜度檢測。MSER作為傳統(tǒng)文本檢測算法有其優(yōu)秀之處,基于MSER的算法在ICDAR 2011屆與2013屆大賽中拿下過冠軍。YOLOv3與MSER都是可以快速檢測物體的算法,因此在提高文本的檢測效率上比以往檢測方法有所提升,能夠完成實時檢測任務(wù)。
本文首先通過改進的YOLOv3預(yù)測圖像中文本行所在的水平坐標,然后將相應(yīng)坐標輸入給MSER算法進行檢測單個字符,最后通過連接每個字符的質(zhì)心形成連通域,得到最終的文本框。
YOLOv3不僅檢測速度十分迅速,在檢測質(zhì)量上也有十分出色的表現(xiàn)。本文針對文本檢測改進了初始錨點框并優(yōu)化了損失函數(shù),去除了對類別的預(yù)測,網(wǎng)絡(luò)最后的輸出參數(shù)只有邊界框與置信度,降低訓(xùn)練難度并以此提高文本檢測的效率。
YOLOv3讀取整幅經(jīng)過縮放和補全到416×416的正方形圖片,以S×S的網(wǎng)格劃分圖片區(qū)域,借鑒了特征金字塔(Feature Pyramid Networks,FPN)[10]的思想,在三個尺度的特征圖(13×13,26×26,52×52)上進行融合,相比較于YOLOv2預(yù)測的845個邊界框,YOLOv3預(yù)測邊界框個數(shù)達到10 647個,這樣的好處是使模型獲取更多的底層及高層的圖像語義信息,克服了YOLOv2對于小物體敏感度低的缺陷。
(1) 計算置信度:圖像上的網(wǎng)格負責(zé)預(yù)測目標置信度,置信度代表網(wǎng)格是否含有文本以及文本位置的準確性。首先判斷是否擁有目標,即Pr(obj)=1,這一步的判斷只有0和1,再計算該目標是文本行的概率Pr(text|obj),最后乘以定位的準確度IOU(預(yù)測框與真實框交并比)得到最終的置信度。計算如下:
Conf(text)=Pr(obj)×Pr(text|obj)×IOU
(1)
(2) 計算文本行邊界框的參數(shù):YOLOv3網(wǎng)絡(luò)的實際學(xué)習(xí)目標是與最終邊界框坐標相關(guān)的四個參數(shù),即目標坐標偏移量與寬高縮放比(tx,ty,tw,th),這四個值均通過網(wǎng)絡(luò)直接進行預(yù)測回歸。通過式(2)計算文本行的寬、高與中心坐標(bw,bh,bx,by),其中σ(x)函數(shù)目的是將預(yù)測偏移值縮放到0和1之間。計算過程如圖1所示。
bx=σ(tx)+cxby=σ(ty)+cybw=pwetwbh=pheth
(2)

圖1 YOLOv3預(yù)測目標位置
(3) 選擇最優(yōu)邊界框:通過非極大值抑制算法(Non-Maximum Suppression, NMS)可以排除冗余預(yù)測框以獲得最優(yōu)的文本行位置。其算法流程為:對按置信度排序的預(yù)測框分別計算該預(yù)測框與其他預(yù)測框的交并比,舍棄交并比超過閾值(本文設(shè)定為0.4)的預(yù)測框。不斷重復(fù)這一步驟以保留置信度最大的預(yù)測框,最后剩下的預(yù)測框即最優(yōu)邊界框。
YOLOv3每一個單元格依靠三種錨點框預(yù)測多個邊界框,這些錨點框采用聚類的方式來初始化,用于檢測不同形狀的目標。這種先驗知識對于預(yù)測邊界框的幫助很大,在針對文本行的檢測中沿用原有的錨點框設(shè)置顯然是不合適的。文本行更加趨向于長矩形,本文根據(jù)文本行特征交并比,嘗試了多種組合訓(xùn)練后,初始化候選框數(shù)量為9,具體參數(shù)分別為(49×32)、(37×61)、(82×65)、(56×110)、(69×128)、(71×170)、(130×130)、(156×111)、(89×218),符合中文文本行扁長的特點。
Darknet-53是YOLOv3中的骨干網(wǎng)絡(luò),由52層卷積層與類似殘差網(wǎng)絡(luò)(Residual Neural Network, ResNet)[11]中的跳遠連接構(gòu)成。隨著網(wǎng)絡(luò)層數(shù)越來越深,每層傳遞的參數(shù)會出現(xiàn)近似于0的梯度消失或呈指數(shù)增加的梯度爆炸,訓(xùn)練效果不升反降,而殘差模塊利于解決此類問題,由此可以運用更深的網(wǎng)絡(luò),達到更好的識別效果。Darknet53網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。

表1 Darknet53網(wǎng)絡(luò)結(jié)構(gòu)

續(xù)表1
我們只需要預(yù)測文本行單一類,即只需要定位坐標,以此提高識別效率。對應(yīng)的損失函數(shù)修改為:
(3)


圖2 YOLOv3階段檢測文本水平候選區(qū)域
通過MSER找出文本區(qū)域的原理是:一幅圖片的文本區(qū)域在256個灰度值中,其擁有的保持性狀穩(wěn)定的灰度閾值范圍較其他特征更多,即能與其余特征區(qū)分開來[12]。圖片的模糊與噪點會導(dǎo)致MSER誤檢[13],但是在通過YOLOv3縮小文本候選區(qū)范圍后,應(yīng)用初始MSER算法已經(jīng)能夠獲取較精準的中文字符區(qū)域,如圖3所示,其中:(a)為完整圖;(b)為縮小文本候選區(qū)域后的檢測效果圖。
對于傾斜度達到45度的文本行,YOLOv3檢測的水平候選區(qū)域中非文本部分至少會占用50%的面積,其中有可能存在被MSER識別出的偽字符。本文利用漢字形態(tài)與橢圓擬合[14]設(shè)計了4種條件來篩選特征提取區(qū)域集MSERs[15],篩選后的MSERs則是真實中文字符區(qū)域。
(1) 基于MSER長寬比:漢字近似方塊,如果MSER區(qū)域過于細長,說明該區(qū)域可能是偽字符區(qū)域[16],當(dāng)比值為5時效果最好,如式(4)所示。
(4)
式中:LongAxisi與ShortAxisi表示橢圓擬合長軸長度與短軸長度。
(2) 基于MSER面積:需要識別的漢字如果近似點狀則幾乎沒有識別價值,經(jīng)過檢驗,如果MSER像素面積大于12則可以判斷為字符,如式(5)所示。
ResultMSER2={ResultMSER1i|AeraMSERi>12}
(5)
(3) 基于擬合橢圓與MSER的區(qū)域面積比:通過對MSER區(qū)域進行橢圓擬合可以最小化離散數(shù)據(jù)的誤差以得到更精確的漢字質(zhì)心。對于方塊狀的中文字符來說,其擬合橢圓面積大于MSER面積??梢酝ㄟ^計算擬合橢圓面積AreaEllipsei與MSER面積AreaMSERi之比濾除偽字符區(qū)域,如式(6)所示。
(6)
(4) 基于橢圓擬合交并誤差:很多漢字是由多個偏旁部首進行組合,因此在運用MSER算法后會出現(xiàn)一個漢字內(nèi)部還有多個偏旁部首的MSER區(qū)域。計算角度時僅需要單個漢字的質(zhì)心,通過計算兩個橢圓間的交并比可以排除偏旁部首的MSER,只保留相似的MSER中最大的一個即可。交并誤差OE計算為:
OE=1-(Rj∩Rk)÷(Rj∪Rk)
(7)
式中:Rj、Rk為兩個橢圓的面積。
ResultMSER4={ResultMSER3i|0.15≤OE≤0.45}
(8)
自然場景中文本行大多與圖像水平軸存在角度,因此單純檢測水平目標是不夠的。通過YOLOv3預(yù)測出單個文本行的水平坐標后,在每個坐標區(qū)域內(nèi)再次通過MSER定位方法確定每一個中文字符MSER區(qū)域的中心位置。對離散坐標進行線性擬合如式(9)所示。
y=p(1)×x+p(2)
(9)
式中:p(1)、p(2)表示最左側(cè)、最右側(cè)字符位置信息。
通過對字符的線性擬合,得到的文本行與水平軸夾角θ:
(10)
式中:p1為擬合后首字符位置信息。
如果θ小于45度,選擇候選區(qū)中最左側(cè)字符和最右側(cè)字符的質(zhì)心繪制直線;如果θ處于45度及以上,找出候選區(qū)中最頂端字符和最底端字符的質(zhì)心繪制直線,這樣建立所有漢字的連通域。最后繪制連通域的最小外接矩形框,就完成了偽字符的過濾以及文本區(qū)域的合并,方向估計過程見圖4。

圖4 擬合中心直線得到傾斜文本框
(1) 實驗數(shù)據(jù)集。中文文本檢測數(shù)據(jù)集采用ICDAR 2017 RCTW中的1 500幅圖片,訓(xùn)練集、測試集與驗證集的比例為3∶1∶1,數(shù)據(jù)集圖像內(nèi)容包含中文的店名、交通警示語、橫幅等,大部分圖片中文本行與圖像水平軸存在角度,在數(shù)據(jù)量與圖像特點上滿足中文文本檢測數(shù)據(jù)集的要求。由于YOLOv3網(wǎng)絡(luò)需要XML格式的數(shù)據(jù)集標簽,本文通過LabelImg軟件,結(jié)合數(shù)據(jù)集中原標簽對數(shù)據(jù)集進行標注,制作了適合YOLOv3訓(xùn)練的XML數(shù)據(jù)集。
(2) 運行環(huán)境與網(wǎng)絡(luò)訓(xùn)練:本文實驗使用內(nèi)存為16 GB,GPU為GTX1060(6 GB顯存),于Visual Studio 2015上部署訓(xùn)練環(huán)境,并訓(xùn)練YOLOv3網(wǎng)絡(luò)。在訓(xùn)練中采用改進的損失函數(shù)與錨點框參數(shù),調(diào)整衰減系數(shù)為0.000 5,設(shè)置初始學(xué)習(xí)率為0.001,訓(xùn)練迭代輪數(shù)為50 000輪,其訓(xùn)練過程如圖5所示。整個訓(xùn)練時長約110小時,通過10 000輪訓(xùn)練后平均損失趨于穩(wěn)定,通過50 000輪訓(xùn)練使平均損失收斂到0.1左右。YOLOv3網(wǎng)絡(luò)的輸出參數(shù)即MSER定位方法的輸入?yún)?shù)。

圖5 YOLOv3訓(xùn)練收斂過程
本文使用YOLOv3-M與多個常用的深度學(xué)習(xí)文本檢測算法進行對比。算法精度對比參考ICDAR 2017的標準,即精確率(precision):預(yù)測確實為文本的矩形框占預(yù)測到的矩形框的比例;召回率(recall):預(yù)測確實為文本的矩形框占實際標注的矩形框的比例;以及二者的加權(quán)平均值F-score。算法速度對比采用每秒傳輸幀數(shù)來比較,即對整個測試集進行預(yù)測時平均每秒預(yù)測的畫幅數(shù)。算法效果與結(jié)果對比見圖6與表2。
可以看出,YOLOv3-M能夠檢測較小的文本行,在結(jié)合MSER定位方法后能夠進一步檢測傾斜文本,在整合YOLOv3與MSER兩種算法后,檢測速度上依舊優(yōu)于其他算法。不過在一些帶有過長文本行以及高度彎曲的圖片預(yù)測中,依舊有局限性。
本文通過改進YOLOv3初始化錨點框與損失函數(shù),提高了YOLOv3檢測文本水平區(qū)域的效果,再基于YOLOv3預(yù)測的坐標,結(jié)合針對中文字符的MSER文本定位算法,設(shè)計并實現(xiàn)了YOLOv3-M算法。該算法避免了two-satge類算法識別速度低與YOLOv3無法檢測傾斜文本的問題,最終實現(xiàn)快速精準的傾斜中文文本區(qū)域檢測。