golang 通过docker 搭建 ocr识别

开源gosseract

地址 gosseract

1. 首先下载docker 和docker-compose ,具体的查看官网
注意 docker版本和docker-compose 版本一致

2. gosseract 在源码中找到dockerfile 文件如下(做了稍微的修改,只安装golang 和 tesseract-ocr/):

##### docker build -f docker_file -t otiai10:0.1 .
# This is a working example of setting up tesseract/gosseract,
# and also works as an example runtime to use gosseract package.
# You can just hit `docker run -it --rm otiai10/gosseract`
# to try and check it out!

#####
FROM golang:latest
LABEL maintainer="Hiromu Ochiai <otiai10@gmail.com>"

RUN apt-get update -qq

# You need librariy files and headers of tesseract and leptonica.
# When you miss these or LD_LIBRARY_PATH is not set to them,
# you would face an error: "tesseract/baseapi.h: No such file or directory"
RUN apt-get install -y -qq libtesseract-dev libleptonica-dev

RUN apt update \
    && apt install -y \
      ca-certificates \
      libtesseract-dev=4.1.1-2+b1 \
      tesseract-ocr=4.1.1-2+b1

# In case you face TESSDATA_PREFIX error, you minght need to set env vars
# to specify the directory where "tessdata" is located.
ENV TESSDATA_PREFIX=/usr/share/tesseract-ocr/4.00/tessdata/

# Load languages.
# These {lang}.traineddata would b located under ${TESSDATA_PREFIX}/tessdata.
# 安装中文
RUN apt-get install -y -qq \
  tesseract-ocr-eng \
  tesseract-ocr-deu \
  #tesseract-ocr-chi_sim \
  tesseract-ocr-jpn
 #检查「tesseract」支持的语言
 # tesseract --list-langs
# See https://github.com/tesseract-ocr/tessdata for the list of available languages.
# https://github.com/tesseract-ocr/tessdata/tree/4.00 或者下载 https://tesseract-ocr.github.io/tessdoc/Data-Files
# If you want to download these traineddata via `wget`, don't forget to locate
# downloaded traineddata under ${TESSDATA_PREFIX}/tessdata.


RUN go env -w GO111MODULE=on
RUN  go env -w GOPROXY=https://goproxy.cn,direct
#RUN go get -t github.com/otiai10/gosseract

RUN /go/src
#RUN cd ${GOPATH}/src/github.com/otiai10/gosseract && go test

# Now, you've got complete environment to play with "gosseract"!
# For other OS, check https://github.com/otiai10/gosseract/tree/main/test/runtimes

3. 在Dockerfile 目录下面编译镜像文件,命令如下(注意如果文件不是Dockerfile 需要 -f xxxxfile 指定编排文件)

docker build  -t orc .

4. 下载过来查看镜像

docker images 

在这里插入图片描述

5. 从官网下载源码运行,新建 docker-compose.yml 文件
在这里插入图片描述
创建网络

 docker network create go_app_orc

编排 挂在你的项目目录 orc_test 挂在到容器里面 /go/src/orc_test

version: '3'
# docker network create go_app_orc
# docker cp /Users/gitxuzan/Downloads/chi_sim.traineddata orc:/usr/share/tesseract-ocr/4.00/tessdata
#  docker exec -it orc_v2 bash
services:
  golang:

    image: orc
    container_name: orc
    networks:
      - web
    volumes:
      - "../orc_test:/go/src/orc_test"

    tty: true
    environment:
      TZ: "Asia/Shanghai"

networks:
  web:
    external:
      name: go_app_orc

6. 启动容器

docker-compose up -d

在这里插入图片描述

7. 进入容器

docker exec -it orc bash

在这里插入图片描述

8. 进入挂载项目运行
在这里插入图片描述
代码如下:

package main

import (
	"fmt"
	"github.com/otiai10/gosseract/v2"
	"log"
)

func main() {
	client := gosseract.NewClient()
	defer client.Close()

	//client.SetLanguage("eng","chi_sim")
	//client.SetLanguage("chi_sim")
	


	client.SetImage("test2.png")
	text, _ := client.Text()
	fmt.Println(text)
	// Hello, World!
}


我用的go mod 管理的 go mod tidy , go run main.go,识别结果如下
在这里插入图片描述
9. 最后如果需要识别中文,需要下载中文包拷贝到容器
中文包下载地址1
中文包下载地址2

拷贝到容器
docker cp /Users/gitxuzan/Downloads/chi_sim.traineddata orc:/usr/share/tesseract-ocr/4.00/tessdata
# 查看是否有中文包
tesseract --list-langs

在这里插入图片描述
设置识别语言

```go
package main

import (
	"fmt"
	"github.com/otiai10/gosseract/v2"
	"log"
)

func main() {
	client := gosseract.NewClient()
	defer client.Close()

	client.SetLanguage("eng","chi_sim")
	
	client.SetImage("test2.png")
	text, _ := client.Text()
	fmt.Println(text)
	// Hello, World!
}


识别中文结果:
在这里插入图片描述
现在存在的问题1

更新 4.1.1镜像
给作者提出issues 反馈

FROM debian:bullseye-slim

RUN apt-get update -qq
RUN apt-get install -y \
  git \
  golang \
  libtesseract-dev=4.1.1-2.1 \
  tesseract-ocr-eng

ENV GOPATH=/root/go

ADD . ${GOPATH}/src/github.com/otiai10/gosseract
WORKDIR ${GOPATH}/src/github.com/otiai10/gosseract

RUN tesseract --version

CMD ["go", "test", "-v", "./..."]

  1. 4.0.0 不能设置白名单,需要升级成4.1.1 ↩︎

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gitxuzan_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值