OCR----Python調用Tesseract引擎(Ubuntu下)

前言


    最近再搞OCR的,用於識別日文報刊,是公司的一個日本項目,做的我是苦不堪言。最近把自己的工作內容寫出來,也會做一個系列和專欄,歡迎關注!

    想搞好這個OCR,需要讀論文。好在只需要讀4篇,都是Tesseract的作者Ray Smith寫的。Tesseract目前被Google維護並開源,以後的前景應該會非常好。

    按發表時間排序:

    需要深入研究的請戳鏈接。以上都是英文資料,中國人幫助中國人,所以我會把我翻譯過的一部分公佈出來,歡迎關注。if 沒有公佈,歡迎來問,前3篇論文都已經看過2、3遍了,還是知道一些東西的。


OCR概述


    全稱Optical Character Recognition ,中文即:光學字符識別。這是文字自動輸入的一種方法,通過掃描和攝像等光學輸入方式獲取紙張上的文字圖像信息,利用各種模式識別算法分析文字形態特徵,判斷出文字的標準編碼,並按通用格式存儲在文本文件中,從根本上改變了人們對計算機文字人工編碼錄入的概念。

    我這就是瞎扯淡。。。大家自己去維基百科上看吧。


Tesserct概述


    原理和架構會單獨拿出來去寫,請關注—->傳送門(安好啦,快來點啊! <-_->)。

來自Tesseract的作者Ray Smith(from Google Inc.)的論文《Adapting the Tesseract Open Source OCR Engine for Multilingual OCR》

                                           圖1 識別過程圖


自己總結,出自谷震平
                                          圖2 識別過程圖(中文版)


入門操作


    開發環境(請注意你自己的):

  • Python2.7,用自帶的IDLE即可
  • Ubuntu14.04 LTS
  • Tesseract 3.02

    如果沒有這些東西,試了下面的代碼不成功,建議使用虛擬機(VM)來安裝這些工具。

注意2點:

    1 Tesseract在Github上的Python API,在你自己的電腦不一定能跑通,因爲libtesseract.so.3的存儲位置不同,需要自己去找自己本機的libtesseract.so.3

    2 Tesseract的處理時間和圖片大小有關,越大的圖片用時越長,用大圖片測試的童鞋請耐心等待

代碼如下:

##########################################
#內容來自:谷震平的博客,http://blog.csdn.net/guzhenping
#谷震平原創,請尊重版權!
#這個是最精簡的Python代碼,後續會給出複雜的~~~~~~
#使用說明:(1) 注意你的引擎庫文件的位置,可能需要修改libname;
#(2) 我的待識別圖片filename在桌面上,請注意修改,一定要把文件擴展
#名帶上
##########################################

import os
import ctypes

libname = "/usr/lib/libtesseract.so.3" # tesseract引擎的動態庫
lang = "eng" # 識別的語言,eng是英文,chi_sim是中文,自己選擇
filename = "/home/guzhenping/Desktop/tests.jpg"  # 待識別圖片

# 加載動態庫
tesseract = ctypes.cdll.LoadLibrary(libname)
TESSDATA_PREFIX = os.environ.get("TESSDATA_PREFIX")

# 創建一個handle,請看TessBaseAPI,你就懂了爲啥非要有handle
api = tesseract.TessBaseAPICreate()

# 初始化引擎
rc = tesseract.TessBaseAPIInit3(api,TESSDATA_PREFIX,lang)

# 處理待識別圖片
text_out = tesseract.TessBaseAPIProcessPages(api,filename,None,0)

#轉成字符串
result_text = ctypes.string_at(text_out)
print result_text  # 輸出結果

結語


    如果希望深入研究Tesseract,歡迎交友,留言。此外,我還有印象筆記的工作記錄。如果可以,歡迎交換研究資料。

    這些工作還有待完善,會慢慢發佈的,期待您的關注!

谷震平的原創文章,請尊重版權,轉載請註明出處。謝謝~~~~
新開通微信公衆號,歡迎關注原創文章:
谷震平的微信公衆號 二維碼

發佈了59 篇原創文章 · 獲贊 185 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章