郭毛琴,謝紅薇,張效良
(太原理工大學(xué) 軟件學(xué)院,山西 太原 030024)
我國(guó)越來(lái)越龐大的工業(yè)生產(chǎn)中,設(shè)備類型及數(shù)量也日趨豐富。設(shè)備表面基本都有用于表明設(shè)備基本信息的多種類型的字符,在進(jìn)行設(shè)備檢修、維護(hù)、管理等操作時(shí),采用人工方式統(tǒng)計(jì)設(shè)備銘牌信息時(shí),需要手動(dòng)的對(duì)信息進(jìn)行輸入整合,這種傳統(tǒng)方法效率很低。若采用人工智能技術(shù)對(duì)設(shè)備銘牌中的文本進(jìn)行檢測(cè),依然存在諸多難點(diǎn):①設(shè)備銘牌包括中英文、數(shù)字、特殊符號(hào)等多種字符,不同的文本類型的文本特征也存在較大的差異,加大了文本檢測(cè)與識(shí)別的難度;②由于圖像采集環(huán)境和設(shè)備參差不齊,使設(shè)備銘牌表面的文本出現(xiàn)變形、模糊、光照不均等問(wèn)題,導(dǎo)致增加了文本區(qū)域的噪聲,影響文本檢測(cè)精度;③在自然場(chǎng)景下,采集圖像的背景有很大的不確定性,對(duì)文本行的檢測(cè)可能會(huì)受到背景的影響,從而增加了檢測(cè)難度;④在設(shè)備銘牌的字符識(shí)別過(guò)程中,由于文本行長(zhǎng)度不一,而且包括多種類型的字符,需要精確識(shí)別任意長(zhǎng)度的文本序列,存在一定的困難[1]。本文為解決上述問(wèn)題,分析并改進(jìn)現(xiàn)有的文本檢測(cè)與識(shí)別算法,提出一種適用于銘牌文本識(shí)別的算法模型。
利用深度學(xué)習(xí)技術(shù)進(jìn)行文本檢測(cè),主流的方法有以下幾種。Tian等[2]提出CTPN(connectionist text proposal network)算法,采用FasterRCNN中的RPN(region proposal network)架構(gòu),使用VGG16網(wǎng)絡(luò)作為模型的基礎(chǔ)框架。在檢測(cè)過(guò)程中,字符序列的上下文信息十分重要,CTPN算法中借助循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)獲取,使得檢測(cè)更加有效[3]。Liao等[4]提出TextBoxes檢測(cè)方法,采用SSD算法結(jié)構(gòu),支持多尺度訓(xùn)練,是一種端到端的模型結(jié)構(gòu),檢測(cè)細(xì)長(zhǎng)文本行效果較好。Li等[5]提出了PSENet算法,該算法沿用了特征金字塔網(wǎng)絡(luò)的結(jié)構(gòu),提出漸進(jìn)式擴(kuò)展算法能夠?qū)崿F(xiàn)對(duì)彎曲文本的定位,并且能將相鄰的文本區(qū)域分割開(kāi)來(lái)。Zhou等[6]提出EAST算法,算法中借鑒全卷積網(wǎng)絡(luò)的架構(gòu)模式。在像素級(jí)層面對(duì)圖像中的文本信息做出預(yù)測(cè),這種方法能實(shí)現(xiàn)多方向的檢測(cè),與CTPN算法相比,檢測(cè)中文文本的效果較差?,F(xiàn)階段,利用深度學(xué)習(xí)技術(shù),對(duì)字符進(jìn)行識(shí)別越來(lái)越普遍。Shi等[7]提出的CRNN(convolutional recurrent neural network)模型,將卷積神經(jīng)網(wǎng)絡(luò)和雙向長(zhǎng)短期記憶網(wǎng)絡(luò)連接起來(lái),可以在一個(gè)網(wǎng)絡(luò)中實(shí)現(xiàn)特征提取、序列建模和序列分析。而且,該過(guò)程中不存在字符分割,可以對(duì)不同長(zhǎng)度的文本序列進(jìn)行識(shí)別。
由于污水處理設(shè)備銘牌的特殊性,需在自然場(chǎng)景下采集的圖像中檢測(cè)并識(shí)別多種字符類型。結(jié)合實(shí)際應(yīng)用場(chǎng)景,本文提出一種改進(jìn)的CTPN文本檢測(cè)算法,該算法在檢測(cè)網(wǎng)絡(luò)之前設(shè)計(jì)圖像預(yù)處理模塊,使用ResNet50網(wǎng)絡(luò)代替CTPN模型中的VGG16網(wǎng)絡(luò),改進(jìn)了NMS非極大值抑制算法,解決了由于圖像傾斜以及復(fù)雜背景等影響檢測(cè)精度的一系列難點(diǎn)。將CRNN文本識(shí)別模型整合到檢測(cè)算法中,可以直接對(duì)輸入的銘牌圖像進(jìn)行檢測(cè)與識(shí)別,有效提升了檢測(cè)與識(shí)別的效果。
CTPN算法采用雙向的LSTM結(jié)構(gòu)可以實(shí)現(xiàn)對(duì)多種語(yǔ)言和不同尺度文本行的檢測(cè),為解決此算法只能檢測(cè)水平方向文本行的問(wèn)題,對(duì)傳統(tǒng)的CTPN網(wǎng)絡(luò)模型進(jìn)行改進(jìn)。本文提出的AdvancedCTPN文本檢測(cè)算法由3個(gè)模塊組成。
在采集過(guò)程中,由于拍攝角度存在差異,會(huì)導(dǎo)致銘牌圖像出現(xiàn)傾斜情況,進(jìn)而導(dǎo)致文本行不是水平的,如圖1所示。一般來(lái)說(shuō),傳統(tǒng)的矯正算法可以解決由于拍攝角度而導(dǎo)致的傾斜,比如Radon變換和霍夫變換。采用傳統(tǒng)方法進(jìn)行圖像校正時(shí),對(duì)噪聲比較敏感,而且算法實(shí)現(xiàn)比較復(fù)雜。在銘牌識(shí)別場(chǎng)景中,為同時(shí)解決角度傾斜與視角傾斜對(duì)文本檢測(cè)與識(shí)別帶來(lái)的影響,本文提出了一種基于銘牌角點(diǎn)的校正網(wǎng)絡(luò)。
2.1.1 角點(diǎn)定位網(wǎng)絡(luò)
在采集的銘牌圖像中,由于光照或者拍攝角度的偏差,會(huì)導(dǎo)致圖像呈現(xiàn)出亮度不均勻狀態(tài)。為避免由于上述情況導(dǎo)致檢測(cè)結(jié)果不準(zhǔn)確,將拍攝的銘牌圖片進(jìn)行處理,原始圖像如圖2(a)所示,先進(jìn)行灰度化,結(jié)果如圖2(b)所示。然后為減少圖像中參數(shù)個(gè)數(shù),使得背景與銘牌更易區(qū)分,對(duì)灰度圖像作局部自適應(yīng)閾值二值化操作,讓圖片呈現(xiàn)出黑白效果。由于實(shí)際場(chǎng)景中的銘牌圖像顏色不完全相同,確定一個(gè)固定的閾值來(lái)進(jìn)行二值化,效果并不理想[8]。根據(jù)圖像的局部像素分布,使得圖像中的每一個(gè)像素位置都分別對(duì)應(yīng)一個(gè)閾值,可以達(dá)到較好的處理效果。局部自適應(yīng)二值化是在計(jì)算圖像的局部閾值thi時(shí)引入一個(gè)常量C,公式中像素點(diǎn)i的鄰域像素用Ri來(lái)表示,在[-20,20]區(qū)間中均勻選取10個(gè)數(shù)值作為常量C的取值,也就是說(shuō),通過(guò)改變C的值,實(shí)現(xiàn)多級(jí)的局部自適應(yīng)二值化,本文實(shí)驗(yàn)中將20×20的正方形區(qū)域設(shè)置為像素點(diǎn)的鄰域大小。計(jì)算出圖像i點(diǎn)的鄰域像素的平均值,然后減去常量C得到thi,如式(1)所示。圖像灰度化以及二值化的處理效果如圖2所示
thi=avg(Ri)-C
(1)
在二值化后的銘牌圖像中,根據(jù)銘牌形狀的先驗(yàn)條件,篩選出符合條件的連通域范圍,得到銘牌圖像輪廓,如圖3(a)所示。將銘牌區(qū)域的邊界點(diǎn)坐標(biāo)值記錄下來(lái),如圖3(b)所示。將邊界點(diǎn)坐標(biāo)進(jìn)行線性擬合,確定銘牌圖像的4條邊界線,如圖3(c)所示。其中,銘牌圖像的4個(gè)角點(diǎn)為4條邊界線的交點(diǎn)所在位置,如圖3(d)中D1、D2、D3、D4所示。在銘牌圖像邊界的坐標(biāo)點(diǎn)集合中查找橫縱坐標(biāo)的最值,確定最小外接矩形4個(gè)角點(diǎn)的坐標(biāo)。根據(jù)數(shù)學(xué)運(yùn)算規(guī)則,可以得到:左上點(diǎn)R1的坐標(biāo),由圖3(d)中直線D1D2上的坐標(biāo)點(diǎn)確定,橫縱坐標(biāo)的取值分別是D1D2中坐標(biāo)點(diǎn)的最小值和最大值,即R1的坐標(biāo)由D1點(diǎn)的橫坐標(biāo)與D2點(diǎn)的縱坐標(biāo)確定;同理,右上點(diǎn)R2的坐標(biāo)由D3點(diǎn)的橫坐標(biāo)以及D2點(diǎn)的縱坐標(biāo)確定;右下點(diǎn)R3的坐標(biāo)由D3點(diǎn)的橫坐標(biāo)以及D4點(diǎn)的縱坐標(biāo)確定;左下點(diǎn)R4的坐標(biāo)由D1的橫坐標(biāo)與D4的縱坐標(biāo)確定,如圖3(e)所示。銘牌角點(diǎn)的確定以及校正過(guò)程如圖3所示。
2.1.2 圖像校正網(wǎng)絡(luò)
基于上述角點(diǎn)定位網(wǎng)絡(luò)確定了圖像中銘牌的關(guān)鍵點(diǎn),然后利用透視變換規(guī)則,可以將發(fā)生形變的區(qū)域校正為規(guī)則的矩形圖像。將傾斜文本校正的同時(shí)也一定程度上減少了復(fù)雜背景對(duì)文本檢測(cè)的干擾[9]。一般的線性變換是二維坐標(biāo)之間的變換,也就是說(shuō)只能實(shí)現(xiàn)旋轉(zhuǎn)和縮放。而透視變換的實(shí)質(zhì)是一種非線性變換,其變換過(guò)程是將二維坐標(biāo)轉(zhuǎn)換到三維坐標(biāo)系中,進(jìn)行投影運(yùn)算,得到一個(gè)新的二維坐標(biāo),即把一個(gè)圖像平面投影到一個(gè)新的平面的過(guò)程。由于透視變換過(guò)程中涉及到三維變換,所以要引入?yún)?shù)w。假設(shè)原始坐標(biāo)為 (u,v), 由x=x′/w′,y=y′/w′可以得到透視變換后的坐標(biāo),兩者關(guān)系如式(2)所示
(2)
可以推出
x′=a11u+a21v+a31wy′=a12u+a22v+a32ww′=a13u+a23v+a33w
(3)
其中,透視變換矩陣為
(4)
在Transform矩陣中,分塊矩陣T1中的a11,a21,a12,a22用于對(duì)圖像的放大和縮小等操作。T2中a13,a23用于圖像產(chǎn)生透視變換。T3中a31,a32表示圖像的平移,a33實(shí)現(xiàn)全比例變換。全比例變換可以實(shí)現(xiàn)圖像在二維空間的均勻放大或者縮小,不會(huì)發(fā)生形變。為實(shí)現(xiàn)圖像的平移,所以在二維線性變換的基礎(chǔ)上增加了一個(gè)維度,所以透視變換矩陣為3×3的矩陣。
根據(jù)上述規(guī)則,可以得到透視變換的表達(dá)式為
(5)
其中,以本文的銘牌圖像為例,將最小外接矩形的4個(gè)坐標(biāo)點(diǎn)看作是發(fā)生透視變換的點(diǎn),根據(jù)上述變換規(guī)則,校正效果如圖3(f)所示。
CTPN算法借鑒了Faster RCNN的anchor回歸機(jī)制,即用固定大小的滑動(dòng)窗口實(shí)現(xiàn)對(duì)尺寸不相同目標(biāo)的檢測(cè)[3],在本文中,設(shè)置了k個(gè)anchor。并且規(guī)定每個(gè)anchor的寬度為16像素,垂直高度的值在11像素到273像素范圍內(nèi)取10個(gè)值,依次除以0.7,所以anchor設(shè)置的數(shù)量為10個(gè)。RPN中的anchor回歸機(jī)制需要預(yù)測(cè)4個(gè)參數(shù),即 (X,Y,W,H), 其中,候選區(qū)域的中心點(diǎn)坐標(biāo)用X和Y表示,H表示高度,W表示寬度。CTPN算法中W的取值為16像素,anchor的橫坐標(biāo)為X,因此,采用CTPN算法預(yù)測(cè)文本區(qū)域時(shí),只需要學(xué)習(xí)Y和H兩個(gè)參數(shù)。在銘牌圖像中,文字信息具有連續(xù)性的特點(diǎn),使用BLSTM結(jié)構(gòu)可以學(xué)習(xí)到文本信息的序列特征,以減少信息的丟失。在卷積網(wǎng)絡(luò)中得到的特征圖序列用S表示,將特征序列輸入到BLSTM網(wǎng)絡(luò)中,分別用S與S’代表網(wǎng)絡(luò)的前向與后向隱含層,經(jīng)過(guò)計(jì)算后的特征序列用Q表示,直至在BLSTM網(wǎng)絡(luò)中將輸入序列全部處理完畢后更新輸出結(jié)果。CTPN算法結(jié)構(gòu)如圖4所示。
為更好地適應(yīng)銘牌圖像中文本行的檢測(cè),在傳統(tǒng)的CTPN算法基礎(chǔ)上,做出以下改進(jìn)。
首先,改進(jìn)CTPN算法中的特征提取網(wǎng)絡(luò)。文本能否被準(zhǔn)確檢測(cè)到,會(huì)受到特征提取效果的干擾。相比于VGG16,ResNet50卷積神經(jīng)網(wǎng)絡(luò)的層數(shù)更深,該網(wǎng)絡(luò)為避免出現(xiàn)梯度消失問(wèn)題,采用殘差跳躍連接的方式[12]。在ResNet50網(wǎng)絡(luò)中,采用一種不引入額外參數(shù)的恒等映射方法,這樣不會(huì)增加計(jì)算的復(fù)雜度。由16個(gè)殘差塊疊加組成ResNet50網(wǎng)絡(luò),可以訓(xùn)練更深層的網(wǎng)絡(luò)。殘差塊的結(jié)構(gòu)如圖5所示。文獻(xiàn)[12]中的實(shí)驗(yàn)數(shù)據(jù)表明,網(wǎng)絡(luò)層數(shù)更深的ResNet50性能表現(xiàn)要優(yōu)于VGG16。將ResNet50作為CTPN模型中的特征網(wǎng)絡(luò),提取圖像中字符特征。ResNet50的參數(shù)見(jiàn)表1。
表1 ResNet50網(wǎng)絡(luò)的參數(shù)
在圖5中,用k表示輸入,WL1和WL2分別表示網(wǎng)絡(luò)中第一層和第二層的權(quán)重,激活函數(shù)使用ReLU函數(shù)。殘差塊中第一次輸出用F(k)表示,即在第二次使用激活函數(shù)之前。在殘差塊中,最終的輸出結(jié)果為H(k),在進(jìn)行二次激活之前加入k,即在一般的兩層網(wǎng)絡(luò)中加入shortcut連接。在沒(méi)有shortcut路徑的VGG16網(wǎng)絡(luò)中, H(k)=F(k) 是該網(wǎng)絡(luò)的學(xué)習(xí)目標(biāo)。假設(shè)將k作為這兩層網(wǎng)絡(luò)的最優(yōu)輸出,對(duì)于VGG16網(wǎng)絡(luò)來(lái)說(shuō), H(k)=k是它的優(yōu)化目標(biāo)。而對(duì)于ResNet50網(wǎng)絡(luò)來(lái)說(shuō),如果k為最優(yōu)值,只需學(xué)習(xí)F(k)=0, 方法就是在初始化每層網(wǎng)絡(luò)中的參數(shù)時(shí)偏向0,這樣相比于通過(guò)更新每層的參數(shù)學(xué)習(xí)H(k)=k要簡(jiǎn)單,并且收斂速度快。所以,本文中用ResNet50作為特征提取網(wǎng)絡(luò)。
其次,對(duì)NMS算法進(jìn)行改進(jìn)。CTPN文本檢測(cè)算法中,在生成的多個(gè)文本候選框中選擇效果最好的保留下來(lái),并且去掉多余的,是采用了非極大值抑制算法(non maximum suppression,NMS),如圖6所示。NMS算法原理是:檢測(cè)銘牌圖片中的文本行時(shí),即使是同一個(gè)文本行,也可能會(huì)產(chǎn)生多個(gè)存在重疊情況的候選區(qū)域,而我們只需要保留效果最佳的。把生成的多個(gè)候選框存放在一個(gè)初始狀態(tài)為空的集合中,挑選出集合中得分最高的框,然后與集合中剩余的框計(jì)算IOU值,若比給定的IOU閾值大,則刪除該候選框[13]。重復(fù)迭代以上步驟,直到集合為空。CTPN算法中IOU值表示檢測(cè)結(jié)果X和真實(shí)值Y的相交區(qū)域與并集區(qū)域的比值,計(jì)算公式如下
(6)
識(shí)別文本候選框中的文字時(shí),如果檢測(cè)區(qū)域過(guò)小會(huì)造成識(shí)別錯(cuò)誤,傳統(tǒng)的NMS算法會(huì)將檢測(cè)框區(qū)域面積較大文字完整的檢測(cè)框,由于置信分?jǐn)?shù)較低造成誤刪[10],如圖7左邊圖像中邊框①、③、⑤號(hào)文本框,就會(huì)由于置信分?jǐn)?shù)低而被刪除。②、④、⑥號(hào)邊框置信分?jǐn)?shù)高,但是會(huì)丟失邊界,即上下左右邊界處會(huì)有部分文本內(nèi)容的缺失。為避免將左圖中①、③、⑤號(hào)文本框誤刪的情況本文將檢測(cè)框面積與置信分?jǐn)?shù)兩個(gè)指標(biāo)進(jìn)行綜合考慮,檢測(cè)框最后的得分由面積與置信分?jǐn)?shù)的乘積決定,從而將完整的文本框保留,如圖7左邊圖像中所標(biāo)注的數(shù)據(jù)信息,表達(dá)式為
score=score×area
(7)
一般的NMS算法中,會(huì)設(shè)定一個(gè)IOU閾值,在執(zhí)行代碼時(shí),使用貪婪算法的思想,直接把大于IOU閾值的候選框刪除。由于文本區(qū)域的邊界難以確定,如果直接刪除可能會(huì)導(dǎo)致邊界丟失,在后續(xù)處理中造成識(shí)別錯(cuò)誤。本文采用區(qū)域融合的方法,在對(duì)冗余的檢測(cè)框進(jìn)行處理時(shí),根據(jù)式(6)所示,先將檢測(cè)框集合中小于置信閾值的檢測(cè)框刪除,將大于IOU閾值的檢測(cè)框進(jìn)行融合,即把滿足以上條件的檢測(cè)框進(jìn)行合并,最大程度上保留具有完整文本信息的文本框。合并之后的結(jié)果如圖7右邊圖像中①、②、③號(hào)邊框所示,而在最終保留文本框的內(nèi)部區(qū)域的檢測(cè)框都有不同程度上的邊界缺失。
在進(jìn)行銘牌字符識(shí)別時(shí),由于銘牌圖像中字符種類不一,通常情況下是以單詞或者文本行的形式存在的,單個(gè)字符出現(xiàn)的情況較少。一般來(lái)說(shuō),對(duì)單個(gè)字符的識(shí)別比較容易,但是會(huì)涉及到字符分割。為了避免分割而導(dǎo)致誤差的情況, 本文采用卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(convolutional recurrent network,CRNN),結(jié)合時(shí)序分類算法(connectionist temporal classification,CTC)搭建網(wǎng)絡(luò)來(lái)識(shí)別銘牌圖像中的不定長(zhǎng)字符序列[7],CRNN將卷積網(wǎng)絡(luò)與循環(huán)網(wǎng)絡(luò)結(jié)合起來(lái)。CRNN算法結(jié)構(gòu)如圖8所示。
算法處理過(guò)程為:將檢測(cè)到的文本行實(shí)例圖像作為CRNN模塊的輸入,首先在卷積神經(jīng)網(wǎng)絡(luò)DenseNet[14]中,提取文字的特征信息,并輸出高維特征圖。然后把特征圖輸入循環(huán)神經(jīng)網(wǎng)絡(luò),采用雙向長(zhǎng)短期記憶網(wǎng)絡(luò)對(duì)特征序列進(jìn)行編碼,利用上下文信息對(duì)文本行的字符序列進(jìn)行處理會(huì)更加有效。最后采用CTC機(jī)制進(jìn)行解碼,通過(guò)增加空白元素?cái)U(kuò)展了標(biāo)簽字符集合。在識(shí)別算法中,循環(huán)神經(jīng)網(wǎng)絡(luò)的輸出應(yīng)該和文本圖像中的位置一一對(duì)應(yīng),由于銘牌圖像中文本行字符數(shù)量、大小等各不相同,若采用手工方式來(lái)標(biāo)記位置,不僅工作量大,而且不能保證輸出和字符對(duì)應(yīng)。CTC機(jī)制解決了特征序列與文本的對(duì)齊問(wèn)題,能夠識(shí)別銘牌圖像中的不定長(zhǎng)文本。
本文設(shè)備銘牌圖像中基本信息的采集流程為:首先,使用手機(jī)、平板等設(shè)備采集圖像;其次,對(duì)銘牌圖像進(jìn)行預(yù)處理,這是為了減少多種因素影響照片成像質(zhì)量,從而影響文本檢測(cè)結(jié)果的問(wèn)題;然后,檢測(cè)與定位銘牌圖像中的文本行,并且截取出來(lái);最后,對(duì)截取的圖像進(jìn)行字符識(shí)別,并保存結(jié)果。根據(jù)前文中提出的AdvancedCTPN算法,銘牌圖像中字符的檢測(cè)與識(shí)別過(guò)程如下:
首先,將待檢測(cè)的銘牌圖像輸入模型中,進(jìn)行預(yù)處理,目的是輸出規(guī)則的矩形銘牌圖像。
其次,將預(yù)處理后的圖片輸入ResNet50網(wǎng)絡(luò),得到深層的特征圖,再輸入到雙向長(zhǎng)短期記憶網(wǎng)絡(luò)中,提取序列特征,生成文本候選區(qū)域。
然后,根據(jù)文本候選框的得分,采用本文中改進(jìn)的NMS算法過(guò)濾掉效果不夠理想的預(yù)測(cè)區(qū)域;將保留候選框的中心點(diǎn)擬合為直線,連接候選區(qū)域生成銘牌圖像中文本定位結(jié)果,并且將定位區(qū)域截取下來(lái),輸入到文本識(shí)別模塊中。
最后,識(shí)別模塊的輸入為上一步驟中截取的文本行,根據(jù)CRNN算法規(guī)則對(duì)銘牌中的字符進(jìn)行識(shí)別。圖9為銘牌圖像中文本行檢測(cè)與識(shí)別的過(guò)程。
本文提出的算法都是基于深度學(xué)習(xí)的,硬件的配置對(duì)實(shí)驗(yàn)結(jié)果有一定影響,為保證實(shí)驗(yàn)效果,本文在服務(wù)器中完成模型訓(xùn)練以及測(cè)試。其中,處理器為Intel(R) Core(TM) i7-9750H CPU@2.60 GHz,顯卡為GeForce RTX 2080 Ti 10GiB。實(shí)驗(yàn)環(huán)境Ubuntu 18.04,采用TensorFlow-gpu 1.15深度學(xué)習(xí)框架,編程語(yǔ)言為Python。
文本檢測(cè)的評(píng)價(jià)標(biāo)準(zhǔn)是由精確率(Precision,P)、召回率(Recall,R)和綜合評(píng)價(jià)指標(biāo)(F-measure,F(xiàn)值)3個(gè)指標(biāo)來(lái)確定的。計(jì)算方式如下
(8)
(9)
(10)
其中,TP表示正樣本預(yù)測(cè)正確的數(shù)量;FP表示將負(fù)樣本預(yù)測(cè)錯(cuò)誤的數(shù)量;FN為正樣本預(yù)測(cè)為負(fù)樣本的數(shù)量。
本文中整個(gè)系統(tǒng)由檢測(cè)模塊和識(shí)別模塊兩部分組成,需要分別選取合適的數(shù)據(jù)集對(duì)兩個(gè)模塊進(jìn)行訓(xùn)練,數(shù)據(jù)集中樣本示例如圖10所示。由于在AdvanceCTPN模型中,使用了網(wǎng)絡(luò)層數(shù)較深的ResNet50,而且參數(shù)數(shù)量較多。使用遷移學(xué)習(xí)方法對(duì)AdvanceCTPN模型進(jìn)行訓(xùn)練,來(lái)提高訓(xùn)練過(guò)程中的收斂速度以及泛化能力。使用在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練的模型對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行初始化,在ICDAR2003、2011、2013以及COCO-text公開(kāi)數(shù)據(jù)集中挑選整合圖像,選擇與銘牌圖像具有相似文本分布特點(diǎn)的廣告牌圖像,用于提供更多的訓(xùn)練樣本, 共選擇了3422張廣告牌圖片,數(shù)據(jù)集樣本如圖10(a)中所示。選取AdamOptimizer作為參數(shù)優(yōu)化器,初始學(xué)習(xí)率為0.001,Batchsize為16,總共迭代20 000次。迭代過(guò)程中,每2000次保存一次模型參數(shù),然后選擇效果最好的。在識(shí)別模塊中,用Synthetic Chinese String Dataset中文數(shù)據(jù)集進(jìn)行訓(xùn)練,輸入圖像的分辨率為32×280,包含漢字、數(shù)字、標(biāo)點(diǎn)以及英文等多種類型的字符。Batchsize設(shè)置為32,訓(xùn)練過(guò)程迭代20 000次。本實(shí)驗(yàn)中共采集了724張銘牌圖像,為得到檢測(cè)結(jié)果,需將銘牌圖像中的文本區(qū)域標(biāo)注出來(lái),標(biāo)注工具為L(zhǎng)ableImg。然后進(jìn)行測(cè)試,驗(yàn)證模型是否有效。銘牌數(shù)據(jù)集中圖片樣例如圖10(b)所示。
按照上述環(huán)境配置和設(shè)定的參數(shù),完成AdvancedCTPN模型的訓(xùn)練,并在銘牌數(shù)據(jù)集中測(cè)試驗(yàn)證,分析結(jié)果。本實(shí)驗(yàn)的測(cè)試集由724張銘牌圖片組成,共計(jì)2941個(gè)文本行。
實(shí)驗(yàn)一:在文本檢測(cè)模塊中,使用VGG16、ResNet50分別對(duì)銘牌圖像中的文本進(jìn)行檢測(cè),實(shí)驗(yàn)結(jié)果見(jiàn)表2。分析表2中實(shí)驗(yàn)結(jié)果,使用ResNet50網(wǎng)絡(luò)提取銘牌圖像中的特征,相比于VGG16網(wǎng)絡(luò),文本行檢測(cè)的精確率P、召回率R以及F值均有提高,由此得出,ResNet50網(wǎng)絡(luò)在文本檢測(cè)時(shí)提取特征能力更強(qiáng)。
表2 不同特征網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果對(duì)比
實(shí)驗(yàn)二:對(duì)文本檢測(cè)算法中有無(wú)圖像校正模塊進(jìn)行對(duì)比實(shí)驗(yàn),并且本實(shí)驗(yàn)中卷積層網(wǎng)絡(luò)都使用ResNet50,實(shí)驗(yàn)結(jié)果見(jiàn)表3。從結(jié)果可以看出,增加基于銘牌角點(diǎn)的校正網(wǎng)絡(luò),可以將傾斜的圖像進(jìn)行校正,而且很大程度上提升了檢測(cè)效果,驗(yàn)證了設(shè)計(jì)校正模塊的有效性。
表3 有無(wú)校正網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果對(duì)比
實(shí)驗(yàn)三:使用目前先進(jìn)的算法對(duì)銘牌圖像進(jìn)行文本檢測(cè),與本文提出的算法進(jìn)行比較,從表4中結(jié)果得知,改進(jìn)的檢測(cè)算法P值為95.8%,F(xiàn)值為93.9%,表現(xiàn)更優(yōu)。
表4 不同方法文本定位結(jié)果對(duì)比
實(shí)驗(yàn)四:在銘牌字符識(shí)別中,用表5的3種模型對(duì)文本序列進(jìn)行識(shí)別。實(shí)驗(yàn)中,把準(zhǔn)確率作為評(píng)價(jià)指標(biāo),實(shí)際上就是在銘牌數(shù)據(jù)集的2491個(gè)文本行中,完全識(shí)別正確的樣本所占的比例,如果出現(xiàn)單個(gè)或幾個(gè)字符錯(cuò)檢、漏檢都視為識(shí)別錯(cuò)誤。從實(shí)驗(yàn)數(shù)據(jù)中得出本文的DenseNet+BLSTM+CTC算法識(shí)別準(zhǔn)確率更高,我們可以根據(jù)識(shí)別結(jié)果對(duì)設(shè)備參數(shù)信息進(jìn)行采集。改進(jìn)的NMS算法一定程度上改善了由于邊界缺失而影響識(shí)別準(zhǔn)確率的問(wèn)題。從結(jié)果可以看出,識(shí)別算法中使用CTC機(jī)制比使用注意力機(jī)制的識(shí)別準(zhǔn)確率要高,增加雙向長(zhǎng)短期記憶網(wǎng)絡(luò)也能一定程度上提高識(shí)別準(zhǔn)確率。
表5 3種算法的識(shí)別準(zhǔn)確率
本文提出的AdvanceCTPN算法,在采集銘牌圖像中的參數(shù)信息時(shí),為避免由于文本傾斜而影響文本檢測(cè)效果的問(wèn)題,設(shè)計(jì)了基于銘牌角點(diǎn)的校正網(wǎng)絡(luò)。為能夠更加準(zhǔn)確定位圖像中的字符序列,將網(wǎng)絡(luò)層數(shù)較深的ResNet50作為骨干網(wǎng)絡(luò)能夠得到更好的效果。為解決由于邊界丟失影響識(shí)別結(jié)果的問(wèn)題,本文中提出了改進(jìn)的NMS文本框去重算法。為了能在定位到文本行后直接進(jìn)行字符識(shí)別,在優(yōu)化的CTPN檢測(cè)模型中增加DenseNet+BLSTM+CTC識(shí)別模型。在銘牌數(shù)據(jù)集中,AdvancedCTPN模型檢測(cè)精確率達(dá)到95.8%,F(xiàn)值為93.9%,識(shí)別準(zhǔn)確率為92.6%,效果不錯(cuò)。但是,銘牌圖片中存在文本行的分布比較密集的區(qū)域,在進(jìn)行檢測(cè)時(shí),相鄰的檢測(cè)框可能會(huì)重疊,從而影響識(shí)別效果。本文中采用的識(shí)別算法,當(dāng)文本行中包含較多字符時(shí),也會(huì)出現(xiàn)識(shí)別錯(cuò)誤的情況,算法還需改進(jìn)與優(yōu)化。