趙 麗
(河南工業(yè)貿(mào)易職業(yè)學(xué)院信息工程學(xué)院 河南 鄭州 450053)
針對工業(yè)現(xiàn)場的數(shù)字儀表,傳統(tǒng)的數(shù)字識別方法通常是模板匹配、特征匹配、神經(jīng)網(wǎng)絡(luò)等。由于圖像閾值化處理后的二值圖像的字符位置分布不一致,基于模板匹配的數(shù)字識別方法匹配率比較低;由于光線等噪聲干擾,基于特征匹配的數(shù)字識別方法的準(zhǔn)確率比較低[1];基于神經(jīng)網(wǎng)絡(luò)的數(shù)字識別方法的準(zhǔn)確率與特征選取以及訓(xùn)練時(shí)間有關(guān),且達(dá)不到當(dāng)前數(shù)字識別對準(zhǔn)確度的要求。
日常生活中常見的數(shù)字識別的方法具有較高的準(zhǔn)確率,并且都已經(jīng)廣泛應(yīng)用在各個(gè)場所。但是上述算法得到廣泛推廣的前提條件是圖像背景簡單,前景區(qū)域與背景區(qū)域的差別比較明顯,如車牌號的數(shù)字識別[2-3]。車牌號的背景為藍(lán)色,數(shù)字為白色,兩者所構(gòu)成的圖像對比度比較明顯,并且車主經(jīng)常洗車或者擦拭,所以圖像具有較好的清晰度。但是工業(yè)現(xiàn)場的情況比較復(fù)雜,產(chǎn)品生銹、老化,背景雜亂、污濁,打雷刮風(fēng)、雨雪冰雹都會直接導(dǎo)致獲得的圖像清晰度下降,所以識別難度大大增加。
針對上述存在的問題,本文提出了一種基于方向梯度直方圖(histogram of oriented gradients, HOG)特征提取的數(shù)字識別算法研究。主要的識別過程可以分為以下四個(gè)部分,分別為預(yù)處理、數(shù)字分割、支持向量機(jī)(support vector machine, SVM)訓(xùn)練和識別數(shù)字。整體的數(shù)字識別流程圖如圖1 所示。
圖1 數(shù)字識別流程圖
工業(yè)現(xiàn)場情況復(fù)雜,導(dǎo)致獲得的圖像清晰度不佳,所以需要對圖像進(jìn)行預(yù)處理操作。預(yù)處理過程比較多,一般有圖像灰度化、去霧、濾波、亮度對比度提升、圖像增強(qiáng)和二值化等步驟[4]。
首先,采用圖像增強(qiáng)的方法對圖像進(jìn)行處理[5],通過一定手段對原圖像附加一些信息或變換數(shù)據(jù),有選擇地突出圖像中感興趣的特征或者抑制圖像中某些不需要的特征,使圖像與視覺響應(yīng)特性相匹配。其次,對圖像進(jìn)行二值化處理[6],使圖像變成只有黑白兩種顏色,方便后續(xù)的分割識別。再次,對圖像進(jìn)行腐蝕操作。經(jīng)歷了該操作之后,數(shù)字區(qū)域變細(xì),從而可以保證數(shù)字識別的精度會更高。最后,去除二值化后的圖像中的小面積干擾。設(shè)定連通區(qū)域[7]的臨界面積是100,所有小于100 的都認(rèn)定為噪聲區(qū)域,將其像素值以0 替代。
本文采用投影方法對數(shù)字表進(jìn)行切分。投影法[8]包括水平投影S(x)和垂直投影P(y)。水平投影指將圖像投影到y(tǒng)軸上,得到每一行像素的數(shù)量;垂直投影指圖像投影到x軸上,得到每一列像素的數(shù)量。二者分別反映了圖像在水平和垂直方向上的特征。具體的算法步驟描述如下:
第一步:數(shù)字圖像列掃描。對數(shù)字圖像先進(jìn)行從上到下逐列掃描,記錄每列白色像素點(diǎn)的個(gè)數(shù),并將其投影到水平面上,得到垂直投影圖,再用確定好的垂直閾值對圖像進(jìn)行分割,得到垂直分割的圖像。
第二步:數(shù)字圖像行掃描。對數(shù)字圖像先進(jìn)行從左到右逐行掃描,記錄每行白色像素點(diǎn)的個(gè)數(shù),并將其投影到垂直面上,得到水平投影圖,再次用確定好的水平閾值對垂直分割后的圖像進(jìn)行水平分割,最終得到分割后的效果圖。
本文選用SVM+HOG 的方法進(jìn)行數(shù)字表的讀數(shù)識別。首先,使用HOG 的方法進(jìn)行特征提??;其次,選用SVM 的方法對數(shù)字讀數(shù)進(jìn)行訓(xùn)練;最后,用SVM 的方法進(jìn)行識別。
SVM 將線性不可分的樣本映射到高維的線性空間,在這個(gè)高維空間中使其線性可分,并且加入了核函數(shù)的使用,因此減少了計(jì)算的復(fù)雜性,也減少了“維數(shù)災(zāi)難”。SVM 的核心思想是尋找一個(gè)最優(yōu)的超平面,這個(gè)超平面不僅可以分類,還可以讓類之間的差異達(dá)到最大。
HOG 是一種描述圖像特征的描述子,它描述的是圖像局部區(qū)域的梯度方向直方圖的相關(guān)信息。為了提取到數(shù)字區(qū)域的HOG 特征,需要將圖像進(jìn)行分割,分成多個(gè)小的區(qū)域。因?yàn)榉指詈蟮膮^(qū)域比較小,可以將其視為細(xì)胞單元。對于每個(gè)細(xì)胞單元,提取其中各像素點(diǎn)的梯度的或邊緣的方向直方圖,并分析統(tǒng)計(jì)其方向特性,最終把所有的特性進(jìn)行匯總,輸送給后端識別算法模塊。
訓(xùn)練SVM 分類器的HOG 特征向量是從訓(xùn)練圖像中提取的。從圖2 中可以看到細(xì)胞的大小參數(shù)對特征向量編碼的影響:[8×8]的細(xì)胞大小含有較少的編碼形狀信息,而[2×2]細(xì)胞大小包含較多編碼信息,但與此同時(shí)HOG 特征向量的維數(shù)會顯著增加。一個(gè)折中的方法是使用[4×4]的細(xì)胞大小,這個(gè)大小的設(shè)定既可以獲得足夠的特征信息,又不會造成特征的冗余,有利于分類訓(xùn)練。
圖2 樣本特征提取
假定圖像大小為16×16,使用4×4 的大小作為細(xì)胞大小,2×2 的大小作為移動塊,那么在水平方向和垂直方向上就會分別有3 個(gè)掃描窗口。每個(gè)細(xì)胞有9 個(gè)特征,所以每個(gè)塊內(nèi)有4×9=36 個(gè)特征。那么16×16 大小的圖像,特征總數(shù)就為36×3×3=324。
所有樣本數(shù)據(jù)經(jīng)過HOG 算法特征提取后得到一組特征數(shù)據(jù),將其輸入到唯一的SVM 訓(xùn)練函數(shù)中,選擇適當(dāng)?shù)暮撕瘮?shù)進(jìn)行SVM 訓(xùn)練,即通過SVM 訓(xùn)練將線性不可分的特征向量變換到線性可分的高維空間尋求最優(yōu)分類面,從而得到一個(gè)二分類器的最優(yōu)解。其中每個(gè)樣本都需要使用專用的SVM 訓(xùn)練器進(jìn)行訓(xùn)練,得到各類SVM 結(jié)構(gòu)。
HOG+SVM 特征提取的流程圖如圖3 所示。
圖3 HOG+SVM 特征提取
(1)讀取汽車車牌號訓(xùn)練集數(shù)據(jù)。因儀表數(shù)字圖像與車牌號數(shù)字圖像字體相似,本文選用車牌號數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)集。據(jù)觀察,該數(shù)據(jù)集里共有500 張圖像,其中0~9 每個(gè)數(shù)字分別有50 張訓(xùn)練樣本,包含各種大小、各種位置的數(shù)字,具有較好的代表性,有利于后續(xù)的特征提取。
(2)HOG 提取特征。將輸入的汽車車牌號訓(xùn)練集送入特征提取環(huán)節(jié),用HOG 算法提取每個(gè)數(shù)字特征,并記錄每個(gè)數(shù)字之間的特征差別。
(3)分類器訓(xùn)練。用非線性核函數(shù)訓(xùn)練樣本的特征參數(shù),并將其映射到高維特征空間,將線性不可分問題轉(zhuǎn)換為高維線性可分問題,保存訓(xùn)練好的分類模型。
(4)對現(xiàn)場數(shù)字圖像進(jìn)行識別。因?yàn)橹耙呀?jīng)訓(xùn)練好SVM 的模型,所以經(jīng)過了投影分割和預(yù)處理操作的數(shù)字圖像可直接送入SVM 分類器中對數(shù)字進(jìn)行分類,輸出即為該圖像所代表的數(shù)字。
因儀表數(shù)字圖像與車牌號數(shù)字圖像字體相似,本文采用HOG+SVM 對車牌號訓(xùn)練集進(jìn)行訓(xùn)練,用HOG 算法提取車牌號訓(xùn)練集的數(shù)字特征,再用SVM 對其進(jìn)行訓(xùn)練。訓(xùn)練之后對經(jīng)過分割和預(yù)處理操作的數(shù)字進(jìn)行識別預(yù)測,預(yù)測效果如表1 所示。
表1 圖像識別預(yù)測結(jié)果
觀察以上數(shù)據(jù)可以發(fā)現(xiàn),本文算法均能正確識別出每個(gè)圖像所代表的數(shù)字,識別效果較好,算法具有較強(qiáng)的魯棒性,且在0 和8 較為相似的情況下也能正確識別,因此具有較強(qiáng)的推廣價(jià)值。
此外,本文與其他論文進(jìn)行了一系列對比,如表2所示。
表2 識別結(jié)果對比表
觀察表2,發(fā)現(xiàn)本文的識別準(zhǔn)確率最高,為95.5%,遠(yuǎn)遠(yuǎn)高于文獻(xiàn)[9]和文獻(xiàn)[10],雖然準(zhǔn)確率與文獻(xiàn)[11]接近,但是本文的識別速度要遠(yuǎn)遠(yuǎn)高于文獻(xiàn)[11]。綜合所有因素,本文在具有最高的準(zhǔn)確率的同時(shí),也具有最高的識別速度,由此說明了本文改進(jìn)算法的有效性。
本文主要是針對在復(fù)雜的工業(yè)現(xiàn)場,數(shù)字識別精度不高的情況下,所作的一系列優(yōu)化。首先,對圖像進(jìn)行一系列的預(yù)處理;其次,采用投影法對數(shù)字進(jìn)行分割;最后,采用HOG+SVM 的方法測試分割后得到的多張單個(gè)數(shù)字圖像,從而精確地預(yù)測正確的數(shù)字。一系列的實(shí)驗(yàn)證明了本文算法具有較高的準(zhǔn)確率,并且具有較高的識別速度,具有較好的推廣意義。