docker应用篇(2):构建tesseract-ocr运行环境
文章目录前言资源准备搭建tesseract基础环境镜像将镜像上传到dockerhub运行该镜像前言某些应用需要进行图片内容识别,需要构建tesseract的运行环境。资源准备下载相关资源:tesseracturl:https://github.com/tesseract-ocr/tesseract/leptonicaurl:http://www.leptonica.org/搭建tesseract基
文章目录
前言
某些应用需要进行图片内容识别,需要构建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基础环境镜像
- 编写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
- 上传到centos服务器
备注:readme.txt是你构建的该镜像说明文件,无关紧要,可有可无。
语言包(这里包含了中文英文)
- 构建镜像
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图片转文本
更多推荐
所有评论(0)