石煌雄,胡 洋,蔣 作,潘文林,楊 凡,張瑞祥
(1.云南民族大學 電氣信息工程學院,云南 昆明 650500;2.云南民族大學 數(shù)學與計算機科學學院,云南 昆明 650500)
隨著電力系統(tǒng)規(guī)模不斷擴大,電氣設備數(shù)量和種類急劇增加[1].電力公司進行設備管理、檢修和資產(chǎn)管理等工作面臨諸多挑戰(zhàn),這些工作都需要獲得電氣銘牌的基本信息和重要參數(shù).人工讀取電氣銘牌信息效率低、工作量大.
借助智能識別技術完成該項工作則能夠大幅度提高工作效率.目前,電氣銘牌識別相關研究工作可分為以下3類:
第1類,利用現(xiàn)有的OCR軟件進行識別.如王碧翠將采集到的圖像增強,再對圖像二值化后輸入現(xiàn)有OCR軟件進行識別[2].
第2類,對圖像進行預處理,將文本字符切割成單個字符.運用深度學習將識別問題轉換成為一個分類問題.如林乾畢等采用邊緣檢測、形態(tài)學處理和SVM結合的方法對字符進行定位,利用ANN進行識別[3];Renuka等提出基于分類器的智能字符識別技術對文本分割為單個字符并進行分類[4-5].
第3類,構建1個端對端的識別模型.如陳曉龍等提出端對端的電氣銘牌識別,該方法避免了圖像剪切和分割中間工作環(huán)節(jié)[6].Suvarnam提出了1個端對端的CNN-GRU字符識別模型,運用CNN對輸入圖像進行特征提取,GRU用于提取序列進行最后識別[7].
總體上看,現(xiàn)有的電氣銘牌識別技術,對文本布局簡單的電氣銘牌識別有不錯效果,但對文本布局復雜和字符種類多的電氣銘牌識別效果較差,無法進行工程實用.
自然場景下拍攝的電氣設備銘牌有復雜背景、曝光、文本布局復雜、噪音污染和傾斜等不利因素,直接進行識別難度較大.需要建立識別模板庫系統(tǒng)對原始圖像進行預處理和標準化.本課題將電氣銘牌識別分為可變區(qū)域和不可變區(qū)域識別.不可變區(qū)域信息由識別模板庫給出,本文針對銘牌可變區(qū)域信息進行識別.經(jīng)實驗結果分析本文方法能夠對電氣銘牌可變區(qū)域進行有效識別.
對電氣銘牌的可變區(qū)域識別,需要識別模板庫系統(tǒng)對圖像預處理、標準化和提供不可變區(qū)域信息等.整個電氣設備變動區(qū)域識別總體架構圖如圖1所示.
本文識別方式是基于模板庫,核心是對標準銘牌變動區(qū)域提取和識別.自然場景下拍攝的電氣設備銘牌有復雜背景、曝光、噪音污染和傾斜等不利因素.因此,需要識別模板庫將自然場景下的銘牌照片處理成為標準圖像且給出該類銘牌不變區(qū)域信息.如圖2為模板識別庫系統(tǒng)標準化后的圖像.
銘牌識別區(qū)域提取.首先給每一類銘牌的變動區(qū)域建立位置信息庫,然后根據(jù)識別模板庫的輸出銘牌類別確定銘牌的變動區(qū)域進行提取.由于待識別區(qū)域包含漢字、數(shù)字和字母.為提高識別準確率和降低識別難度,本文對待識別區(qū)域進行單字符切割.現(xiàn)有的字符分割算法可以分為3類:投影法、聚類法和模板法.文中采用投影法和K-means算法相結合字符分割算法.
投影法是字符分割算法最常見的一種.投影法原理是對原圖像二值化后的像素分布直方圖進行分析,找出相鄰字符的分界點并確定閾值進行分割.該算法對字母和數(shù)字分割效果好,但是對漢字無法準確分割.
K-menas算法屬于無監(jiān)督聚類算法.將距離作為相似性評價指標,通過每次迭代計算每個數(shù)據(jù)樣本點到聚類中距離,直到聚類中心不在改變或準則函數(shù)收斂到某個值[8].對于歐氏空間的樣本數(shù)據(jù),以平方誤差和為聚類的目標函數(shù),同時也是衡量不同聚類結果好壞指標:
(1)
等式(1)中:xj代表數(shù)據(jù)成員;ci代表第i個簇的聚類中心.
文中將相鄰字符和字符間斷裂的間距作為分割指標,將投影法和聚類算法相結合,最終實現(xiàn)所有類型字符分割.
通過分析電氣銘牌本身獨有的特征,結合殘差網(wǎng)絡ResNet模型的優(yōu)點,本文采用改進的ResNet對電氣銘牌進行識別.
相比較一般的圖像中的文字識別應用領域而言,電氣銘牌圖像有自己獨有的特點:①銘牌類型相對穩(wěn)定,同一類銘牌的許多相關信息會在銘牌相對固定的位置上出現(xiàn)(如名稱信息,類型信息);②在本課題的前期工作中,根據(jù)銘牌類型的不同已構建了結構相對穩(wěn)定的模板庫.
根據(jù)電氣銘牌本身獨有的特征,在電氣銘牌中,使用殘差網(wǎng)絡ResNet50能發(fā)揮網(wǎng)絡模型的優(yōu)勢:
1) 殘差網(wǎng)絡具有穩(wěn)定性,學習恒等函數(shù)非常容易,網(wǎng)絡不斷加深時,性能也不會下降.而電氣銘牌類型穩(wěn)定、前期有穩(wěn)定的模板,許多文本信息相對固定.這樣,若使用殘差網(wǎng)絡對電氣銘牌進行訓練和識別應用,即便是在大型網(wǎng)絡中依然會保持高效和穩(wěn)定.
2) 殘差網(wǎng)絡調整方便,把殘差塊添加到網(wǎng)絡中間還是末端位置,都不會影響網(wǎng)絡的表現(xiàn).這給我們?yōu)榱诉m應不同銘牌類型,調整學習1個性能更好的大型網(wǎng)絡模型提供了便利.
綜合考慮銘牌的應用特點以及殘差網(wǎng)絡模型的優(yōu)勢,且ResNet50引入“Shortcut Connections”思想,如圖3所示[9].因此,使用殘差網(wǎng)絡對電氣銘牌識別是合適的,能夠有效避免網(wǎng)絡深度增加而出現(xiàn)的網(wǎng)絡性能退化的問題.
文中重新設計了ResNet50的全連接層識別網(wǎng)絡結構圖(見圖4),虛線部分為本文改進部分.原始ResNet50網(wǎng)絡只有1個全連接層.在原始網(wǎng)絡基礎增加1個全連接,并且使Dropout來降低各個節(jié)點之間的關聯(lián),避免了網(wǎng)絡的過擬合.
使用隨機梯度下降法訓練學習,整個訓練過程可以分為前向傳播和反向傳播.前向傳播求預測輸入圖像標簽,反向傳播求梯度,共同調整網(wǎng)絡參數(shù).前向傳遞公式:
Xl=f(wlXl-1+bl).
(2)
公式(2)中,Xl為網(wǎng)絡第l層的輸出,wl為l層的權重,bl為偏置權重.反向傳播公式:
(3)
公式(3)中,ɑ為學習率,L為損失函數(shù).本文使用的損失函數(shù)公式:
(4)
公式(4)中,L為交叉熵損失函數(shù),N為樣本數(shù),y為SoftMax層輸出向量.
電氣銘牌圖像文本布局復雜且無規(guī)律,這是現(xiàn)有的銘牌識別系統(tǒng)準確度不高的主要原因.合理的文本區(qū)域提取對提高電氣銘牌準確率和實用性至關重要.因此,本文提出使用銘牌位置信息對圖像文本區(qū)域提取.
2.1.1 銘牌變動區(qū)域位置信息庫建立
自然場景下拍攝的電氣銘牌包含復雜背景、曝光、傾斜等情況.經(jīng)過識別模板庫系統(tǒng)的處理將每一類電氣銘牌處理成為相同規(guī)格的圖片,并對銘牌的類型和一些固定不變的信息進行輸出.由于電氣設備銘牌的種類有限,本文提出對電氣銘牌變動區(qū)域建立1個位置信息庫.首先根據(jù)識別模板庫系統(tǒng)建立已知類別電氣銘牌模板,對每一類銘牌模板的變動區(qū)域位置信息進行獲取.可變區(qū)域位置信息獲取用到了OpenCV的鼠標事件回調函數(shù),通過點擊銘牌變動區(qū)域左上和右下兩點將變動區(qū)域的位置信息記錄入庫.如圖5為構建的位置信息庫,每一個文件對應一類銘牌的可變區(qū)域位置信息.
2.1.2 銘牌變動信息區(qū)域提取
目前,圖像文本區(qū)域提取技術大體分為2類:一類基于傳統(tǒng)方式的最大穩(wěn)定極值區(qū)與支持向量機結合方法,另一類是訓練深度學習模型對圖像的文本區(qū)域進行提取.但以上2種方式均無法滿足工程應用要求.因此,本文在進行電氣銘牌變動區(qū)域的文本提取主要基于工程手段,根據(jù)電氣銘牌變動文本區(qū)域的位置信息進行提取.假定圖6為根據(jù)位置信息獲取到的電氣銘牌待識別區(qū)域.
在不同的自然環(huán)境下拍攝的銘牌圖片會存在局部曝光、噪聲和細節(jié)丟失等問題,需要對銘牌變動區(qū)域的圖像進行濾波.因此,采用自定義內核 的線性濾波器對變動區(qū)域處理.由于采集到的圖像為彩色圖片,為減少后續(xù)識別難度需要對圖像進行灰度化和二值化.如下圖7為大津閾值二值化后的圖像,圖像噪聲有了明顯的減少,且提升字符的邊緣信息,在一定程度上減少了進一步分割的難度.
2.1.3 字符分割
由于漢字的結構特點不同于字母和數(shù)字,若簡單的采用投影法對字符進行切割損失較大.例如左右結構的漢字會出現(xiàn)字符切割斷裂等問題.
字符分割不僅要保證字符的完整性且需要對切割的單個字符歸一化,才能保證字符識別的穩(wěn)定性和廣泛的適應性[10].為了對銘牌變動區(qū)域識別,需要將文本信息分割為單字符.本文字符分割采用投影法和K-means相結合的字符分割算法.分割過程如下所示.
算法:字符分割
輸入:Image 銘牌待識別區(qū)域的圖片
輸出:F 分割結果集合
Step 1 F ← 存放分割結果集合
Step 2 N ← Image
Step 3 FOR each IN F:
Step 4 初始分割(先水平方向投影,后垂直方向投影),得到間隔m.
Step 5 對每一個分割字符間距進行聚類分析,得到單字符間距n.
Step 6 IF 初始分割滿足n:
Step 7 F.add(each).
Step 8 ELSE:
Step 9 依據(jù)n進行分割.
Step 10 END
字符識別常用到現(xiàn)成的OCR軟件和神經(jīng)網(wǎng)絡兩種方式.有電氣銘牌包括字符種類多,識別精度要求高,現(xiàn)有的OCR識別軟件很難滿足要求.目前,卷積神經(jīng)網(wǎng)絡對圖像數(shù)據(jù)處理高效,特征分類效果好,可用于電氣銘牌文本區(qū)域識別.由實驗可知本文識別模型有準確率高,對圖像質量要求低等優(yōu)點.
2.2.1 數(shù)據(jù)集
電氣銘牌待識別區(qū)域包含字符種類多.因此,建立起的數(shù)據(jù)集必須包含常用漢字、數(shù)字和字母.為使訓練后的模型對自然場景下文字識別有更高的魯棒性和準確性,需要對數(shù)據(jù)集添加噪音、反轉、常用字體.生成的數(shù)據(jù)集將其中的80%作為訓練集,20%為測試集.
整理所有字符文件,將圖像保存為白字黑底的單通道二值化圖像,并將圖像歸一化為60×80像素大小的圖像.如下圖8所示.
2.2.2 訓練過程
驗證本文實驗方法的有效性,用生成的數(shù)據(jù)集訓練網(wǎng)絡.本文數(shù)據(jù)集圖像大小為60×80,模型處理批次為64,完成200次訓練后停止,確定訓練損失值基本不變,保證的到模型穩(wěn)定可靠.模型在以下設定完成訓練:①使用SGD優(yōu)化器,初始學習率為0.001,動量為0.8,衰減值為0.000 5,Dorpout層節(jié)點隱藏率為0.1.②使用交叉熵損失函數(shù).
通過效果圖對比的方式展示K-means算法的分割,如下圖9所示為運用投影法的字符分割效果圖.
如下圖10 所示為運用K-means聚類算法相結合的字符分割算法.
如圖11所示,ResNet50_k模型在本數(shù)據(jù)集上的識別精度和損失.
如圖12為本文識別模型和現(xiàn)有的谷歌OCR軟件識別效果圖.通過實驗結果分析,谷歌OCR軟件對于混合類型的字符識別效果不佳,而本文的識別模型對混合字符準確識別.
采用的電氣銘牌文本信息提取和識別方法,能夠適應自然場景下電氣銘牌的信息識別.通過對不同類型的銘牌待識別區(qū)域進行建庫,準確獲取該類銘牌的文本區(qū)域,降低了銘牌整體識別難度.相比于傳統(tǒng)的識別方法,提高了識別精度.
本文由PyCharm開發(fā)平臺采用python語言編寫,采用主頻為2.6 GHz的i5處理器,12 G內存的Windows 10(64位)電腦開發(fā)實現(xiàn)識別效果.結合了OpenCV機器視覺庫和Keras的高級神經(jīng)網(wǎng)絡API,本文對電氣銘牌變動區(qū)域進行文本提取、預處理、單字符分割、圖像歸一化和神經(jīng)網(wǎng)絡的識別處理,解決了電氣銘牌文本布局復雜識別困難,且可以應用于自然場景的電氣銘牌識別.采用大數(shù)據(jù)集構建神經(jīng)網(wǎng)絡模型,適用于不同類型的銘牌識別,實現(xiàn)了大數(shù)據(jù)集下的98%以上的正確率,基本可以滿足對已知類別的電氣銘牌識別.
電氣銘牌種類和數(shù)量多,識別模板庫無法將所有的電氣銘牌類別都包含.因此,還存在一部分識別模板庫中不存在的銘牌.今后的工作是對識別 模板庫未包含的銘牌進行有效識別.通過已知類別銘牌識別和未知銘牌類別識別相結合,最終實現(xiàn)對所有種類的電氣銘牌進行識別,實現(xiàn)工程實際應用.