使用Tesseract OCR 提取復雜圖像中的文字

来源:互联网 发布:淘宝网跑步机价格 编辑:程序博客网 时间:2024/05/16 04:53

http://www.cnblogs.com/physoft/archive/2011/07/15/2107417.html

Tesseract OCR 文字識別庫識別率還是非常高的,但是前提是圖像背景簡單,如果有復雜的背景,識別率幾乎為0.

下面介紹從具有復雜背景圖像中應用 Tesseract OCR提取文字的關鍵技巧。以我做的提取運動員號碼的項目為例。

測試圖例:更多測試圖例,請訪問http://www.physoft.net/?p=554

1. 前處理。

    前處理主要完成兩個任務:

    a. 定位:根據目標圖像的特征定位目標的區域。如圖例,需要定位每個運動員數字標簽的標簽區域。Tesseract 對以文字為主體的圖像識別率還是非常不錯的。所以我們需要將定位到的區域摳出來做後面的處理,再給Tesseract 識別。定位是非常困難的,涉及到目標圖像的特征,一般來說是幾何特征。但是因為圖像復雜,特征常常也被其他物體破壞(物理上的破壞,或者光照、霧,遮擋破壞)。

    b. 二值化:Tesseract 號稱可以處理color圖像,但是估計只有對二值化的圖像,識別率才能達到可接受的程度。所以二值化可以極大的提高Tesseract識別率。將第一步定位到的局部圖像二值化。這一步相對第一步要簡單很多,但是仍然很具有挑戰性。必定二值化的結果比較良好,否則 Tesseract 就有意見了。

 前處理是成敗的關鍵,也是最難的部分。前處理做好了,Tesseract 就聽話了。前處理一般來說需要大量的圖像處理技巧。

2. 錯誤文字的剔除:

   a. 這一步相對簡單,調用Tesseract,使用makebox參數,從output文件中獲取提取到的結果,包括位置,大小。根據前處理中定位步驟中獲取的幾何特征,來過濾output中結果。如文字過寬,過小,順序不對等。注意,Tesseract 輸出的文字區域經常有區域重疊等現象,需要先使用程序重整。

   b. 使用Tesseract的tord_display_ratings,根據准確度來淘汰低准確度的文字。

   c. 多研究Tesseract配置

3. 除1,2外,Tesseract的training也是很重要的,而且train的樣例越多越好。


原创粉丝点击