使用Go + Tesseract-OCR 实现文字识别的通用服务
 编辑于 2021-10-23 11:50:22 阅读 5258
目录结构
│  .gitignore
│  docker-compose.yml
│  Dockerfile
│  main.go
│  readme.md
├─.docker
│      docker-compose.yaml
├─tesseract
│      .gitkeep
其中.docker目录不是必须的,是配合docker-desktop一起用的,一个go的开发环境
其中docker-compose.yml文件中networks的定义,为了与其他docker-compose.yml网络互通,使用了外部网络。如果不需要多个docker-compose互通,可以修改一下
version: '3'
networks:
  web-network:
services:
  docker-tesseract:
    ...
    networks:
      - web-network
步骤
#1. 构建镜像 Dockerfile
docker build -t my/tesseract-ocr .
#2. 修改镜像名
vi docker-compose.yml
    image: my/tesseract-ocr
    
#3. 运行
docker-compose up -d
main.go
对外提供一个接口/ocr?url=http://xx.com/aa.jpg
测试

浏览器访问http://localhost:8000/ocr?url=http://xx.com/aa.jpg
{
	"code": 200,
	"msg": "success",
	"data": {
		"tips": "Warning: Invalid resolution 0 dpi. Using 70 instead.\nEstimating resolution as 197\n",
		"content": "PHOTOGRAPH\n产品实拍\n\n由于拍摄光线以及显示器等因素影响,可能会导致图片与实物颜色\n有细微信差,最终颜色以实物为准。\n\u000c",
		"url": "http://xx.com/aa.jpg"
	}
}
后来发现,在没优化的前提下,chineseocr_lite的效果会更好,详见 http://www.cuiwei.net/p/1052444754
