- Tesseract-Ocr不是一个软件,而是软件包,包含了一个OCR引擎【libtesseract】和一个命令行程序 【tesseract】。
- Tesseract 4增加了一个基于OCR引擎的新神经网络(LSTM),该引擎专注于行级识别,但仍然支持Tesseract 3的传统.
- Tesseract OCR引擎,该引擎通过识别字符模式来工作。
- Tesseract支持识别unicode(UTF-8),可以直接识别100多种语言。
- Tesseract支持多种输出格式:纯文本,hOCR(HTML),PDF,TSV。主分支还具有ALTO(XML)输出的实验支持。
windows安装tesseract-OCR
- 首先下载tesseract的exe安装文件 https://github.com/UB-Mannheim/tesseract/wiki
- 配置环境变量
- 配置完成后 cmd验证
在Java上使用
- Maven
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.3.1</version>
</dependency>
- Java测试代码示例
public static void main(String[] args) throws TesseractException {
ITesseract instance = new Tesseract();
//指定学习文件绝对路径
instance.setDatapath("/Users/tessdata");
//如果需要识别英文之外的语种,需要指定识别语种,并且需要将对应的语言包放进项目中
// instance.setLanguage("chi_sim");
instance.setLanguage("eng");
// 指定识别图片
File imgDir = new File("/Users//Downloads/1.png");
long startTime = System.currentTimeMillis();
String ocrResult = instance.doOCR(imgDir);
// 输出识别结果
System.out.println("OCR Result: \n" + ocrResult + "\n 耗时:" + (System.currentTimeMillis() - startTime) + "ms");
}
- 简单图片进行识别
- 运行结果
识别准确率,主要在于你选择的训练数据文件。
训练工具
https://github.com/tesseract-ocr/tesseract/wiki/AddOns
训练数据仓库
- tessdata_best:基于LSTM引擎的训练数据,最佳最准确的
- tessdata_fast:基于LSTM引擎的训练数据,快速(精简)版本
- tessdata:支持双引擎(LSTM和传统引擎),但LSTM训练数据不是最新的版本
2