顏家云,張慧源,李 晨,彭聯(lián)貼
(中車株洲電力機(jī)車研究所有限公司, 湖南 株洲 412001)
機(jī)車檢修記錄單用于記錄機(jī)車大修、中修、小修和輔修過(guò)程中所有零部件的檢修情況,數(shù)據(jù)內(nèi)容涵蓋檢修者、檢修日期、零部件故障損耗情況、零部件生產(chǎn)廠家及型號(hào)、零部件更換信息等。建立機(jī)車檢修記錄結(jié)構(gòu)化數(shù)據(jù)庫(kù),可以基于大數(shù)據(jù)分析實(shí)現(xiàn)零部件故障預(yù)警與靈活的庫(kù)存管理,降低檢修頻率,優(yōu)化人員配置,促進(jìn)機(jī)車檢修降本增效。現(xiàn)階段機(jī)車檢修中心已逐步實(shí)現(xiàn)檢修過(guò)程電子化錄入;但由于歷史原因,依然存在大量的紙質(zhì)檢修單,其信息待補(bǔ)錄到系統(tǒng)數(shù)據(jù)庫(kù)中。人工篩查分類輸入存在效率低、耗時(shí)長(zhǎng)等問(wèn)題,因此有必要引入光學(xué)字符識(shí)別(optical character recognition, OCR)技術(shù)來(lái)識(shí)別文本內(nèi)容,提高紙質(zhì)工單補(bǔ)錄效率。
OCR技術(shù)是通過(guò)算法分析圖像上的文本數(shù)據(jù)符號(hào)特征及上下文聯(lián)系,并翻譯成計(jì)算機(jī)文字,其已在卡證、財(cái)務(wù)票據(jù)及車牌等方面的識(shí)別取得了廣泛的應(yīng)用,極大地提高了工作效率。早期的OCR技術(shù)多采用模板匹配算法[1],該類算法識(shí)別效率低,魯棒性較差,容易受外界因素干擾。隨著計(jì)算機(jī)與人工智能技術(shù)的發(fā)展,深度學(xué)習(xí)成為OCR技術(shù)的主流[2],其識(shí)別流程主要分為文本區(qū)域檢測(cè)與文本內(nèi)容識(shí)別兩個(gè)階段。連接文本候選網(wǎng)絡(luò)[3](connectionist text proposal network, CTPN)是使用較為廣泛的文本檢測(cè)網(wǎng)絡(luò),其將文本檢測(cè)細(xì)分為一連串小尺度文本框檢測(cè),提高了序列化文本框檢測(cè)能力。卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(convolutional recurrent nerual network, CRNN)[4]是主流的文本內(nèi)容識(shí)別算法選擇,其利用長(zhǎng)短期記憶網(wǎng)絡(luò)[4](long-short term memory, LSTM)、門控循環(huán)單元(gated recurrent unit, GRU)[5]等類循環(huán)網(wǎng)絡(luò)的注意力機(jī)制,大幅提升較長(zhǎng)、可變文本序列的識(shí)別效果。百度公司提出的PaddlePaddle-OCR[6]是當(dāng)前市場(chǎng)最為流行的中文識(shí)別開(kāi)源算法框架,其結(jié)合了基于可微二值化(differentiable binarization, DB)的文本分割檢測(cè)網(wǎng)絡(luò)[7]與基于雙向LSTM(BiLSTM)的文本識(shí)別網(wǎng)絡(luò)[4],采用輕頭部網(wǎng)絡(luò)、模型瘦身等策略,實(shí)現(xiàn)了精度與延時(shí)的平衡,在移動(dòng)邊緣端也能達(dá)到較好的識(shí)別效果。
隨著軌道交通行業(yè)數(shù)字化與智能化的發(fā)展,專業(yè)場(chǎng)景OCR應(yīng)用需求逐漸浮現(xiàn)。文獻(xiàn)[8]結(jié)合YOLOv3目標(biāo)檢測(cè)算法與Tesseract5.0字符識(shí)別算法,實(shí)現(xiàn)了高鐵摩擦片編碼的識(shí)別應(yīng)用。文獻(xiàn)[9]結(jié)合YOLOv3目標(biāo)檢測(cè)算法與簡(jiǎn)單卷積神經(jīng)網(wǎng)絡(luò)分類器對(duì)軌道旁公里標(biāo)進(jìn)行識(shí)別,為探傷車位置校正提供精度與實(shí)時(shí)性保障。針對(duì)機(jī)車紙質(zhì)檢修記錄單OCR識(shí)別需求,本文提出一種改進(jìn)的基于PaddlePaddle-OCR的文本識(shí)別算法。其首先采用傅里葉變換與霍夫變換進(jìn)行文本傾斜角度檢測(cè)校正,然后依次使用以ResNet18為主干網(wǎng)絡(luò)的DB分割模型進(jìn)行文本檢測(cè),使用以ResNet34為主干網(wǎng)絡(luò)、以深度BiLSTM為頭部的識(shí)別模型實(shí)現(xiàn)文本內(nèi)容最終識(shí)別,同時(shí)進(jìn)行了消融實(shí)驗(yàn)研究。實(shí)驗(yàn)結(jié)果驗(yàn)證了該算法在檢修記錄單表頭關(guān)鍵信息識(shí)別方面的準(zhǔn)確性和有效性。
本文對(duì)檢修記錄單的OCR識(shí)別主要涉及傅里葉變換文本傾斜角度檢測(cè)方法[10]、以ResNet18[11]為主干與多尺度DB分割網(wǎng)絡(luò)為頭部的文本區(qū)域檢測(cè)網(wǎng)絡(luò)、以雙向LSTM為頭部與連接時(shí)序分類(connectionist temporal classification, CTC)[12]為損失函數(shù)的文本內(nèi)容識(shí)別網(wǎng)絡(luò)。
傅里葉變換因旋轉(zhuǎn)不變性在圖像文本傾斜角度檢測(cè)應(yīng)用中擁有較好的魯棒性。對(duì)于一幅待檢測(cè)圖像,首先對(duì)其進(jìn)行二維離散傅里葉變換得到圖像頻譜,然后進(jìn)行高低頻譜交換來(lái)實(shí)現(xiàn)頻譜移中。為降低零頻譜幅值過(guò)大影響,取頻譜幅值對(duì)數(shù)。設(shè)定閾值進(jìn)行頻譜二值化,利用霍夫變換檢測(cè)二值化頻譜圖中直線的角度并以此作為圖像文本的傾斜角度。
圖1示出一幅紙質(zhì)檢修記錄單文本傾斜角度檢測(cè)過(guò)程,其中頻譜二值化閾值為0.7倍最高頻譜。
圖1 檢修記錄單文本傾斜角度檢測(cè)Fig. 1 Inclination angle detection of maintenance record sheet
將DB模塊引入基于語(yǔ)義分割的文本檢測(cè)網(wǎng)絡(luò)[7],可大幅提升一般場(chǎng)景文本檢測(cè)的準(zhǔn)確率與速度。標(biāo)準(zhǔn)二值化(standard binarization, SB)與DB可分別用式(1)和式(2)表示。相比標(biāo)準(zhǔn)二值化,DB由于其可微屬性,使得圖像文本語(yǔ)義概率圖二值化模塊能直接進(jìn)行梯度反向傳遞,從而實(shí)現(xiàn)語(yǔ)義分割與后處理端到端的訓(xùn)練,最終提高文本語(yǔ)義概率圖的預(yù)測(cè)準(zhǔn)確率。
式中:Bi,j,S——標(biāo)準(zhǔn)二值化圖數(shù)據(jù)矩陣;Pi,j——文本語(yǔ)義概率圖數(shù)據(jù)矩陣;TFix——固定閾值;Bi,j,D——可微二值化圖數(shù)據(jù)矩陣;k——放大比例系數(shù),本文取k=50;Ti,j——自適應(yīng)閾值圖數(shù)據(jù)矩陣;i——水平方向坐標(biāo)值;j——垂直方向坐標(biāo)值。
圖2為融入DB模塊的文本檢測(cè)語(yǔ)義分割網(wǎng)絡(luò)[7]。以ResNet18主干網(wǎng)絡(luò)為例,圖像被輸入網(wǎng)絡(luò),依次進(jìn)入conv1_x, conv2_x, conv3_x, conv4_x和conv5_x,共5個(gè)階段,每個(gè)階段由相應(yīng)數(shù)量的殘差模塊組成;連續(xù)得到5張?zhí)卣鲌D,寬高尺寸分別縮小為原圖的1/2, 1/4, 1/8, 1/16和1/32。從1/4尺寸特征圖開(kāi)始,每張?zhí)卣鲌D會(huì)與下個(gè)尺寸的側(cè)向連接特征圖2倍上采樣結(jié)果進(jìn)行元素求和,獲取該尺寸的側(cè)向連接特征圖,其中1/32尺寸特征圖被直接作為本尺寸的側(cè)向連接特征圖;最后4張側(cè)向連接特征圖經(jīng)過(guò)合并,得到用于語(yǔ)義分割的特征圖。經(jīng)過(guò)卷積與激活等相關(guān)算子計(jì)算,輸出語(yǔ)義概率圖與自適應(yīng)閾值圖,兩者作為式(2)的輸入可實(shí)現(xiàn)圖像的二值化;基于二值化圖,可求得文本框的精準(zhǔn)位置。
圖2 基于DB模塊的文本檢測(cè)語(yǔ)義分割網(wǎng)絡(luò)Fig. 2 Segmentation network for text regions detection based on DB module
作為文本識(shí)別主流網(wǎng)絡(luò)架構(gòu),CRNN[4]包含CNN卷積層與LSTM循環(huán)層,充分利用了序列圖像的空間特征與上下文聯(lián)系,大幅提升了文本識(shí)別的準(zhǔn)確率與魯棒性。以“軸箱檢修記錄”工單表頭識(shí)別為例,圖3所示CRNN文本識(shí)別網(wǎng)絡(luò)[4]將文本區(qū)域檢測(cè)網(wǎng)絡(luò)檢測(cè)出的文本裁剪圖像輸入CRNN網(wǎng)絡(luò)中。首先,進(jìn)入以ResNet系列為主干的卷積網(wǎng)絡(luò),提取多層卷積特征圖。如圖3中黃色虛線框所示,從左至右將特征圖劃分為“時(shí)間”連續(xù)的特征序列塊,分別映射原始圖像連續(xù)的視野區(qū)域。由淺入深地將映射同一視野的多層特征塊連成一條特征柱,作為該“時(shí)刻”輸入到循環(huán)神經(jīng)網(wǎng)絡(luò)的信號(hào);特征塊寬度取1像素,設(shè)計(jì)最后池化層,使得特征塊高度為1像素。接著,將特征序列輸入基于LSTM的循環(huán)神經(jīng)網(wǎng)絡(luò)以提取“時(shí)間”序列特征。相比單向LSTM,所采用的BiLSTM徹底兼顧了特征序列上下文聯(lián)系,表征能力更強(qiáng)。最后,將循環(huán)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果輸入轉(zhuǎn)錄層進(jìn)行轉(zhuǎn)錄、識(shí)別,該層使用CTC算法,可實(shí)現(xiàn)單調(diào)對(duì)齊、多對(duì)一映射的識(shí)別并輸出結(jié)果。如圖3所示,循環(huán)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果為“-軸-箱箱-檢修修記錄錄”,其中“-”為CTC算法設(shè)定的空位標(biāo)志符,經(jīng)過(guò)轉(zhuǎn)錄最終識(shí)別結(jié)果為“軸箱檢修記錄”。
圖3 CRNN文本識(shí)別網(wǎng)絡(luò)Fig. 3 Text recognizing network based on CRNN
基于OCR的機(jī)車檢修記錄單文本檢測(cè)識(shí)別流程如圖4所示。在訓(xùn)練模式中,人工制作文本檢測(cè)與文本識(shí)別數(shù)據(jù)集,分別用于訓(xùn)練文本檢測(cè)與文本識(shí)別神經(jīng)網(wǎng)絡(luò)模型。其中,文本檢測(cè)網(wǎng)絡(luò)采用以ResNet18為主干、可微二值化特征金字塔網(wǎng)絡(luò)(DB feature phyramid natwork, DB-FPN)為頭部的分割網(wǎng)絡(luò);文本識(shí)別網(wǎng)絡(luò)采用CRNN網(wǎng)絡(luò),其卷積層為ResNet18結(jié)構(gòu),循環(huán)層為深度BiLSTM結(jié)構(gòu)。首先選擇推理模式并輸入檢修記錄單圖像,利用傅里葉變換與霍夫變換方法檢測(cè)圖像文本傾斜角度。傾斜角度取值范圍為 [0°, 90°],以傾斜角度是否落在 (10°, 80°)區(qū)間內(nèi)作為文本傾斜程度判斷標(biāo)準(zhǔn)。若落在該區(qū)間內(nèi),則認(rèn)為傾斜較嚴(yán)重,需要采用仿射變換方法對(duì)圖像進(jìn)行旋轉(zhuǎn)校正。接著,采用文本檢測(cè)網(wǎng)絡(luò)檢測(cè)文本區(qū)域位置,輸出可能的文本框位置坐標(biāo)與置信度。文本內(nèi)容識(shí)別模塊依據(jù)前向傳遞的文本框位置進(jìn)行圖像裁剪,裁剪后的文本圖像被輸入到CRNN文本識(shí)別網(wǎng)絡(luò)中,最終輸出文本圖像的文本識(shí)別內(nèi)容。
圖4 機(jī)車檢修記錄單OCR識(shí)別流程Fig. 4 Flow of OCR for locomotive maintenance record sheet
本文基于所采集檢修記錄單圖像,人工標(biāo)注制作數(shù)據(jù)集。所制作的文本區(qū)域檢測(cè)數(shù)據(jù)集有450張圖像,樣例如圖5所示,其中訓(xùn)練集350張、驗(yàn)證集50張、測(cè)試集50張?;诖藬?shù)據(jù)集,訓(xùn)練采用ResNet18為主干的文本區(qū)域檢測(cè)網(wǎng)絡(luò),硬件為2塊Nvidia Tesla V100顯卡,訓(xùn)練輪次為500輪,單卡批次大小為16張圖片。訓(xùn)練完成后,保存驗(yàn)證集精度最高的神經(jīng)網(wǎng)絡(luò)模型。
圖5 文本檢測(cè)數(shù)據(jù)標(biāo)注樣例Fig. 5 Annotation of text detection dataset
所制作文本內(nèi)容識(shí)別數(shù)據(jù)集中有46 486張裁剪圖像,樣例如圖6所示,其中訓(xùn)練集32 541張、驗(yàn)證集9 297張、測(cè)試集4 648張。基于此數(shù)據(jù)集,訓(xùn)練采用以ResNet18為卷積層主干的文本內(nèi)容識(shí)別網(wǎng)絡(luò),硬件為2塊Nvidia Tesla V100顯卡,訓(xùn)練輪次為500輪,單卡批次大小為384張圖片。訓(xùn)練字典為PaddlePaddle_OCR開(kāi)源的包含6 623個(gè)字符的中文字典,單行最多識(shí)別字符數(shù)為56。訓(xùn)練完成后,保存驗(yàn)證集精度最高的神經(jīng)網(wǎng)絡(luò)模型。
圖6 文本識(shí)別數(shù)據(jù)標(biāo)注樣例Fig. 6 Annotation of text recognition dataset
將文本檢測(cè)與文本識(shí)別訓(xùn)練結(jié)果模型用于OCR識(shí)別推理。圖7示出其中一張機(jī)車檢修記錄單識(shí)別結(jié)果。可以看出,檢修記錄單中關(guān)鍵表頭信息“中修機(jī)車檢修記錄” “班組:中修組” “機(jī)輛機(jī)車檢修-07”文本信息被精準(zhǔn)識(shí)別?;诒眍^關(guān)鍵信息,可以實(shí)現(xiàn)檢修記錄單電子化圖像的快速分類歸檔。檢修記錄單圖片識(shí)別算法運(yùn)行所用硬件為Intel(R)Xeon(R) Silver 4110 CPU @ 2.10 GHz。表1示出25張角度正常、圖片尺寸為3742×2806的檢修記錄單識(shí)別結(jié)果。可見(jiàn),表格印刷體與手寫(xiě)體文本都能被準(zhǔn)確識(shí)別。
相比原有的PaddlePaddle_OCR,本文所提出的OCR識(shí)別流程增加了文本傾斜校正的過(guò)程。以PaddlePaddle_OCR V2.1.0公開(kāi)的網(wǎng)絡(luò)結(jié)構(gòu)與推理模型為基準(zhǔn),針對(duì)文本傾斜校正的消融實(shí)驗(yàn)結(jié)果如圖8及表2所示。可以看到,圖像傾斜角度較大時(shí),文本區(qū)域檢測(cè)效果較差,這與分割網(wǎng)絡(luò)中卷積層的像素視野方向局限性有關(guān)。在進(jìn)行文本傾斜校正后,文本區(qū)域檢測(cè)精度從0.445 2提升至0.877 9,關(guān)鍵表頭信息準(zhǔn)確率從0.260 8提升至0.882 7,證明了本文所提方法的有效性。推理耗時(shí)由傾斜角度檢測(cè)校正時(shí)間、文本檢測(cè)時(shí)間和文本識(shí)別時(shí)間這3部分組成。未進(jìn)行傾斜校正時(shí),由于檢測(cè)出的待進(jìn)一步識(shí)別的文本框較少,因此耗時(shí)必然會(huì)短些。
圖8 針對(duì)文本傾斜校正的消融實(shí)驗(yàn)Fig. 8 Ablation study of image rotation with inclination angle
表2 25張傾斜檢修記錄單識(shí)別結(jié)果Tab. 2 Recognition of 25 locomotive maintenance record sheets with large inclination angle
本文OCR識(shí)別對(duì)象為紙質(zhì)檢修工單,與自然場(chǎng)景相比,其文本行文方向具有一定規(guī)則性,受卷積層感受視野方向局限性啟發(fā),可調(diào)整文本區(qū)域檢測(cè)網(wǎng)絡(luò)與文本內(nèi)容識(shí)別網(wǎng)絡(luò)的卷積核尺寸比例,探索不同卷積核尺寸對(duì)文本檢測(cè)與識(shí)別結(jié)果的影響。
在文本區(qū)域檢測(cè)網(wǎng)絡(luò)中,原始主干網(wǎng)絡(luò)ResNet18的卷積核尺寸為3×3(行文垂直方向×行文方向),修改后卷積核尺寸分別為3×5, 3×7,5×3和7×3。針對(duì)這5種尺寸進(jìn)行模型訓(xùn)練與驗(yàn)證,將5個(gè)訓(xùn)練結(jié)果模型在測(cè)試集中進(jìn)行泛化性能測(cè)試,結(jié)果如表3所示??梢钥闯?,當(dāng)卷積核尺寸為3×3或者3×5,文本檢測(cè)效果更好。當(dāng)卷積核沿文本垂直方向擴(kuò)展或者沿文本方向擴(kuò)展過(guò)長(zhǎng)時(shí),檢測(cè)效果反而更差,這或許是因?yàn)楸疚募堎|(zhì)檢修工單文本檢測(cè)目標(biāo)間距離較近,如圖7 所示,多行文本緊密連接可能會(huì)影響單行文本檢測(cè)效果。在相同檢測(cè)效果下,相比卷積核尺寸3×5,卷積核尺寸3×3更適合產(chǎn)品應(yīng)用,因?yàn)槠鋮?shù)量更少,計(jì)算效率更高。
表3 不同卷積核尺寸文本檢測(cè)結(jié)果Tab. 3 Text detection results with different convolution kernel size
在文本內(nèi)容識(shí)別網(wǎng)絡(luò)中,原始主干網(wǎng)絡(luò)ResNet18的卷積核尺寸為3×3(行文垂直方向×行文方向),同樣修改卷積核尺寸分別為3×5, 3×7,5×3和7×3。針對(duì)這5種尺寸進(jìn)行模型訓(xùn)練與驗(yàn)證,將5個(gè)訓(xùn)練結(jié)果模型在測(cè)試集中進(jìn)行泛化性能測(cè)試。測(cè)試結(jié)果如表4所示,可以發(fā)現(xiàn),幾種卷積核尺寸文本識(shí)別精度接近。這表明文本識(shí)別網(wǎng)絡(luò)對(duì)卷積核尺寸的敏感性比文本檢測(cè)網(wǎng)絡(luò)更低,這與其深度BiLSTM循環(huán)層有關(guān),其聯(lián)系上下文的輸入輸出非對(duì)稱機(jī)制發(fā)揮了重要作用。
表4 不同卷積核尺寸文本識(shí)別結(jié)果Tab. 4 Text recognition with different convolution kernel size
本文提出一種改進(jìn)的基于PaddlePaddle_OCR的文本識(shí)別方法,其可實(shí)現(xiàn)機(jī)車檢修記錄單表頭信息的精準(zhǔn)識(shí)別與表格文本信息的準(zhǔn)確識(shí)別以及檢修記錄單的快速分類歸檔,為后續(xù)表單細(xì)分場(chǎng)景深入研究提供數(shù)據(jù)基礎(chǔ)。所提方法相比原版PaddlePaddle_OCR增加了文本傾斜校正流程,大幅提升了文本傾斜場(chǎng)景文本區(qū)域檢測(cè)及相應(yīng)文本內(nèi)容識(shí)別效果。本文還探索了主干網(wǎng)絡(luò)卷積核尺寸比例對(duì)文本檢測(cè)網(wǎng)絡(luò)與文本識(shí)別網(wǎng)絡(luò)的影響。綜合考慮檢測(cè)精度與效率,文本檢測(cè)網(wǎng)絡(luò)卷積核尺寸優(yōu)先選擇3×3,文本識(shí)別網(wǎng)絡(luò)則對(duì)卷積核尺寸不敏感。需要注意的是,本文方法對(duì)表格結(jié)構(gòu)識(shí)別未能取得較好的效果,后續(xù)將對(duì)表格信息提取、數(shù)據(jù)結(jié)構(gòu)化等方面進(jìn)行進(jìn)一步研究。