郝 琨,韓 冰,李志圣*,王傳啟
(1.天津城建大學計算機與信息工程學院 天津 西青區(qū) 300384;2.天津凱發(fā)電氣股份有限公司 天津 西青區(qū) 300384)
數(shù)字儀表在生產(chǎn)中發(fā)揮著重要作用,儀表讀數(shù)的精準度是決定生產(chǎn)質(zhì)量的關鍵因素。在工業(yè)領域,數(shù)字儀表的數(shù)據(jù)讀取一般通過內(nèi)置裝置采集,同時配合人工定期巡檢。但由于數(shù)字儀表的工作環(huán)境噪聲復雜,采用人工讀數(shù)易受巡檢人員精力和經(jīng)驗影響,準確率較低,且成本較高。因此,大部分企業(yè)為了提高儀表識別準確率、節(jié)約生產(chǎn)成本,常采用計算機圖像識別技術代替人工巡檢。
數(shù)字儀表的數(shù)據(jù)讀取分為數(shù)字區(qū)域檢測階段和數(shù)字識別階段,檢測階段將圖像中可能包含數(shù)字的區(qū)域使用錨框標記,并將標記區(qū)域送入識別階段進行識別。常見的數(shù)字區(qū)域檢測模型有EAST[1]、TextBox[2]、DBnet[3]等。DBnet 模型使用可微二值化方法,通過網(wǎng)絡模型訓練得出圖像二值化閾值,相較于其他檢測模型具有較快的檢測速度和較高的檢測精度。因此本文使用DBnet 模型對數(shù)字區(qū)域進行檢測,由于儀表數(shù)據(jù)集中數(shù)字區(qū)域和背景區(qū)域?qū)Ρ榷容^大,因此檢測精度可達100%。數(shù)字識別階段需提取圖像中的數(shù)字特征并進行解碼識別。傳統(tǒng)的數(shù)字式儀表識別方法有特征檢測[4]和模板匹配算法等[5],但傳統(tǒng)方法模板制作復雜,在識別字符種類較多情況下識別速度較慢且對于變形字符匹配效果較差,適用范圍較窄, 對于噪聲干擾的魯棒性較低。
隨著深度學習技術的發(fā)展,卷積遞歸神經(jīng)網(wǎng)絡(convolutional recurrent neural network, CRNN)[6]被廣泛應用于數(shù)字式儀表的識別。文獻[7]對數(shù)字儀表進行像素級的語義分割,提高了數(shù)字儀表的識別準確率,但此方法受臟污噪聲影響較大,在臟污遮擋環(huán)境下易出現(xiàn)誤識現(xiàn)象;文獻[8]將可變形卷積應用到識別網(wǎng)絡中,在傳統(tǒng)卷積和池化操作中添加二維偏置值,使得神經(jīng)網(wǎng)絡可以適應不規(guī)則物體的識別,該方法提高了在少量臟污遮擋情況下的數(shù)字識別準確率,但在光線不均勻情況下該方法識別率較低;文獻[9]對現(xiàn)有的CRNN 結構做出改進,增加注意力機制,在識別算法中使用正反兩個解碼器,通過結合正序和逆序兩種識別結果得出讀數(shù),提高了字符粘連情況下的識別準確率,但該方法會放大圖像中污漬噪聲的干擾;文獻[10]提出一種圖像增強算法,該算法通過計算圖像不同區(qū)域內(nèi)的動態(tài)截斷值,最終得到局部細節(jié)最優(yōu)圖像,解決了圖像中噪聲分布不均勻等問題。但該方法需要人工選定參數(shù)且會帶來局部失真問題,在高曝光噪聲圖像上效果不佳;文獻[11]使用高斯濾波平滑儀表圖像,再通過自適應伽馬增強算法去除復雜光線影響,解決了圖像高曝光問題,但該方法無法去除密集噪點干擾;文獻[12]提出一種改進的最大熵閾值分割預處理算法,能較好地去除密集噪點干擾,配合卷積神經(jīng)網(wǎng)絡,提高了高噪聲環(huán)境下的儀表識別準確率,但通過該方法計算的二值化閾值偏大,在數(shù)字部分缺失情況下容易忽略特征信息;文獻[13]提出一種互補序列對的運動模糊圖像復原方法,利用不同圖像的特征信息,使用互補幀圖像修復模糊圖像損失部分,但該方法使用范圍較窄且無法解決多幅圖像出現(xiàn)特征信息不足的情況。
綜上,在噪聲情況復雜、圖像特征信息較少的情況下,數(shù)字儀表識別技術存在識別準確率較低的問題。且由于儀表圖像中缺少關鍵特征信息, 現(xiàn)有的去噪聲算法和神經(jīng)網(wǎng)絡優(yōu)化算法對于識別準確率提升有限。因此,本文提出了結合投影閾值分割和數(shù)字序列校正的高噪聲數(shù)字儀表圖像識別方法PNCRNN。該方法使用投影閾值分割二值化算法(projection threshold segmentation, PTS),將圖像按噪聲強度劃分不同區(qū)域,并自適應設定閾值進行二值化處理,有效降低噪聲干擾;接著提出數(shù)字序列校正算法(number sequence correction algorithm, NSC),通過數(shù)字序列概率代替單個數(shù)字概率,利用前后幀圖像之間的數(shù)字規(guī)律,彌補當前圖像缺失的特征信息,從而提高數(shù)字圖像識別準確率。實驗結果表明,本文方法在高噪聲環(huán)境下具有較高的識別準確率。
目前主流的文本識別網(wǎng)絡為CRNN。該模型包括卷積神經(jīng)網(wǎng)絡(convolutional neural networks, CNN)、循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network, RNN)和時間關聯(lián)性序列分類模塊(connectionist temporal classification, CTC)[14],分別對應卷積層,循環(huán)層和翻譯層。CRNN 模型通過CNN 網(wǎng)絡和RNN 網(wǎng)絡充分提取圖像特征信息并通過CTC 算法解碼翻譯進行對比識別,在無噪聲干擾或低噪聲干擾情況下識別準確率較高,但是在高噪聲干擾情況下,由于數(shù)字特征信息較少,導致識別準確率較低,如圖1 所示,數(shù)字“5”由于臟污遮擋影響,數(shù)字特征信息不足,CRNN 網(wǎng)絡將其誤識為“6”。
圖1 高噪聲情況下CRNN 識別結果
因此,為提高識別準確率,解決圖像中噪聲復雜以及數(shù)字特征不足導致的誤識等問題,本文基于CRNN 網(wǎng)絡提出PN-CRNN 模型。模型結構如圖2 所示。PN-CRNN 首先對檢測階段得到的數(shù)字區(qū)域圖像進行預處理,通過投影閾值分割算法PTS 去除圖像中的噪聲影響;由CRNN 網(wǎng)絡提取圖像中的特征信息,并生成預測概率矩陣;最后,利用數(shù)字序列校正算法NSC 得到精準的圖像識別結果。相比于CRNN,PN-CRNN 基于數(shù)字變化規(guī)律, 利用不同儀表圖像之間的相關信息,結合投影閾值分割和數(shù)字序列校正算法,有效地提高了圖像特征信息利用率,解決了在高噪聲環(huán)境下數(shù)字儀表識別率低的問題。
圖2 PN-CRNN 模型結構
2.2.1 重復圖像篩選
在實際的生產(chǎn)過程中,當圖像采集設備的捕捉頻率高于儀表讀數(shù)變換頻率時,會出現(xiàn)圖像重復采集情況,導致識別過程時間損耗增加,因此本文通過對比圖像中關鍵區(qū)域的像素密度進行重復圖像篩選。
由于數(shù)字部分在圖像中占較大比例且與背景有較大對比度,因此圖像中的關鍵區(qū)域可認為是數(shù)字區(qū)域。本文通過垂直投影法對數(shù)字區(qū)域進行劃分。將圖像中數(shù)字邊界像素值設為閾值進行垂直投影,選取投影圖中波谷坐標作為劃分邊界將圖像劃分為不同數(shù)字區(qū)域。在無噪聲情況下,圖3 所示圖片可劃分出5 個數(shù)字區(qū)域;當圖像噪聲較大時,數(shù)字出現(xiàn)粘連現(xiàn)象,導致投影圖中波谷相互連接,此時將連接區(qū)域作為整體處理,則圖片可劃分出3 個數(shù)字區(qū)域,如圖4 所示。
圖3 垂直投影圖
圖4 高噪聲情況下垂直投影圖
設數(shù)字邊界像素值為C0,數(shù)字區(qū)域中灰度級i的 像素個數(shù)為mi,灰度范圍為 [C0,255],則區(qū)域內(nèi)總像素數(shù)為:
數(shù)字區(qū)域像素點密度為:
式中,l和h別表示數(shù)字區(qū)域的長度和高度。當兩幅圖像中數(shù)字區(qū)域個數(shù)相同且對應數(shù)字區(qū)域內(nèi)像素點密度相似時,則判斷為重復圖像。
2.2.2 投影閾值分割算法
由于數(shù)字儀表工作環(huán)境復雜,噪聲影響較大,常見的圖像增強算法和圖像二值化算法均不能完全滿足實際生產(chǎn)需求[15]。因此本文結合全局閾值分割和局部閾值分割優(yōu)點,根據(jù)圖像數(shù)字區(qū)域內(nèi)噪聲強度大小自適應設定二值化閾值。通過實驗驗證,本文提出的投影閾值分割算法效果優(yōu)于常見的圖像增強算法和二值化算法。
數(shù)字區(qū)域內(nèi)二值化閾值表示為:
式中,p和pˉ分別表示該數(shù)字區(qū)域像素點密度和無噪聲情況下數(shù)字區(qū)域平均像素點密度。
圖像二值化操作后需要通過形態(tài)學算法去除剩余噪聲,當圖像受到水滴、霧氣等噪聲影響,容易發(fā)生圖像特征丟失現(xiàn)象,如圖5a 所示。此時使用腐蝕等算法會造成部分特征丟失,受噪聲影響的數(shù)字區(qū)域經(jīng)二值化處理后出現(xiàn)斷裂現(xiàn)象,數(shù)字被分成多個連通區(qū)域,如圖5b 所示。因此需要對二值化處理后的圖像進行修補。
圖5 數(shù)字修補對比圖
本文提出的修補方法是以數(shù)字“1”的橫向?qū)挾茸鳛樾扪a標準,對數(shù)字區(qū)域內(nèi)像素點進行篩選。當以該像素點為中心的矩形區(qū)域內(nèi)縱向像素點數(shù)量過少時,則認為是噪聲點或是邊界點,不做處理;若豎向像素點形成連通區(qū)域且橫向像素點數(shù)量小于標準值則進行修補。
修補過程將圖像中斷裂數(shù)字進行補全,多個特征信息融合為所需特征信息。如圖5c 所示,數(shù)字‘7’經(jīng)修補后僅存在一個連通區(qū)域,且數(shù)字特征十分明顯,避免了特征信息不足導致的誤識問題。
2.3.1 NSC 算法概念
實際生產(chǎn)中,大部分儀表的讀數(shù)是基于一定規(guī)律變化的,如水表、電表。水表的讀數(shù)表示用水量,數(shù)字按規(guī)律逐漸變大,如“1,2,3”或“1,3,5”。因此當規(guī)律變化的數(shù)字中有無法識別的情況,可以借助數(shù)字變化規(guī)律進行推測,如圖6 所示,已知前兩幀圖像中最后一位數(shù)字分別為“3”和“4”,第三幀圖像中最后一位數(shù)字受到噪聲影響無法識別,但依照前兩幀圖像數(shù)字變化規(guī)律,該數(shù)字有較大的概率為“5”。
圖6 數(shù)字變化規(guī)律圖
NSC 算法基于數(shù)字規(guī)律變化的前提,將單個數(shù)字的識別變?yōu)閷Π摂?shù)字的數(shù)字序列識別。原始的CRNN 模型選擇識別概率最大的字符作為識別結果,當遇到高噪聲導致的圖像特征信息不足情況,會產(chǎn)生誤識的情況。NSC 算法選擇識別概率最大的數(shù)字序列作為序列識別結果,數(shù)字序列的識別概率由組成該數(shù)列的多個數(shù)字識別概率相乘所得,因此識別準確率受數(shù)字序列整體影響,降低了噪聲對單個數(shù)字識別準確率的干擾權重。
2.3.2 NSC 算法流程
假設數(shù)字跳動間隔為k,數(shù)字序列長度為n,上限為N。 STR1,STR2,···,STRm用于存放可行數(shù)字序列,m表 示可行數(shù)字序列的數(shù)量。設P1,P2,···,Pm為可行數(shù)字序列概率。Pout表 示輸出概率,Pidx表示輸出的數(shù)字序列。則NSC 算法流程如圖7 所示。
圖7 NSC 算法流程圖
1)設定數(shù)字跳動間隔k和數(shù)字序列長度上限N,計算可行數(shù)字序列數(shù)量m和可行數(shù)字序列,并將可行數(shù)字序列存放在S TR1,STR2,···,STRm中;
2)對數(shù)字序列概率P1,P2,···,Pm和 序列長度n賦初值,令P1=1,P2=1,2,···,Pm=1,n=1;
3)判斷數(shù)字序列長度n是否大于上限N,如果不是,轉入步驟4),如果是,轉入步驟5);
4)獲取識別網(wǎng)絡對數(shù)字“0~9”的識別概率P1,P2,···,P9, 計算數(shù)字序列概率,序列長度n=n+1,轉入步驟3);
5)輸出最大識別概率Pout和對應的數(shù)字序列Pidx作為識別結果,流程結束。
2.3.3 NSC 算法有效性證明
為說明NSC 算法的原理和有效性,本文做如下數(shù)學證明。
將圖片中某個位置數(shù)字的真實值記為i,識別為正確數(shù)字i的概率記為pi,i, 識別為錯誤數(shù)字i′的概率記為pi,i′, 其中i,i′∈[0,9],i≠i′。假設該位置數(shù)字的跳動間隔為1,將該位置上長度為n的數(shù)字序列 記 為S[i][i+1][i+2]···[i+j]···[i+(n-1)], 其 中i+j為(i+j)mod10 的 簡記,下文中的i+j、i+j+k等均為簡記。數(shù)字序列的概率為組成序列中數(shù)字的概率乘積,假設數(shù)字序列的初始數(shù)字為i,序列長度為n,識別為正確數(shù)字序列的概率記為:
識別為錯誤數(shù)字序列的概率記為:
經(jīng)觀察發(fā)現(xiàn),存在以下啟發(fā)規(guī)則。
在高噪聲條件下,識別為正確數(shù)字的概率pi,i會發(fā)生下降,但從整體數(shù)據(jù)分析,識別為正確數(shù)字平均概率仍大于識別為錯誤數(shù)字的平均概率。
數(shù)字概率分析實驗說明了該啟發(fā)規(guī)則的正確性。
已知數(shù)字序列中,單個數(shù)字的識別概率分布相互獨立[16],假設識別為正確數(shù)字的概率服從以μˉcorrect為均值的分布;識別為錯誤數(shù)字的概率服從以 μˉwrong為均值的分布[17]。由啟發(fā)規(guī)則和假設條件提出如下命題:
證明:正確數(shù)字序列概率乘積的期望ES(Pcorrect)和錯誤數(shù)字序列概率乘積的期望ES(Pwrong)分別為:
則可得:
由命題1 可知在數(shù)字序列長度n達 到一定程度時,正確數(shù)字序列依概率大于錯誤數(shù)字序列,算法的有效性得到保證。在實際測試中,當數(shù)字序列長度達到8 時,PN-CRNN 模型識別準確率趨于穩(wěn)定。
2.3.4 NSC 算法的影響因素
2.3.4.1 數(shù)字序列長度
2.3.4.2 可行數(shù)字序列數(shù)量
數(shù)字序列有多種可能,將滿足已知規(guī)律的數(shù)字序列定義為可行數(shù)字序列,其余為干擾數(shù)字序列。
在固定數(shù)字序列長度n的 前提下,NSC 算法受到可行數(shù)字序列數(shù)量的影響。可行數(shù)字序列數(shù)量決定算法的時間復雜度,當可行數(shù)字序列數(shù)量過于龐大時,算法難以滿足實時識別。
可行數(shù)字序列數(shù)量受數(shù)字跳動間隔影響,數(shù)字跳動間隔可認為是數(shù)字序列的規(guī)律。如數(shù)字跳動間隔取值為1 時,數(shù)字序列“1, 2, 3”為可行數(shù)字序列,數(shù)字序列“1, 5, 8”為干擾數(shù)字序列。當數(shù)字跳動間隔未知時,數(shù)字序列沒有規(guī)律約束,所有數(shù)字序列都是可行數(shù)字序列。
2.3.5 NSC 算法參數(shù)的優(yōu)化
2.3.5.1 重復圖像篩選
重復圖像會極大增加可行數(shù)字序列的數(shù)量。以數(shù)字i∈[0,9], 序列長度n為例,此時可行數(shù)字序列共有1 0n種可能,如圖8a 所示。通過PTS 預處理算法剔除重復圖像后,可行數(shù)字序列數(shù)量降低為10×9n-1種可能,如圖8b 所示。
圖8 可行數(shù)字序列數(shù)量
2.3.5.2 數(shù)字跳動間隔約束
在實際生產(chǎn)中,由于儀表數(shù)字變化情況不固定,因此數(shù)字跳動間隔取值情況存在多種可能。
假設數(shù)字i∈[0,9], 數(shù)字序列長度為n, 當數(shù)字跳動間隔有兩種取值時,以1, 2 混合情況為例,如圖9a 所示,可行數(shù)字序列數(shù)量為1 0×2n-1種;當數(shù)字跳動間隔有3 種取值時,以1, 2, 3 混合情況為例,如圖9b 所示,可行數(shù)字序列數(shù)量為10×3n-1種。由此可得,可行數(shù)字序列數(shù)量隨數(shù)字跳動間隔的取值數(shù)量增大而增大,因此減少數(shù)字跳動間隔的取值數(shù)量可以有效減少可行數(shù)字序列數(shù)量。
圖9 控制數(shù)字跳動間隔優(yōu)化
數(shù)字跳動間隔在影響可行數(shù)字序列數(shù)量的同時也影響了NSC 算法的準確率。假設數(shù)字儀表規(guī)律變化,數(shù)字跳動間隔為1 所得數(shù)字序列如圖10a 所示,數(shù)字跳動間隔為2 所得數(shù)字序列如圖10b 所示,數(shù)字跳動間隔由1 加大為2 時,數(shù)字序列的長度對應由10 減少為5。當數(shù)字跳動間隔過大時,數(shù)字之間呈現(xiàn)無序跳動,導致NSC 算法失效。因此減小數(shù)字跳動間隔取值大小可以有效增加NSC算法的識別準確率。
圖10 跳動間隔對數(shù)字序列影響
實際生產(chǎn)中,數(shù)字跳動間隔可通過改變采集設備的圖像采集頻率約束,當儀表圖像變化規(guī)律時,加快采集頻率可以減小數(shù)字跳動間隔取值數(shù)量和取值大小。
本文采用的數(shù)據(jù)集1 由電力企業(yè)通過監(jiān)控攝像對儀表設備進行實時采集制成,共3 510 張。為了驗證NSC 算法在高噪聲情況下的效果,本文在高噪聲環(huán)境下對儀表設備進行采集,得到噪聲圖像500 張;同時在數(shù)據(jù)集1 中隨機抽取部分圖像并通過數(shù)據(jù)增強方法添加噪聲,得到噪聲圖像404 張,將其與采集所得噪聲圖像混合,制作了高噪聲情況下的數(shù)據(jù)集2,共904 張,如圖11 所示,其中包括儀表鏡頭被臟污遮擋、光線過強導致的過曝、儀表電子元件損壞導致數(shù)字顯示不完整等情況。數(shù)據(jù)集共有4 414 張圖片,2 822 張用于網(wǎng)絡訓練,1 592 張用于測試。
圖11 不同圖像噪聲
本文實驗使用計算機硬件設備為Intel(R)Core(TM) i7-7800X CPU@3.50 GHz,模型訓練使用2 個顯存為11 GB 的GeForce GTX 1080Ti 上訓練。計算機系統(tǒng)為Ubuntu18.04LTS。
本文采用準確率(accuracy, Acc)和每秒傳輸幀數(shù)(frames per second, FPS)作為評價指標。correct_num是正確的識別圖像數(shù)量, all_num是圖像總數(shù),準確率計算公式為:
3.4.1 PTS 算法實驗結果分析
預處理算法主要用于去除圖像噪聲,在保留特征信息的同時減少噪聲影響。圖像的預處理方法分為非物理模型的增強方法和基于物理模型的復原方法。
常用的增強方法有帶色彩恢復的多尺度視網(wǎng)膜增強算法(multi-scale retinex with color restoration,MSRCR)[19],自動彩色均衡算法(automatic color equalization, ACE)[20],限制對比度自適應直方圖均衡算法(contrast limited adaptive histogram equalization,CLAHE)[21]。
除圖像增強算法之外,圖像二值化處理也是常用的降噪方法[22]。常見的圖像二值化算法有平均灰度閾值分割和自適應的最大類間方差法(maximum inter class variance, OTSU)[23]。
本文選擇ACE 算法、MSRCR 算法、CLAHE算法、OTSU 算法、全局閾值分割算法以及PTS算法進行對比實驗。
圖像增強算法可以增強圖像中前景和背景的對比度,改善過曝情況,但同時會提高噪聲影響。如圖12a~圖12d 所示,圖像增強算法無法去除圖像密集噪點。
圖12 預處理算法對比
全局閾值二值化分割時間復雜度較低,通過選取圖像中字體區(qū)域的平均像素值作為閾值對圖像進行簡單的分割。閾值選取影響二值化圖像的質(zhì)量,閾值過大會導致圖像丟失部分特征,閾值過小則無法去除噪聲干擾,如圖12e 所示。自適應的閾值分割算法,通過自適應選取閾值對圖像進行分割,當圖片中前景和背景對比度較大時,Otsu 算法計算所得閾值偏小,去噪效果較差,如圖12f 所示。PTS 算法通過垂直方向投影將圖像劃分為不同區(qū)域,針對區(qū)域內(nèi)噪聲強度自適應選取分割閾值,并使用形態(tài)學方法減少噪聲干擾。相比于全局閾值分割算法和Otsu 算法有更好的去噪效果,如圖12g所示。
預處理算法對比實驗使用CRNN 模型,主干網(wǎng)絡采用MobileNetV3(slim),首先在低噪聲數(shù)據(jù)集1 上測試噪聲干擾較小情況下預處理算法效果。實驗結果如表1 所示。從表1 中可以看出,圖像增強算法對識別率提升效果有限;全局閾值分割算法損失了圖像部分特征,導致識別準確率下降;Otsu算法對噪聲比較敏感,相比于原圖識別準確率下降約14%;PTS 算法使用二值化處理消除部分噪聲,并通過投影分割方法解決閾值選取過高造成特征信息丟失的問題,相比于原圖識別準確率提高約1.3%,相比全局閾值算法識別準確率提高約2.7%。
表1 在數(shù)據(jù)集1 上的預處理算法對比
通過在低噪聲數(shù)據(jù)集1 上的預處理對比實驗可知,圖像增強算法提升效果有限,且相比于圖像二值化算法,圖像增強算法復雜度較高[24]。為進一步對比幾種預處理算法的效果,使用高噪聲數(shù)據(jù)集2 進行測試,實驗結果如表2 所示,使用PTS 算法處理后,圖像識別準確率對比原圖提高約15%,對比使用全局閾值分割算法高約10%,對比使用圖像增強算法提高約6%。實驗結果表明,PTS 算法對比其他算法,有更強的去噪效果。
表2 在高噪聲數(shù)據(jù)集2 上的預處理算法對比
3.4.2 數(shù)字序列概率分析
為驗證NSC 算法啟發(fā)規(guī)則 μˉcorrect>μˉwrong的正確性,使用低噪聲數(shù)據(jù)集1 和高噪聲數(shù)據(jù)集2 進行實驗。
高噪聲數(shù)據(jù)集2 分析結果見表3,正確數(shù)字平均識別率為0.475,錯誤數(shù)字平均識別率為0.057,錯誤數(shù)字平均識別率小于正確數(shù)字平均識別率。低噪聲數(shù)據(jù)集1 分析結果見表4,正確數(shù)字平均識別率為0.962,錯誤數(shù)字平均識別率為0.014,錯誤數(shù)字平均識別率遠小于正確數(shù)字平均識別率。
表3 在高噪聲數(shù)據(jù)集2 上的數(shù)字平均識別率乘積
表4 在數(shù)據(jù)集1 上的數(shù)字平均識別率乘積
表5 在高噪聲數(shù)據(jù)集2 上的正確識別率乘積
表6 在高噪聲數(shù)據(jù)集2 上的錯誤識別率乘積
表7 在高噪聲數(shù)據(jù)集2 上的正確識別率與最大錯誤識別率乘積比值
從兩組實驗數(shù)據(jù)對比可知,NSC 算法的啟發(fā)規(guī)則成立。
3.4.3 NSC 算法效果測試
為驗證NSC 算法的效果,使用高噪聲數(shù)據(jù)集2 測試。原始CRNN 模型選用PaddlePaddle 平臺數(shù)字識別模型[25],并對其添加PTS 算法和NSC 算法。如表8 所示,僅使用NSC 算法相比于原模型識別準確率提高約37%,同時使用PTS 算法和NSC 算法相比于原模型提高約62%。
表8 在高噪聲數(shù)據(jù)集2 上的NSC 算法效果
3.4.4 數(shù)字序列長度對NSC 算法影響
NSC 算法的序列長度由參與運算的數(shù)字個數(shù)決定,序列長度為1 的情況即原始模型。當序列長度增大時,模型識別準確率逐漸增大,如表9 所示,因此NSC 算法效果隨數(shù)字序列長度n增加而增強。隨序列長度增大,識別準確率上升趨勢逐漸變緩,如圖13 所示。在實際測試中,當序列長度增大到某一閾值,識別準確率達到最大值并不再增長。
圖13 序列長度與識別準確率關系
3.4.5 數(shù)字跳動間隔對NSC 算法的影響
NSC 算法受到數(shù)字序列數(shù)量影響,數(shù)字序列數(shù)量由數(shù)字跳動間隔和起始位置決定。數(shù)字跳動間隔由1 增加到2 時,如表10 所示,準確率下降約5%;當改變起始位置時,數(shù)字跳動間隔變?yōu)? 和2 混合情況,準確率下降約9%。同時改變數(shù)字跳動間隔和起始位置,準確率下降約12%。由實驗結果可知,數(shù)字的跳動間隔是影響算法識別準確率的重要因素。在實際測試中,算法使用的序列長度較短,當數(shù)字跳動間隔過大時,數(shù)字無法形成序列。針對此問題可通過調(diào)校設備采集時間間隔,增加采樣次數(shù),避免數(shù)字無序跳動,保證算法效果。
表10 數(shù)字間隔對NSC 算法影響
3.4.6 模型對比實驗
在數(shù)據(jù)集1 上,對比PN-CRNN 模型與CRNN模型在正常情況下識別準確率,主干網(wǎng)絡選擇MobileNetEnhance、 MobileNetV3[26], ResNet[27]和MobileNetV3(slim)。如表11 所示,添加PTS 算法和NSC 算法后模型準確率均有不同程度的提高,其中MobileNetV3(slim)的識別準確率可達到96.32%。
表11 在數(shù)據(jù)集1 上的模型對比
為進一步驗證模型效果,本文選擇基于SVTR[28]和PP-LCNet[29]的PP-OCRv3 模型進行對比實驗。如表12 所示,PN-CRNN 模型相比于PP-OCRv3模型在數(shù)據(jù)集1 上準確率提高約2%,在高噪聲數(shù)據(jù)集2 上提高約22%。
表12 PN-CRNN 與PP-OCRv3 模型對比
本文針對儀表圖像噪聲復雜問題,提出了一種基于投影閾值分割和數(shù)字序列校正的高噪數(shù)字儀表圖像識別方法。首先使用PTS 投影閾值分割算法去除儀表圖像噪聲,以便于模型提取數(shù)字特征。然后通過NSC 數(shù)字序列校正算法將單個數(shù)字概率轉變?yōu)閿?shù)字序列概率,避免了因數(shù)字特征信息不足導致的誤識、漏識問題。實驗結果表明,在高噪聲數(shù)據(jù)集上,本文算法對數(shù)字的識別準確率達到93.64%,遠遠高于其他算法,具有很好的實用性。然而,本文算法存在對于數(shù)字序列條件要求較高、忽略了圖像中數(shù)位之間存在的規(guī)律等不足,未來將會針對這些不足繼續(xù)開展后續(xù)研究工作。