一切福田,不離方寸,從心而覓,感無不通。

Tesseract OCR识别身份证号码

Tesseract 是一款开源的 OCR 引擎,由 Google 维护。它支持多种语言的文字识别,具有较高的识别准确率和良好的扩展性。Tesseract 的核心作用是对经过预处理的图像进行分析,提取其中的文字信息并转换为文本。它可以处理不同字体、大小和格式的文字,并且能够通过训练来提高对特定场景文字的识别能力。

官方网站:https://github.com/Tesseract-ocr/Tesseract

官方文档:https://github.com/Tesseract-ocr/tessdoc

语言包地址:https://github.com/Tesseract-ocr/tessdata

下载地址:https://digi.bib.uni-mannheim.de/Tesseract/

OCR是什么?

文字识别,即 Optical Character Recognition,简称 OCR,是指通过电子设备(如扫描仪、相机等)将图像中的文字转换为可编辑的文本格式的技术。其应用场景极为广泛:如电子文档转换,车牌识别系统的自动识别和管理;金融的票据识别提取支票、发票上的关键信息;翻译类 APP 通过摄像头识别外文并实时翻译,极大地便利了人们的跨语言交流。

然而,OCR 技术的实现并非易事,面临着诸多技术难点。首先是图像质量的影响,如模糊、倾斜、光照不均、存在噪声等,都会导致文字识别准确率下降。其次,文字的字体、大小、颜色各异,以及可能存在的复杂背景,也会给识别带来挑战。此外,对于手写体文字,由于其个性化强、规范性差,识别难度更大,所以一般需要使用 OpenCV 来搭配处理图像。

Tesseract 的特点

Tesseract 最初是由惠普公司开发的 OCR 引擎,后来被 Google 收购并开源。经过多年的发展和优化,Tesseract 已经成为目前最受欢迎的开源 OCR 引擎之一。

Tesseract 具有以下特点:

  • 开源免费:可以自由使用和修改,无需支付任何费用,降低了开发成本。
  • 多语言支持:支持超过 100 种语言的文字识别,包括中文、英文、日文、韩文等,满足不同场景的需求。
  • 高识别准确率:在经过适当的图像预处理和训练后,Tesseract 能够达到较高的识别准确率,尤其是对于印刷体文字。
  • 跨平台性:可以在 Windows、Linux、Mac 等多个操作系统上运行。
  • 可扩展性:支持用户自定义训练数据,以提高对特定字体、特定场景文字的识别能力。

Tesseract 的核心功能与工作原理

Tesseract 的核心功能是对图像中的文字进行识别并转换为文本。其工作原理主要包括以下几个步骤:

  • 图像预处理:Tesseract 首先会对输入的图像进行一些基本的预处理,如二值化、去噪等,但这部分功能相对简单,通常需要结合 OpenCV 进行更复杂的预处理。
  • 文字区域检测:Tesseract 会分析图像,找出其中可能包含文字的区域。
  • 字符分割:将文字区域中的字符逐个分割出来,以便进行单独识别。
  • 特征提取:对每个分割出来的字符提取特征,如形状、轮廓、笔画等。
  • 字符识别:将提取到的字符特征与训练数据中的特征进行比对,从而识别出字符。
  • 文本输出:将识别出的字符组合成文本,并输出给用户。

 

一、安装Tesseract

1.macOS 安装与项目配置

验证安装:

Apple Silicon Mac 的配置通常是:

Intel Mac 通常是:

可以用下面命令获取准确目录:

如果输出为:

那么 datapath 就配置为:

 

2.centOS安装与项目配置

CentOS Stream 8/9、Rocky Linux、AlmaLinux

验证:

查找实际路径:

常见配置为:

如果 eng.traineddata 位于 /usr/share/tessdata/eng.traineddata,则配置:

安装后刷新动态库缓存:

 

二、SpringBoot项目集成

1.引入依赖

 

2.服务类

 

IdentificationCodeUtil.java

 

ApiResultException.java

 

3.控制器

 

4.tesseract版本

 

参考资料:

https://www.cnblogs.com/linuxAndMcu/p/19049953