栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

EasyOcr 安装(linux、docker)、使用(gin、python)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EasyOcr 安装(linux、docker)、使用(gin、python)

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用户名.EasyOCRmodel
  • 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 .
     
     # 采用上述方法之后仍然报错
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990814.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号