本發(fā)明涉及圖像識(shí)別技術(shù)領(lǐng)域,特別涉及一種手寫體數(shù)字的識(shí)別方法。
背景技術(shù):
人類的進(jìn)步推動(dòng)科學(xué)技術(shù)的發(fā)展,技術(shù)的進(jìn)度又不斷給人類提出新的挑戰(zhàn)。隨著網(wǎng)絡(luò)技術(shù)的誕生,人們的生活變得越來越便利,也讓人們?cè)絹碓揭蕾嚲W(wǎng)絡(luò)。近幾年掀起的電子商務(wù)狂潮,以及人們?cè)诰W(wǎng)絡(luò)上的通訊和娛樂使人們?cè)诰W(wǎng)絡(luò)上的交互變得越來越頻繁,從而使人們的信息和隱私的安全受到威脅,網(wǎng)絡(luò)安全日漸成為時(shí)下關(guān)注的熱點(diǎn)問題。驗(yàn)證碼的出現(xiàn)正是為了解決網(wǎng)絡(luò)安全問題。
在過去的幾十年,隨著數(shù)字化、信息化在社會(huì)生活方方面面的推廣及普及,手寫體的識(shí)別成為模式識(shí)別的研究熱點(diǎn)。數(shù)字手寫體多用于郵政編碼、統(tǒng)計(jì)報(bào)表、財(cái)務(wù)報(bào)表、銀行票據(jù)等方面,人們的關(guān)注焦點(diǎn)也越來越集中到手寫體數(shù)字的識(shí)別上。但是很多方法只是停留在理論研究之中,實(shí)際生活中手寫體數(shù)字因個(gè)人書寫風(fēng)格的不同而存在字符變形多樣的問題,造成現(xiàn)有算法在手寫體識(shí)別中識(shí)別率低、穩(wěn)定性差、魯棒性不足等多方面的問題。研究高性能的手寫體數(shù)字識(shí)別算法仍然是一個(gè)具有相當(dāng)挑戰(zhàn)性的課題。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)在數(shù)字識(shí)別中已得到廣泛應(yīng)用,它的優(yōu)點(diǎn)是用完整圖像作為模型的輸入,避免了特征提取的過程。在一定程度上降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。但是,卷積神經(jīng)網(wǎng)絡(luò)算法用圖像作為模型輸入,這在算法的運(yùn)行時(shí)間上就不夠理想,并且識(shí)別的字符受到訓(xùn)練集的影響,所以卷積神經(jīng)算法在一定程度上對(duì)數(shù)字識(shí)別的效果還不夠理想,所以有必要研究減少輸入模型的數(shù)據(jù)量并且運(yùn)行效率高的算法。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的是提供一種基于八鄰域特征的數(shù)字識(shí)別方法,以實(shí)現(xiàn)對(duì)手寫體數(shù)字的高效和準(zhǔn)確識(shí)別。
本發(fā)明基于八鄰域特征的數(shù)字識(shí)別方法,包括以下步驟:
1)獲取手寫體數(shù)字的原圖;
2)對(duì)原圖進(jìn)行預(yù)處理
第一步,將彩色原圖進(jìn)行灰度化;
第二步,將灰度化后的圖像再進(jìn)行二值化;
第三步,對(duì)二值圖像進(jìn)行去噪聲處理,得到預(yù)處理后的圖像;
3)對(duì)預(yù)處理后的圖像進(jìn)行分割,以獲得單個(gè)字符;
4)獲取單個(gè)字符在八鄰域方向上的激活頻次和激活率;
所述八鄰域方向:即某一像素點(diǎn)周圍八個(gè)相鄰的像素點(diǎn)構(gòu)成了它的八鄰域,八鄰域與該像素點(diǎn)的相對(duì)位置構(gòu)成了該像素的八鄰域方向;某一像素點(diǎn)的八鄰域方向包括:0度、45度、90度、135度、180度、225度、270度、315度;
激活點(diǎn):在二值圖像中,如果一個(gè)像素的值為1,而且其八鄰域中有一個(gè)值為0的像素點(diǎn),則稱該點(diǎn)為激活點(diǎn),表示該點(diǎn)包含了八鄰域特征;
所述激活頻次:激活點(diǎn)的某一鄰域上的值為0,表明該點(diǎn)在這一鄰域方向被激活一次;某一鄰域方向的激活頻次即為所有激活點(diǎn)在此鄰域方向被激活的總次數(shù),0度方向、45度方向、90度方向、135度方向、180度方向、225度方向、270度方向、315度方向的激活頻次依次記為f1,f2,f3,f4,f5,f6,f7,f8;
激活頻率:某一鄰域方向的激活頻率即為此鄰域的激活頻次在激活總頻次的占比,記為:
其中,i為第i個(gè)方向,i={1,2,3,…8}。
5)將二值圖像分為五個(gè)象限,計(jì)算每一個(gè)象限激活點(diǎn)占比I=[i(1),i(2),i(3),i(4),i(5)];第一到第四象限激活點(diǎn)重心角度A=[a(1),a(2),a(3),a(4),a(5)];激活點(diǎn)重心到中心點(diǎn)的距離D=[d(1),d(2),d(3),d(4),d(5)];從而得到分割出的字符特征向量W=(P,I,A,D);
6)特征向量的提取
第一步,通過公式
提取每個(gè)象限的重心點(diǎn)坐標(biāo),n為第i個(gè)象限重心點(diǎn)的激活點(diǎn)個(gè)數(shù),xi為激活點(diǎn)的橫坐標(biāo),yi為激活點(diǎn)的縱坐標(biāo);Xj為第j個(gè)象限重心點(diǎn)橫坐標(biāo),Yj第j個(gè)象限重心點(diǎn)縱坐標(biāo)
第二步,根據(jù)公式
計(jì)算激活點(diǎn)重心角度,P(i,1)為第i個(gè)象限的重心點(diǎn)縱坐標(biāo),centerpx為圖像中心點(diǎn)縱坐標(biāo);
第三步,根據(jù)公式
計(jì)算第i個(gè)象限重心點(diǎn)到圖片中心點(diǎn)的距離;圖像中心的橫坐標(biāo)為X=w/2,縱坐標(biāo)為Y=h/2;h、w分別為圖像的高和寬;
7)特征向量的優(yōu)化
第一步,細(xì)化操作
a)對(duì)數(shù)字圖形進(jìn)行預(yù)腐蝕,將所有腐蝕可去除的像素點(diǎn)標(biāo)明,但不立即去除;
b)以第一步標(biāo)注的可去除像素點(diǎn)為基礎(chǔ),選擇消除那些消除后不會(huì)破壞字符連通性的點(diǎn),并保留其他點(diǎn),以確保字符圖像的拓?fù)浣Y(jié)構(gòu);
第一步,調(diào)整特征值
a)激活率I=[i(1),i(2),i(3),i(4),i(5)]以百分制表示,增加激活率的量級(jí);
b)調(diào)整距離特征值D=[d(1),d(2),d(3),d(4),d(5)],通過公式
計(jì)算激活點(diǎn)重心到二值圖像中心點(diǎn)的距離,xi為第i個(gè)象限的重心點(diǎn)的橫坐標(biāo),yi為第i個(gè)象限的重心點(diǎn)的縱坐標(biāo),X為圖像中心點(diǎn)的橫坐標(biāo),同時(shí)也為圖像寬的1/2,Y為圖像中心點(diǎn)的縱坐標(biāo),同時(shí)也為圖像高的1/2;
8)相似性度量
第一步,選取0,1,2,3,4,5,6,7,8,9這九個(gè)書寫標(biāo)準(zhǔn)的手寫體數(shù)字,用前述步驟4)至6)所述的方法分別提取各數(shù)字的特征向量W=(P,I,A,D),并將這10個(gè)數(shù)字的特征向量存為數(shù)字的標(biāo)準(zhǔn)特征,作為待識(shí)別字符特征向量比較的標(biāo)準(zhǔn);
第二步,采用歐幾里得度量計(jì)算標(biāo)準(zhǔn)數(shù)字特征與待識(shí)別字符特征的相似性,通過比較相似性的大小判斷待識(shí)別字符。
進(jìn)一步,在步驟2)對(duì)原圖進(jìn)行預(yù)處理的第二步中,通過Matlab中自帶函數(shù)lev=graythresh(j)獲得閾值,再用函數(shù)im2bw(j,lev)得到二值化結(jié)果。
進(jìn)一步,在步驟2)對(duì)原圖進(jìn)行預(yù)處理的第三步中,選用3×3的滑動(dòng)窗口對(duì)二值化圖像進(jìn)行中值濾波。
進(jìn)一步,在步驟3)對(duì)預(yù)處理后的圖像進(jìn)行分割中,將單行數(shù)字圖像作為輸入,利用垂直投影法獲得單個(gè)字符圖像。
本發(fā)明的有益效果:
本發(fā)明基于八鄰域特征的數(shù)字識(shí)別方法,其基于八鄰域特征提取,減少了圖片的數(shù)量,只提取了圖像數(shù)量的有用信息,減少了輸入模型數(shù)據(jù)的數(shù)量,從而提高了算法的執(zhí)行速率;本發(fā)明解決字符的相對(duì)位置問題是通過算法摳出字符本身大小的字符圖像,然后進(jìn)行特征提取,距離特征用相對(duì)距離表示,這樣距離特征對(duì)字符本身的表征程度較小,從而消除了字符大小對(duì)識(shí)別結(jié)果的影響,達(dá)到了優(yōu)化特征值的目的,提高了特征值對(duì)字符的表征程度;本發(fā)明中字符識(shí)別算法采用的是歐幾里得度量,算法簡單且結(jié)果明顯;本發(fā)明能實(shí)現(xiàn)對(duì)手寫體數(shù)字的高效和高準(zhǔn)確率識(shí)別。
附圖說明
圖1為本發(fā)明基于八鄰域特征的數(shù)字識(shí)別方法的流程圖;
圖2為激活點(diǎn)的八鄰域圖;
圖3為八鄰域統(tǒng)計(jì)圖;
圖4為象限分割與激活點(diǎn)分布示意圖;
圖5為特征向量提取算法流程圖;
圖6為字符分割算法流程圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述。
本實(shí)施例基于八鄰域特征的數(shù)字識(shí)別方法,包括以下步驟:
1)獲取手寫體數(shù)字的原圖,例如獲取手寫體數(shù)字驗(yàn)證碼原圖;
2)對(duì)數(shù)字驗(yàn)證碼原圖進(jìn)行預(yù)處理
第一步,將彩色原圖進(jìn)行灰度化,具體為采用Matlab中自帶算法rgb2gray函數(shù)實(shí)現(xiàn)彩色圖像灰度化;
第二步,將灰度化后的圖像再進(jìn)行二值化,具體的為通過Matlab中自帶函數(shù)lev=graythresh(j)獲得閾值,再用函數(shù)im2bw(j,lev)得到二值化結(jié)果;
第三步,對(duì)二值圖像進(jìn)行去噪聲處理,得到預(yù)處理后的圖像;具體的為選用3×3的滑動(dòng)窗口對(duì)二值化圖像進(jìn)行中值濾波,首先運(yùn)用3×3的滑動(dòng)窗口模板對(duì)二值圖像進(jìn)行檢測(cè)并消除孤立噪聲點(diǎn),再運(yùn)用Matlab中bwmorph()函數(shù)對(duì)二值化圖像進(jìn)一步消除噪聲點(diǎn);
3)對(duì)預(yù)處理后的圖像進(jìn)行分割,以獲得單個(gè)字符,具體的為將單行數(shù)字圖像作為輸入,利用垂直投影法獲得單個(gè)字符圖像;
給定一行字符后,由于字符間獨(dú)立成塊,水平方向之間并無交集,因而,可在對(duì)單行圖像進(jìn)行垂直投影后利用投影圖像中的空白間隙對(duì)字符集合進(jìn)行分割;垂直投影法的計(jì)算公式為:
和
其中:h是圖像的高度,w是圖像的寬度,k(i,j)為圖像第i行第j列元素的灰度值,對(duì)于二值圖像,其值為1或0;
4)獲取單個(gè)字符在八鄰域方向上的激活頻次和激活率;
所述八鄰域方向:即某一像素點(diǎn)周圍八個(gè)相鄰的像素點(diǎn)構(gòu)成了它的八鄰域,八鄰域與該像素點(diǎn)的相對(duì)位置構(gòu)成了該像素的八鄰域方向;某一像素點(diǎn)的八鄰域方向包括:0度、45度、90度、135度、180度、225度、270度、315度;
激活點(diǎn):在二值圖像中,如果一個(gè)像素的值為1,而且其八鄰域中有一個(gè)值為0的像素點(diǎn),則稱該點(diǎn)為激活點(diǎn),表示該點(diǎn)包含了八鄰域特征;
所述激活頻次:激活點(diǎn)的某一鄰域上的值為0,表明該點(diǎn)在這一鄰域方向被激活一次;某一鄰域方向的激活頻次即為所有激活點(diǎn)在此鄰域方向被激活的總次數(shù),0度方向、45度方向、90度方向、135度方向、180度方向、225度方向、270度方向、315度方向的激活頻次依次記為f1,f2,f3,f4,f5,f6,f7,f8;
激活頻率:某一鄰域方向的激活頻率即為此鄰域的激活頻次在激活總頻次的占比,記為
其中,i為第i個(gè)方向,i={1,2,3,…8}。
5)將二值圖像分為五個(gè)象限,計(jì)算每一個(gè)象限激活點(diǎn)占比I=[i(1),i(2),i(3),i(4),i(5)];第一到第四象限激活點(diǎn)重心角度A=[a(1),a(2),a(3),a(4),a(5)];激活點(diǎn)重心到中心點(diǎn)的距離D=[d(1),d(2),d(3),d(4),d(5)];從而得到分割出的字符特征向量W=(P,I,A,D);
6)特征向量的提取
第一步,通過公式
提取每個(gè)象限的重心點(diǎn)坐標(biāo),n為當(dāng)前象限的激活點(diǎn)數(shù),xi為激活點(diǎn)的橫坐標(biāo),yi為激活點(diǎn)的縱坐標(biāo);圖像中心的橫坐標(biāo)為X=h/2,縱坐標(biāo)為Y=w/2;h,w分別為圖像的高和寬;
第二步,根據(jù)公式
計(jì)算激活點(diǎn)重心角度,P(i,1)為第i個(gè)象限的重心點(diǎn)縱坐標(biāo),centerpx為圖像中心點(diǎn)縱坐標(biāo);
第三步,根據(jù)公式
計(jì)算第i個(gè)象限重心點(diǎn)到圖片中心點(diǎn)的距離;
7)特征向量的優(yōu)化
第一步,細(xì)化操作
a)對(duì)數(shù)字圖形進(jìn)行預(yù)腐蝕,將所有腐蝕可去除的像素點(diǎn)標(biāo)明但不立即去除;
b)以第一步標(biāo)注的可去除像素點(diǎn)為基礎(chǔ),選擇消除那些消除后不會(huì)破壞字符連通性的點(diǎn),并保留其他點(diǎn),以確保字符圖像的拓?fù)浣Y(jié)構(gòu);
第一步,調(diào)整特征值
a)激活率I=[i(1),i(2),i(3),i(4),i(5)]以百分制表示,增加激活率的量級(jí);b)調(diào)整距離特征值D=[d(1),d(2),d(3),d(4),d(5)],通過公式
計(jì)算激活點(diǎn)重心到二值圖像中心點(diǎn)的距離,xi為第i個(gè)象限的重心點(diǎn)的橫坐標(biāo),yi為第i個(gè)象限的重心點(diǎn)的縱坐標(biāo),X為圖像中心點(diǎn)的橫坐標(biāo),同時(shí)也為圖像寬的1/2,Y為圖像中心點(diǎn)的縱坐標(biāo),同時(shí)也為圖像高的1/2;
8)相似性度量
第一步,選取0,1,2,3,4,5,6,7,8,9這九個(gè)書寫標(biāo)準(zhǔn)的手寫體數(shù)字,用前述步驟4)至6)所述的方法分別提取各數(shù)字的特征向量W=(P,I,A,D),并將這10個(gè)數(shù)字的特征向量存為數(shù)字的標(biāo)準(zhǔn)特征,作為待識(shí)別字符特征向量比較的標(biāo)準(zhǔn);
第二步,采用歐幾里得度量計(jì)算標(biāo)準(zhǔn)數(shù)字特征與待識(shí)別字符特征的相似性,通過比較相似性的大小判斷待識(shí)別字符;
歐幾里得度量的公式為:n為向量的維數(shù),W提取的特征向量,S為標(biāo)準(zhǔn)數(shù)字的特征向量。
本實(shí)施例數(shù)字識(shí)別方法,其基于八鄰域特征提取,減少了圖片的數(shù)量,只提取了圖像數(shù)量的有用信息,減少了輸入模型數(shù)據(jù)的數(shù)量,從而提高了算法的執(zhí)行速率;本發(fā)明解決字符的相對(duì)位置問題是通過算法摳出字符本身大小的字符圖像,然后進(jìn)行特征提取,距離特征用相對(duì)距離表示,這樣距離特征對(duì)字符本身的表征程度較小,從而消除了字符大小對(duì)識(shí)別結(jié)果的影響,達(dá)到了優(yōu)化特征值的目的,提高了特征值對(duì)字符的表征程度;本發(fā)明中字符識(shí)別算法采用的是歐幾里得度量,算法簡單且結(jié)果明顯;本發(fā)明能實(shí)現(xiàn)對(duì)手寫體數(shù)字的高效和高準(zhǔn)確率識(shí)別。
最后說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。