docker应用篇(2):构建tesseract-ocr运行环境

news/2025/2/26 6:37:02

文章目录

  • 前言
  • 资源准备
  • 搭建tesseract基础环境镜像
  • 将镜像上传到dockerhub
  • 将镜像发布到阿里云dockerhub上
  • 运行该镜像
    • 1. 下载语言包(需要新语种才需要执行)
    • 2. 运行
  • 使用这个镜像
  • 关于遇到的问题
  • 传送门

前言

某些应用需要进行图片内容识别,需要构建tesseract的运行环境。

资源准备

下载相关资源:
tesseract url:https://github.com/tesseract-ocr/tesseract/

leptonica url:http://www.leptonica.org/

语言包的下载:https://github.com/tesseract-ocr/tessdata

在这里插入图片描述

软件和语言包已上传到百度网盘:
链接:https://pan.baidu.com/s/1mevX728H0GuqoZFiTwrvfA?pwd=paco
提取码:paco

搭建tesseract基础环境镜像

  1. 编写Dockerfile
FROM mamohr/centos-java
MAINTAINER lengcz<lcz0710@163.com>	  

# 说明	  
COPY readme.txt /usr/local/readme.txt  

# 环境变量(tesseract)
ENV LD_LIBRARY_PATH="/usr/local/lib" \
    LIBLEPT_HEADERSDIR="/usr/local/include" \
    PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
	
# 安装tesseract环境
ADD   tesseract-4.1.3.tar.gz /
ADD   leptonica-1.80.0.tar.gz /

RUN   yum -y install file automake libicu-devel libpango1.0-dev libcairo-dev libjpeg-devel libpng-devel libtiff-devel zlib-devel libtool gcc-c++ make \
      && cd /leptonica-1.80.0 && ./configure && make && make install \
      && cd /tesseract-4.1.3 && ./autogen.sh && ./configure && make && make install \
      && rm -rf /leptonica-1.80.0 /tesseract-4.1.3
	  
# 复制语言包	  
COPY /tessdata /usr/local/share/tessdata	
	  
# 时区设置
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
  1. 上传到centos服务器
    备注:readme.txt是你构建的该镜像说明文件,无关紧要,可有可无。

在这里插入图片描述
语言包(这里包含了中文英文)
在这里插入图片描述

  1. 构建镜像
docker build -t lengcz/tessocr2:1.0 .

在这里插入图片描述

将镜像上传到dockerhub

服务器如果在国内,下载速度会比较慢。
lengcz/tesseract-ocr-environment 仓库是公开的
仓库地址:https://hub.docker.com/repository/docker/lengcz/tesseract-ocr-environment
命令

docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname

操作
在这里插入图片描述

在这里插入图片描述

将镜像发布到阿里云dockerhub上

该镜像为开源镜像,可使用。下载速度很快。

docker run -it  --name mytesseract01 registry.cn-guangzhou.aliyuncs.com/lengcz/tesseract-ocr-environment:1.0  /bin/bash

运行该镜像

1. 下载语言包(需要新语种才需要执行)

(前面构建镜像时已经包含了中文和英文了,如果需要其它语言,则需要下载;否则不需要执行此步骤)
由于tesseract是需要语言包的,所以需要下载语言包。

下载地址:https://github.com/tesseract-ocr/tessdata

将语言包下载存放到主机/usr/tessdata目录下
在这里插入图片描述

需要识别中文,需要下载中文相关的包
在这里插入图片描述

建议先把中文和英文的包都安装了
在这里插入图片描述

2. 运行

#(不需要额外的语言包)以交互的方式运行该镜像,并进入容器(默认包含了中文和英文,也识别数字,没有额外的情况,不需要进行挂载)
docker run  -it  --name mytesseract01 lengcz/tesseract-ocr-environment:1.0 /bin/bash
#(需要额外的语言包)以交互的方式运行该镜像,并进入容器(以挂载的方式运行),如果需要额外的语言包,则需要使用文件挂载,将需要被加载的语言包挂载到容器内
docker run  -it -v /usr/tessdata:/usr/local/share/tessdata --name mytesseract01 lengcz/tesseract-ocr-environment:1.0 /bin/bash
#查看tesseract的版本
tesseract -v
#查看已安装的语言包
tesseract --list-langs

在这里插入图片描述

使用这个镜像

  • dockerhub镜像
docker run  -it  --name mytesseract01 lengcz/tesseract-ocr-environment:1.0 /bin/bash
  • 阿里云容器镜像
docker run  -it  --name mytesseract01 registry.cn-guangzhou.aliyuncs.com/lengcz/tesseract-ocr-environment:1.0 /bin/bash

关于遇到的问题

问题:
configure: error: Your compiler does not have the necessary C++17 support! C
其实这个过程遇到的问题很麻烦,主要是环境问题,不同版本的tesseract-ocr需要的基础环境也不同,失败的概率比较大,而且执行时间也很慢。
解决办法:
http://www.manongjc.com/detail/24-egmohotmsezzmof.html

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

当然如果实在遇到问题千奇百怪,可以直接使用我提交到dockerhub的公开镜像。

lengcz/tesseract-ocr-environment

传送门

基于本章构建的基础镜像,开发springboot代码实现图片转文本。
springboot框架(5):ocr图片转文本


http://www.niftyadmin.cn/n/2135988.html

相关文章

springboot框架(5):ocr图片转文本

文章目录前言编辑代码打包项目构造镜像发布镜像到dockerhub发布镜像到阿里云使用这个镜像前言 有时候&#xff0c;我们需要识别图片中为内容。而java识别图片需要基于特定的环境。代码已发布到Gitee&#xff1a;https://gitee.com/lengcz/springboot-ocr 编辑代码 新建spring…

跟我一起学ruby (转)

跟我一起学ruby By Tiger 注&#xff1a;本教程转载自在游戏先行者论坛&#xff0c;版权属于作者Tiger。 第一篇 第二篇 第一篇 自序 从今天起我就要开始学Ruby了。怎么样&#xff0c;没见吧&#xff1f;一个新人写教程。就凭我坚强的毅力&#xff0c;科学的自学方法&#xff0…

springboot基础(9):指定参数运行

文章目录前言虚拟机指定参数指定文件编码运行激活指定的配置文件运行项目指定参数指定文件编码运行激活指定的配置文件运行参数优先级:前言 项目中时常需要指定参数或者参数文件运行项目&#xff0c;而Springboo项目运行时指定参数&#xff0c;可以分为虚拟机指定参数和项目指…

meta标签大全(荐)

html的meta总结&#xff08;常用&#xff09; 1、Meta标签大全<!-- 声明文档使用的字符编码 --><meta charsetutf-8><!-- 优先使用 IE 最新版本和 Chrome --><meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"/><!--…

docker应用篇(3):搭建Docker私服镜像中心

文章目录前言如何搭建私有仓库第一节 创建无认证私服1. 创建私服2. 测试第二节 创建安全私服1. 创建私服(有认证)2. 测试3. 退出登录关于错误问题1&#xff1a; 登录失败x509: certificate relies on legacy Common Name field前言 Dockerhub是docker官网的仓库&#xff0c;国…

git如何移除某文件夹的版本控制

目录结构如下 projectbinlibsrc...... 执行如下的操作 git add . git commit -m "add bin/ lib/ src/" git push origin master突然发现原来 lib 目录不需要提交到版本库,但是现在远程已经存在该目录,what should I do.&#xff08;吐出去的东西还能收回来吗&#…

docker应用篇(4):搭建私服镜像中心docker-registry和docker-registry-web

文章目录前言第一节、创建镜像中心第二节、测试完整流程(1) 创建账号(2) 推送镜像(3) 退出登录第三节、扩展内容1. 多个私服的配置前言 搭建一个私服docker镜像中心&#xff0c;并且需要安全认证和后台管理。 本文基于mkuchin/docker-registry-web提供的案例来搭建服务。 htt…

iOS在xib或storyboard里为控件添加圆角、外框和外框颜色

如果要在xib和storyboard里为控件添加圆角和外框宽度&#xff0c;只要这样做就可以&#xff1a; layer.borderWidth 设置外框宽度属性 layer.cornerRadius 设置圆角属性 只要为属性设置value值就可以了。 当然修改完xib里看是看不出来的&#xff0c;要运行才看得到&#xff0c;…