EasyOcr git地址

 EasyOCR是一款用python语言编写的OCR第三方库,同时支持GPU和CPU,目前已经支持超过70种语言. 

安装(CPU)

注意:

  • 本文是在仅在cpu下使用。如要使用CUDA版本,请在pytorch网站上选择正确的,并关闭此文章。(开玩笑,容器安装支持)
  • easyocr 不支持32位的python(经历了数个小时的血泪教训:python3.8-32)
  • 初次使用时,会自动下载所用到的模型,我们可以先下载easyocr所要用到的模型
  • 模型官网地址:估计你也不可用,我的百度网盘 提取码:vhsy

Windows

  • 安装 easyocr: pip3 install easyocr (安装除了模型文件之外的所有依赖)
  • 如果在安装Torch、Torchvision时出错:whl包 可按照自己的版本自行下载安装

Linux

  • 安装 easyocr: pip3 install easyocr (安装除了模型文件之外的所有依赖)
  • 博主在ubuntu:18.04上安装 西内!!!(遇到了本文最后的问题)
  • 直接git clone 源码,之后: sudo python3 setup.py install。ok!!!

模型存放位置

  • Windows:C:\Users\用户名.EasyOCR\model
  • Linux:~/ .EasyOCR / model

创建镜像,启动容器

  • 下载git中的Dockerfile

  • 创建镜像:

    mkdir easyocr
    # 把Dockerfile 放easyocr
    docker build -t easyocr .
    # 创建名为easyocr的镜像
    
  • 启动容器:

    docker run -d -p 18888:18888 -v /home/fxm/easyocr/:/home/fxm/easyocr/ --name ocr -it 镜像id /bin/bash
    # -d -p 18888:18888: 指定绑定本机端口(如果要启服务,需要开启,其他忽略)
    # -v /home/fxm/easyocr/:/home/fxm/easyocr/ 挂载目录,存放代码文件
    # --name easyocr 容器名为easyocr 
    

代码

test.py

import easyocr
import sys

# 创建reader对象
reader = easyocr.Reader(['en'], gpu=False)
# 读取图像
file_name = sys.argv[1]
result = reader.readtext(file_name, detail=0)
# 结果
print(result[0])

main.go

package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"os"
	"os/exec"
)

func main() {
	r := gin.Default()
	r.POST("/get_pic", func(c *gin.Context) {
		file, err := c.FormFile("pic")
		if err != nil {
			c.String(302, "没有图片")
			return
		}
		filename := file.Filename
		// 判断图片存在 删除
		if _, err := os.Stat(filename); err == nil {
			_ = os.Remove(filename)
		}
		if err := c.SaveUploadedFile(file, filename); err != nil {
			c.String(302, "图片保存异常", err)
			return
		}
		cmd := exec.Command("python3", "test.py", filename)
		// 执行命令,并返回结果
		output, err := cmd.Output()
		if err != nil {
			c.String(302, "图片异常", err)
			return
		}
		err = os.Remove(filename)
		if err != nil {
			fmt.Println("删除失败")
			c.String(302, "未知异常", err)
			return
		}
		_ = cmd.Wait()
		res := string(output[:len(output) - 1])
		c.String(200, res)
		return
	})
	_ = r.Run("0.0.0.0:18888") // listen and serve on 0.0.0.0:8080
}
  • 如不需服务 test.py放入easyocr文件夹下 即可
  • 将main.go 编译后放入easyocr文件夹下,进入容器,执行 编译后的执行文件

在这里插入图片描述

验证(python版本)

import requests

path = "1.jpg"
url = "http://ip:18888/get_pic"
files = {'pic': open(path, 'rb')}
r = requests.post(url=url, files=files).content.decode()
print(r)

在这里插入图片描述

问题

  • ModuleNotFoundError: No module named ‘skbuild’

     pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-build
    
  • Problem with the CMake installation, aborting build. CMake executable is cmake

     一:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple cmake
     
     二:
     1. 下载最近的源
     git clone https://github.com/scikit-build/scikit-build cd scikit-build
     2. 开始安装
     pip install .
     
     # 采用上述方法之后仍然报错
    
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐