Python文字识别之tesseract-ocr和EasyOCR

 

本文主要是将手机拍摄的图片文字通过Python OCR转换成Word文件,并尝试通过tesseract-ocr和EasyOCR两种方式进行图片文字识别,展示两种方式的文字识别效果,为小伙伴在选择tesseract-ocr或EasyOCR识别图片文字时提供参考。本人所使用的环境windows,所以本文涉及到的安装、编程都是在Windows下进行的。

一、tesseract-ocr图片文字识别

1、tesseract-ocr 在Windows下的安装

    1)安装两个python模块

       pip install pytesseract

       pip install pillow

     2)下载tesseract-ocr,安装、配置、下载语音包。

      tesseract-ocr下载地址为:

       Home · UB-Mannheim/tesseract Wiki · GitHub

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_python

下载完成后双击点.exe 文件,安装到相应目录下,我本安装到D:\Program Files\目录下。

安装完成以后配置环境变量,在计算机-->属性-->高级系统设置-->环境变量-->系统变量path中添加D:\Program Files\Tesseract-OCR;

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_python_02

Tesseract默认是不支持中文的,如果想要识别中文或者其它语言需要下载相应的语言包,中文语言包为:chi_sim.traineddata,下载地址为:https://github.com/tesseract-ocr/tessdata_best

 

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_文字识别_03

若无法下载,请到本人csdn账号的资源下下载。

下载完成后将chi_sim.traineddata放到D:\Program Files\Tesseract-OCR\tessdata目录下即可。

2、示例图片

     本文示例图片如下:

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_python_04

3、程序

程序如下:

import pytesseract
from PIL import  Image
import  os
def test_tesseract():
    # 文字图片路径
    path=r'E:\test\test.jpg'
    im=Image.open(path)
    # 文字识别
    str1=pytesseract.image_to_string(im,lang='chi_sim')
    print("str1===",str1)
    # 将文字输出到word文件中
    f = open('test1.doc', 'w+', encoding='utf-8')
    f.write(str1 + '\n')
    f.close()

4、运行结果

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_ide_05

二、EasyOCR图片文字识别

1、安装EasyOCR 、文本检测模型、识别模型(语言包)

1)安装EasyOCR

通过pip install easyocr

也可以下载easyocr-1.5.0-py3-none-any.whl,

通过pip install easyocr-1.5.0-py3-none-any.whl  安装

 easyocr-1.5.0-py3-none-any.whl 下载地址为:easyocr · PyPI

 

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_ide_06

2)下载文本检测模型

文本检查模型craft_mlt_25k,下载地址为:

Jaided AI: EasyOCR model hub

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_python_07

   3)下载中文和英文识别模型

     英文识别模型:english_g2,中文识别包:zh_sim_g2

     下载地址:https://www.jaided.ai/easyocr/modelhub/

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_ide_08

以上地址若无法下载,请到本人csdn的资源下下载。

将craft_mlt_25k.pth,english_g2.pth,zh_sim_g2.pth 放在C:\Users\Administrator\.EasyOCR\model 目录下,安装成功。

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_文字识别_09

2、图片示例

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_ide_10

3、程序

import easyocr
import os
def test_easyocr():
    # 文字图片路径
    path = r'E:\test\test.jpg'
    # 创建reader
    reader=easyocr.Reader(['ch_sim', 'en'])
    # 读取图片
    result=reader.readtext(path)
    # 打印结果
    print("result===",result)
    # 将结果输出到word文件中
    f = open('test2.doc', 'w+', encoding='utf-8')
    for i in result:
        word=i[1]
        f.write(word + '\n')
    f.close()

4、运行结果

Tesseract OCR识别数字要安装什么语言 tesseract-ocr python_ide_11

 本人又试了一些其它文字图片转成word,有些情况下tesseract-ocr识别情况好些,有些情况下EasyOCR识别的度更高一些,如果想要得到识别度更高的结果还需要对tesseract-ocr和EasyOCR进行训练。