?

基于投影閾值分割和數字序列校正的高噪聲數字儀表圖像識別方法

2023-10-14 02:55李志圣王傳啟
電子科技大學學報 2023年5期
關鍵詞:跳動間隔儀表

郝 琨,韓 冰,李志圣*,王傳啟

(1.天津城建大學計算機與信息工程學院 天津 西青區 300384;2.天津凱發電氣股份有限公司 天津 西青區 300384)

數字儀表在生產中發揮著重要作用,儀表讀數的精準度是決定生產質量的關鍵因素。在工業領域,數字儀表的數據讀取一般通過內置裝置采集,同時配合人工定期巡檢。但由于數字儀表的工作環境噪聲復雜,采用人工讀數易受巡檢人員精力和經驗影響,準確率較低,且成本較高。因此,大部分企業為了提高儀表識別準確率、節約生產成本,常采用計算機圖像識別技術代替人工巡檢。

1 相關工作

數字儀表的數據讀取分為數字區域檢測階段和數字識別階段,檢測階段將圖像中可能包含數字的區域使用錨框標記,并將標記區域送入識別階段進行識別。常見的數字區域檢測模型有EAST[1]、TextBox[2]、DBnet[3]等。DBnet 模型使用可微二值化方法,通過網絡模型訓練得出圖像二值化閾值,相較于其他檢測模型具有較快的檢測速度和較高的檢測精度。因此本文使用DBnet 模型對數字區域進行檢測,由于儀表數據集中數字區域和背景區域對比度較大,因此檢測精度可達100%。數字識別階段需提取圖像中的數字特征并進行解碼識別。傳統的數字式儀表識別方法有特征檢測[4]和模板匹配算法等[5],但傳統方法模板制作復雜,在識別字符種類較多情況下識別速度較慢且對于變形字符匹配效果較差,適用范圍較窄, 對于噪聲干擾的魯棒性較低。

隨著深度學習技術的發展,卷積遞歸神經網絡(convolutional recurrent neural network, CRNN)[6]被廣泛應用于數字式儀表的識別。文獻[7]對數字儀表進行像素級的語義分割,提高了數字儀表的識別準確率,但此方法受臟污噪聲影響較大,在臟污遮擋環境下易出現誤識現象;文獻[8]將可變形卷積應用到識別網絡中,在傳統卷積和池化操作中添加二維偏置值,使得神經網絡可以適應不規則物體的識別,該方法提高了在少量臟污遮擋情況下的數字識別準確率,但在光線不均勻情況下該方法識別率較低;文獻[9]對現有的CRNN 結構做出改進,增加注意力機制,在識別算法中使用正反兩個解碼器,通過結合正序和逆序兩種識別結果得出讀數,提高了字符粘連情況下的識別準確率,但該方法會放大圖像中污漬噪聲的干擾;文獻[10]提出一種圖像增強算法,該算法通過計算圖像不同區域內的動態截斷值,最終得到局部細節最優圖像,解決了圖像中噪聲分布不均勻等問題。但該方法需要人工選定參數且會帶來局部失真問題,在高曝光噪聲圖像上效果不佳;文獻[11]使用高斯濾波平滑儀表圖像,再通過自適應伽馬增強算法去除復雜光線影響,解決了圖像高曝光問題,但該方法無法去除密集噪點干擾;文獻[12]提出一種改進的最大熵閾值分割預處理算法,能較好地去除密集噪點干擾,配合卷積神經網絡,提高了高噪聲環境下的儀表識別準確率,但通過該方法計算的二值化閾值偏大,在數字部分缺失情況下容易忽略特征信息;文獻[13]提出一種互補序列對的運動模糊圖像復原方法,利用不同圖像的特征信息,使用互補幀圖像修復模糊圖像損失部分,但該方法使用范圍較窄且無法解決多幅圖像出現特征信息不足的情況。

綜上,在噪聲情況復雜、圖像特征信息較少的情況下,數字儀表識別技術存在識別準確率較低的問題。且由于儀表圖像中缺少關鍵特征信息, 現有的去噪聲算法和神經網絡優化算法對于識別準確率提升有限。因此,本文提出了結合投影閾值分割和數字序列校正的高噪聲數字儀表圖像識別方法PNCRNN。該方法使用投影閾值分割二值化算法(projection threshold segmentation, PTS),將圖像按噪聲強度劃分不同區域,并自適應設定閾值進行二值化處理,有效降低噪聲干擾;接著提出數字序列校正算法(number sequence correction algorithm, NSC),通過數字序列概率代替單個數字概率,利用前后幀圖像之間的數字規律,彌補當前圖像缺失的特征信息,從而提高數字圖像識別準確率。實驗結果表明,本文方法在高噪聲環境下具有較高的識別準確率。

2 高噪聲數字儀表圖像識別方法PNCRNN

2.1 PN-CRNN 網絡模型

目前主流的文本識別網絡為CRNN。該模型包括卷積神經網絡(convolutional neural networks, CNN)、循環神經網絡(recurrent neural network, RNN)和時間關聯性序列分類模塊(connectionist temporal classification, CTC)[14],分別對應卷積層,循環層和翻譯層。CRNN 模型通過CNN 網絡和RNN 網絡充分提取圖像特征信息并通過CTC 算法解碼翻譯進行對比識別,在無噪聲干擾或低噪聲干擾情況下識別準確率較高,但是在高噪聲干擾情況下,由于數字特征信息較少,導致識別準確率較低,如圖1 所示,數字“5”由于臟污遮擋影響,數字特征信息不足,CRNN 網絡將其誤識為“6”。

圖1 高噪聲情況下CRNN 識別結果

因此,為提高識別準確率,解決圖像中噪聲復雜以及數字特征不足導致的誤識等問題,本文基于CRNN 網絡提出PN-CRNN 模型。模型結構如圖2 所示。PN-CRNN 首先對檢測階段得到的數字區域圖像進行預處理,通過投影閾值分割算法PTS 去除圖像中的噪聲影響;由CRNN 網絡提取圖像中的特征信息,并生成預測概率矩陣;最后,利用數字序列校正算法NSC 得到精準的圖像識別結果。相比于CRNN,PN-CRNN 基于數字變化規律, 利用不同儀表圖像之間的相關信息,結合投影閾值分割和數字序列校正算法,有效地提高了圖像特征信息利用率,解決了在高噪聲環境下數字儀表識別率低的問題。

圖2 PN-CRNN 模型結構

2.2 PTS 圖像預處理

2.2.1 重復圖像篩選

在實際的生產過程中,當圖像采集設備的捕捉頻率高于儀表讀數變換頻率時,會出現圖像重復采集情況,導致識別過程時間損耗增加,因此本文通過對比圖像中關鍵區域的像素密度進行重復圖像篩選。

由于數字部分在圖像中占較大比例且與背景有較大對比度,因此圖像中的關鍵區域可認為是數字區域。本文通過垂直投影法對數字區域進行劃分。將圖像中數字邊界像素值設為閾值進行垂直投影,選取投影圖中波谷坐標作為劃分邊界將圖像劃分為不同數字區域。在無噪聲情況下,圖3 所示圖片可劃分出5 個數字區域;當圖像噪聲較大時,數字出現粘連現象,導致投影圖中波谷相互連接,此時將連接區域作為整體處理,則圖片可劃分出3 個數字區域,如圖4 所示。

圖3 垂直投影圖

圖4 高噪聲情況下垂直投影圖

設數字邊界像素值為C0,數字區域中灰度級i的 像素個數為mi,灰度范圍為 [C0,255],則區域內總像素數為:

數字區域像素點密度為:

式中,l和h別表示數字區域的長度和高度。當兩幅圖像中數字區域個數相同且對應數字區域內像素點密度相似時,則判斷為重復圖像。

2.2.2 投影閾值分割算法

由于數字儀表工作環境復雜,噪聲影響較大,常見的圖像增強算法和圖像二值化算法均不能完全滿足實際生產需求[15]。因此本文結合全局閾值分割和局部閾值分割優點,根據圖像數字區域內噪聲強度大小自適應設定二值化閾值。通過實驗驗證,本文提出的投影閾值分割算法效果優于常見的圖像增強算法和二值化算法。

數字區域內二值化閾值表示為:

式中,p和pˉ分別表示該數字區域像素點密度和無噪聲情況下數字區域平均像素點密度。

圖像二值化操作后需要通過形態學算法去除剩余噪聲,當圖像受到水滴、霧氣等噪聲影響,容易發生圖像特征丟失現象,如圖5a 所示。此時使用腐蝕等算法會造成部分特征丟失,受噪聲影響的數字區域經二值化處理后出現斷裂現象,數字被分成多個連通區域,如圖5b 所示。因此需要對二值化處理后的圖像進行修補。

圖5 數字修補對比圖

本文提出的修補方法是以數字“1”的橫向寬度作為修補標準,對數字區域內像素點進行篩選。當以該像素點為中心的矩形區域內縱向像素點數量過少時,則認為是噪聲點或是邊界點,不做處理;若豎向像素點形成連通區域且橫向像素點數量小于標準值則進行修補。

修補過程將圖像中斷裂數字進行補全,多個特征信息融合為所需特征信息。如圖5c 所示,數字‘7’經修補后僅存在一個連通區域,且數字特征十分明顯,避免了特征信息不足導致的誤識問題。

2.3 NSC 數字序列校正算法

2.3.1 NSC 算法概念

實際生產中,大部分儀表的讀數是基于一定規律變化的,如水表、電表。水表的讀數表示用水量,數字按規律逐漸變大,如“1,2,3”或“1,3,5”。因此當規律變化的數字中有無法識別的情況,可以借助數字變化規律進行推測,如圖6 所示,已知前兩幀圖像中最后一位數字分別為“3”和“4”,第三幀圖像中最后一位數字受到噪聲影響無法識別,但依照前兩幀圖像數字變化規律,該數字有較大的概率為“5”。

圖6 數字變化規律圖

NSC 算法基于數字規律變化的前提,將單個數字的識別變為對包含該數字的數字序列識別。原始的CRNN 模型選擇識別概率最大的字符作為識別結果,當遇到高噪聲導致的圖像特征信息不足情況,會產生誤識的情況。NSC 算法選擇識別概率最大的數字序列作為序列識別結果,數字序列的識別概率由組成該數列的多個數字識別概率相乘所得,因此識別準確率受數字序列整體影響,降低了噪聲對單個數字識別準確率的干擾權重。

2.3.2 NSC 算法流程

假設數字跳動間隔為k,數字序列長度為n,上限為N。 STR1,STR2,···,STRm用于存放可行數字序列,m表 示可行數字序列的數量。設P1,P2,···,Pm為可行數字序列概率。Pout表 示輸出概率,Pidx表示輸出的數字序列。則NSC 算法流程如圖7 所示。

圖7 NSC 算法流程圖

1)設定數字跳動間隔k和數字序列長度上限N,計算可行數字序列數量m和可行數字序列,并將可行數字序列存放在S TR1,STR2,···,STRm中;

2)對數字序列概率P1,P2,···,Pm和 序列長度n賦初值,令P1=1,P2=1,2,···,Pm=1,n=1;

3)判斷數字序列長度n是否大于上限N,如果不是,轉入步驟4),如果是,轉入步驟5);

4)獲取識別網絡對數字“0~9”的識別概率P1,P2,···,P9, 計算數字序列概率,序列長度n=n+1,轉入步驟3);

5)輸出最大識別概率Pout和對應的數字序列Pidx作為識別結果,流程結束。

2.3.3 NSC 算法有效性證明

為說明NSC 算法的原理和有效性,本文做如下數學證明。

將圖片中某個位置數字的真實值記為i,識別為正確數字i的概率記為pi,i, 識別為錯誤數字i′的概率記為pi,i′, 其中i,i′∈[0,9],i≠i′。假設該位置數字的跳動間隔為1,將該位置上長度為n的數字序列 記 為S[i][i+1][i+2]···[i+j]···[i+(n-1)], 其 中i+j為(i+j)mod10 的 簡記,下文中的i+j、i+j+k等均為簡記。數字序列的概率為組成序列中數字的概率乘積,假設數字序列的初始數字為i,序列長度為n,識別為正確數字序列的概率記為:

識別為錯誤數字序列的概率記為:

經觀察發現,存在以下啟發規則。

在高噪聲條件下,識別為正確數字的概率pi,i會發生下降,但從整體數據分析,識別為正確數字平均概率仍大于識別為錯誤數字的平均概率。

數字概率分析實驗說明了該啟發規則的正確性。

已知數字序列中,單個數字的識別概率分布相互獨立[16],假設識別為正確數字的概率服從以μˉcorrect為均值的分布;識別為錯誤數字的概率服從以 μˉwrong為均值的分布[17]。由啟發規則和假設條件提出如下命題:

證明:正確數字序列概率乘積的期望ES(Pcorrect)和錯誤數字序列概率乘積的期望ES(Pwrong)分別為:

則可得:

由命題1 可知在數字序列長度n達 到一定程度時,正確數字序列依概率大于錯誤數字序列,算法的有效性得到保證。在實際測試中,當數字序列長度達到8 時,PN-CRNN 模型識別準確率趨于穩定。

2.3.4 NSC 算法的影響因素

2.3.4.1 數字序列長度

2.3.4.2 可行數字序列數量

數字序列有多種可能,將滿足已知規律的數字序列定義為可行數字序列,其余為干擾數字序列。

在固定數字序列長度n的 前提下,NSC 算法受到可行數字序列數量的影響??尚袛底中蛄袛盗繘Q定算法的時間復雜度,當可行數字序列數量過于龐大時,算法難以滿足實時識別。

可行數字序列數量受數字跳動間隔影響,數字跳動間隔可認為是數字序列的規律。如數字跳動間隔取值為1 時,數字序列“1, 2, 3”為可行數字序列,數字序列“1, 5, 8”為干擾數字序列。當數字跳動間隔未知時,數字序列沒有規律約束,所有數字序列都是可行數字序列。

2.3.5 NSC 算法參數的優化

2.3.5.1 重復圖像篩選

重復圖像會極大增加可行數字序列的數量。以數字i∈[0,9], 序列長度n為例,此時可行數字序列共有1 0n種可能,如圖8a 所示。通過PTS 預處理算法剔除重復圖像后,可行數字序列數量降低為10×9n-1種可能,如圖8b 所示。

圖8 可行數字序列數量

2.3.5.2 數字跳動間隔約束

在實際生產中,由于儀表數字變化情況不固定,因此數字跳動間隔取值情況存在多種可能。

假設數字i∈[0,9], 數字序列長度為n, 當數字跳動間隔有兩種取值時,以1, 2 混合情況為例,如圖9a 所示,可行數字序列數量為1 0×2n-1種;當數字跳動間隔有3 種取值時,以1, 2, 3 混合情況為例,如圖9b 所示,可行數字序列數量為10×3n-1種。由此可得,可行數字序列數量隨數字跳動間隔的取值數量增大而增大,因此減少數字跳動間隔的取值數量可以有效減少可行數字序列數量。

圖9 控制數字跳動間隔優化

數字跳動間隔在影響可行數字序列數量的同時也影響了NSC 算法的準確率。假設數字儀表規律變化,數字跳動間隔為1 所得數字序列如圖10a 所示,數字跳動間隔為2 所得數字序列如圖10b 所示,數字跳動間隔由1 加大為2 時,數字序列的長度對應由10 減少為5。當數字跳動間隔過大時,數字之間呈現無序跳動,導致NSC 算法失效。因此減小數字跳動間隔取值大小可以有效增加NSC算法的識別準確率。

圖10 跳動間隔對數字序列影響

實際生產中,數字跳動間隔可通過改變采集設備的圖像采集頻率約束,當儀表圖像變化規律時,加快采集頻率可以減小數字跳動間隔取值數量和取值大小。

3 實驗與結果分析

3.1 數據集

本文采用的數據集1 由電力企業通過監控攝像對儀表設備進行實時采集制成,共3 510 張。為了驗證NSC 算法在高噪聲情況下的效果,本文在高噪聲環境下對儀表設備進行采集,得到噪聲圖像500 張;同時在數據集1 中隨機抽取部分圖像并通過數據增強方法添加噪聲,得到噪聲圖像404 張,將其與采集所得噪聲圖像混合,制作了高噪聲情況下的數據集2,共904 張,如圖11 所示,其中包括儀表鏡頭被臟污遮擋、光線過強導致的過曝、儀表電子元件損壞導致數字顯示不完整等情況。數據集共有4 414 張圖片,2 822 張用于網絡訓練,1 592 張用于測試。

圖11 不同圖像噪聲

3.2 實驗平臺

本文實驗使用計算機硬件設備為Intel(R)Core(TM) i7-7800X CPU@3.50 GHz,模型訓練使用2 個顯存為11 GB 的GeForce GTX 1080Ti 上訓練。計算機系統為Ubuntu18.04LTS。

3.3 評價指標

本文采用準確率(accuracy, Acc)和每秒傳輸幀數(frames per second, FPS)作為評價指標。correct_num是正確的識別圖像數量, all_num是圖像總數,準確率計算公式為:

3.4 結果分析

3.4.1 PTS 算法實驗結果分析

預處理算法主要用于去除圖像噪聲,在保留特征信息的同時減少噪聲影響。圖像的預處理方法分為非物理模型的增強方法和基于物理模型的復原方法。

常用的增強方法有帶色彩恢復的多尺度視網膜增強算法(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 預處理算法對比

全局閾值二值化分割時間復雜度較低,通過選取圖像中字體區域的平均像素值作為閾值對圖像進行簡單的分割。閾值選取影響二值化圖像的質量,閾值過大會導致圖像丟失部分特征,閾值過小則無法去除噪聲干擾,如圖12e 所示。自適應的閾值分割算法,通過自適應選取閾值對圖像進行分割,當圖片中前景和背景對比度較大時,Otsu 算法計算所得閾值偏小,去噪效果較差,如圖12f 所示。PTS 算法通過垂直方向投影將圖像劃分為不同區域,針對區域內噪聲強度自適應選取分割閾值,并使用形態學方法減少噪聲干擾。相比于全局閾值分割算法和Otsu 算法有更好的去噪效果,如圖12g所示。

預處理算法對比實驗使用CRNN 模型,主干網絡采用MobileNetV3(slim),首先在低噪聲數據集1 上測試噪聲干擾較小情況下預處理算法效果。實驗結果如表1 所示。從表1 中可以看出,圖像增強算法對識別率提升效果有限;全局閾值分割算法損失了圖像部分特征,導致識別準確率下降;Otsu算法對噪聲比較敏感,相比于原圖識別準確率下降約14%;PTS 算法使用二值化處理消除部分噪聲,并通過投影分割方法解決閾值選取過高造成特征信息丟失的問題,相比于原圖識別準確率提高約1.3%,相比全局閾值算法識別準確率提高約2.7%。

表1 在數據集1 上的預處理算法對比

通過在低噪聲數據集1 上的預處理對比實驗可知,圖像增強算法提升效果有限,且相比于圖像二值化算法,圖像增強算法復雜度較高[24]。為進一步對比幾種預處理算法的效果,使用高噪聲數據集2 進行測試,實驗結果如表2 所示,使用PTS 算法處理后,圖像識別準確率對比原圖提高約15%,對比使用全局閾值分割算法高約10%,對比使用圖像增強算法提高約6%。實驗結果表明,PTS 算法對比其他算法,有更強的去噪效果。

表2 在高噪聲數據集2 上的預處理算法對比

3.4.2 數字序列概率分析

為驗證NSC 算法啟發規則 μˉcorrect>μˉwrong的正確性,使用低噪聲數據集1 和高噪聲數據集2 進行實驗。

高噪聲數據集2 分析結果見表3,正確數字平均識別率為0.475,錯誤數字平均識別率為0.057,錯誤數字平均識別率小于正確數字平均識別率。低噪聲數據集1 分析結果見表4,正確數字平均識別率為0.962,錯誤數字平均識別率為0.014,錯誤數字平均識別率遠小于正確數字平均識別率。

表3 在高噪聲數據集2 上的數字平均識別率乘積

表4 在數據集1 上的數字平均識別率乘積

表5 在高噪聲數據集2 上的正確識別率乘積

表6 在高噪聲數據集2 上的錯誤識別率乘積

表7 在高噪聲數據集2 上的正確識別率與最大錯誤識別率乘積比值

從兩組實驗數據對比可知,NSC 算法的啟發規則成立。

3.4.3 NSC 算法效果測試

為驗證NSC 算法的效果,使用高噪聲數據集2 測試。原始CRNN 模型選用PaddlePaddle 平臺數字識別模型[25],并對其添加PTS 算法和NSC 算法。如表8 所示,僅使用NSC 算法相比于原模型識別準確率提高約37%,同時使用PTS 算法和NSC 算法相比于原模型提高約62%。

表8 在高噪聲數據集2 上的NSC 算法效果

3.4.4 數字序列長度對NSC 算法影響

NSC 算法的序列長度由參與運算的數字個數決定,序列長度為1 的情況即原始模型。當序列長度增大時,模型識別準確率逐漸增大,如表9 所示,因此NSC 算法效果隨數字序列長度n增加而增強。隨序列長度增大,識別準確率上升趨勢逐漸變緩,如圖13 所示。在實際測試中,當序列長度增大到某一閾值,識別準確率達到最大值并不再增長。

圖13 序列長度與識別準確率關系

3.4.5 數字跳動間隔對NSC 算法的影響

NSC 算法受到數字序列數量影響,數字序列數量由數字跳動間隔和起始位置決定。數字跳動間隔由1 增加到2 時,如表10 所示,準確率下降約5%;當改變起始位置時,數字跳動間隔變為1 和2 混合情況,準確率下降約9%。同時改變數字跳動間隔和起始位置,準確率下降約12%。由實驗結果可知,數字的跳動間隔是影響算法識別準確率的重要因素。在實際測試中,算法使用的序列長度較短,當數字跳動間隔過大時,數字無法形成序列。針對此問題可通過調校設備采集時間間隔,增加采樣次數,避免數字無序跳動,保證算法效果。

表10 數字間隔對NSC 算法影響

3.4.6 模型對比實驗

在數據集1 上,對比PN-CRNN 模型與CRNN模型在正常情況下識別準確率,主干網絡選擇MobileNetEnhance、 MobileNetV3[26], ResNet[27]和MobileNetV3(slim)。如表11 所示,添加PTS 算法和NSC 算法后模型準確率均有不同程度的提高,其中MobileNetV3(slim)的識別準確率可達到96.32%。

表11 在數據集1 上的模型對比

為進一步驗證模型效果,本文選擇基于SVTR[28]和PP-LCNet[29]的PP-OCRv3 模型進行對比實驗。如表12 所示,PN-CRNN 模型相比于PP-OCRv3模型在數據集1 上準確率提高約2%,在高噪聲數據集2 上提高約22%。

表12 PN-CRNN 與PP-OCRv3 模型對比

4 結 束 語

本文針對儀表圖像噪聲復雜問題,提出了一種基于投影閾值分割和數字序列校正的高噪數字儀表圖像識別方法。首先使用PTS 投影閾值分割算法去除儀表圖像噪聲,以便于模型提取數字特征。然后通過NSC 數字序列校正算法將單個數字概率轉變為數字序列概率,避免了因數字特征信息不足導致的誤識、漏識問題。實驗結果表明,在高噪聲數據集上,本文算法對數字的識別準確率達到93.64%,遠遠高于其他算法,具有很好的實用性。然而,本文算法存在對于數字序列條件要求較高、忽略了圖像中數位之間存在的規律等不足,未來將會針對這些不足繼續開展后續研究工作。

猜你喜歡
跳動間隔儀表
◆ 儀表
◆ 儀表
儀表
間隔問題
跳動的音符
跳動的聲音
間隔之謎
咚,咚,咚,心臟在跳動
上樓梯的學問
打造穩定跳動的“心臟”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合