Android文字識別應用開發資料整理

jopen 10年前發布 | 58K 次閱讀 Android開發 移動開發 Tesseract OCR

前言

一、Tesseract OCR引擎

  Tesseract OCR是HP公司于1985~1995年間開發的商業級OCR(Optical Character Reader, 光學字符閱讀器)引擎,并于2005年開放源代碼。以下是它sourceforge上的網址:

  http://sourceforge.net/projects/tesseract-ocr/?source=directory

現在已轉移到谷歌的代碼服務下:

  https://code.google.com/p/tesseract-ocr/

源碼和字庫的下載列表:

  https://code.google.com/p/tesseract-ocr/downloads/list

谷歌的服務器在國內不穩定,可以從http://pkgs.fedoraproject.org下載到所需的軟件包和字庫包:

  >源碼http://pkgs.fedoraproject.org/repo/pkgs/tesseract/tesseract-ocr-3.02.02.tar.gz/

  >中文字庫http://pkgs.fedoraproject.org/repo/pkgs/tesseract-langpack/tesseract-ocr-3.02.chi_sim.tar.gz/

  >英文字庫http://pkgs.fedoraproject.org/repo/pkgs/tesseract/tesseract-ocr-3.02.eng.tar.gz/


二、面向Android的Tesseract工具

  tess-two是Tesseract Tools for Android (tesseract-android-tools) 的一份拷貝,并添加了一些功能。Tesseract Tools for Android是Tesseract OCR和Leptonica圖像處理庫的Android API與構建文件的集合。github上的網址為:

  https://github.com/rmtheis/tess-two

關于tess-two的編譯過程,可以參考上述網址,根據我的編譯經歷,發現執行"android update project --path ."一步是,需要指定--target選項,其參數通過命令"android list targets"獲取到id值,再指定,如下(記得連接好你的Android手機)。

root@Leon:/home/work/tess-two# android list targets

Available Android targets:

id: 1 or "android-18"
Name: Android 4.3
Type: Platform
API level: 18
Revision: 1
Skins: WVGA854, WXGA800, WSVGA, WVGA800 (default), WQVGA400, WXGA720, QVGA, WQVGA432, WXGA800-7in, HVGA
ABIs : armeabi-v7a
root@Leon:/home/work/tess-two# android update project --path . --target 1 </span></pre></div> 其中的"1"便是來自id后面的值。之后,便按照tess-two的github上的描述,添加到Eclispe即可。


三、基于tess-two的Android應用


  有了面向Android的Tesseract庫tess-two,接下來就是使用Android應用來測試和使用了。github上的android-ocr就是這樣的應用:</span>
</span>

  https://github.com/rmtheis/android-ocr

我測試使用的是來自Mike_Wong的應用,參考了文章《淺析android OCR文字識別》,文章中包含了源碼的下載地址。解壓源碼并導入到Eclipse之后,刪除目錄中的"gen"目錄,并關閉工程再重新打開即可,為的是重新生成gen目錄及其中的內容。源碼中已包含 tess-two編譯會生成的libtess.so和liblept.so,并且包含了libjpeg.so。在編譯并安裝應用之前的唯一步驟是,在目標手機的SD目錄下創建tessdata目錄,將上面講述的中英文字庫添加到該目錄,即"/sdcard/tessdata/"目錄

  經過測試,發現算法的運行時間還是比較慢的,一段話的中文,處理時間大約20秒。識別精度也比較有限,在一張照片中文字比較多時,識別精度有所下降,如果文字比較少且比較大,則精度較高。


附錄:其它參考文章

1. 《Android OCR 之 tesseract》:http://www.cnblogs.com/hangxin1940/archive/2012/01/13/2321507.html

2. 《安卓平臺tess-two的圖片識別終于成功》:http://www.cnblogs.com/muyun/archive/2012/06/12/2546693.html

3. 《tesseract-ocr訓練方法》:http://my.oschina.net/lixinspace/blog/60124

4. 《Tesseract 3 語言數據的訓練方法》:http://blog.wudilabs.org/entry/f25efc5f/


來自:http://blog.csdn.net/cloud_desktop/article/details/39292525

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!