OCR1:開源庫


OCR Optical Character Recognition,光學字符識別)是指電子設備(例如掃描儀或數碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程。優秀的開源OCR軟件包括:

  • Tesseract:原本由惠普開發的圖像識別類庫tesseract-ocr已經更新到2.04, 就是最近Google支持的那個OCR。原先是惠普寫的,現在Open source了。
  • OCRopus:Ocropus的(TM)是一個先進的文件分析和OCR系統,采用可插入的布局分析,可插入的字符識別,自然語言統計建模和多語言支持功能。
  • Cuneiform:Cuneiform 是一個 OCR 文字識別系統的商標,最開始是由Cognitive 技術所開發的運行在 Windows 下的軟件。而這個項目是該軟件在 Linux 系統下的移植版本。
  • GOCR:GOCR 是一個開源的OCR光學識別程序。
  • OCRFeeder:OCRFeeder 是 GNOME 桌面下的一個開源 OCR 套件。可將紙質或者圖形文檔轉成電子文檔。
  • Lios:linux-intelligent-ocr-solution (Lios) 是Linux下一個開源的 OCR 解決方案,可將打印的文檔轉成可編輯的文本。

雲服務商提供服務:

OpenCV VS tesseract

  • opencv:專注機器視覺
  • tesseract:專注字符識別

由於tesserocr在windows環境下會出現各種不兼容問題,並且與pycharm虛擬環境不兼容等問題,所以在windows系統環境下,選擇pytesseract模塊進行安裝 

Tesseract


 Tesserocr 是Python的一個OCR庫,但其實是對tesseract做的一層Python API的封裝,所以他的核心是tesseract。因此,在安裝tesserocr之前,我們需要先安裝tesseract。 實際使用tesseract ocr也有兩種方式:1- 動態庫方式 libtesseract  2  - 執行程序方式 tesseract.exe

安裝過程:

  • 在Windows下,首選需要下載tesseract,它為tesserocr提供支持,在“https://digi.bib.uni-mannheim.de/tesseract/” ,然后選擇3.05.02版本進行下載。其中文件名中帶有 dev 的為開發版本,不帶 dev 的為穩定版本,可以選擇下載不帶 dev 的版本,例如可以選擇下載tesseract-ocr-setup-3.05.02-20180621.exe
  • 如果不是做英文的圖文識別,還需要下載其他語言的識別包  https://github.com/tesseract-ocr/tessdata 下載

安裝Tesseract


  • 下載Tesseract-OCR引擎,注意要3.0以上才支持中文哦,按照提示安裝就行。
  • 既然是要訓練中文,記得勾選 additional language data,如下圖:
  • 找到中文簡體和中文繁體,按需勾選,然后點下一步。可以先不勾選,因為這樣直接下載語言的包實在太慢。可以從網頁上直接下載語言包,然后等程序安裝好后,放入安裝目錄下tessdata目錄下面,如下圖:

配置:

  • 在環境變量的系統變量和個人用戶的PATH,把tesseract-ocr的安裝路徑(如 C:\Program Files (x86)\Tesseract-OCR;)添加進去
  • 在windows系統你還需要將testdata目錄也加入環境變量,TESSDATA_PREFIX=C:\Program Files (x86)\Tesseract-OCR\tessdata

驗證安裝:

  • 打開命令終端,輸入:tesseract -v,可以看到版本信息

落地驗證:

  • 直接下載:https://raw.githubusercontent.com/Python3WebSpider/Testtess/master/image.png 然后,將圖片下載下來並保存為image.png,然后使用tesseract命令進行測試
  • 命令:tesseract image.png 1    (image.png 代表待識別的源文件,1代表輸出文件名,默認輸出格式是txt文件格式!)

 

python用tesseract-ocr做圖像識別


  需要導入兩個庫,這是別人寫好的封裝好的庫文件。

  • 需要用到兩個庫:pytesseract和PIL
  • 還需要安裝識別引擎tesseract-ocr

Python-tesseract: 是Tesseract OCR引擎的Python封裝類。能夠讀取任何常規的圖片文件(JPG, GIF ,PNG , TIFF等)並解碼成可讀的語言。在OCR處理期間不會創建任何臨文件

PIL (Python Imaging Library):是 Python 中最常用的圖像處理庫。

python對圖像的處理比較常見的是用 pytesseract 識別驗證碼,要安裝pytesseract庫,必須先安裝其依賴的 PIL 及 tesseract-ocr,其中PIL為圖像處理庫,而后面的tesseract-ocr則為google的ocr識別引擎。

  • 命令:pip install pillow   目前PIL的官方最新版本為1.1.7,支持的版本為python 2.5, 2.6, 2.7,並不支持python3,經查詢python3.X用pillow代替,進入DOS命令行窗口,敲入以下代碼
  • 命令:pip install pytesseract

示例代碼:

import pytesseract from PIL import Image as img text = pytesseract.image_to_string(img.open('image.png')) print(text)

 

示例結果:

帶中文圖片示例(示例圖片是從百度圖片上下載的):

 中文效果並不理想,下一節介紹訓練過程

相關鏈接:


參考資料:



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM