开源ocr识别库-tesseract介绍

wushishengfei wushishengfei     2023-01-26     615

关键词:

最近在github上面看到一个开源的ocr文字识别库,感觉效果还可以,所以在这里介绍一下,这个项目的原地址在:https://github.com/tesseract-ocr/tesseract。

tesseract库支持你训练自己的文字识别模型,当然其本身已经提供了几十种不同语言模型,你也可以直接下载使用,最新的4.0版本使用了LSTM神经网络框架,

在识别中文方面效果还是不错的。tesseract有两种使用方式,一种是安装完成以后,通过命令行向tesseract应用传入要解析的图片,翻译完成后输出一个txt文件;

第二种方式是自己写程序调用api函数。

下面介绍一下tesseract库的使用方法。

如果你用的是ubuntu18.0.4那么安装很简单:

在终端输入指令安装即可:

sudo apt-get install tesseract-ocr

sudo apt-get install libtesseract-dev

如果你跟我一样是使用ubuntu16.0.4,那么需要按照我下面的方法来安装,因为16.0.4采用上面的办法安装的是3.0的版本,3.0解析的效果不是很好。

如果你是在windows平台或其他平台可以参考:https://github.com/tesseract-ocr/tesseract/wiki/Compiling。

(1)安装依赖库

sudo apt-get install g++

sudo apt-get install autoconf automake libtool

sudo apt-get install pkg-config

sudo apt-get install libpng-dev

sudo apt-get install libjpeg8-dev

sudo apt-get install libtiff5-dev

sudo apt-get install zlib1g-dev

sudo apt-get install libicu-dev

sudo apt-get install libpango1.0-dev

sudo apt-get install libcairo2-dev

sudo apt-get install git

(2)安装leptonica 1.74

cd ~/Download

git clone https://github.com/DanBloomberg/leptonica

cd leptonica

./configure

make

make install

(3)安装tesseract

cd ~/Download

git clone https://github.com/tesseract-ocr/tesseract

cd tesseract

./autogen.sh

./configre --prefix=/usr/local

make

make install

(4)下载语言包

tesseract提供了三种模型,testdata:普通模型,testdata_fast:快速识别模型,testdata_best:最佳识别模型,

在:https://github.com/tesseract-ocr/tessdata_best目录下下载:eng.traineddata、chi_sim.traineddata、chi_sim_vert.traineddata三个文件,

然后将这三个文件复制到/usr/local/share/testdata目录下,如果你想识别其他语言也是下载语言识别模型然后放到testdata目录下即可。

(5)设置语言模型路径

vim ~/.bashrc

在末尾添加:export TESSDATA_PREFIX=/usr/local/share/tessdata/

然后关闭终端,重新打开终端生效。

(6)测试识别库

在终端输入

tesseract --version看版本是否如下:

技术分享图片

输入:

tesseract --list-langs查看语言模型是否正确:

技术分享图片

可以看到自动识别了英语和简体中文模型了。

然后随便找张有中文字符的图片进行识别测试:

tesseract 1.jpg out -l chi_sim

参数说明:1.jpg:要解析的文件

       out:解析输出的文件名

       -l chi_sim:采用的语言模型,这里选择了简体中文。

我识别的原文:

技术分享图片

 

识别到的文字如下:

 技术分享图片

(7)用C++调用api进行识别测试。

代码:

#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
#include <iostream>
#include <memory>
using namespace std;
int main()

	tesseract::TessBaseAPI api;
	cout<<"version:"<<api.Version()<<endl;
	if(api.Init(NULL,"chi_sim")==0)
		cout<<"Init Ok"<<endl;
	else
	
		cout<<"Init error"<<endl;
		return -1;
	
	api.SetPageSegMode(tesseract::PageSegMode::PSM_AUTO);
	api.SetVariable("save_best_choices","T");
	auto pixs = pixRead("./1.jpg");
	if(!pixs)
	
		cout<<"load image error"<<endl;
		return -2;
	
	api.SetImage(pixs);
	api.Recognize(0);
	cout<<std::unique_ptr<char[]>(api.GetUTF8Text()).get()<<endl;
	api.Clear();
	pixDestroy(&pixs);
	return 0;


 makefile:

CXX		  := g++
CXX_FLAGS := -Wall -Wextra -std=c++11 -ggdb

BIN		:= .
SRC		:= .
INCLUDE	:= 
LIB		:= 

LIBRARIES	:=-llept -ltesseract
EXECUTABLE	:= ocrDemo


all: $(BIN)/$(EXECUTABLE)

run: clean all
	clear
	./$(BIN)/$(EXECUTABLE)

$(BIN)/$(EXECUTABLE): $(SRC)/*.cpp
	$(CXX) $(CXX_FLAGS) -I$(INCLUDE) -L$(LIB) $^ -o [email protected] $(LIBRARIES)

clean:
	-rm $(BIN)/*

 测试效果:

技术分享图片

开源文字识别软件tesseract

...置环境变量,Path中添加安装路径(默认:C:ProgramFiles(x86)Tesseract-OCR)3.新增语言库的环境变量,变量名:TESSDATA_PREFIX,变量值(默认:C:ProgramFiles(x86)Tesseract-OCR essdata)4.测试软件是否可用tesseract-v,能看到版本号就说明安装 查看详情

为啥 Tesseract OCR 库(iOS)根本无法识别文本?

】为啥TesseractOCR库(iOS)根本无法识别文本?【英文标题】:WhyTesseractOCRlibrary(iOS)cannotrecognizetextatall?为什么TesseractOCR库(iOS)根本无法识别文本?【发布时间】:2013-06-1416:24:23【问题描述】:我正在尝试在我的iOS应用程序中使... 查看详情

tesseract-ocr安装中文识别与训练字库

...,然后用字符识别方法将形状翻译成计算机文字的过程。Tesseract:开源的OCR识别引擎,初期Tesseract引擎由HP实验室研发,后来贡献给了开源软件业,后由Google进行改进、修改bug、优化,重新发布。下载1、Wind 查看详情

orc相关的库介绍和应用

...光学文字识别(OpticalCharacterRecognition,OCR)OCR库:Pillow、Tesseract、NumPyPillowPillow可以对图片进行预处理,比如图片背景色不是纯白,而是渐进色,那么就可以利用Pillow进行预处理得到相对清晰的图片来提供给Tesseract去识别。Tessera... 查看详情

[转]ai+rpa融合更智能

...本地OCR包最大的优势,本地执行,速度快。首推的是 Tesseracthttp://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe (下载地址)Tesseract是免费开源的OCR工具,部署在本地以后可以搞定比较基础的图像文字识别。Tesserac... 查看详情

爬虫之简单验证码处理(代码片段)

...OCR库,或者是在上面进行定制。在这里我们只重点介绍:Tesseract  Tesseract是一个OCR库,目前由Google赞助(Goo 查看详情

tesseract-ocr编译及viewerdebugging使用(代码片段)

...的文字进行分析识别,获取的过程。一、简介    Tesseract-OCR依赖图像库Leptonica。Leptonica是一个开源的图像处理和图像分析库。它主要包括的操作有:位图操作、仿射变换、形态学操作、连通区域填充、图像变换及像素... 查看详情

使用python,opencv进行tesseract-ocr绑定及识别(代码片段)

使用Python,OpenCV进行Tesseract-OCR绑定及识别1.效果图2.安装Tesseract+Python“绑定”及识别3.源码参考上一篇博客介绍了Windows上Tesseract-OCR的安装,并使用命令行参数进行了OCR数字和字母的识别。这一篇将介绍如何使用Python应... 查看详情

tesseract在linux环境怎么训练自己的字库

参考技术A首先做一下背景介绍,Tesseract是一个开源的OCR组件,主要针对的是打印体的文字识别,对手写的文字识别能力较差,支持多国语言(中文、英文、日文、韩文等)。是开源世界里最强的一款OCR组件。 查看详情

windows安装用于ocr的tesseract及使用命令行参数进行ocr

Windows安装用于OCR的Tesseract及使用命令行参数进行OCR1.效果图2.Tesseract安装及验证参考这篇博客将介绍如何安装和使用光学字符识别(OCROpticalCharacterRecognition)的Tesseract库,并使用命令行对图像中的字符进行识别;**... 查看详情

windows环境安装tesseract-ocr4.00并配置环境变量

...不让直接用别人的接口,所以只能尝试去用开源的类库。tesseract-ocr是惠普公司开源的一个文字识别项目,通过它可以快速搭建图文识别系统,帮助我们开发出能识别图片的ocr系统。因为Windows环境开发,我也就必须在windows环境安... 查看详情

pytesseract——验证码的识别——pil库的介绍

1、简介Python-tesseract是一款用于光学字符识别(OCR)的python工具,即从图片中识别出其中嵌入的文字。Python-tesseract是对GoogleTesseract-OCR的一层封装。它也同时可以单独作为对tesseract引擎的调用脚本,支持使用PIL库(PythonImagingLibrary... 查看详情

python使用tesseract-ocr完成验证码识别

一、python验证码识别库安装Ubuntu版本:1.tesseract-ocr安装 sudoapt-getinstalltesseract-ocr2.pytesseract安装 sudopipinstallpytesseract3.Pillow安装 sudopipinstallpillow其他linux版本(如centos): 1.tess 查看详情

python使用tesseract-ocr完成验证码识别

一、python验证码识别库安装Ubuntu版本:1.tesseract-ocr安装 sudoapt-getinstalltesseract-ocr2.pytesseract安装 sudopipinstallpytesseract3.Pillow安装 sudopipinstallpillow其他linux版本(如centos): 1.tess 查看详情

利用tesseract识别58同城图片式手机号码

...破这该死的图片号码的!这里我们利用Google的开源项目:Tesseract-ocr(项目地址:https://github.com/tesseract-ocr)其实,Tesseract的网上的教程其实有很多,关于它的介绍,我在这里就不说了,直接讲重点!先是 查看详情

如何通过tesseract开源ocr引擎创建androidocr应用

参考技术A  Tesseract是遵守ApacheLicense2.0协议的开源OCR引擎。这里介绍下如何在Android平台编译Tesseract,以及如何快速创建一个简单的OCR应用。要编译Android平台的Tesseract,需要使用Google提供的tesseract-android-tools。代码获取方式:git... 查看详情

tesseract-ocr编译及viewerdebugging使用(代码片段)

...的文字进行分析识别,获取的过程。一、简介    Tesseract-OCR依赖图像库Leptonica。Leptonica是一个开源的图像处理和图像分析库。它主要包括的操作有:位图操作、仿射变换、形态学操作、连通区域填充、图像变换及像素... 查看详情

验证码识别tesseract的简单使用和总结(代码片段)

Tesseract是什么OCR即光学字符识别,是指通过电子设备扫描纸上的打印的字符,然后翻译成计算机文字的过程。也就是说通过输入图片,经过识别引擎,去识别图片上的文字。Tesseract是一种适用于各种操作系统的光学字符识别引擎... 查看详情