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 mainimport ("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 requestspath = "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-build2. 开始安装pip install .# 采用上述方法之后仍然报错