本發(fā)明涉及一種光學字符識別(OCR)訓練樣本生成方法,更具體的,涉及一種快速生成OCR訓練樣本的自適應方法及系統(tǒng)。
背景技術:
OCR (Optical Character Recognition,光學字符識別)是指電子設備(例如掃描儀或數(shù)碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程?,F(xiàn)有技術中基于統(tǒng)計的機器學習方法,在OCR任務中,需要百萬量級的訓練樣本,來提取字符的有效特征,因此樣本的真實性和有效性在OCR任務中占據(jù)重要地位。在樣本生成上,國內(nèi)公開的方法均一般利用OpenCV自動生成字符圖片,然后使用不同頻域帶寬的高斯濾波器生成模糊的樣本,以此模擬真實情況下相機拍攝紙質(zhì)文檔所產(chǎn)生的信息失真,再利用得到的模糊照片,提取字符的輪廓,最后將輪廓作為卷積神經(jīng)網(wǎng)絡的輸入樣本訓練模型。
一般在拍攝文檔過程中,諸多因素影響最終文檔的成像質(zhì)量,例如相機鏡頭的濾光效應,被拍攝文檔的水平姿態(tài),拍攝相機的抖動和相對運動,相機CMOS的感光能力和白平衡等,均能夠影響拍攝到的字符照片的質(zhì)量。背景技術中提到的高斯濾波模擬真實場景的方法,存在以下技術問題:
1)從被拍攝物體到相機成像平面的映射不是一個簡單的高斯函數(shù)模型,高斯函數(shù)是對這一過程的假設和簡化,所以高斯模糊并不能得到精確的真實情況下的樣本,這種方式生成的樣本和真實情況比較,會帶有人為的噪聲,影響算法對真實字符照片的判斷;
2)高斯濾波器不能模擬真實情況下相機和文檔存在相對運動時導致的模糊,因為高斯濾波是全局應用到待處理字符圖片,模擬的是全局效果,而真實情況下運動模糊一般是局部的字符模糊,因為在景深范圍內(nèi),圖像的成像是清晰的,只有超出景深的范圍部分,成像才是模糊的;
3)高斯濾波器的頻域帶寬比較難選擇,這會導致大量不真實的樣本產(chǎn)生,這會導致基于統(tǒng)計的機器學習方法的失敗。
技術實現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術中存在的技術問題之一。
為此,本發(fā)明的目的在于,本發(fā)明提出一種快速生成在各種真實場景下的訓練樣本的方法,沒有語言的限制,能夠自適應各種真實場景,沒有人為設定高斯濾波器的頻率帶寬的過程,并且能夠模擬相機和文檔的相對運動導致的模糊,直接生成真實使用情況下的訓練樣本。
為實現(xiàn)上述目的,本發(fā)明提供了一種用于快速生成OCR訓練樣本的自適應方法,其特征在于,包括如下步驟:
步驟1,模板制作,利用編輯器生成模板字符數(shù)據(jù),并在模板數(shù)據(jù)的上下左右標記四個特征點,將模板數(shù)據(jù)打印出來作為模板;
步驟2,選取屏幕坐標系作為參考坐標系,在輯器中得到所述模板中所述四個特征點及每個所述字符的中心坐標,對模板進行拍照并保證模板上每個所述字符的輪廓清晰,采用相關算法獲取相機圖像坐標系下每個所述字符的中心點的坐標;
步驟3,在不同條件下對模板進行多組不同清晰度的拍照,采用圖像形態(tài)學方法,提取出模板上下左右四個所述特征點的位置坐標;
步驟4,樣本生成,利用步驟2中屏幕坐標系下的所述特征點坐標與步驟3中所述提取的特征點坐標得到兩個坐標系之間的線性變換矩陣,再利用該線性變換矩陣得到步驟2中屏幕坐標系下所述字符中心坐標在步驟3中所拍攝的照片中所對應的字符中心坐標。
更具體的,所述步驟1中的特征點為十字交叉符號。
更具體的,所述步驟2中對模板進行拍照并保證模板上每個所述字符的輪廓清晰,采用相關算法獲取相機圖像坐標系下每個所述字符的中心點的坐標包括:
對模板拍照,保證模板上的每個字符輪廓清晰,選取相機圖像坐標系為參考坐標系,對得到的圖像首先二值化,然后利用圖像形態(tài)學或者模板匹配找到所述特征點,再采用行分割和列分割算法計算得到每個所述字符的中心點坐標。
更具體的,所述步驟3具體包括:
在不同距離下,采用不同品牌的攝像頭,加入適量抖動對所述模板進行拍照,得到所述模板不同清晰度的樣本圖像,拍照過程中保證能夠肉眼看到四個所述特征點,然后,采用圖像形態(tài)學方法,提取出所述模板上所述特征點的位置坐標。
根據(jù)本發(fā)明的另一方面,還提供了一種用于快速生成OCR訓練樣本的自適應系統(tǒng),該系統(tǒng)包括:
模板制作模塊,利用編輯器生成模板字符數(shù)據(jù),并在模板數(shù)據(jù)的上下左右標記四個特征點,將模板數(shù)據(jù)打印出來作為模板;
字符中心坐標計算模塊,選取屏幕坐標系作為參考坐標系,得到編輯器中下得到所述模板中所述四個特征點及每個所述字符的中心坐標,對模板進行拍照并保證模板上每個所述字符的輪廓清晰,采用相關算法獲取相機圖像坐標系下每個所述字符的中心點的坐標;
特征點提取模塊,在不同條件下對模板進行多組不同清晰度的拍照,采用圖像形態(tài)學方法,提取出模板上下左右四個所述特征點的位置坐標;
樣本生成模塊,利用所述字符中心坐標計算模塊中屏幕坐標系下的所述特征點坐標與所述特征點提取模塊中所述提取的特征點坐標得到兩個坐標系之間的線性變換矩陣,再利用該線性變換矩陣得到步驟2中屏幕坐標系下所述字符中心坐標在步驟3中所拍攝的照片中所對應的字符中心坐標。
更具體的,所述模板制作模塊中的特征點為十字交叉符號。
更具體的,所述特征點提取模塊中對模板進行拍照并保證模板上每個所述字符的輪廓清晰,采用相關算法獲取相機圖像坐標系下每個所述字符的中心點的坐標具體實現(xiàn)為:
對模板拍照,保證模板上的每個字符輪廓清晰,取相機圖像坐標系為參考坐標系,對得到的圖像首先二值化,然后利用圖像形態(tài)學或者模板匹配找到所述特征點,采用行分割和列分割算法計算得到每個所述字符的中心點坐標。
更具體的,所述特征點提取模塊實現(xiàn)為:
在不同距離下,采用不同品牌的攝像頭,加入適量抖動對所述模板進行拍照,得到所述模板不同清晰度的樣本圖像,拍照過程中保證能夠肉眼看到四個所述特征點,然后,采用圖像形態(tài)學方法,提取出所述模板上所述特征點的位置坐標。
本發(fā)明通過設計一種快速生成在各種真實場景下的訓練樣本的方法,能夠自適應各種真實場景,沒有語言的限制,沒有人為設定高斯濾波器的頻率帶寬的過程,并且能夠模擬相機和文檔的相對運動導致的模糊,直接生成真實使用情況下的訓練樣本,提高了樣本生成的速率及真實性。
本發(fā)明的附加方面和優(yōu)點將在下面的描述部分中給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1示出了根據(jù)本發(fā)明一種用于快速生成OCR訓練樣本的自適應方法的流程圖;
圖2示出了本發(fā)明一實施例的用于快速生成OCR訓練樣本的自適應方法流程圖;
圖3示出了根據(jù)本發(fā)明實施例生成的OCR訓練樣本效果圖;
圖4示出了根據(jù)背景技術生成的OCR訓練樣本效果圖;
圖5示出了本發(fā)明一種用于快速生成OCR訓練樣本的自適應系統(tǒng)的系統(tǒng)框圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式對本發(fā)明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的方式來實施,因此,本發(fā)明的保護范圍并不受下面公開的具體實施例的限制。
圖1示出了根據(jù)本發(fā)明一種用于快速生成OCR訓練樣本的自適應方法的流程圖。
如圖1所示,根據(jù)本發(fā)明的一種用于快速生成OCR訓練樣本的自適應方法,該方法包括如下步驟:
步驟1,模板制作,利用編輯器生成模板字符數(shù)據(jù),并在模板數(shù)據(jù)的上下左右標記四個特征點,將模板數(shù)據(jù)打印出來作為模板;
步驟2,選取屏幕坐標系作為參考坐標系,在編輯器中得到所述模板中所述四個特征點及每個所述字符的中心坐標,對模板進行拍照并保證模板上每個所述字符的輪廓清晰,采用相關算法獲取相機圖像坐標系下每個所述字符的中心點的坐標;
步驟3,在不同條件下對模板進行多組不同清晰度的拍照,采用圖像形態(tài)學方法,提取出模板上下左右四個所述特征點的位置坐標;
步驟4,樣本生成,利用步驟2中屏幕坐標系下的所述特征點坐標與步驟3中所述提取的特征點坐標得到兩個坐標系之間的線性變換矩陣,再利用該線性變換矩陣得到步驟2中屏幕坐標系下所述字符中心坐標在步驟3中所拍攝的照片中所對應的字符中心坐標。
更具體的,所述步驟1中的特征點為十字交叉符號。
更具體的,所述步驟2中在編輯器中得到上下左右四個點以及每個字符的中心坐標,這個參考坐標系是屏幕坐標系,得到的坐標點是屏幕上的像素點的表示,在不同分辨率的顯示器上可能有不同的坐標表示,但這并不影響本發(fā)明的技術效果。對模板圖像拍照,保證模板上的每個字符輪廓清晰即可,對得到的圖像首先二值化,然后尋找上下左右的四個標記點,這個可以用圖像形態(tài)學計算或者模板匹配得到。然后采用行分割和列分割算法將得到每個字符的中心點坐標,這個參考坐標系是相機圖像坐標系,得到的數(shù)值和在屏幕坐標系下得到的數(shù)值一般是不一樣的,但是他們之間僅僅通過平移旋轉(zhuǎn)和縮放操作,即可實現(xiàn)等價。
更具體的,所述步驟3具體包括:
在不同距離下,采用不同品牌的攝像頭,加入適量抖動對所述模板進行拍照,得到所述模板不同清晰度的樣本圖像,拍照過程中保證能夠肉眼看到四個所述特征點,然后,采用圖像形態(tài)學方法,提取出所述模板上所述特征點的位置坐標。之所以采用形態(tài)學,因其速度比較快,可以根據(jù)區(qū)域的長度或者寬度來提取特征點,本發(fā)明不限于此,也可以采用其它方法提取特征點。
更具體的,所述步驟2和步驟3中分別得到了不同參考坐標系下的特征點坐標,這兩個參考坐標系之間存在一個變換,使得在這兩個坐標系下同一個物體的坐標表示相等。這就是本發(fā)明的核心思想,本發(fā)明就是利用線性空間變換的思想,由兩個參考坐標系之間的轉(zhuǎn)換,解得這兩個參考坐標系之間的線性變換矩陣,這樣利用步驟2中比較清晰的字符坐標信息,經(jīng)過同樣的線性變換矩陣后,可得到步驟3中對應字符的坐標,實現(xiàn)了樣本的分割。步驟3中比較模糊的字符,或者左右結(jié)構(gòu)的字符,一般比較難分割出來,但是線性變換使得可以先得到清晰條件下的字符坐標,然后經(jīng)過變換得到模糊樣本下的字符坐標,這樣得到的樣本,比用高斯濾波器生成的樣本,更真實。而且速度快,因為一個模板上面可以設計636個字符左右,這樣一次変換就能得到636個樣本,而且可以批處理。
需要說明的是,本發(fā)明有兩個關鍵點:1)在拍攝模板照片的時候,盡量將保持相機鏡頭的中心線軸垂直于模板,減少鏡頭畸變帶來的影響;2)保持模板(紙張)的平整度,類似于剛體平面(不要褶皺紙張),在計算模板照片頂點的時候,保證肉眼能夠看清特征點(十字交叉點),方便在圖像中定位到準確的坐標點。
圖2示出了本發(fā)明一實施例的一種用于快速生成OCR訓練樣本的自適應方法流程圖。
如圖2所示, 首先,準備一份需要生成的字符樣本列表并在編輯器中均勻排列,在A4紙的上下左右標記一個十字交叉符號,再用A4紙打印出來;在編輯器中得到上下左右四個點以及每個字符的中心坐標,這個參考坐標系是屏幕坐標系;對模板圖像拍照,確保模板上的每個字符輪廓清晰,對得到的拍照圖像二值化,利用圖像形態(tài)學計算或者模板匹配尋找上下左右的四個標記點,然后采用行分割和列分割算法將得到每個字符的中心點坐標,這個參考坐標系是相機圖像坐標系;在真實環(huán)境下,選取不同距離,不同品牌的攝像頭,加入適量抖動對所述模板進行拍照,得到所述模板不同清晰度的樣本圖像,拍照過程中保證能夠肉眼看到四個所述特征點,然后,采用圖像形態(tài)學方法,提取出所述模板上所述特征點的位置坐標;利用屏幕坐標系下的所述特征點坐標與真實拍照環(huán)境中相機圖像坐標系下提取的特征點坐標得到兩個坐標系之間的線性變換矩陣,再利用該線性變換矩陣得到屏幕坐標系下所述字符中心坐標在真實環(huán)境下所拍攝的照片中所對應的字符中心坐標。
圖3示出了根據(jù)本發(fā)明實施例生成的OCR訓練樣本效果圖,圖4示出了根據(jù)背景技術生成的OCR訓練樣本效果圖,由結(jié)果可知,本發(fā)明中經(jīng)過變換得到模糊樣本下的字符坐標樣本,比用高斯濾波器生成的樣本,更真實,而且速度更快。
根據(jù)本發(fā)明的另一方面,還提供了一種用于快速生成OCR訓練樣本的自適應系統(tǒng),圖5示出了本發(fā)明一種用于快速生成OCR訓練樣本的自適應系統(tǒng)的系統(tǒng)框圖。
如圖5所示,該系統(tǒng)包括:
模板制作模塊,利用編輯器生成模板字符數(shù)據(jù),并在模板數(shù)據(jù)的上下左右標記四個特征點,將模板數(shù)據(jù)打印出來作為模板;
字符中心坐標計算模塊,選取屏幕坐標系作為參考坐標系,得到編輯器中下得到所述模板中所述四個特征點及每個所述字符的中心坐標,對模板進行拍照并保證模板上每個所述字符的輪廓清晰,采用相關算法獲取相機圖像坐標系下每個所述字符的中心點的坐標;
特征點提取模塊,在不同條件下對模板進行多組不同清晰度的拍照,采用圖像形態(tài)學方法,提取出模板上下左右四個所述特征點的位置坐標;
樣本生成模塊,利用所述字符中心坐標計算模塊中屏幕坐標系下的所述特征點坐標與所述特征點提取模塊中所述提取的特征點坐標得到兩個坐標系之間的線性變換矩陣,再利用該線性變換矩陣得到步驟2中屏幕坐標系下所述字符中心坐標在步驟3中所拍攝的照片中所對應的字符中心坐標。
更具體的,所述模板制作模塊中的特征點為十字交叉符號。
更具體的,所述特征點提取模塊中對模板進行拍照并保證模板上每個所述字符的輪廓清晰,采用相關算法獲取相機圖像坐標系下每個所述字符的中心點的坐標具體實現(xiàn)為:
對模板拍照,保證模板上的每個字符輪廓清晰,選取相機圖像坐標系為參考坐標系,對得到的圖像首先二值化,然后利用圖像形態(tài)學或者模板匹配找到所述特征點,采用行分割和列分割算法計算得到每個所述字符的中心點坐標。
更具體的,所述特征點提取模塊實現(xiàn)為:
在不同距離下,采用不同品牌的攝像頭,加入適量抖動對所述模板進行拍照,得到所述模板不同清晰度的樣本圖像,拍照過程中保證能夠肉眼看到四個所述特征點,然后,采用圖像形態(tài)學方法,提取出所述模板上所述特征點的位置坐標。
本發(fā)明能夠自適應各種真實場景,沒有語言的限制,沒有人為設定高斯濾波器的頻率帶寬的過程,并且能夠模擬相機和文檔的相對運動導致的模糊,直接生成真實使用情況下的訓練樣本,提高了樣本生成的速率及真實性。
在本說明書的描述中,術語“一個實施例”、“具體實施例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或?qū)嵗6?,描述的具體特征、結(jié)構(gòu)、材料或特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。