馮謙,陶青川
(四川大學(xué)電子信息學(xué)院,成都 610065)
當(dāng)前,國內(nèi)各大鋼材生產(chǎn)企業(yè)正逐步將一些生產(chǎn)環(huán)節(jié)從人工操作轉(zhuǎn)變?yōu)樽詣?dòng)化操作[1]。在鋼板的表面有鋼板的唯一編號(hào),在測(cè)試試驗(yàn)的各個(gè)環(huán)節(jié),需要把鋼材編號(hào)與測(cè)試數(shù)據(jù)對(duì)應(yīng)起來保存,以達(dá)到質(zhì)量檢測(cè)的要求。因此如何在實(shí)際生產(chǎn)環(huán)節(jié)中利用計(jì)算機(jī)視覺方法來進(jìn)行自動(dòng)化字符區(qū)域檢測(cè)與識(shí)別,成為了一個(gè)亟需解決的問題。目前字符定位及識(shí)別的方式以人工目測(cè)法為主,效率不高且浪費(fèi)人力。利用計(jì)算機(jī)視覺技術(shù)和神經(jīng)網(wǎng)絡(luò)技術(shù),可以大大提高檢測(cè)和識(shí)別的準(zhǔn)確性和速度,并且可以減少對(duì)勞動(dòng)力的依賴。本文旨在通過工業(yè)相機(jī)采集到鋼材表面圖片,再經(jīng)過圖像處理和預(yù)先訓(xùn)練的神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別,實(shí)時(shí)精確且快速地得到當(dāng)前鋼材的編號(hào)。
近年來,在目標(biāo)檢測(cè)和字符識(shí)別取得了一些比較突破的成果。目標(biāo)檢測(cè)領(lǐng)域中,HOG結(jié)合SVM的方案是較為成熟的方案,提出時(shí)率先應(yīng)用于自然場(chǎng)景中的人臉檢測(cè)[2],之后在物體檢測(cè)中也取得了很好的效果[3]。傳統(tǒng)的OCR解決方案中,基于形態(tài)學(xué)的圖像處理往往能在特定場(chǎng)景的目標(biāo)檢測(cè)取得很好的效果,例如發(fā)票票據(jù)信息檢測(cè)[4],駕駛證證件信息區(qū)域檢測(cè)[5]。字符識(shí)別領(lǐng)域中,基于ANN的神經(jīng)網(wǎng)絡(luò)對(duì)字符識(shí)別有著較高的識(shí)別率[6]。華中科技大學(xué)的白翔團(tuán)隊(duì)受到Mask R-CNN的啟發(fā)提出了一種用于場(chǎng)景文本識(shí)別的可端到端訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型:Mask TextSpotter[7]。端到端訓(xùn)練的方式可以省去字符切割的步驟,字符分割效果不好的情況下會(huì)對(duì)下一步字符識(shí)別造成一定的影響。在實(shí)際的工業(yè)生產(chǎn)線上,計(jì)算機(jī)普遍配置不高且不具有高端顯卡,對(duì)識(shí)別速度也要求較高。因此,需要一種網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,速度較快,能在較低配置計(jì)算機(jī)上正常運(yùn)行的解決方案。
盡管工業(yè)相機(jī)成像質(zhì)量較好,但由于現(xiàn)場(chǎng)環(huán)境復(fù)雜、鋼材表面坑洼以及光照不均勻等多種原因,會(huì)造成圖像噪聲過多、過亮、過暗等情況,對(duì)后續(xù)檢測(cè)和識(shí)別造成影響。
圖1 圖像預(yù)處理流程
高斯濾波處理噪聲的同時(shí)較好地保留了字符的邊緣,對(duì)后續(xù)算法影響最小。
其中標(biāo)準(zhǔn)差σ是事先定好的常數(shù),將求出的結(jié)果離散化為模板與原圖做卷積即可。
使用直方圖均衡化處理圖像整體較暗或較亮有較好的效果[8]。本文針對(duì)文本檢測(cè)的要求使用伽馬變換,突出文本區(qū)域信息,弱化背景區(qū)域信息。
將γ值設(shè)置為3以拉伸具有更高灰度級(jí)的圖像區(qū)域,即文本區(qū)域,同時(shí),對(duì)灰度較低的區(qū)域進(jìn)行壓縮,增強(qiáng)了圖像文本區(qū)域的對(duì)比度。
圖2 圖像預(yù)處理結(jié)果圖
由于字符區(qū)域位于整個(gè)鋼材的中央?yún)^(qū)域,因此在定位每一個(gè)字符的區(qū)域前先獲取整體文本的位置是一種普遍的方法。傳統(tǒng)的區(qū)域檢測(cè)算法包括圖像邊緣分割和形態(tài)圖像處理,以找到連接區(qū)域并獲得目標(biāo)區(qū)域。一個(gè)強(qiáng)大的基于神經(jīng)網(wǎng)絡(luò)的文本檢測(cè)算法——EAST text detector在場(chǎng)景文本檢測(cè)上具有優(yōu)異的效果[9]。
EAST文本檢測(cè)器是一種基于新穎架構(gòu)和訓(xùn)練模式的深度學(xué)習(xí)模型。該方法使用單個(gè)神經(jīng)網(wǎng)絡(luò)直接預(yù)測(cè)整個(gè)圖像中任意方向的四邊形文本行,消除了不必要的中間步驟,例如候選區(qū)域聚合和字符分割。模型可以分解為三個(gè)部分:特征提取器、特征合并分支和輸出層。最初可以使用卷積層和池化層交錯(cuò)的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,以獲得四級(jí)特征圖像。大小分別是原圖的1/32、1/16、1/8和1/4。合并分支的功能在特征合并部分中逐漸合并它們。要使圖形的大小加倍,然后與當(dāng)前特征圖級(jí)聯(lián)。接下來是一個(gè)3×3卷積層,它融合了信息并最終產(chǎn)生文本合并階段的結(jié)果。輸出層對(duì)應(yīng)于RBOX,由軸向邊界框和旋轉(zhuǎn)角度表示。
圖3 EAST網(wǎng)絡(luò)結(jié)構(gòu)圖
圖4 EAST識(shí)別成多段文本
EAST文本檢測(cè)器有其缺點(diǎn),一個(gè)文本區(qū)域有時(shí)會(huì)被檢測(cè)到多個(gè)文本區(qū)域,這不利于長文本的檢測(cè)。而最終需要整體的文本區(qū)域,因此需要將多個(gè)文本區(qū)域聚合。
基于長文本區(qū)域檢測(cè)的要求,改進(jìn)了EAST方法的輸出層,使長文本預(yù)測(cè)更加準(zhǔn)確。EAST是使用所有像素的預(yù)測(cè)頂點(diǎn)坐標(biāo)的加權(quán)平均值計(jì)算最終的頂點(diǎn)坐標(biāo)。而對(duì)于長文本的四邊形來說從短邊一側(cè)的若干像素來預(yù)測(cè)另一側(cè)的兩個(gè)頂點(diǎn)難度較大。因此設(shè)計(jì)了一個(gè)有頭尾方向的文本框邊界輸出層模式。頭部像素只負(fù)責(zé)預(yù)測(cè)其一側(cè)的兩個(gè)頂點(diǎn),尾部像素負(fù)責(zé)另一側(cè)。
表1 改進(jìn)后網(wǎng)絡(luò)輸出層
改進(jìn)后網(wǎng)絡(luò)輸出層分別是第一位是否在文本框中,第二位和第三位是否屬于文本框邊界像素以及是頭還是尾。最后四位是邊界像素可以預(yù)測(cè)的兩個(gè)頂點(diǎn)的坐標(biāo)。
運(yùn)行模型預(yù)測(cè)得到輸出后,還需要根據(jù)輸出計(jì)算得出最后的文本框坐標(biāo),這個(gè)過程如下。由預(yù)測(cè)矩陣根據(jù)配置閾值得到激活像素集合;按先左右后上下的順序?qū)⑾噜徏虾喜⑸善漕^和尾邊界像素集合;每個(gè)邊界像素點(diǎn)預(yù)測(cè)值的加權(quán)平均值作為最后的預(yù)測(cè)坐標(biāo)值。
圖5 改進(jìn)后EAST文本檢測(cè)效果
通過EAST檢測(cè)到的文本區(qū)域有著一定的傾斜角度,傾斜角度過大會(huì)對(duì)下一步的分割造成干擾。因此,有必要矯正圖片的文本部分以進(jìn)行下一步。旋轉(zhuǎn)角度根據(jù)字符區(qū)域的包圍矩形的長邊與水平軸的夾角確定,旋轉(zhuǎn)中心根據(jù)字符區(qū)域的包圍矩形的中心點(diǎn)確定,根據(jù)以上結(jié)果計(jì)算仿射變換矩陣。
圖6 矯正效果圖片
對(duì)圖像傾斜矯正后需要將字符從背景中分割出來,一般采用Ostu算法或者Sobel算法。手動(dòng)選擇閾值的方法不利于多種場(chǎng)景下的分割,因此需要自適應(yīng)閾值選擇方法使用。選擇基于Ostu算法(最大類間方差法)的二值化操作對(duì)圖片進(jìn)行處理。
對(duì)于閾值T,將圖像分為了目標(biāo)點(diǎn)和背景點(diǎn),其中目標(biāo)點(diǎn)的比例為w1,像素平均值為 p1,背景點(diǎn)的比例為w2,像素平均值為p2。當(dāng)閾值T求得上式類間方差值為最大的時(shí)候,可以確認(rèn)閾值。
二值化后,可以通過搜索連接區(qū)域并找到正外界矩形來確定多個(gè)字符區(qū)域。對(duì)外部矩形寬度異常的字符進(jìn)行個(gè)別判斷。運(yùn)用列的線性掃描,在異常區(qū)域?qū)ふ疑舷螺喞臉O小值,同時(shí)比照正常區(qū)域?qū)挾冗M(jìn)行分割得到切分正常的單個(gè)字符。將切分正常的單個(gè)字符順序輸入訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)得到最終的識(shí)別結(jié)果。
圖7 二值化后效果圖
CNN是卷積神經(jīng)網(wǎng)絡(luò)。LeNet5作為早期的卷積神經(jīng)網(wǎng)絡(luò)很快應(yīng)用在了支票上手寫數(shù)字的識(shí)別。21世紀(jì)后,隨著深度學(xué)習(xí)理論的發(fā)展和計(jì)算機(jī)設(shè)備的不斷完善,卷積神經(jīng)網(wǎng)絡(luò)得到了迅速發(fā)展,并被廣泛應(yīng)用于計(jì)算機(jī)視覺、自然語言處理等領(lǐng)域。
卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)有三部分,分別是卷積層、池化層和全連接層。在普通神經(jīng)網(wǎng)絡(luò)的情況下,圖像的每個(gè)像素作為連接到所有像素的神經(jīng)元將導(dǎo)致過多的參數(shù)。卷積神經(jīng)網(wǎng)絡(luò)有兩種方法可以減少參數(shù)的數(shù)量。第一種是局部感知,由于圖像具有強(qiáng)相關(guān)性的特點(diǎn),距離相近的像素相關(guān)性較強(qiáng),距離較遠(yuǎn)的像素點(diǎn)相關(guān)性較差。因此,每個(gè)神經(jīng)元僅需要局部感知,并且僅需要卷積核心的像素?cái)?shù)量的參數(shù)。另一種是權(quán)重共享,即每個(gè)卷積內(nèi)核是一種提取特征的方法。只要確認(rèn)了提取某一種特征的卷積核,就能對(duì)整個(gè)圖像學(xué)習(xí)到同樣的學(xué)習(xí)特征。為了使特征提取充分,使用多個(gè)卷積核,可以學(xué)習(xí)多種特征??梢杂?jì)算圖像區(qū)域上的特定特征的平均值或最大值以表示該區(qū)域的特征。這些匯總統(tǒng)計(jì)特征不僅減少了特征的尺寸,而且使其難以過度擬合。此聚合操作稱為池化,這簡(jiǎn)化了模型的復(fù)雜性和參數(shù)。在實(shí)際應(yīng)用中,使用多層卷積,然后將完整連接層用于訓(xùn)練。層數(shù)越多,學(xué)習(xí)的特征就越全局化。本文對(duì)鋼材表面圖片字符先進(jìn)行粗略切割然后保存,將其中字符圖片分為數(shù)字0到9一共十類,分作訓(xùn)練集和測(cè)試集兩個(gè)集合。運(yùn)用LeNet5結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)對(duì)字符進(jìn)行訓(xùn)練,將訓(xùn)練后的權(quán)值保存作為后續(xù)檢測(cè)的方法。
實(shí)驗(yàn)平臺(tái):
處理器:英特爾酷睿i5-7300HQ
圖8 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
顯卡:GTX 1050M
操作系統(tǒng):Windows 10
系統(tǒng)內(nèi)存:8G
在定位文本時(shí),將改進(jìn)后EAST文本檢測(cè)方法與傳統(tǒng)的掃描線檢測(cè)法以及單獨(dú)的EAST方法進(jìn)行了對(duì)比,測(cè)試樣本共有1000個(gè)圖像,結(jié)果如表2所示。
表2
傳統(tǒng)的掃描線檢測(cè)法與單獨(dú)的EAST方法準(zhǔn)確率相差不多,但單獨(dú)的EAST方法可以得到文本的角度信息。改進(jìn)的EAST方法大幅提升了定位準(zhǔn)確度,很好地解決了定位的問題。
本文對(duì)已有的鋼材表面圖片字符先進(jìn)行切割然后保存,將字符圖片分為0到9一共10類,一共46889張訓(xùn)練圖像以及4812張測(cè)試圖像。將卷積神經(jīng)方法與人工神經(jīng)網(wǎng)絡(luò)方法進(jìn)行了比較,結(jié)果見表3。
表3
從表2-3看出,改進(jìn)后的EAST在文本區(qū)域檢測(cè)上是性能最優(yōu)的。字符準(zhǔn)確切割后的識(shí)別使用CNN是準(zhǔn)確度最高的。兩者結(jié)合能達(dá)到高準(zhǔn)確度的結(jié)果。
本文采用改進(jìn)的EAST文本檢測(cè)方法對(duì)文本進(jìn)行檢測(cè),局部最小法對(duì)文本進(jìn)行切分,并采用卷積神經(jīng)網(wǎng)絡(luò)方法進(jìn)行字符識(shí)別。保證了在較低配置的計(jì)算機(jī)上時(shí)間的快速性和檢測(cè)的準(zhǔn)確性。經(jīng)過測(cè)試,在測(cè)試集上獲得了95%的綜合識(shí)別率,能夠在實(shí)際生產(chǎn)中應(yīng)用。