本申請涉及計算機技術領域,尤其涉及一種數(shù)字識別方法及裝置。
背景技術:
目前,數(shù)字識別技術理論已經(jīng)日漸成熟,然而大多數(shù)的數(shù)字識別方法,在實際應用過程中或多或少的都會出現(xiàn)一些問題,尤其是在復雜應用場景中或是移動設備上,識別效率和識別準確率較低。
例如,常見的數(shù)字識別方法有:基于逆?zhèn)鞑?Back Propagation,BP)神經(jīng)網(wǎng)絡的識別算法、支持向量機(Support Vector Machine,SVM)識別算法、卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)識別算法,等等。BP神經(jīng)網(wǎng)絡的識別算法對樣本數(shù)量要求很高,否則無法達到較高的識別準確率,SVM識別算法需要選擇不同的核函數(shù),且識別模型庫較大,CNN識別算法不需要提取特征,但識別效率較低。
綜上所述,亟需一種識別效率和識別準確率都較高的數(shù)字識別方法。
技術實現(xiàn)要素:
本申請實施例提供一種數(shù)字識別方法,用以解決現(xiàn)有技術中的數(shù)字識別方法的識別準確率不高和/或識別效率較低的問題。
本申請實施例提供一種數(shù)字識別裝置,用以解決現(xiàn)有技術中的數(shù)字識別方法的識別準確率不高和/或識別效率較低的問題。
本申請實施例提供的一種數(shù)字識別方法,包括:
獲取待識別圖像;
根據(jù)所述待識別圖像中各像素之間的距離,提取所述待識別圖像的多維特 征向量;
根據(jù)所述待識別圖像的多維特征向量和生成的訓練模型,對所述待識別圖像進行數(shù)字識別,其中,所述訓練模型包括降維矩陣和降維類中心向量。
本申請實施例提供的一種數(shù)字識別裝置,包括:
獲取模塊,用于獲取待識別圖像;
特征提取模塊,用于根據(jù)所述待識別圖像中各像素之間的距離,提取所述待識別圖像的多維特征向量;
識別模塊,用于生成訓練模型,并根據(jù)所述待識別圖像的多維特征向量和所述訓練模型,對所述待識別圖像進行數(shù)字識別,其中,所述訓練模型包括降維矩陣和降維類中心向量。
本申請實施例通過上述技術方案,對于所述待識別圖像的多維特征向量,由于其可以有效地反映出待識別圖像中的數(shù)字外部輪廓的形狀、內部輪廓的形狀,以及該數(shù)字自身的各筆畫點之間的相對位置關系,因此,可以提高數(shù)字識別的準確率。不僅如此,由于在數(shù)字識別過程中對該多維特征向量進行了降維處理,因此,可以減少數(shù)字識別過程中的數(shù)據(jù)計算量,提高數(shù)字識別速度。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
圖1為本申請實施例提供的數(shù)字識別過程;
圖2為在本申請實施例提供的數(shù)字識別過程中,提取的幾類特征的示意圖;
圖3為在本申請實施例提供的數(shù)字識別過程中,生成訓練模型的詳細過程;
圖4為本申請實施例提供的數(shù)字識別裝置結構示意圖。
具體實施方式
為使本申請的目的、技術方案和優(yōu)點更加清楚,下面將結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
圖1為本申請實施例提供的數(shù)字識別過程,具體包括以下步驟:
S101:獲取待識別圖像。
本申請實施例提供的數(shù)字識別方法的執(zhí)行主體可以是終端或服務器,所述終端包括但不限于:手機、平板電腦、智能手表、車載移動臺、個人計算機等;所述服務器包括但不限于:大中型計算機、計算機集群等。所述的執(zhí)行主體并不構成對本申請的限定。在本申請實施例中,將圖像中可表示數(shù)字、字母、漢字等字符的像素區(qū)域稱為所述圖像的前景,相應的,將除了前景之外的其他像素區(qū)域稱為所述圖像的背景,所述數(shù)字識別可以是對待識別圖像的前景所包含的數(shù)字(以下簡稱為:待識別圖像中的數(shù)字)進行識別的過程。
在本申請實施例中,可以用攝像頭或者其他圖像采集設備采集原始圖像,然后對原始圖像進行數(shù)字識別。進一步的,由于原始圖像中可以有不止一個數(shù)字,而且不同的原始圖像中的數(shù)字的大小、清晰度、顏色等特征可能不相同,從而可能會影響后續(xù)數(shù)字識別的準確率。因此,也可以不直接對原始圖像進行數(shù)字識別,而是可以對原始圖像進行預處理,獲取到更適用于數(shù)字識別的待識別圖像,再對待識別圖像進行數(shù)字識別。其中,所述預處理可以是圖像剪裁、圖像旋轉、圖像濾波、圖像增強、圖像二值化等處理。
另外,若在經(jīng)過所述預處理后,原始圖像中的數(shù)字分布在了多個待識別圖像上,則后續(xù)對各待識別圖像上的數(shù)字進行識別后,還可以對識別出的各數(shù)字進行重新排序、拼接等還原處理,以還原為原始圖像中的數(shù)字。例如,假定對 一張訂單圖像中的訂單號進行數(shù)字識別,則在預處理過程中可以將表示該訂單號的數(shù)字串分割為多個數(shù)字分別進行識別,這樣的話,各數(shù)字可能分別分布在一張待識別圖像上,在對各待識別圖像中的數(shù)字進行識別后,可以按照預先記錄的各數(shù)字的順序,還原出該訂單號,至此,完成了對該訂單號進行數(shù)字識別的過程。
S102:根據(jù)所述待識別圖像中各像素之間的距離,提取所述待識別圖像的多維特征向量。
在本申請實施例中,可以在待識別圖像選取一些特定的像素,如背景邊緣像素、前景邊緣像素、背景內部像素等,這些特定像素之間的距離可以反映出待識別圖像中的數(shù)字的外部輪廓的形狀、內部輪廓的形狀,以及該數(shù)字自身的各筆畫點之間的相對位置關系,因此,可以作為識別該數(shù)字的依據(jù)。
進一步的,在實際應用中,可以基于最大類間方差法(OTUS)算法,或者基于直方圖獲取二值化閾值等方法,確定待識別圖像中的背景像素和前景像素。
其中,OTUS算法的基本原理是:將待識別圖像中的各像素分為兩個像素堆,使得其中一個像素堆中的任一像素的灰度值均大于另一個像素堆中的任一像素的灰度值,且這兩個像素堆之間的像素灰度值方差最大?;谥狈綀D獲取二值化閾值方法的基本原理是:計算待識別圖像的灰度直方圖,確定該灰度直方圖中的最高峰和次高峰,將最高峰和次高峰之間的最低的峰谷處對應的灰度值作為灰度分割閾值,進而可以將各待識別圖像中的各像素分為兩個像素堆。
對于通過以上任一方法確定出的兩個像素堆,可以將位于待識別圖像外側的像素所屬像素堆中的各像素確定為背景像素,相應的,可以將另一個像素堆中的各像素確定為前景像素。
在確定出前景像素和背景像素之后,可以通過逐行遍歷各像素,比較每個像素與相鄰的像素的灰度值的方法,在各背景像素和前景像素中,進一步地確定出背景邊緣像素、前景邊緣像素、背景內部像素。
在本申請實施例中,根據(jù)上述的特定像素之間的距離,可以按照預設規(guī)則組合計算的方式生成多個數(shù)據(jù),并將每一個數(shù)據(jù)作為提取的待識別圖像的一個特征,進一步的,可以將提取的多個特征用一個多維向量表示,該多維向量中的每一維的取值分別對應一個所述數(shù)據(jù),也即,所述待識別圖像的多維特征向量。
在本申請實施例中,為了提高數(shù)字識別的準確率,可以提取很多個特征,則提取的所述待識別圖像的多維特征向量的維數(shù)也可以較高,可達到上百維,在后面會對在實際應用中一些可行的具體實施方式進行舉例說明。
S103:根據(jù)所述待識別圖像的多維特征向量和生成的訓練模型,對所述待識別圖像進行數(shù)字識別,其中,所述訓練模型包括降維矩陣和降維類中心向量。
在本申請實施例中,可以預先地、或者實時地采集大量各個數(shù)字的樣本圖像,然后對這些樣本圖像進行訓練,生成訓練模型,用于識別所述待識別圖像中的數(shù)字。簡單說來,可以將所述訓練模型視作一個分類器,每個類別分別對應一個數(shù)字,在進行數(shù)字識別時,可以向給分類器輸入提取的所述待識別圖像的多維特征向量,該分類器通過處理確定該多維特征向量所屬的類別,進而,可以認為待識別圖像中包含有該類別對應的數(shù)字。
進一步的,若直接將高維數(shù)的多維特征向量用于數(shù)字識別,可能會降低數(shù)字識別速度,因此,可以用降維矩陣對所述待識別圖像的多維特征向量進行降維處理,這樣的話,可以降低數(shù)字識別過程中用到的存儲空間,提高數(shù)字識別速度。降維后,可以采用將降維后的多維特征向量(以下簡稱為降維特征向量)與各類的類中心向量進行匹配的方式,確定降維特征向量所屬的類別,這種匹配方式準確度較高。其中,所述類中心向量在后面進行詳細解釋。
根據(jù)上述分析,所述訓練模型可以包括降維矩陣和降維類中心向量。
通過上述方法,對于所述待識別圖像的多維特征向量,由于其可以有效地反映出待識別圖像中的數(shù)字外部輪廓的形狀、內部輪廓的形狀,以及該數(shù)字自身的各筆畫點之間的相對位置關系,因此,可以提高數(shù)字識別的準確率。不僅 如此,由于在數(shù)字識別過程中對該多維特征向量進行了降維處理,因此,可以減少數(shù)字識別過程中的數(shù)據(jù)計算量,提高數(shù)字識別速度。
在本申請實施例中,由于數(shù)字串是若干個數(shù)字(也即,0至9這10個數(shù)字中的任一數(shù)字)的組合,若能識別各數(shù)字,則也可以實現(xiàn)對數(shù)字串的識別。因此,在上述步驟S101中,獲取待識別圖像,具體包括:對原始圖像進行預處理,生成設定尺寸的二值圖像,作為待識別圖像,其中,所述待識別圖像的前景至多包含一個數(shù)字。若原始圖像的前景包含多個數(shù)字,則可以相應地將原始圖像分割為多個待識別圖像,分別對各待識別圖像進行數(shù)字識別。
在實際應用中,可以采用投影分割的方法將原始圖像分割為多個待識別圖像,使得每個待識別圖像的前景至多包含一個數(shù)字。在此對投影分割的方法進行簡單說明:可以將原始圖像進行灰度水平投影,然后將灰度水平投影后的原始圖像的前景中的數(shù)字進行逐行分割,再對每一行進行灰度垂直投影,然后對灰度垂直投影后的每一行中的每個數(shù)字進行逐列分割,進而分割出了上述的多個待識別圖像。
類似的,也可以先對原始圖像進行二值化,然后再將二值化后的原始圖像分割為多個待識別圖像。
需要說明的是,生成二值圖像可以盡量增大圖像背景像素和前景像素灰度值之間差異,有利于提高數(shù)字識別的準確率。當然,在實際應用中,對于原始圖像,也可以不做二值化處理,直接進行數(shù)字識別。
在本申請實施例中,對于上述步驟S102,根據(jù)待識別圖像中各像素之間的距離,提取所述待識別圖像的多維特征向量,具體包括:根據(jù)在待識別圖像中,背景邊緣像素與前景邊緣像素之間的距離、前景像素與前景邊緣像素之間的距離、選定方向上背景像素與前景像素的跳變次數(shù),提取所述待識別圖像的多維特征向量。其中所述前景邊緣像素包括前景外邊緣像素和前景內邊緣像素。下面對上述的幾大類特征舉例進行說明。
如圖2所示,左側三個待識別圖像的前景包含了數(shù)字“8”,最右側的待識 別圖像用陰影部分表示前景。
最左側的待識別圖像中的四個箭頭線段的長度表示了:在待識別圖像的上下左右四邊上,選定的背景邊緣像素與對應箭頭所指向的前景外邊緣像素之間的距離(為了便于描述,以下稱為一次外包圍)。
左側起第二個待識別圖像中的四個箭頭線段的長度表示了:在待識別圖像的上下左右四邊上,選定的背景邊緣像素與對應箭頭所指向的前景內邊緣像素之間的距離(為了便于描述,以下稱為二次外包圍)。
左側起第三個待識別圖像中的兩個箭頭線段的長度表示了:在待識別圖像的上邊和左邊上,從選定的背景邊緣像素至對應箭頭所指向的背景邊緣像素所經(jīng)過的各像素,根據(jù)所述經(jīng)過的各像素,可以確定在該箭頭方向上背景像素與前景像素的跳變次數(shù)(以下稱為跳變次數(shù)),可以看到,左邊箭頭對應的跳變次數(shù)為4次,上邊箭頭對應的跳變次數(shù)為6次。
對于最右側的待識別圖像上的任一前景像素,如幾個箭頭的交點處的前景像素,四個雙箭頭線段分別表示了:該前景像素與對應雙箭頭所指向的前景邊緣像素之間的距離,其中,該四個雙箭頭對應的方向可以是上下方向、左右方向、上下方向與左右方向之間設定度數(shù)夾角(例如,可以為45度夾角)的兩個方向。
在實際應用中,可以選取待識別圖像的特定區(qū)域的像素,提取上述的這幾類特征,以及將這幾類特征進行組合形成更多的特征,再將提取的各特征的取值按照選定的順序表示為多維特征向量。
例如,可以用上述幾大類特征進行組合,總共提取510維的多維特征向量F[N],其中,N為整數(shù),0≤N<510。該510維特征分別如下:F[0]為在待識別圖像的列方向上跳變次數(shù)的和的1/4,F(xiàn)[1]為在待識別圖像的行方向上跳變次數(shù)的和的1/4,F(xiàn)[2]至F[5]為分別為待識別圖像的上下左右4個方向相鄰行一次外包圍的距離之差,F(xiàn)[6]至F[9]為待識別圖像的水平方向分成4份,分別 統(tǒng)計的每份中跳變次數(shù)小于6次的總數(shù),F(xiàn)[10]至F[13]為待識別圖像的垂直方向分成4份,分別統(tǒng)計的每份中跳變次數(shù)小于6次的總數(shù),F(xiàn)[14]至F[15]為待識別圖像的左側分成2份,分別統(tǒng)計的每份二次外包圍大于上一行的距離的次數(shù)和,F(xiàn)[16]到F[21]依次是從待識別圖像的右側,上側,下側,按照獲取F[14]至F[15]的方法獲取,F(xiàn)[22]至F[29]與獲取F[14]至F[21]的方式類似,不過統(tǒng)計的是二次外包圍小于上一行的距離的次數(shù)和,F(xiàn)[30]至F[31]為待識別圖像的左側分成2份,分別統(tǒng)計的每份一次外包圍大于上一行的距離的次數(shù)和,F(xiàn)[32]至F[37]依次是從待識別圖像的右側,上側,下側,按照獲取F[30]至F[31]的方法獲取,F(xiàn)[38]至F[45]與獲取F[30]至F[37]的獲取方式類似,不過統(tǒng)計的是一次外包圍小于上一行的距離的次數(shù)和,F(xiàn)[46]到F[53]為待識別圖像的左側分成8份,分別統(tǒng)計的每份內的二次外包圍距離和,F(xiàn)[54]到F[77]分別為其余三個方向各分成8份進行二次外包圍距離和,F(xiàn)[78]到F[85]為待識別圖像的左側分成8份,統(tǒng)計每份內的一次外包圍距離和,F(xiàn)[86]到F[109]為其余3個方向各分成8份統(tǒng)計一次外包圍距離和,至此共生成110維特征,計算每個前景像素4個方向延伸到前景外邊緣的像素點和,對待識別圖像進行分塊,塊的大小為4×4,塊偏移為4,在每個塊內分別統(tǒng)計所有前景像素在4個方向上的距離和,共可以生成400維特征,即為F[110]至F[509]。以上總計生成待識別圖像的510維特征。需要說明的是,在實際應用中,可以對這510維特征中的某些特征進行刪減或重新組合,且這510維特征在多維特征向量F[N]中的排列順序也可以進行調換。
在本申請實施例中,對于上述步驟S103,可以按照如下方法生成所述訓練模型:針對0至9這10個數(shù)字中的每個數(shù)字,分別采集與該數(shù)字對應的訓練樣本,根據(jù)針對各所述數(shù)字采集的訓練樣本,生成訓練模型。其中,為每個數(shù)字都可以采集多個訓練樣本,為了提高后續(xù)生成的訓練模型的適用性和容錯 性,每個數(shù)字在其對應的各訓練樣本中的字體可以不相同,所述字體包括但不限:宋體、楷體、隸書、黑體、點狀字體(常見于機打票據(jù)上)、線狀字體(常見于儀表上)、液晶字體(常見于液晶顯示屏上),等等,這樣的話,即使待識別圖像上的數(shù)字的字體不同,對后續(xù)數(shù)字識別的準確度影響也較小。
進一步的,根據(jù)針對各所述數(shù)字采集的訓練樣本,生成訓練模型,具體包括以下步驟:
S301:針對每個所述數(shù)字(整數(shù)0至9),提取與該數(shù)字對應的各訓練樣本的多維特征向量,并對所述各訓練樣本的多維特征向量進行聚類,獲得設定數(shù)量個多維特征向量類,以及確定每個所述多維特征向量類的類中心向量,作為與該數(shù)字對應的類中心向量。
所述訓練樣本可以是經(jīng)過了預處理后的、包含有一個數(shù)字的圖像,所述訓練樣本的尺寸大小可以與所述待識別圖像的尺寸大小相同。提取各訓練樣本的多維特征向量的方法,與提取待識別圖像的多維特征向量的方法相同。下面對所述聚類過程進行說明。
一般的,各訓練樣本的多維特征向量可以聚類為10大類,每個大類分別對應整數(shù)0至9中的一個數(shù)字。進一步的,由于每個大類中的數(shù)字雖然可能相同,但是數(shù)字的字體、顏色等屬性可能不同,在每個大類中的各多維特征向量在特征分布上差異性可能較大,不利于后續(xù)數(shù)字識別,則針對這個問題,可以在每個大類中進行類內聚類,也即,將每個數(shù)字對應的大類聚類為多個的小類(所述小類也可以稱作簇),每個小類中的各多維特征向量在特征分布上差異性較小,這樣的話,可以提高后續(xù)數(shù)字識別的精度和準確度。假定將每個大類聚類成設定數(shù)量個小類(將所述設定數(shù)量用M表示,M為正整數(shù)),為了便于理解,可以用數(shù)字0至9分別表示對應的大類,用01、02、…、0M分別表示數(shù)字0標記的大類所聚類成的M個小類,其他數(shù)字標記的大類所聚類成的M個小類也可以用類似的方法表示,總共有10×M個小類。其中,所述小類即為所述多維特征向量類。
對于每個大類中的各相同的數(shù)字,若有越多的所述各相同的數(shù)字相互之間的外觀差異較大(可能由于字體、顏色等屬性不相同等原因導致),則相應地可以將對應大類的M設定得越大,這樣的話,在類內聚類后,各數(shù)字對應的多維特征向量有更大的概率落在M個所述多維特征向量類中,而不是落空,進而也使后續(xù)進行數(shù)字識別時,待識別圖片中的數(shù)字可以更準確地與訓練模型進行匹配。在實際應用中,一般可以將M設置為30至50之間,后續(xù)數(shù)字識別效果較好。
在本申請實施例中,可以采用現(xiàn)有的聚類算法實現(xiàn)上述聚類過程,所述聚類算法包括但不限于:K-means聚類算法、ROCK聚類算法、Chameleon聚類算法,等等。例如,當采用K-means聚類算法時,可以基于L1距離進行距離度量,在這種情況下,假定向量V和向量M中各有m維,向量V中各維分別為V1、V2、…、Vm,向量M中各維分別為M1、M2、…、Mm,則向量V與向量M之間的L1距離D為:
其中,i、m為正整數(shù)。
K-means聚類算法的優(yōu)點是簡單快速,且對于球形類數(shù)據(jù)簇有較好的聚類效果。在聚類過程中,可以確定出每個所述多維特征向量類的類中心向量,以用于后續(xù)數(shù)字識別。
S302:根據(jù)提取的各所述數(shù)字的訓練樣本的多維特征向量,生成多維特征矩陣。
具體的,可以將每個多維特征向量作為生成多維特征矩陣中的一個行向量,例如,假定多維特征向量的維數(shù)為N,訓練樣本的總數(shù)量(也即,多維特征向量的總數(shù)量)為S,則可以生成S×N的多維特征矩陣。
S303:采用降維算法,對所述多維特征矩陣進行降維處理,生成降維矩陣。
在本申請實施例中,可以采用現(xiàn)有的降維算法實現(xiàn)降維處理過程,所述降 維算法包括但不限于:線性判別式分析(Linear Discriminant Analysis,LDA)降維算法、主成分分析(Principal Components Analysis,PCA)降維算法,等等。例如,當采用LDA降維算法時,其基本原理是將高維特征向量投影到最佳鑒別矢量空間,以達到提取分類信息和壓縮降低特征向量維數(shù)的效果,投影后保證降維后的高維特征向量在該最佳鑒別矢量空間中有最大的類間距離和最小的類內距離,對于本申請實施例,可以使所述各多維特征向量在降維后有最佳的可分離性,而且還可以降低圖像噪聲,節(jié)省存儲成本。
S304:根據(jù)所述降維矩陣和各所述類中心向量,分別為每個所述類中心向量生成對應的降維類中心向量。
例如,可以用Ci表示所述類中心向量,用Ci'表示生成的與Ci對應的降維類中心向量,其中,i為整數(shù),0≤i≤10×M。假定降維前的維數(shù)為N,降維后的維數(shù)為N',N和N'均為正整數(shù),N>N'。用WN×N'表示在S303中生成的降維矩陣,WN×N'為N行N'列的矩陣,則采用以下公式計算Ci':Ci'=Ci×WN×N'。
S305:將所述降維矩陣和各所述降維類中心向量,作為生成的訓練模型。
另外,在實際應用中,為了進一步節(jié)省存儲成本,可以將數(shù)字識別相關數(shù)據(jù)從浮點數(shù)轉換為short類型保存,則可降低一半存儲空間,而在載入訓練模型的時候,再將轉換后的相關數(shù)據(jù)還原回來。
在本申請實施例中,對于上述步驟S103,可以采用最近鄰分類器的方法實現(xiàn)。具體的,可以根據(jù)所述降維矩陣和所述待識別圖像的多維特征向量,生成所述待識別圖像的降維特征向量,在各所述降維類中心向量中,基于選定的向量距離度量方法,確定與所述降維特征向量距離最近的降維類中心向量,作為最近鄰向量,當所述最近鄰向量與所述降維特征向量之間的距離不大于預設閾值時,確定所述待識別圖像的前景包含有:所述降維特征向量對應的類中心向量對應的數(shù)字。
繼續(xù)用上例進行說明,可以用V1×N表示待識別圖像的多維特征向量,V1×N 為1行N列的行向量,用V'1×N'表示待識別圖像的降維特征向量,V'1×N'為1行N'列的行向量,則V'1×N'=V1×N×WN×N'。
進一步的,可以基于L1距離,或者歐氏距離等向量距離度量方法,對所述待識別圖像的降維特征向量進行最近鄰分類。例如,當基于L1距離時,可采用公式M確定待識別圖像的降維特征向量所對應的多維特征向量類,可以采用公式度量數(shù)字識別結果的可信度,λ越小,數(shù)字識別結果的可信度越高。其中,Vm'表示V'1×N'的第m維的取值,C'im表示第i個降維類中心向量的第m維的取值。
為了進一步地提高數(shù)字識別結果的可靠性和容錯性,也可以在各所述降維類中心向量中,基于選定的向量距離度量方法,從與所述降維特征向量距離最近的降維類中心向量開始,按照各降維類中心向量與所述降維特征向量距離從近至遠的順序,選擇設定數(shù)量個降維類中心向量,作為最近鄰向量集合,然后在所述最近鄰向量集合中,分別確定各降維類中心向量對應的類中心向量對應的數(shù)字,將對應數(shù)字相同的降維類中心向量歸為一類,可以將包含降維類中心向量最多的一類對應的數(shù)字,確定為從待識別圖像中識別出的數(shù)字。當然,若對于包含降維類中心向量的一類中的各降維類中心向量,若該各降維類中心向量與所述降維特征向量之間的平均距離大于所述預設閾值時,可以認為待識別圖像中可能并不包含數(shù)字,而是包含了其他字符。
另外,本申請實施例所提供的數(shù)字識別方法,也適用于對除數(shù)字之外的其他字符進行識別,例如英文字母、漢字等等。相應的,在對其他字符進行識別時,應當還要基于該其他字符對應的訓練樣本生成訓練模型,而不是僅基于0至9這10數(shù)字對應的訓練樣本生成訓練模型,這樣才能保證訓練模型的適用性和可靠性。
以上為本申請實施例提供的數(shù)字識別方法,基于同樣的思路,本申請實施 例還提供相應的數(shù)字識別裝置,如圖4所示。
圖4為本申請實施例提供的數(shù)字識別裝置結構示意圖,具體包括:
獲取模塊401,用于獲取待識別圖像;
特征提取模塊402,用于根據(jù)所述待識別圖像中各像素之間的距離,提取所述待識別圖像的多維特征向量;
識別模塊403,用于生成訓練模型,并根據(jù)所述待識別圖像的多維特征向量和所述訓練模型,對所述待識別圖像進行數(shù)字識別,其中,所述訓練模型包括降維矩陣和降維類中心向量。
所述獲取模塊401具體用于,對原始圖像進行預處理,生成設定尺寸的二值圖像,作為待識別圖像,其中,所述待識別圖像的前景至多包含一個數(shù)字。
所述特征提取模塊402具體用于,根據(jù)在待識別圖像中,背景邊緣像素與前景邊緣像素之間的距離、前景像素與前景邊緣像素之間的距離、選定方向上背景像素與前景像素的跳變次數(shù),提取所述待識別圖像的多維特征向量。
所述識別模塊403具體用于,針對0至9這10個數(shù)字中的每個數(shù)字,分別采集與該數(shù)字對應的訓練樣本,根據(jù)針對各所述數(shù)字采集的訓練樣本,生成訓練模型。
所述識別模塊403具體用于,針對每個所述數(shù)字,提取與該數(shù)字對應的各訓練樣本的多維特征向量,并對所述各訓練樣本的多維特征向量進行聚類,獲得設定數(shù)量個多維特征向量類,以及確定每個所述多維特征向量類的類中心向量,作為與該數(shù)字對應的類中心向量,根據(jù)提取的各所述數(shù)字的訓練樣本的多維特征向量,生成多維特征矩陣,采用降維算法,對所述多維特征矩陣進行降維處理,生成降維矩陣,根據(jù)所述降維矩陣和各所述類中心向量,分別為每個所述類中心向量生成對應的降維類中心向量,將所述降維矩陣和各所述降維類中心向量,作為生成的訓練模型。
所述識別模塊403具體用于,根據(jù)所述降維矩陣和所述待識別圖像的多維特征向量,生成所述待識別圖像的降維特征向量,在各所述降維類中心向量中, 基于選定的向量距離度量方法,確定與所述降維特征向量距離最近的降維類中心向量,作為最近鄰向量,當所述最近鄰向量與所述降維特征向量之間的距離不大于預設閾值時,確定所述待識別圖像的前景包含有:所述降維特征向量對應的類中心向量對應的數(shù)字。
具體的上述如圖4所示的裝置可以位于終端、服務器上。
本申請實施例提供一種數(shù)字識別方法及裝置,該方法獲取待識別圖像,根據(jù)所述待識別圖像中各像素之間的距離,提取所述待識別圖像的多維特征向量,根據(jù)所述待識別圖像的多維特征向量和生成的訓練模型,對所述待識別圖像進行數(shù)字識別,其中,所述訓練模型包括降維矩陣和降維類中心向量。通過上述方法,對于所述待識別圖像的多維特征向量,由于其可以有效地反映出待識別圖像中的數(shù)字外部輪廓的形狀、內部輪廓的形狀,以及該數(shù)字自身的各筆畫點之間的相對位置關系,因此,可以提高數(shù)字識別的準確率。不僅如此,由于在數(shù)字識別過程中對該多維特征向量進行了降維處理,因此,可以減少數(shù)字識別過程中的數(shù)據(jù)計算量,提高數(shù)字識別速度。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結構、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitory media),如調制的數(shù)據(jù)信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、 方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求范圍之內。