李少輝,周 軍,劉 波,錢俞好,吳閩儀
(河海大學 機電工程學院,江蘇 常州 213000)
近年來,為了進一步提升生產車間流水線的自動化水平,提高生產效率,大部分流水線開始采用機器視覺產品代替人眼來識別產品上的文本信息,如生產日期、產品批號、條形碼等[1]。傳統(tǒng)的文字識別分類器有模板匹配、支持向量機等,早在20世紀80年代,OCR技術就已進入商用階段,但是對文字背景的要求很高,需要很好的成像質量;近年來,隨著人工神經網絡技術在很多問題上有著突破性進展,該技術也被引入文本識別領域中。2014年ICPR會議上,微軟亞洲研究院團隊訓練的一個淺層BP神經網絡在自然場景文字檢測的標準數據集上取得了92.1%的檢測精度,讓自然場景圖像中的文字檢測實現了突破[2];谷歌公司2015年發(fā)布的tensorflow深度學習框架中,深度卷積神經網絡對手寫數字圖片集MNIST的識別準確率達到了99%以上[3]。
由于大部分產品的文本信息是印刷體字符,包含較多的噪聲和缺陷,且文本背景比較復雜,本文采用傳統(tǒng)的圖像處理方法和一種改進BP神經網絡對流水線產品上的文本信息進行識別。
圖片預處理過程包括彩色圖像灰度化、二值化、傾斜矯正等[4]。由于產品的文本圖片由于放置問題可能出現傾斜現象,對后續(xù)的字符分割和識別產生影響,本文提出了基于仿射變換的傾斜校正方法。
大部分彩色圖片采用RGB系統(tǒng),所包含的信息量巨大。為了減少運算量,需要將彩色圖像轉換為灰度圖像,即圖像的每一個像素顏色RGB各個分量的值都相等[5]。
灰度化處理后,將圖像二值化變成只有黑和白兩色圖像的過程稱為二值化處理。二值化可以在簡單的場景中通過閾值化處理得到。閾值化是輸入圖像f到輸出圖像g的變換,即:
(1)
式中:T—閾值;g(i,j)—二值化后的圖像像素;f(i,j)—原始圖像像素,當f(i,j)≥T時為前景圖像,否則為背景圖像。
在工業(yè)環(huán)境光照不均勻的情況下圖像的灰度變化較大,整幅圖像不存在合適的單一閾值,因此可采用多閾值法進行二值化處理,但其算法時間和空間復雜度較大。本文先采用均值濾波的方法對圖像做整體濾波處理,然后使用Ostu自適應閾值法選取二值化閾值。其基本思想是:對于圖像f(i,j),前景(即目標)和背景的分割閾值記作T,則類間方差可表述為:
g=?0?1(μ0-μ1)^2
(2)
式中:g—類間方差;?0—前景的像素點數占整幅圖像的比例;?1—背景像素點數占整幅圖像的比例;μ0—前景的像素點的平均灰度;μ1—背景的像素點的平均灰度。
采用遍歷的方法得到使類間方差g最大的閾值T,即為所求閾值。
流水線上某產品的標簽圖像,以及采用自適應閾值法將標簽二值化后的圖像如圖1所示。
圖1 原始圖像和二值化后的圖像
由圖1可以很清楚地看到白色區(qū)域是文本區(qū)域。
圖片傾斜會影響后續(xù)字符的分割和識別[6],圖片傾斜校正的過程如圖2所示。
圖2 傾斜校正流程
1.2.1 形態(tài)學處理與輪廓檢測
形態(tài)學變換膨脹采用向量加法對兩個集合進行合并[7]:
X⊕B={P∈ε2,P=x+b,x∈X且b∈B}
(3)
式中:X—原始圖像;B—膨脹元素結構;P—合并后的圖像。
將二值化后的圖像分別采用30×20,50×40的結構元素膨脹,結果如圖3所示。
圖3 采用不同膨脹核膨脹后的結果
圖像處理中用canny,sobel等算子進行圖像的邊緣檢測[7],該過程通過圖片中像素值的不同可以將圖片的邊界檢測出來,但在處理中,并沒有把邊界被當做一個整體。輪廓檢測過程正是將所檢測出來的邊緣像素進行整合,將其組裝在一起。具體實現過程如下:掃描圖像中的全部像素,當掃描到連通域中的一個像素點時,從該像素點開始,對邊界上的像素點進行記錄,當邊界輪廓是一個整體的時候,回到前一個位置,進行新的掃描過程。
1.2.2 創(chuàng)建最小包圍矩形并計算傾斜角度
為了獲取文本區(qū)域的傾斜角度,需要做輪廓的最小外接矩形。最小包圍矩形的寬、高及傾斜角度如圖4所示。
圖4 最小包圍矩形及其傾斜角度
1.2.3 仿射變換
仿射變換[8]保持了二維圖形的“平直性”和“平行性”。本研究采用的變換形式是旋轉。變換后的圖像坐標為:
(4)
旋轉后的圖像如圖5所示。
圖5 旋轉后的圖像
文字的切分是文字識別的很重要的一個環(huán)節(jié)[9]。目前主要的切分方法有經典切分法、連通區(qū)域切分法、基于識別的切分法、投影法等。這里采用投影法。
圖像的投影一般情況下是沿著垂直或者水平的方向,即沿著列或者行的方向,這樣得到的投影被稱作為豎直和水平投影。圖像I(x,y)在x軸和y軸上的投影表示為:
(5)
(6)
式中:I(x)—垂直投影圖;I(y)—水平投影圖;I(x,y)—原始圖像;W—圖像寬度;H—圖像的高。
筆者利用水平投影將文本的每一行分割出來,然后再采用垂直投影將每個字符分割開來。為了將分割出來的字符尺寸統(tǒng)一到標準模板大小,需要將字符進行歸一化處理[10]。
目前用于字符識別的方法已經有很多種,如模板匹配、支持向量機算法等。由于大多數流水線產品上的印書體字符噪點和缺陷較多,以上幾種文字方法識別準確率較低。BP神經網絡[11]結構簡單、可操控性好,因此在實際應用中廣受歡迎。
筆者將每一個字符種類的模板庫作為神經網絡的一個輸入神經元,建立三層BP神經網絡模型,如圖6所示。
在網絡如此發(fā)達的今天,應鼓勵學生充分利用網絡視頻,視頻中圖文并茂的講解,可以使學生一下子明白操作的要點,比起看課本來說,效率要高很多,收到事半功倍的結果。比如在百度視頻輸入“水蒸氣蒸餾”,就可以了解水蒸氣蒸餾的原理、要求條件、儀器的安裝及注意的要點。這樣,學生不僅學習了具體的知識,更重要的是培養(yǎng)了他們的自學能力,而這種自學能力的培養(yǎng),在以后的學習和科研工作中發(fā)揮著重要的作用;再則,學生在網絡上學習時,會感知自身知識的不足,從而進一步激發(fā)他們的求知欲,取得更大的進步。
圖6 神經網絡模型
輸入層到隱含層采用RELU非線性激活函數為;
X2=max(0,θ1X1+b)
(7)
隱含層到輸出層采用softmax激活函數為:
(8)
式中:h(x)—訓練獲得的輸出層結果;θ2—隱含層到輸出層權值。
由代價函數獲得輸出層誤差,即:
(9)
式中:J(θ)—訓練誤差;m—樣本數量;y—網絡輸出值。
反向傳播采用梯度下降法不斷更新權值,即:
(10)
式中:η—學習速率;θj—最小誤差下的權值θj(j=0,1,…n)。
在BP神經網絡參數中,學習速率η(0<η<1)的取值直接影響到學習網絡的收斂速度。為了提高學習速度,應選用較大的η值,而η太大卻可能導致在穩(wěn)定點附近振蕩,甚至不收斂。因此,學習速率必須小于某一上限,這就使得BP算法的收斂速度受到影響。
自適應學習速率算法通過檢查網絡權值的修正值是否降低了誤差函數來自動調節(jié)學習速率大小,使得網絡總是以最大的可接受學習速率進行訓練[12]。當觀測到連續(xù)兩次訓練的網絡誤差值減小時,則增大學習速率,以期縮短學習時間;此時,若誤差的反彈在允許的范圍內,則保持學習速率;而當誤差增大時,則及時減小學習速率值,直至網絡誤差收斂為止。常見的自適應學習速率調整公式為:
(11)
式中:β1,β2—學習速率調整比例因子;ξ—允許反彈誤差系數;E(t)—網絡誤差;β1>1,0<β2<1,ξ通常略大于1。
3.2.2 附加動量法
BP神經網絡算法的反向傳播實質上是采用隨機梯度下降法,從隨機起點沿代價函數梯度方向逐漸使代價函數的值達到最小的過程。代價函數為一個凹凸不平的多維空間的超曲面,存在較多的局部極小值點,因此訓練網絡時可能陷入某一極小值,使訓練出的網絡模型失去泛化能力。
附加動量法是在每個權值的變化上加上一項正比于前次權值變化的值,并根據反向傳播法產生新的權值變化。該方法使模型在更新梯度時,不僅考慮了誤差在梯度上的作用,而且考慮了誤差曲面上變化趨勢的影響。帶有動量因子的權值更新公式為:
(12)
本研究以Visual studio和Opencv為實驗平臺,采用三層改進BP神經網絡對5 000張字符圖片(含100種字符,每種字符含50張不同的圖片)進行學習,其中隱含層神經元個數為128,學習速率取η=0.01,動量因子α取0.9,學習速率衰減系數取0.1,最終模型的訓練精度為94.6%,測試精度為93.8%。本研究調用訓練好的神經網絡模型,將訓練集中沒有出現過的新字符圖片輸入訓練好的模型中。無噪聲和缺陷的字符圖片在不同識別方法下的識別正確率和模型的訓練時間如表1所示。
表1 無噪聲和缺陷的字符圖片識別結果
有噪聲和缺陷的字符圖片中不同識別方法識別正確率和模型的訓練時間如表2所示。
表2 有噪聲和缺陷的字符圖片識別結果
對比分析實驗結果:表1表明改進的神經網絡方法對于訓練集的依賴性較小,適用于訓練集中沒有出現的新圖片。傳統(tǒng)的模板匹配方法對模板的依賴度較高,對新圖片的適應能力較弱;而基于支持向量機的方法在訓練大型樣本時,時間代價高且準確率較低,與之相比,本文采用的方法有較強的魯棒性和識別率;表2表明傳統(tǒng)的BP神經網絡泛化能力較弱,在含有噪聲和缺陷的字符圖片中識別準確率明顯降低,而改進的BP神經網絡不易陷入局部極小值,使網絡具有了一定的穩(wěn)定性,在含有噪聲和缺陷的低質量文本圖片中仍能保持較高的識別準確率,且有效縮短了網絡模型的訓練時間。
本文詳細論述了一種基于改進BP神經網絡的流水線產品上的低質量文本識別的全過程,包括了圖像的預處理、文本字符的切分與歸一化和字符識別方法等,主要結果有:
(1)解決了由于圖片傾斜而不能進行精確字符分割的問題;
(2)使用學習速率自適應調整策略和附加動量法改進了BP神經網絡,顯著提高了網絡模型的識別準確率并有效縮短了神經網絡模型的訓練時間。與傳統(tǒng)的模板匹配、支持向量機和傳統(tǒng)的BP神經網絡相比,模型的泛化能力和魯棒性較強。