熊 勛,陳新度,吳 磊,林旭華
(廣東工業(yè)大學(xué) 計(jì)算機(jī)集成制造實(shí)驗(yàn)室,廣州 510006)
近年來,集自主巡檢、智能監(jiān)控、數(shù)據(jù)智能采集分析等功能于一體的智能巡檢機(jī)器人在電力、大型廠礦、安防等領(lǐng)域得到廣泛應(yīng)用。尤其在電力行業(yè),隨著智能電網(wǎng)建設(shè)的深入,電力信息標(biāo)準(zhǔn)化、一體化、實(shí)時(shí)化、互動(dòng)化的需求變得越來越迫切。由于歷史遺留原因,仍有相當(dāng)一部分的儀表需要人工錄入,這需要耗費(fèi)大量的人力和時(shí)間,且有很多地方禁止工人進(jìn)入。相比之下,根據(jù)實(shí)時(shí)監(jiān)控捕獲儀表圖像,再利用字符識別與定位算法讀取儀表數(shù)值就顯得更加便捷。
與傳統(tǒng)的OCR服務(wù)對象不同,當(dāng)前的研究更多關(guān)注于各種復(fù)雜背景下的文字識別。從研究方法來看主要有基于統(tǒng)計(jì)特征、決策分類、卷積神經(jīng)網(wǎng)絡(luò)、LSTM字符識別等方法。張顯明[1]通過統(tǒng)計(jì)字符的筆畫特征進(jìn)行字符識別。Wang kai[2]、Yao Cong等[3]通過提取字符的結(jié)構(gòu)和紋理特征進(jìn)行決策分類。通過聚類圖像塊來學(xué)習(xí)中層筆畫特征,使用隨機(jī)森林分類器來進(jìn)行字符分類。這些基于特征的方法只能提取低維度的特征,對于復(fù)雜環(huán)境算法識別魯棒性較差。鄭嘯[4]通過長短期記憶神經(jīng)網(wǎng)絡(luò)模型進(jìn)行字符識別,這種方法不需要做字符分割,直接得到字符串的識別結(jié)果,可以避免由于分割引入的誤差。張國云[5]、蔡夢倩等[6]通過訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)CNN模型進(jìn)行字符識別,這種方法在進(jìn)行字符分割后,通過提取圖像的高維度特征進(jìn)行訓(xùn)練取得了較好的識別性能,證明了在字符準(zhǔn)確分割的前提下,卷積神經(jīng)網(wǎng)絡(luò)模型字符識別的有效性。
然而,現(xiàn)有的圖像處理的方法多數(shù)需要進(jìn)行字符分割,字符和單詞識別方法的性能嚴(yán)重依賴于文本切分的精度,顯然不具備工業(yè)背景下字符的識別,卷積神經(jīng)網(wǎng)絡(luò)(CNN)的方法對定長字符識別具有較好的效果,但對于數(shù)字多樣、長短不一的字符識別魯棒性不高,而且需要大量樣本,從而成為了把CNN識別方法推廣到工業(yè)識別領(lǐng)域的一個(gè)限制性因素。
本文以電力巡檢機(jī)器人為依托,以電表為實(shí)驗(yàn)對象展開算法設(shè)計(jì)。通過融合卷積神經(jīng)網(wǎng)絡(luò)(CNN)和長短期記憶網(wǎng)絡(luò)(LSTM)各自的優(yōu)點(diǎn),提出了卷積記憶神經(jīng)網(wǎng)絡(luò)模型(CLSTM),將CNN提取的圖像高維度特征作為LSTM層的輸入,一方面可以優(yōu)化特征的提取,另一方面發(fā)揮LSTM對長短字符識別的優(yōu)勢,實(shí)驗(yàn)結(jié)果表明, 相比于單一的CNN和LSTM網(wǎng)絡(luò),CLSTM網(wǎng)絡(luò)模型不需要做字符分割,且模型準(zhǔn)確率更高。
為了實(shí)現(xiàn)精確定位到表盤字符區(qū)域,以電網(wǎng)采集到的一種電流表為例,圖1為安裝在避雷器附近的電流表。
針對表盤的結(jié)構(gòu),定位算法分為由兩次定位組成,粗定位具體過程如下:
(1)圖像預(yù)處理。對表盤圖像采用灰度化、高斯濾波、除噪等處理,灰度化采用加權(quán)平均值法。
(2)輪廓檢測。對預(yù)處理之后的表盤圖像進(jìn)行雙閾值的canny邊緣檢測,濾掉較小的椒鹽噪聲。
(3)輪廓提取。對檢測到的輪廓通過輪廓查找算法findContours提取所有輪廓,計(jì)算出輪廓的面積和長寬比,篩選出表盤字符大概位置。
(4)沿著邊緣軌跡繪制出第一次定位的結(jié)果,如圖2所示。
圖2 粗定位結(jié)果
為了最終達(dá)到識別字符的目的,需要進(jìn)行第2次的定位,精準(zhǔn)定位具體過程如下:
(1)由先驗(yàn)信息可知,表盤字符區(qū)域?yàn)榫匦屋喞叶戎递^大,根據(jù)這兩個(gè)特征計(jì)算出輪廓長寬比并統(tǒng)計(jì)輪廓內(nèi)的灰度平均值大小,進(jìn)而精確定位到字符區(qū)域。
(2)由于表盤的安裝精度等原因,對提取后的字符區(qū)域進(jìn)行位置校正。
(3)沿著最終的字符輪廓繪制出精準(zhǔn)定位的結(jié)果,如圖3所示。
圖3 字符定位結(jié)果
RNN(Recurrent Neuron Network)是一種對序列數(shù)據(jù)建模的神經(jīng)網(wǎng)絡(luò),在RNN中,隱藏層之間的節(jié)點(diǎn)不再是無連接的而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時(shí)刻隱藏層的輸出。為了更好處理和保留長序列的依賴問題,Misunderstand[7]在2012年提出了RNN的改進(jìn)版本—LSTM。
(1)輸入層
本文的實(shí)驗(yàn)數(shù)據(jù)是基于不同環(huán)境下的各種表盤字符,共采集了9000張圖片,與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)(CNN)不同,訓(xùn)練數(shù)據(jù)不需要提前分割,可以有效的避免由于分割精度引入的誤差,所以在試驗(yàn)中,只需標(biāo)注表盤字符序列的標(biāo)簽,然后作為LSTM的輸入層,以保證字符的時(shí)序性。
(2)長短期記憶層
LSTM計(jì)算節(jié)點(diǎn)由輸入門、輸出門、遺忘門和Cell組成,三個(gè)門分別代表對信息長期、遠(yuǎn)期和近期的記憶和控制,其中Cell是計(jì)算節(jié)點(diǎn)核心,用以記錄當(dāng)前時(shí)刻狀態(tài)。如圖4為LSTM的展開結(jié)構(gòu)圖。
圖4 LSTM的展開結(jié)構(gòu)
根據(jù)LSTM的展開結(jié)構(gòu),單個(gè)LSTM單元的迭代計(jì)算公式如下:
ft=α(Wf·[ht-1,xt]+bf)
(1)
(2)
it=α(Wi·[ht-1,xt]+bi)
(3)
(4)
ot=α(Wo[ht-1,xt]+bo)
(5)
ht=ot*tanh(Ct)
(6)
卷積神經(jīng)網(wǎng)絡(luò)是一種分層的計(jì)算模型, CNN典型的架構(gòu)為Input→Conv→Pool→Fully,該架構(gòu)融合了局部感受野、權(quán)值共享、非全連接這三種思想,這樣的架構(gòu)使得CNN非常適合處理具有統(tǒng)計(jì)平穩(wěn)性和局部關(guān)聯(lián)性的數(shù)據(jù)。為了優(yōu)化輸入到LSTM的字符特征,本文結(jié)合CNN的特點(diǎn)構(gòu)建卷積記憶神經(jīng)網(wǎng)絡(luò)模型CLSTM,如圖5所示CLSTM的網(wǎng)絡(luò)層包括:卷積層、池化層、LSTM層、輸出層。
圖5 卷積記憶神經(jīng)網(wǎng)絡(luò)模型
卷積層:對表盤字符執(zhí)行卷積操作,提取字符特征,通過對輸入的數(shù)據(jù)運(yùn)用濾波器抽取有效特征,經(jīng)過卷積操作后得到特征圖。
給定序列長度為m的樣本圖片,字符序列為(x1,x2,…xm),卷積層的輸出為:
Qi=f(w*xi+b)
(7)
式中,Qi為第i個(gè)字符的卷積層輸出,f(*)為激活函數(shù),w為權(quán)值,b為偏置。
池化層:用于壓縮數(shù)據(jù)和參數(shù)的量,圖像壓縮時(shí)去掉一些無關(guān)緊要的信息,而留下的信息則是具有尺度不變性的特征,這些特征是最有效也是最重要的特征,一定程度上可以防止過擬合,將式(7)輸出的特征Qi采用最大值采樣后得到Qmax=max{Qi},即有效特征。
LSTM層: 經(jīng)過試驗(yàn)驗(yàn)證兩層LSTM綜合效果最好,隨著LSTM層數(shù)增加,準(zhǔn)確率提升的并不明顯,但訓(xùn)練復(fù)雜度卻提高了很多。最終方案采用雙層LSTM層,基于上述的分析,經(jīng)過LSTM層后輸出一個(gè)softmax向量。
CTC_loss層:為了實(shí)現(xiàn)對長序列字符的識別,谷歌首次提出在LSTM網(wǎng)絡(luò)基礎(chǔ)上引入CTC模型[8-12],這種改進(jìn)方案解決了空白字符的問題,從而提高了對不定長字符識別的魯棒性。對于一段長度為T的序列來說,每個(gè)樣本點(diǎn)t在LSTM網(wǎng)絡(luò)最后一層都會(huì)輸出一個(gè)soft max向量,根據(jù)式(8)預(yù)測概率;我們一般會(huì)在原有標(biāo)簽的基礎(chǔ)上多加一個(gè)空白字符的標(biāo)簽,表示序列中空白的地方。
(8)
(9)
輸出層:采用全連接層,輸出字符序列。
本文所設(shè)計(jì)的網(wǎng)絡(luò)模型為:輸入層(HDF5Data),卷積層,池化層,正向LSTM層(維數(shù):100),反向LSTM層(維數(shù):100),CTC_loss層,輸出層(11X1)。采用1050Ti的顯卡進(jìn)行訓(xùn)練,訓(xùn)練數(shù)據(jù)為不同環(huán)境下的各種表盤字符,共采集了9000張圖片,訓(xùn)練樣本數(shù):測試樣本數(shù)=5:1,訓(xùn)練的部分樣本如圖6所示。
圖6 部分訓(xùn)練樣本
在訓(xùn)練過程中,首先需要把訓(xùn)練樣本轉(zhuǎn)化為HDF5Data格式,可以有效提高訓(xùn)練效率,通過Adam自適應(yīng)學(xué)習(xí)速率[13-14]使訓(xùn)練迅速收斂,即在每次參數(shù)更新后,把衰減率Wt與權(quán)重θt相乘,其中衰減率Wt略小于1,Loss可表示為:
(10)
θt+1=wtθt
(11)
經(jīng)過多次訓(xùn)練測試后,基于記憶神經(jīng)網(wǎng)絡(luò)(LSTM)和卷積記憶神經(jīng)網(wǎng)絡(luò)(CLSTM)兩種網(wǎng)絡(luò)模型的參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)對比如下表1所示,使用隨機(jī)梯度下降算法對網(wǎng)絡(luò)參數(shù)進(jìn)行調(diào)整。
表1 LSTM和CLSTM網(wǎng)絡(luò)模型參數(shù)和結(jié)構(gòu)
本次實(shí)驗(yàn)共訓(xùn)練了80000次,實(shí)驗(yàn)的評價(jià)指標(biāo)為訓(xùn)練的準(zhǔn)確率(precision),識別單幅表盤字符的時(shí)間(time)。
如圖7為LSTM和CLSTM訓(xùn)練的準(zhǔn)確率曲線,由圖可以看出,由于卷積記憶神經(jīng)網(wǎng)絡(luò)(CLSTM),首先利用CNN的卷積層提取了文本的特征,然后基于池化層優(yōu)化了特征,使得CLSTM訓(xùn)練更快,兩種方案都是30000次左右開始收斂并趨于穩(wěn)定,LSTM最終準(zhǔn)確率穩(wěn)定在93.4%左右,CLSTM最終準(zhǔn)確率穩(wěn)定在97.6%左右,具體對比準(zhǔn)確率如表2所示。
表2 改進(jìn)前后訓(xùn)練的準(zhǔn)確率
從表2中可以看出,在識別時(shí)間相差不大的情況下,CLSTM網(wǎng)絡(luò)比LSTM網(wǎng)絡(luò)準(zhǔn)確率提高了4.2%。
圖7 LSTM和CLSTM訓(xùn)練的準(zhǔn)確率曲線
圖8為兩種電表的定位和識別結(jié)果,左邊方框內(nèi)即為定位結(jié)果,右邊為識別的結(jié)果,為表示清楚,識別結(jié)果顯示在表盤上。
圖8 識別結(jié)果
本文首先為了避免由于需要字符分割會(huì)引入誤差,只采用了LSTM和CLSTM兩種識別模型進(jìn)行對比,通過融合CNN和LSTM這兩種網(wǎng)絡(luò)模型的優(yōu)點(diǎn),實(shí)驗(yàn)結(jié)果表明CLSTM網(wǎng)絡(luò)比LSTM網(wǎng)絡(luò)準(zhǔn)確率提高了4.2%,主要原因是CNN網(wǎng)絡(luò)卷積層可以提取高緯度的特征并利用池化層進(jìn)行優(yōu)化,將其作為LSTM層的輸入,使得模型的泛化能力更好。每種模型都有其鮮明的優(yōu)點(diǎn)和不足,通過融合不同模型的優(yōu)點(diǎn),是本文改進(jìn)訓(xùn)練模型的思路。此外,算法訓(xùn)練和測試對硬件要求較高,為了節(jié)省成本,在保證準(zhǔn)確率和識別時(shí)間的前提下,通過優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),將成為下一步研究的方向。