[雪峰磁針石部落格]tesseractOCR識別工具及pytesseract

書籍尋找發表於2018-09-03

簡介

可以使用pytesseract庫從影像中提取文字。Tesseract是一款由Google贊助的開源OCR。 pytesseract是python包裝器,它為可執行檔案提供了pythonic API。

Tesseract(/`tesərækt/) 這個詞的意思是”超立方體”,指的是幾何學裡的四維標準方體,又稱”正八胞體”。下圖是一個正八胞體繞著兩個四維空間中互相正交的平面進行雙旋轉時的透視投影。不過這裡要講的,是一款以其命名的開源 OCR(Optical Character Recognition, 光學字元識別) 軟體。

所謂 OCR 是影像識別領域中的一個子領域,該領域專注於對圖片中的文字資訊進行識別並轉換成能被常規文字編輯器編輯的文字。

Tesseract 已經有 30 年曆史,開始它是惠普實驗室的一款專利軟體,然後在 2005 年開源,自 2006 年後由 Google 贊助進行後續的開發和維護。

在 1995 年 Tesseract 曾是世界前三的 OCR 引擎,而且在現在的免費 OCR 引擎中,其識別精度也仍然是出類拔萃的。因為其免費與較好的效果,許多的個人開發者以及一些較小的團隊在使用著 Tesseract ,諸如驗證碼識別、車牌號識別等應用中,不難見到 Tesseract 的身影。

python_lib_ocr_tesseract.gif

安裝

以ubuntu 16.04為例


# pip3 install pytesseract
# apt install tesseract-ocr tesseract-ocr-chi-sim

快速入門


#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author:    china-testing@126.com wechat:pythontesting qq群:144081101
# CreateDate: 2018-04-25
import pytesseract as pt
import requests
from PIL import Image

#img = Image.open("textinimage.png")
print("英文:")
url = "https://china-testing.github.io/images/python_lib_ocr_en.png"
img = Image.open(requests.get(url, stream=True).raw)
text = pt.image_to_string(img)
print(text)
#img = Image.open("textinimage.png")
print("中文:")
url = "https://china-testing.github.io/images/python_lib_ocr.PNG"
img = Image.open(requests.get(url, stream=True).raw)
text = pt.image_to_string(img,lang=`chi_sim`)
print(text)

Alt Text

Alt Text

執行結果


$ python3 04_10_perform_ocr.py 
英文:
This is an image containing text.
And some numbers 123456789

And also special characters: !@#$%"&*(_+
中文:
pyth0"自動化測試人工智慧

可見中文識別的效果並不太好,為此很多公司進行機器學習來改進。

另外網易的有道雲筆記的OCR效果做得很不錯,白描的湊合能用,qq的掃二維碼也可以識別文字,但是做得比較爛。

ocr可以做python專案對初學者進行實踐,請聯絡微信:pythontesting

本文最新程式碼地址,後續相關ocr的資料也會放在這裡。

另外tesseract也可以命令列執行:


$ tesseract test22.png  stdout -l chi_sim
pyth0n自動化測試人工智慧

參考資料


相關文章