本發明涉及圖像處理技術領域,特別是涉及字符識別方法、字符識別裝置、計算機設備和計算機可讀存儲介質。
背景技術:
隨著科技的發展,字符識別技術的使用更加普遍,它可以減少或替換繁瑣的文字輸入。例如,對于一張包含字符的圖像,用戶通過字符識別技術,例如ocr(opticalcharacterrecognition,光學字符識別),就可以識別出該圖像中的字符,然后根據識別出的字符進行檢索或者翻譯等操作。但是在采用傳統技術中的字符識別技術進行字符識別時一般需要將圖像中的字符進行分割,而字符分割時由于字符粘連容易造成字符的誤識別,因此字符識別準確度不高。
技術實現要素:
基于此,有必要針對傳統技術中字符識別準確度不高的問題,提供一種字符識別方法、裝置、計算機設備和計算機可讀存儲介質,能夠對字符圖像進行整體識別,提高了字符識別的準確度。
一種字符識別方法,包括步驟:
獲取待識別字符圖像,對所述待識別字符圖像進行灰度化處理,獲得預處理字符圖像;
將所述預處理字符圖像作為一個整體輸入預設的字符識別模型,由所述字符識別模型計算出預處理字符圖像的第一字符識別結果,其中所述字符識別模型由字符圖像的訓練樣本集訓練設定神經網絡模型生成;
對所述預處理字符圖像進行若干次旋轉,將每次旋轉后的預處理字符圖像作為一個整體輸入所述字符識別模型,由所述字符識別模型計算出每次旋轉后的預處理字符圖像的第二字符識別結果;
根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符。
上述字符識別方法,預先設置字符識別模型,然后將待識別字符圖像處理后整體輸入字符識別模型,通過字符識別模型對字符圖像進行整體識別,不再需要進行字符分割,從而避免了字符分割時由于字符粘連而造成的誤識別,提高了字符識別的準確度,該方法有效魯棒,具有較大的應用價值。
在一個實施例中,根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符包括:若所述第一字符識別結果和每個第二字符識別結果相同,計算旋轉前的預處理字符圖像的長寬比以及每次旋轉后的預處理字符圖像的長寬比;計算所述第一字符識別結果或第二字符識別結果的字符總長度;若所有的長寬比均大于所述字符總長度與第一比值的乘積且小于所述字符總長度與第二比值的乘積,將所述第一字符識別結果或第二字符識別結果作為所述待識別字符圖像的字符識別結果。考慮到當字符圖像的像素點比較對稱時,容易造成各個識別結果一致,如果這時出現了誤識別,則會把錯誤的結果當成最終輸出,而通過長寬比和字符總長度的比較,則可以有效避免該問題,進一步篩選出正確的識別結果。
在一個實施例中,對所述待識別字符圖像進行灰度化處理之后,獲得預處理字符圖像之前,還包括步驟:對灰度化后的待識別字符圖像進行圖像二值化,獲得二值圖像;對所述二值圖像進行圖像歸一化。
在一個實施例中,對所述二值圖像進行圖像歸一化包括:將所述二值圖像調整為黑色底面白色字符的樣式。
在一個實施例中,將所述二值圖像調整為黑色底面白色字符的樣式包括:獲取所述二值圖像中的白色部分的第一輪廓;對所述二值圖像進行黑白翻轉處理,獲取翻轉后的二值圖像中的白色部分的第二輪廓;分別計算所述第一輪廓的最大寬度和所述第二輪廓的最大寬度;若所述第一輪廓的最大寬度小于所述第二輪廓的最大寬度,保留黑白翻轉前的二值圖像,否則保留黑白翻轉后的二值圖像。
在一個實施例中,對所述二值圖像進行圖像歸一化還包括:將所述二值圖像的邊界去除,并將去除邊界后的二值圖像縮放至預設尺寸。
在一個實施例中,將所述二值圖像的邊界去除包括:對所述二值圖像分別進行水平積分投影和垂直積分投影;遍歷水平積分投影后所述二值圖像的行像素,獲取所述行像素中的起始行數和結束行數;遍歷垂直積分投影后所述二值圖像的列像素,獲取所述列像素中的起始列數和結束列數;根據起始行數、結束行數、起始列數和結束列數設置所述二值圖像中的感興趣區域,將所述二值圖像中除感興趣區域外的邊界去除。
一種字符識別裝置,包括:
字符圖像預處理模塊,用于獲取待識別字符圖像,對所述待識別字符圖像進行灰度化處理,獲得預處理字符圖像;
第一字符識別模塊,用于將所述預處理字符圖像作為一個整體輸入預設的字符識別模型,由所述字符識別模型計算出預處理字符圖像的第一字符識別結果,其中所述字符識別模型由字符圖像的訓練樣本集訓練設定神經網絡模型生成;
第二字符識別模塊,用于對所述預處理字符圖像進行若干次旋轉,將每次旋轉后的預處理字符圖像作為一個整體輸入所述字符識別模型,由所述字符識別模型計算出每次旋轉后的預處理字符圖像的第二字符識別結果;
字符識別結果確定模塊,用于根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符。
上述字符識別裝置,預先設置字符識別模型,然后將待識別字符圖像處理后整體輸入字符識別模型,通過字符識別模型對字符圖像進行整體識別,不再需要進行字符分割,從而避免了字符分割時由于字符粘連而造成的誤識別,提高了字符識別的準確度,該字符識別裝置有效魯棒,具有較大的應用價值。
一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現上述任意一項所述方法的步驟。
上述計算機設備,預先設置字符識別模型,然后將待識別字符圖像處理后整體輸入字符識別模型,通過字符識別模型對字符圖像進行整體識別,不再需要進行字符分割,從而避免了字符分割時由于字符粘連而造成的誤識別,提高了字符識別的準確度,該計算機設備有效魯棒,具有較大的應用價值。
一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現上述任意一項所述方法的步驟。
上述計算機可讀存儲介質,預先設置字符識別模型,然后將待識別字符圖像處理后整體輸入字符識別模型,通過字符識別模型對字符圖像進行整體識別,不再需要進行字符分割,從而避免了字符分割時由于字符粘連而造成的誤識別,提高了字符識別的準確度,該計算機可讀存儲介質有效魯棒,具有較大的應用價值。
附圖說明
圖1為一實施例的字符識別方法的流程示意圖;
圖2為一具體實施例的測試階段利用字符識別模型識別字符的流程示意圖;
圖3為一實施例的將二值圖像調整為黑底白字樣式的流程示意圖;
圖4為一實施例的對二值圖像去除邊界的流程示意圖;
圖5為另一實施例的字符識別方法的流程示意圖;
圖6為一具體實施例的字符識別方法的流程示意圖;
圖7為一實施例的字符識別裝置的結構示意圖;
圖8為一實施例的計算機設備的結構示意圖。
具體實施方式
為更進一步闡述本發明所采取的技術手段及取得的效果,下面結合附圖及較佳實施例,對本發明的技術方案,進行清楚和完整的描述。
如圖1所示,在一個實施例中,提供了一種字符識別方法,包括步驟:
s110、獲取待識別字符圖像,對所述待識別字符圖像進行灰度化處理,獲得預處理字符圖像;
待識別字符圖像即為需要識別字符的圖像。對待識別圖像進行灰度化處理可以根據現有技術中已有的方式實現,對圖像進行灰度化處理后獲得待識別字符圖像的預處理字符圖像。
s120、將所述預處理字符圖像作為一個整體輸入預設的字符識別模型,由所述字符識別模型計算出預處理字符圖像的第一字符識別結果,其中所述字符識別模型由字符圖像的訓練樣本集訓練設定神經網絡模型生成;
預設的字符識別模型為由訓練樣本集訓練設定神經網絡模型所生成的模型,字符識別模型用于對待識別字符圖像進行字符識別。設定神經網絡模型有多種類型,可選的,設定神經網絡模型為bp(backpropagation,反向傳播)神經網絡模型。訓練樣本集包括多個字符圖像訓練樣本,可選的,在獲得原始字符圖像后,對原始字符圖像進行灰度化、二值化和歸一化等一系列處理,得到字符圖像訓練樣本。預處理字符圖像作為一個整體輸入即不需要對預處理字符圖像進行字符分割,直接作為一個整體進行字符識別。將預處理字符圖像作為一個整體輸入字符識別模型后,字符識別模型得到字符識別結果a。
s130、對所述預處理字符圖像進行若干次旋轉,將每次旋轉后的預處理字符圖像作為一個整體輸入所述字符識別模型,由所述字符識別模型計算出每次旋轉后的預處理字符圖像的第二字符識別結果;
對預處理字符圖像進行旋轉的次數可以根據實際需要確定,每次旋轉后的預處理字符圖像均輸入字符識別模型,得到每次旋轉后的預處理字符圖像的字符識別結果。例如,由于預處理字符圖像有可能是正放或者反放,因此無法確定字符的方向,所以,如圖2所示,在一個實施例中,可以對預處理字符圖像進行三次旋轉:對預處理字符圖像a順時針旋轉90度得到預處理字符圖像b、對預處理字符圖像a順時針旋轉180度得到預處理字符圖像c和對預處理字符圖像c順時針旋轉90度得到預處理字符圖像d,預處理字符圖像a為s120中的預處理字符圖像。將三次旋轉后的預處理字符圖像分別輸入字符識別模型,即可以得到字符識別結果b、字符識別結果c和字符識別結果d。
s140、根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符。
本實施例所提供的字符識別方法可以通過相應的程序實現,程序運行在終端中,例如手機、平板電腦或者計算機中。該方法對字符圖像區域進行整體識別,省略了字符分割這一步驟,避免了字符分割時由于字符粘連而造成的誤識別,有效魯棒,具有較大的應用價值。另外,該方法通過圖像旋轉后各個字符識別結果的比較,有效避免了由于終端放置方式不同所引起的字符識別的誤差,提高了實際識別準確的概率。
為了進一步提高字符識別的準確度,在一個實施例中,對所述待識別字符圖像進行灰度化處理之后,獲得預處理字符圖像之前,還包括步驟:對灰度化后的待識別字符圖像進行圖像二值化,獲得二值圖像;對所述二值圖像進行圖像歸一化。需要說明的是,本發明并不對此進行限制,還可以僅進行圖像二值化的操作,或者僅進行圖像歸一化的操作,又或者在進行圖像二值化和圖像歸一化之外還進行其它圖像的處理。
圖像二值化就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現出明顯的黑白效果。圖像的二值化有利于圖像的進一步處理,使圖像變得簡單,而且數據量減小,能凸顯出感興趣的目標的輪廓。圖像二值化有多種實現方式,可選的,采用大津算法實現圖像二值化。
圖像歸一化就是通過一系列變換(即利用圖像的不變矩尋找一組參數使其能夠消除其他變換函數對圖像變換的影響),將待處理的原始圖像轉換成相應的唯一標準形式(該標準形式圖像對平移、旋轉、縮放等仿射變換具有不變特性)。圖像歸一化使得圖像可以抵抗幾何變換的攻擊。圖像歸一化有多種實現方式,例如,在一個實施例中,對所述二值圖像進行圖像歸一化包括s1101:將所述二值圖像調整為黑色底面白色字符的樣式。
如圖3所示,在一個實施例中,將所述二值圖像調整為黑色底面白色字符的樣式包括:
s1101a、獲取所述二值圖像中的白色部分的第一輪廓a;
提取二值圖像的白色部分的輪廓有多種實現方式,例如,采用函數cvfindcontours提取輪廓a。
s1101b、對所述二值圖像進行黑白翻轉處理,獲取翻轉后的二值圖像中的白色部分的第二輪廓b;
對二值圖像進行黑白翻轉處理即是將二值圖像中的白色像素點變為黑色像素點,同時將黑色像素點變為白色像素點。進行黑白翻轉后,可以通過函數cvfindcontours提取輪廓b。
s1101c、分別計算輪廓a的最大寬度maxw_a和輪廓b的最大寬度maxw_b;
計算輪廓的最大寬度可以根據現有技術中已有的方式實現。
s1101d、若輪廓a的最大寬度maxw_a小于輪廓b的最大寬度maxw_b,保留黑白翻轉前的二值圖像,否則保留黑白翻轉后的二值圖像。
翻轉前的二值圖像即為s1101a中的二值圖像。由于圖片為黑底白字時白色部分輪廓的最大寬度要小于圖片為白底黑字時白色部分輪廓的最大寬度,因此根據該規律可以判斷原圖是否是黑底白字的樣式,從而做出調整。
在另一個實施例中,對所述二值圖像進行圖像歸一化包括s1102:對所述二值圖像進行圖像歸一化還包括:將所述二值圖像的邊界去除,并將去除邊界后的二值圖像縮放至預設尺寸。需要說明的是,步驟s1102和步驟s1101可以同時執行,也可以擇一執行。預設尺寸可以根據實際需要進行確定,例如將二值圖像縮放至高度為50像素。
如圖4所示,在一個實施例中,將所述二值圖像的邊界去除包括:
s1102a、對所述二值圖像分別進行水平積分投影和垂直積分投影;
s1102b、遍歷水平積分投影后所述二值圖像的行像素,獲取所述行像素中的起始行數和結束行數;
s1102c、遍歷垂直積分投影后所述二值圖像的列像素,獲取所述列像素中的起始列數和結束列數;
s1102d、根據起始行數、結束行數、起始列數和結束列數設置所述二值圖像中的感興趣區域(roi,regionofinterest),將所述二值圖像中除感興趣區域外的邊界去除。起始行數、結束行數、起始列數和結束列數所圍起來的區域為感興趣區域。
需要說明的是,上述待識別字符圖像處理的過程也適用于字符識別模型中訓練樣本集的獲得,即獲得多個原始字符圖像后,可以采用上述方式對多個原始字符圖像進行灰度化處理、圖像二值化和圖像歸一化,然后通過多個圖像歸一化的字符圖像對設定的神經網絡模型進行訓練,保留網絡模型參數,獲得字符識別模型。
如圖5所示,在一個實施例中,根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符包括:
s1401、若所述第一字符識別結果和每個第二字符識別結果相同,計算旋轉前的預處理字符圖像的長寬比以及每次旋轉后的預處理字符圖像的長寬比;計算所述第一字符識別結果或第二字符識別結果的字符總長度;
由于實際商業應用中對字符識別準確率要求比較嚴格,因此需要確認步驟s120和步驟s130中的字符識別結果一致,才能提高實際識別準確的概率。因此該步驟中需要將獲得的各個字符識別結果進行比較,如果各個字符識別結果均一致,則保留該字符識別結果,如果存在字符識別結果不一致,則舍棄字符識別結果。例如,采用如圖2所示的識別方式獲得四個字符識別結果:字符識別結果a、字符識別結果b、字符識別結果c和字符識別結果d,如果字符識別結果a=字符識別結果b=字符識別結果c=字符識別結果d,則保留,若四次字符識別結果不一致,則舍棄該字符識別結果。
旋轉前的預處理字符圖像為步驟s120中的預處理字符圖像。例如,如圖2所示,該步驟即分別計算預處理字符圖像a、預處理字符圖像b、預處理字符圖像c和預處理字符圖像d的四個長寬比ratio。
由于各個字符識別結果均相同,所以只需要根據其中任意一次的字符識別結果計算字符總長度strlen。
s1402、若所有的長寬比均大于所述字符總長度與第一比值的乘積且小于所述字符總長度與第二比值的乘積,將所述第一字符識別結果或第二字符識別結果作為所述待識別字符圖像的字符識別結果。
第一比值a小于第二比值b,兩個比值可以根據實際需要進行確定。例如,將a設置為1/2,將b設置為3/2,分別判斷ratio∈((1/2)*strlen,(3/2)*strlen)是否成立,若各個ratio值屬于此范圍內,則將此字符識別結果確定為最終的識別結果,若部分ratio值不屬于此范圍內,則舍棄該字符識別結果。
當字符圖像的像素點或者內容比較對稱的時候,容易造成各個字符識別結果一致,如果出現誤識別,則會把錯誤的結果當成最終輸出,而通過圖5所示的實施例可以有效解決該問題,進一步篩選出正確的字符識別結果。
為了更好地理解本發明,下面結合一個具體實施例進行詳細介紹。
如圖6所示,一種字符識別方法包括訓練階段和測試階段:
s1、訓練階段:
s11、獲取包含多個字符圖像的訓練樣本集,對訓練樣本集進行灰度化;
s12、利用大津算法對灰度化后的訓練樣本集進行圖像二值化,獲得二值圖像;
s13、對二值圖像進行圖像歸一化,包括:將二值圖像調整為黑色底面白色字符的樣式;對二值圖像去邊界,并統一尺寸大小;其中調整樣式和去除邊界可以根據上面所述方式實現;
s14、取歸一化后的二值圖像訓練bp神經網絡模型,并保存神經網絡模型參數,至此得到訓練好的字符識別模型。
s2、測試階段:
s21、獲取待識別字符圖像,對待識別字符圖像進行灰度化;
s22、利用大津算法對灰度化后的待識別字符圖像進行圖像二值化,獲得二值圖像;
s23、對二值圖像進行圖像歸一化,包括:將二值圖像調整為黑色底面白色字符的樣式;對二值圖像去邊界,并統一尺寸大小;其中調整樣式和去除邊界可以根據上面所述方式實現;
s24、取歸一化后的二值圖像利用訓練好的bp神經網絡模型(字符識別模型)進行識別,得到識別結果a,然后將歸一化后的二值圖像順時針旋轉90度后用訓練好的bp神經網絡模型識別得到識別結果b,然后將歸一化后的二值圖像順時針旋轉180度后用訓練好的bp神經網絡模型識別得到識別結果c,然后將旋轉180度后的二值圖像順時針旋轉90度后用訓練好的bp神經網絡模型識別得到識別結果d,確保對四個方向的字符圖像分別識別一次得到四個識別結果,待下一步確定;
s25、判斷識別結果a=識別結果b=識別結果c=識別結果d是否成立,若四次識別結果相同,則保留識別結果,進入下一步驟,若四次識別結果不一致,則舍棄該結果;
s26、分別計算出四個待識別字符圖像的長寬比ratio以及得到的識別結果的字符總長度strlen。分別判斷ratio∈((1/2)*strlen,(3/2)*strlen)是否成立,若所有ratio值屬于此范圍內,則將此結果確定為最終的識別結果,若條件不成立,則舍棄該結果。
基于同一發明構思,本發明還提供一種字符識別裝置,下面結合附圖對本發明字符識別裝置的具體實施方式做詳細介紹。
如圖7所示,一種字符識別裝置,包括:
字符圖像預處理模塊110,用于獲取待識別字符圖像,對所述待識別字符圖像進行灰度化處理,獲得預處理字符圖像;
第一字符識別模塊120,用于將所述預處理字符圖像作為一個整體輸入預設的字符識別模型,由所述字符識別模型計算出預處理字符圖像的第一字符識別結果,其中所述字符識別模型由字符圖像的訓練樣本集訓練設定神經網絡模型生成;
第二字符識別模塊130,用于對所述預處理字符圖像進行若干次旋轉,將每次旋轉后的預處理字符圖像作為一個整體輸入所述字符識別模型,由所述字符識別模型計算出每次旋轉后的預處理字符圖像的第二字符識別結果;
字符識別結果確定模塊140,用于根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符。
本實施例所提供的字符識別裝置(字符分類器)可以運行在終端中,例如手機、平板電腦或者計算機中。該裝置對字符圖像區域進行整體識別,省略了字符分割這一步驟,避免了字符分割時由于字符粘連而造成的誤識別,有效魯棒,具有較大的應用價值。另外,該裝置通過圖像旋轉后各個字符識別結果的比較,有效避免了由于終端放置方式不同所引起的字符識別的誤差,提高了實際識別準確的概率。
在一個實施例中,字符識別結果確定模塊140在所述第一字符識別結果和每個第二字符識別結果相同時,計算旋轉前的預處理字符圖像的長寬比以及每次旋轉后的預處理字符圖像的長寬比;計算所述第一字符識別結果或第二字符識別結果的字符總長度;若所有的長寬比均大于所述字符總長度與第一比值的乘積且小于所述字符總長度與第二比值的乘積,將所述第一字符識別結果或第二字符識別結果作為所述待識別字符圖像的字符識別結果。當字符圖像的像素點或者內容比較對稱的時候,容易造成各個字符識別結果一致,如果出現誤識別,則會把錯誤的結果當成最終輸出,而通過該實施例可以有效解決該問題,進一步篩選出正確的字符識別結果。
為了進一步提高字符識別的準確度,在一個實施例中,字符圖像預處理模塊110對所述待識別字符圖像進行灰度化處理之后,獲得預處理字符圖像之前,還用于對灰度化后的待識別字符圖像進行圖像二值化,獲得二值圖像,對所述二值圖像進行圖像歸一化。
在一個實施例中,字符圖像預處理模塊110通過將所述二值圖像調整為黑色底面白色字符的樣式對所述二值圖像進行圖像歸一化。可選的,字符圖像預處理模塊110獲取所述二值圖像中的白色部分的第一輪廓;對所述二值圖像進行黑白翻轉處理,獲取翻轉后的二值圖像中的白色部分的第二輪廓;分別計算所述第一輪廓的最大寬度和所述第二輪廓的最大寬度;若所述第一輪廓的最大寬度小于所述第二輪廓的最大寬度,保留黑白翻轉前的二值圖像,否則保留黑白翻轉后的二值圖像。
在一個實施例中,字符圖像預處理模塊110還通過將所述二值圖像的邊界去除,并將去除邊界后的二值圖像縮放至預設尺寸對所述二值圖像進行圖像歸一化。可選的,字符圖像預處理模塊110對所述二值圖像分別進行水平積分投影和垂直積分投影;遍歷水平積分投影后所述二值圖像的行像素,獲取所述行像素中的起始行數和結束行數;遍歷垂直積分投影后所述二值圖像的列像素,獲取所述列像素中的起始列數和結束列數;根據起始行數、結束行數、起始列數和結束列數設置所述二值圖像中的感興趣區域,將所述二值圖像中除感興趣區域外的邊界去除。
上述字符識別裝置的其它技術特征與上述字符識別方法相同,在此不予贅述。
如圖8所示,在一個實施例中,提供了一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現以下步驟:
獲取待識別字符圖像,對所述待識別字符圖像進行灰度化處理,獲得預處理字符圖像;
將所述預處理字符圖像作為一個整體輸入預設的字符識別模型,由所述字符識別模型計算出預處理字符圖像的第一字符識別結果,其中所述字符識別模型由字符圖像的訓練樣本集訓練設定神經網絡模型生成;
對所述預處理字符圖像進行若干次旋轉,將每次旋轉后的預處理字符圖像作為一個整體輸入所述字符識別模型,由所述字符識別模型計算出每次旋轉后的預處理字符圖像的第二字符識別結果;
根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符。
在另一個實施例中,所述處理器執行所述程序時還實現以下步驟:根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符包括:若所述第一字符識別結果和每個第二字符識別結果相同,計算旋轉前的預處理字符圖像的長寬比以及每次旋轉后的預處理字符圖像的長寬比;計算所述第一字符識別結果或第二字符識別結果的字符總長度;若所有的長寬比均大于所述字符總長度與第一比值的乘積且小于所述字符總長度與第二比值的乘積,將所述第一字符識別結果或第二字符識別結果作為所述待識別字符圖像的字符識別結果。
在另一個實施例中,所述處理器執行所述程序時還實現以下步驟:對所述待識別字符圖像進行灰度化處理之后,獲得預處理字符圖像之前,還包括步驟:對灰度化后的待識別字符圖像進行圖像二值化,獲得二值圖像;對所述二值圖像進行圖像歸一化。
在另一個實施例中,所述處理器執行所述程序時還實現以下步驟:對所述二值圖像進行圖像歸一化包括:將所述二值圖像調整為黑色底面白色字符的樣式。
在另一個實施例中,所述處理器執行所述程序時還實現以下步驟:將所述二值圖像調整為黑色底面白色字符的樣式包括:獲取所述二值圖像中的白色部分的第一輪廓;對所述二值圖像進行黑白翻轉處理,獲取翻轉后的二值圖像中的白色部分的第二輪廓;分別計算所述第一輪廓的最大寬度和所述第二輪廓的最大寬度;若所述第一輪廓的最大寬度小于所述第二輪廓的最大寬度,保留黑白翻轉前的二值圖像,否則保留黑白翻轉后的二值圖像。
在另一個實施例中,所述處理器執行所述程序時還實現以下步驟:對所述二值圖像進行圖像歸一化還包括:將所述二值圖像的邊界去除,并將去除邊界后的二值圖像縮放至預設尺寸。
在另一個實施例中,所述處理器執行所述程序時還實現以下步驟:將所述二值圖像的邊界去除包括:對所述二值圖像分別進行水平積分投影和垂直積分投影;遍歷水平積分投影后所述二值圖像的行像素,獲取所述行像素中的起始行數和結束行數;遍歷垂直積分投影后所述二值圖像的列像素,獲取所述列像素中的起始列數和結束列數;根據起始行數、結束行數、起始列數和結束列數設置所述二值圖像中的感興趣區域,將所述二值圖像中除感興趣區域外的邊界去除。
上述計算機設備的其它技術特征與上述字符識別方法的技術特征相同,在此不予贅述。
在一個實施例中,提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現以下步驟:
獲取待識別字符圖像,對所述待識別字符圖像進行灰度化處理,獲得預處理字符圖像;
將所述預處理字符圖像作為一個整體輸入預設的字符識別模型,由所述字符識別模型計算出預處理字符圖像的第一字符識別結果,其中所述字符識別模型由字符圖像的訓練樣本集訓練設定神經網絡模型生成;
對所述預處理字符圖像進行若干次旋轉,將每次旋轉后的預處理字符圖像作為一個整體輸入所述字符識別模型,由所述字符識別模型計算出每次旋轉后的預處理字符圖像的第二字符識別結果;
根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符。
在另一個實施例中,該計算機程序被處理器執行時還實現以下步驟根據所述第一字符識別結果和所述第二字符識別結果得出所述待識別字符圖像中的字符包括:若所述第一字符識別結果和每個第二字符識別結果相同,計算旋轉前的預處理字符圖像的長寬比以及每次旋轉后的預處理字符圖像的長寬比;計算所述第一字符識別結果或第二字符識別結果的字符總長度;若所有的長寬比均大于所述字符總長度與第一比值的乘積且小于所述字符總長度與第二比值的乘積,將所述第一字符識別結果或第二字符識別結果作為所述待識別字符圖像的字符識別結果。
在另一個實施例中,該計算機程序被處理器執行時還實現以下步驟:對所述待識別字符圖像進行灰度化處理之后,獲得預處理字符圖像之前,還包括步驟:對灰度化后的待識別字符圖像進行圖像二值化,獲得二值圖像;對所述二值圖像進行圖像歸一化。
在另一個實施例中,該計算機程序被處理器執行時還實現以下步驟:對所述二值圖像進行圖像歸一化包括:將所述二值圖像調整為黑色底面白色字符的樣式。
在另一個實施例中,該計算機程序被處理器執行時還實現以下步驟:將所述二值圖像調整為黑色底面白色字符的樣式包括:獲取所述二值圖像中的白色部分的第一輪廓;對所述二值圖像進行黑白翻轉處理,獲取翻轉后的二值圖像中的白色部分的第二輪廓;分別計算所述第一輪廓的最大寬度和所述第二輪廓的最大寬度;若所述第一輪廓的最大寬度小于所述第二輪廓的最大寬度,保留黑白翻轉前的二值圖像,否則保留黑白翻轉后的二值圖像。
在另一個實施例中,該計算機程序被處理器執行時還實現以下步驟:對所述二值圖像進行圖像歸一化還包括:將所述二值圖像的邊界去除,并將去除邊界后的二值圖像縮放至預設尺寸。
在另一個實施例中,該計算機程序被處理器執行時還實現以下步驟:將所述二值圖像的邊界去除包括:對所述二值圖像分別進行水平積分投影和垂直積分投影;遍歷水平積分投影后所述二值圖像的行像素,獲取所述行像素中的起始行數和結束行數;遍歷垂直積分投影后所述二值圖像的列像素,獲取所述列像素中的起始列數和結束列數;根據起始行數、結束行數、起始列數和結束列數設置所述二值圖像中的感興趣區域,將所述二值圖像中除感興趣區域外的邊界去除。
上述計算機可讀存儲介質的其它技術特征與上述字符識別方法的技術特征相同,在此不予贅述。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。因此,本發明專利的保護范圍應以所附權利要求為準。