一種基於卷積神經網絡的單字圖文字識別方法及裝置與流程
2024-01-22 18:25:15 1
本發明涉及計算機應用技術領域,特別是涉及一種基於卷積神經網絡的單字圖文字識別方法及裝置。
背景技術:
隨著計算機技術的快速發展,模式識別技術也得到了快速發展,文字識別一直是模式識別領域的重要研究課題之一。
圖像中分離出的字符往往含有形變,如旋轉、扭曲、傾斜等。現有的文字識別方法是,針對字符的結構特徵,通過對字符的點陣採用非線性變換對變形字符進行校正,以減少類內方差。對於含有噪聲的字符,採用中值濾波、高斯濾波等濾波算法對其進行去噪處理。然後將處理後的字符進行二值化,對二值化圖像進行細化操作,提取文字的骨架特徵。對細化後的文字提取特徵向量,最後利用模板匹配、svw、knn等分類器進行文字識別。
這種方法存在一定的缺點,特別是在對漢字識別時,尤其明顯。因為漢字規模較大,同時相似漢字較多,從圖像中提取的字符信息往往形變較大,形變的類型各異,容易出現扭曲、傾斜、彈性形變、噪聲、筆畫斷裂缺失等現象。應用現有技術的這種文字識別方法進行文字識別,識別率不高,泛化能力較弱。
技術實現要素:
本發明的目的是提供一種基於卷積神經網絡的單字圖文字識別方法及裝置,以提高識別率,提升泛化能力。
為解決上述技術問題,本發明提供如下技術方案:
一種基於卷積神經網絡的單字圖文字識別方法,包括:
確定待進行文字識別的目標圖像;
在所述目標圖像中定位字符信息,提取各個字符;
根據提取到的各個字符,獲得所述目標圖像的多個單字圖;
分別將每個單字圖輸入到預先訓練得到的目標卷積神經網絡中,進行前向傳播,獲得每個單字圖的文字識別結果,所述目標卷積神經網絡通過大量單字圖樣本訓練得到。
在本發明的一種具體實施方式中,所述在所述目標圖像中定位字符信息,提取各個字符,包括:
在所述目標圖像中定位字符信息;
根據定位結果,對所述目標圖像中的字符進行切割操作,獲得所述目標圖像包含的各個字符。
在本發明的一種具體實施方式中,所述根據提取到的各個字符,獲得所述目標圖像的多個單字圖,包括:
針對提取到的每個字符,對該字符進行二值化處理,並將該字符的尺寸大小調整為設定第一尺寸大小;
將調整尺寸大小後的該字符放置於設定第二尺寸大小的背景圖像的中心,並進行正則化處理,獲得該字符對應的單字圖。
在本發明的一種具體實施方式中,通過以下步驟預先訓練得到所述目標卷積神經網絡:
獲得訓練數據集和測試數據集,所述訓練數據集中包含設定第一數量的單字圖樣本,所述測試數據集中包含設定第二數量的單字圖樣本,每個單字圖樣本的尺寸大小相同,每個單字圖樣本中包含的字符的尺寸大小相同;
初始化卷積神經網絡;
利用所述訓練數據集對所述卷積神經網絡進行訓練,調整網絡參數,確定訓練過程中的誤差;
在所述卷積神經網絡迭代設定次數時,將所述測試數據集輸入到所述卷積神經網絡中進行測試,獲得測試正確率;
重複執行所述利用所述訓練數據集對所述卷積神經網絡進行訓練,調整網絡參數,確定訓練過程中的誤差的步驟,直至所述卷積神經網絡的誤差低於預設第一閾值,且所述測試正確率高於預設第二閾值時,停止訓練,獲得所述目標卷積神經網絡。
在本發明的一種具體實施方式中,所述目標卷積神經網絡為多尺度卷積神經網絡。
一種基於卷積神經網絡的單字圖文字識別裝置,包括:
目標圖像確定模塊,用於確定待進行文字識別的目標圖像;
字符提取模塊,用於在所述目標圖像中定位字符信息,提取各個字符;
單字圖獲得模塊,用於根據提取到的各個字符,獲得所述目標圖像的多個單字圖;
文字識別模塊,用於分別將每個單字圖輸入到預先訓練得到的目標卷積神經網絡中,進行前向傳播,獲得每個單字圖的文字識別結果,所述目標卷積神經網絡通過大量單字圖樣本訓練得到。
在本發明的一種具體實施方式中,所述字符提取模塊,具體用於:
在所述目標圖像中定位字符信息;
根據定位結果,對所述目標圖像中的字符進行切割操作,獲得所述目標圖像包含的各個字符。
在本發明的一種具體實施方式中,所述單字圖獲得模塊,具體用於:
針對提取到的每個字符,對該字符進行二值化處理,並將該字符的尺寸大小調整為設定第一尺寸大小;
將調整尺寸大小後的該字符放置於設定第二尺寸大小的背景圖像的中心,並進行正則化處理,獲得該字符對應的單字圖。
在本發明的一種具體實施方式中,還包括訓練模塊,用於通過以下步驟預先訓練得到所述目標卷積神經網絡:
獲得訓練數據集和測試數據集,所述訓練數據集中包含設定第一數量的單字圖樣本,所述測試數據集中包含設定第二數量的單字圖樣本,每個單字圖樣本的尺寸大小相同,每個單字圖樣本中包含的字符的尺寸大小相同;
初始化卷積神經網絡;
利用所述訓練數據集對所述卷積神經網絡進行訓練,調整網絡參數,確定訓練過程中的誤差;
在所述卷積神經網絡迭代設定次數時,將所述測試數據集輸入到所述卷積神經網絡中進行測試,獲得測試正確率;
重複執行所述利用所述訓練數據集對所述卷積神經網絡進行訓練,調整網絡參數,確定訓練過程中的誤差的步驟,直至所述卷積神經網絡的誤差低於預設第一閾值,且所述測試正確率高於預設第二閾值時,停止訓練,獲得所述目標卷積神經網絡。
在本發明的一種具體實施方式中,所述目標卷積神經網絡為多尺度卷積神經網絡。
應用本發明實施例所提供的技術方案,確定待進行文字識別的目標圖像後,在目標圖像中定位字符信息,提取各個字符,根據提取到的各個字符,獲得目標圖像的多個單字圖,分別將每個單字圖輸入到預先訓練得到的目標卷積神經網絡中,進行前向傳播,獲得每個單字圖的文字識別結果。目標卷積神經網絡通過大量單字圖樣本訓練得到,提高了對單字圖的文字識別率,提升了泛化能力。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例中一種基於卷積神經網絡的單字圖文字識別方法的實施流程圖;
圖2為本發明實施例中多個單字圖樣本示意圖;
圖3為本發明實施例中卷積神經網絡模型的一種示意圖;
圖4為本發明實施例中一種基於卷積神經網絡的單字圖文字識別裝置的結構示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
參見圖1所示,為本發明實施例所提供的一種基於卷積神經網絡的單字圖文字識別方法的實施流程圖,該方法可以包括以下步驟:
s110:確定待進行文字識別的目標圖像。
在本發明實施例中,可以根據實際情況確定待進行文字識別的目標圖像。如將監控圖像確定為待進行文字識別的目標圖像。
s120:在目標圖像中定位字符信息,提取各個字符。
目標圖像中可能包含一組文字,或者一段文字。確定待進行文字識別的目標圖像後,可以對目標圖像中的字符信息進行定位,並提取目標圖像中的各個字符。
在本發明的一種具體實施方式中,步驟s120可以包括以下步驟:
步驟一:在目標圖像中定位字符信息;
步驟二:根據定位結果,對目標圖像中的字符進行切割操作,獲得目標圖像包含的各個字符。
為便於描述,將上述兩個步驟結合起來進行說明。
確定待進行文字識別的目標圖像後,可以在目標圖像中定位字符信息,具體的,可以根據現有技術定位方法進行字符信息的定位,本發明實施例對此不再贅述。
根據定位結果,對目標圖像中的字符進行切割操作,獲得目標圖像包含的各個字符。具體的,可以通過濾波方式去除目標圖像中的噪聲幹擾,利用hough變換去除幹擾線等,對於粘連字符,可以利用滴水算法進行字符切割。
這樣使得對於含有噪聲及筆畫斷裂的文字也能得到較好的識別效果。
s130:根據提取到的各個字符,獲得目標圖像的多個單字圖。
在步驟s120,提取出目標圖像的各個字符後,可以對提取到的各個字符進行預處理,獲得目標圖像的多個單字圖。如圖2所示,為多個單字圖樣本示意圖。
在本發明的一種具體實施方式中,步驟s130可以包括以下步驟:
第一個步驟:針對提取到的每個字符,對該字符進行二值化處理,並將該字符的尺寸大小調整為設定第一尺寸大小;
第二個步驟:將調整尺寸大小後的該字符放置於設定第二尺寸大小的背景圖像的中心,並進行正則化處理,獲得該字符對應的單字圖。
為便於描述,將上述兩個步驟結合起來進行說明。
在本發明實施例中,針對提取到的每個字符,可以對該字符按照設定調整規則進行調整。具體的,可以先對提取到的每個字符進行二值化處理,即將背景像素點的灰度值置為0,將字符像素點的灰度值置為1。調整所有字符的尺寸大小為設定第一尺寸大小。針對每個字符,將該字符放置於設定第二尺寸大小的背景圖像的中心,該背景圖像中所有像素點的灰度值均為0。對新的字符進行正則化處理,均值為0,方差為1。從而可以獲得每個字符對應的單字圖,也即目標圖像的多個單字圖。
s140:分別將每個單字圖輸入到預先訓練得到的目標卷積神經網絡中,進行前向傳播,獲得每個單字圖的文字識別結果。
目標卷積神經網絡通過大量單字圖樣本訓練得到。
在本發明實施例中,預先訓練得到目標卷積神經網絡。卷積神經網絡是一種模擬大腦神經元來實現機器學習的算法,是計算機視覺與人工智慧領域的主要算法之一。
在本發明的一種具體實施方式中,可以通過以下步驟預先訓練得到目標卷積神經網絡:
步驟一:獲得訓練數據集和測試數據集,訓練數據集中包含設定第一數量的單字圖樣本,測試數據集中包含設定第二數量的單字圖樣本,每個單字圖樣本的尺寸大小相同,每個單字圖樣本中包含的字符的尺寸大小相同;
步驟二:初始化卷積神經網絡;
步驟三:利用訓練數據集對卷積神經網絡進行訓練,調整網絡參數,確定訓練過程中的誤差;
步驟四:在卷積神經網絡迭代設定次數時,將測試數據集輸入到卷積神經網絡中進行測試,獲得測試正確率;
步驟五:重複執行步驟三的操作,直至卷積神經網絡的誤差低於預設第一閾值,且測試正確率高於預設第二閾值時,停止訓練,獲得目標卷積神經網絡。
為便於描述,將上述五個步驟結合起來進行說明。
在本發明實施例中,通過對卷積神經網絡的訓練可以對網絡參數進行調整,得到目標卷積神經網絡。
在訓練之初,首先需要獲得訓練數據集和測試數據集。具體的,可以通過採集等方式預先獲得大量的樣本圖像,從大量的樣本圖像中定位字符信息,提取各個樣本圖像中的各個字符。通過濾波方式可以去除樣本圖像中的噪聲幹擾,利用hough變換去除幹擾線等,對於粘連字符,可以利用滴水算法進行字符切割。對從各個樣本圖像中提取出的每個字符進行二值化處理,調整所有字符的尺寸大小為設定第一尺寸大小,並將調整尺寸大小後的每個字符放置於設定第二尺寸大小的背景圖像的中心,進行正則化處理,獲得各個字符對應的單字圖,即可獲得大量的樣本圖像對應的多個單字圖樣本。
將大量的樣本圖像對應的多個單字圖樣本分為兩個數據集,一個為訓練數據集,一個為測試數據集。訓練數據集中包含設定第一數量的單字圖樣本,測試數據集中包含設定第二數量的單字圖樣本,每個單字圖樣本的尺寸大小相同,每個單字圖樣本中包含的字符的尺寸大小相同。
初始化卷積神經網絡,設定網絡結構和初始網絡參數。
利用訓練數據集對卷積神經網絡進行訓練,調整網絡參數。具體的,可以將訓練數據集中的單字圖樣本隨機分組進行訓練,調整網絡參數。確定訓練過程中的誤差。
在該卷積神經網絡迭代設定次數時,可以將測試數據集輸入到卷積神經網絡中進行測試,獲得測試正確率。以此驗證當前卷積神經網絡是否已達到預設的測試要求。
如果測試正確率不高於預設第二閾值,則需要繼續對卷積神經網絡進行訓練。在這種情況下,可以重複執行利用訓練數據集對卷積神經網絡進行訓練,調整網絡參數,確定訓練過程中的誤差的步驟。
當卷積神經網絡的誤差低於預設第一閾值,且測試正確率高於預設第二閾值時,停止訓練,獲得目標卷積神經網絡。
其中,第一閾值、第二閾值可以根據實際情況進行設定和調整,第二閾值也即為正確率飽和值,本發明實施例對此不做限制。
在本發明實施例中,目標卷積神經網絡具體可以為多尺度卷積神經網絡。
在對卷積神經網絡進行訓練時,初始的卷積神經網絡模型示意圖如圖3所示。
卷積神經網絡為雙尺度卷積神經網絡,包括大尺度網絡分支和小尺度網絡分支。將單字圖樣本作為大尺度網絡分支的輸入層圖像,輸入到大尺度網絡分支中,同時對輸入層圖像進行尺寸變換,得到小尺度網絡分支的輸入層圖像。假設大尺度網絡分支的輸入層圖像的尺寸大小為48×48,小尺度網絡分支的輸入層圖像的尺寸大小為32×32。
隨機初始化卷積神經網絡參數等信息,設置網絡層之間的連結。在大尺度網絡分支上,對相應輸入層圖像利用3×3大小卷積核進行卷積,加上偏移量,通過激活函數得到lc1層。對lc1層利用3×3大小卷積核進行卷積得到幾個lc2層特徵圖。其中lc1層與lc2層之間為隨機連接。對lc2層利用2×2模板進行池化,得到池化層ls3。對ls3層利用3×3大小卷積核進行卷積,加上偏移量,經過激活函數得到卷積層lc4層,緊接著依次為池化層ls5、卷積層lc6、池化層ls7。將池化層ls7乘以參數矩陣,同時加上偏移量,通過激活函數得到全連接層lf8。
在小尺度網絡分支上,採用5×5大小的卷積核。對相應輸入層圖像進行卷積,加上偏移量,結果輸入激活函數得到卷積層sc1。對sc1利用2×2模板進行池化,得到池化層ss2。並依次得到卷積層sc3、池化層ss4、全連接層sf5。
將全連接層lf8、sf5連接,同時乘以參數矩陣,加上偏移量,結果輸入激活函數得到全連接層f。卷積神經網絡輸出層採用softmax函數得到輸出向量,輸出向量與目標向量存在一定誤差,利用梯度下降法進行反向傳播,調整網絡參數。通過多次訓練及測試,即可得到目標卷積神經網絡。得到的目標卷積神經網絡也為雙尺度卷積神經網絡。
分別將目標圖像對應的每個單字圖輸入到目標卷積神經網絡中,進行前向傳播,可以獲得每個單字圖的文字識別結果。
應用本發明實施例所提供的方法,確定待進行文字識別的目標圖像後,在目標圖像中定位字符信息,提取各個字符,根據提取到的各個字符,獲得目標圖像的多個單字圖,分別將每個單字圖輸入到預先訓練得到的目標卷積神經網絡中,進行前向傳播,獲得每個單字圖的文字識別結果。目標卷積神經網絡通過大量單字圖樣本訓練得到,提高了對單字圖的文字識別率,提升了泛化能力。
相應於上面的方法實施例,本發明實施例還提供了一種基於卷積神經網絡的單字圖文字識別裝置,下文描述的一種基於卷積神經網絡的單字圖文字識別裝置與上文描述的一種基於卷積神經網絡的單字圖文字識別方法可相互對應參照。
參見圖4所示,該裝置包括以下模塊:
目標圖像確定模塊410,用於確定待進行文字識別的目標圖像;
字符提取模塊420,用於在目標圖像中定位字符信息,提取各個字符;
單字圖獲得模塊430,用於根據提取到的各個字符,獲得目標圖像的多個單字圖;
文字識別模塊440,用於分別將每個單字圖輸入到預先訓練得到的目標卷積神經網絡中,進行前向傳播,獲得每個單字圖的文字識別結果,目標卷積神經網絡通過大量單字圖樣本訓練得到。
應用本發明實施例所提供的裝置,確定待進行文字識別的目標圖像後,在目標圖像中定位字符信息,提取各個字符,根據提取到的各個字符,獲得目標圖像的多個單字圖,分別將每個單字圖輸入到預先訓練得到的目標卷積神經網絡中,進行前向傳播,獲得每個單字圖的文字識別結果。目標卷積神經網絡通過大量單字圖樣本訓練得到,提高了對單字圖的文字識別率,提升了泛化能力。
在本發明的一種具體實施方式中,字符提取模塊420,具體用於:
在目標圖像中定位字符信息;
根據定位結果,對目標圖像中的字符進行切割操作,獲得目標圖像包含的各個字符。
在本發明的一種具體實施方式中,單字圖獲得模塊430,具體用於:
針對提取到的每個字符,對該字符進行二值化處理,並將該字符的尺寸大小調整為設定第一尺寸大小;
將調整尺寸大小後的該字符放置於設定第二尺寸大小的背景圖像的中心,並進行正則化處理,獲得該字符對應的單字圖。
在本發明的一種具體實施方式中,還包括訓練模塊,用於通過以下步驟預先訓練得到目標卷積神經網絡:
獲得訓練數據集和測試數據集,訓練數據集中包含設定第一數量的單字圖樣本,測試數據集中包含設定第二數量的單字圖樣本,每個單字圖樣本的尺寸大小相同,每個單字圖樣本中包含的字符的尺寸大小相同;
初始化卷積神經網絡;
利用訓練數據集對卷積神經網絡進行訓練,調整網絡參數,確定訓練過程中的誤差;
在卷積神經網絡迭代設定次數時,將測試數據集輸入到卷積神經網絡中進行測試,獲得測試正確率;
重複執行利用訓練數據集對卷積神經網絡進行訓練,調整網絡參數,確定訓練過程中的誤差的步驟,直至卷積神經網絡的誤差低於預設第一閾值,且測試正確率高於預設第二閾值時,停止訓練,獲得目標卷積神經網絡。
在本發明的一種具體實施方式中,目標卷積神經網絡為多尺度卷積神經網絡。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、計算機軟體或者二者的結合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬體、處理器執行的軟體模塊,或者二者的結合來實施。軟體模塊可以置於隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬碟、可移動磁碟、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的技術方案及其核心思想。應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護範圍內。