开源 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用

简介: 开源 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用一 背景在日常的一些工作中,偶尔也需要我们把图片转换为文字。目前大部分办公软件还无法实现类似的功能,因此遇到类似的问题时,我们只能自己动手解决。

开源 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用

一 背景

在日常的一些工作中,偶尔也需要我们把图片转换为文字。目前大部分办公软件还无法实现类似的功能,因此遇到类似的问题时,我们只能自己动手解决。

Tesseract(识别引擎),一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。在 GitHub 上我们目前能看到的最新版本为:v4.1.0。 本文以 CentOS7.6.1810 为例对 Tesseract 的安装及使用进行演示。为了减少大家重复造轮子,本文已将安装过程整理为 Docker 镜像,需要的小伙伴直接使用文中的 Dockerfile 即可构建镜像,进而实现开箱即用。

二 镜像的构建过程

2.1 准备阶段

将 Dockerfile 及相关的资源包放到同一目录。构建目录结构:

build/
├── 4.1.0.tar.gz
├── Dockerfile
├── leptonica-1.78.0.tar.gz
└── tesseract_langs.tar.gz

2.2 构建命令

docker build -t tesseract-ocr:0903.1.00 .

2.3 Dockerfile

FROM  centos:7.6.1810
LABEL ANTHOR="IVAN DU" VERSION="0903.0.01" BUILD_DATE="2019-09-03" \
      RESOURCES="https://github.com/tesseract-ocr/tesserac http://www.leptonica.org/index.html https://github.com/tesseract-ocr/tessdata"
ENV   LD_LIBRARY_PATH="/usr/local/lib" \
      LIBLEPT_HEADERSDIR="/usr/local/include" \
      PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" \
      TESSDATA_PREFIX="/usr/local/share/tessdata"
ADD   4.1.0.tar.gz /
ADD   leptonica-1.78.0.tar.gz /
ADD   tesseract_langs.tar.gz /usr/local/share/tessdata/
RUN   yum -y install file automake libjpeg-devel libpng-devel libtiff-devel zlib-devel libtool gcc-c++ make \
      && cd /leptonica-1.78.0 && ./configure && make && make install \
      && cd /tesseract-4.1.0 && ./autogen.sh && ./configure && make && make install \
      && rm -rf /leptonica-1.78.0 /tesseract-4.1.0

2.4 文章相关资源

本文涉及到的所以资源均已上传至 CSDN ,如有需要,自行下载即可。

2.5 验证

docker run --rm -v ${PWD}:/data ace78e7ad3b5 tesseract /data/3.jpg /data/gysl -l chi_sim
Tesseract Open Source OCR Engine v4.1.0 with Leptonica
cat gysl.txt
在 日 常 的 一 些 工 作 中 , 俊 尔 也 霁 妮 我 们 技 图 片 转 振 为 文 字 , 目 前 大 鄂 分 力 公 软 作 廷 无 法 实 现 娄 伯 的 功
解 , 因 止 通 到 羔 佑 的 问 题 时 , 我 们 司 能 自 已 动 手 航

Tesseract (iR8S| 敷 ) , 一 欲 由 HP 实 驾 室 开 发 由 Google 雕 护 的 开 源 0CR (Oplcal Character
Recogniton , 光 学 字 祖 R3J) 引 摸 , 与 Microsoft Ofce DocumentImagmg (MODI) 相 比 , 我 们 可 以 不
断 的 州 练 的 库 , 俚 图 僧 转 浩 文 本 的 能 力 不 抗 增 强 ; 如 松 团 队 深 度 霭 要 , 还 可 以 以 它 为 模 松 , 开 发 出 等 合
自 躯 的 OCRS| 敷 , 在 GItHub 上 我 们 目 前 能 睿 刺 的 最 新 版 本 为 : v4 10。 本 文 以 Cent0S7 6 1810
为 伟 Tesseract 的 安 装 司 俭 用 迹 行 演 示 , 为 了 源 少 大 家 重 夏 迢 子 , 本 文 已 旅 安 装 程 坪 理 为 Docker
镐 像 , 霏 要 的 小 仁 伴 眼 接 侠 用 文 中 的 Dockerfie 卵 可 皎 镐 像 , 进 市 宇 现 开 锴 卯 用 .

识别内容为本文第一段除了标题部分内容。效果并不佳。试了一下英文资料的识别,比中文要好不少。

三 总结

3.1 Tesseract 目前对中文的识别效果并不好,不推荐使用。如果你不介意多花时间,可以考虑使用它提供的训练功能自定义你的语言库,那样在特定场景下识别率应该能上一个台阶。

3.2 纯英文内容可以试一下。

3.3 文章的资源包及镜像在本人CSDN相关账户下可以找到,不想耗费时间只想直接使用的小伙伴欢迎直接下载。

相关文章
|
5天前
|
存储 安全 持续交付
【Docker 专栏】Docker 镜像的版本控制与管理
【5月更文挑战第9天】本文探讨了Docker镜像版本控制与管理的重要性,包括可重复性、回滚能力、协作开发和持续集成。常用方法有标签、构建参数和版本控制系统。管理策略涉及定期清理、分层管理和镜像仓库。语义化标签、环境变量和配置文件在版本控制中有应用。版本系统与Docker结合能跟踪历史和促进协作。注意点包括优化镜像大小、确保安全性和兼容性。案例分析和未来趋势展示了持续发展的镜像管理技术,为Docker应用的稳定与进步保驾护航。
【Docker 专栏】Docker 镜像的版本控制与管理
|
1天前
|
存储 安全 开发者
如何删除 Docker 镜像、容器和卷?
【5月更文挑战第11天】
13 2
如何删除 Docker 镜像、容器和卷?
|
4天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
12 1
|
5天前
|
运维 安全 Docker
【Docker 专栏】Docker 镜像安全扫描与漏洞修复
【5月更文挑战第9天】Docker技术在软件开发和部署中带来便利,但其镜像安全问题不容忽视。本文探讨了Docker镜像安全扫描与漏洞修复,强调了镜像安全对应用和系统的重要性。文中介绍了静态和动态扫描方法,列举了软件漏洞、配置漏洞和恶意软件等常见安全问题,并提到了Clair和Trivy等扫描工具。修复策略包括更新软件、调整配置和重建镜像。此外,加强安全意识、规范镜像制作流程和定期扫描是管理建议。未来,将持续面对新的安全挑战,需持续研究和完善安全技术。
【Docker 专栏】Docker 镜像安全扫描与漏洞修复
|
5天前
|
Java Linux 数据安全/隐私保护
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
|
5天前
|
存储 弹性计算 运维
Docker数据集与自定义镜像:构建高效容器的关键要素
Docker数据集与自定义镜像:构建高效容器的关键要素
|
6天前
|
存储 缓存 运维
【Docker 专栏】Docker 镜像的分层存储与缓存机制
【5月更文挑战第8天】Docker 镜像采用分层存储,减少空间占用并提升构建效率。每个镜像由多个层组成,共享基础层(如 Ubuntu)和应用层。缓存机制加速构建和运行,通过检查已有层来避免重复操作。有效管理缓存,如清理无用缓存和控制大小,可优化性能。分层和缓存带来资源高效利用、快速构建和灵活管理,但也面临缓存失效和层管理挑战。理解这一机制对开发者和运维至关重要。
【Docker 专栏】Docker 镜像的分层存储与缓存机制
|
6天前
|
数据库 Docker 容器
【Docker 专栏】使用 Dockerfile 自动化构建 Docker 镜像
【5月更文挑战第8天】Dockerfile是构建Docker镜像的关键,它包含一系列指令,用于描述应用运行环境及所需软件包。通过自动化构建,能提高效率、保证可重复性并提升灵活性。确定基础镜像、安装依赖、设置环境后,执行Dockerfile生成镜像,用于应用程序部署。虽然需要熟悉Docker技术和应用细节,但其带来的益处使其成为现代软件开发和部署的重要工具。
【Docker 专栏】使用 Dockerfile 自动化构建 Docker 镜像
|
7天前
|
缓存 安全 数据安全/隐私保护
【Docker专栏】深入理解Docker镜像的构建与推送
【5月更文挑战第7天】本文介绍了Docker镜像的核心作用及基础概念,包括镜像作为容器模板的特性。文章详细阐述了Dockerfile的编写,例如设置基础镜像、工作目录、安装依赖及定义启动命令。通过`docker build`命令构建镜像,并提示了优化构建过程的技巧。此外,还讲解了如何将镜像推送到远程仓库,包括选择仓库、认证、标签和推送镜像的步骤,以及镜像安全性的考虑,如扫描漏洞和遵循最小权限原则。本文旨在帮助读者掌握Docker镜像的构建与推送,以高效管理容器化应用。
【Docker专栏】深入理解Docker镜像的构建与推送
|
8天前
|
运维 Linux 数据安全/隐私保护
Docker详解(九)——Docker镜像发布
Docker详解(九)——Docker镜像发布
32 2