Skip to content

开源的中英文离线 OCR,使用 PaddleOCR 实现,提供了简单的 Web 页面及接口

License

Notifications You must be signed in to change notification settings

walking-blockhead/PaddleWebOCR

 
 

Repository files navigation

PaddleWebOCR

开源的中英文离线 OCR,使用 PaddleOCR 实现,提供了简单的 Web 页面及接口。

An opensource offline multi-languages OCR system shipped with RESTful api and web page.

介绍

使用了开源的 PaddleOCR 并内置了多个模型,可以在离线环境下运行,并且相关资料丰富便于自行训练模型。PaddleOCR 本身支持中文简体繁体,英文,韩文等等多种语言,本项目只内置了中英文(简体中文和繁体中文)的模型,如需要识别其它语言,可以参考本项目调整模型。

web页面

特性

  • 中文简体/繁体,英语等多语种识别

安装需求

运行平台

  • ✔ Python 3.7+
  • ✔ Windows 10/11
  • ✔ CentOS 7
  • ✔ MacOS Big Sur
  • ✔ Docker

Windows、CentOS 和 MacOS 系统下在安装好依赖之后可以直接运行,目前只构建了 paddlepaddle 的 CPU 版本,不支持 GPU。也过通过构建 Docker 镜像或者直接从 DockerHub 拉去镜像来使用。

最低配置要求

  • CPU: 2 核
  • 内存: 4GB

安装说明

服务器部署

  1. 安装好 nodejs 之后进入 webui 目录
cd webui
npm install
npm run build
  1. 安装 python 3.7

  2. 安装依赖包

pip install -r requirements.txt
  1. 运行,项目默认运行在 8080 端口:
uvicorn paddlewebocr.main:app --host 0.0.0.0 --port 8080


#或者

PYTHONPATH="${PYTHONPATH}:." python paddlewebocr/main.py [--port=8080]

Docker 部署

推荐从 DockerHub pull 运行镜像

docker run -d -p 8080:8080 -v ${PWD}/logs:/app/logs --name paddlewebocr lewangdev/paddlewebocr:latest

使用脚本构建本地镜像(因为要编译 GCC,整个构建过程非常漫长)

# Dockerfile 构建
./build-docker-image.sh

# 运行镜像
docker run -d -p 8080:8080 -v ${PWD}/logs:/app/logs --name paddlewebocr paddlewebocr:latest 

接口调用示例

  • Python 使用 File 上传文件
import requests
url = 'http://127.0.0.1:8080/api/ocr'
img1_file = {
    'img_upload': open('img1.png', 'rb')
}
res = requests.post(url=url, data={'compress': 0}, files=img1_file)
  • Python 使用 Base64
import requests
import base64


def img_to_base64(img_path):
    with open(img_path, 'rb')as read:
        b64 = base64.b64encode(read.read())
    return b64


url = 'http://127.0.0.1:8080/api/ocr'
img_b64 = img_to_base64('./img1.png')
res = requests.post(url=url, data={'img_b64': img_b64})

效果展示

英文文档识别

中文文档识别

验证码识别

验证码识别

火车票

火车票

发票

身份证

海报

更新记录

查看更新记录

致谢

本项目参考了 TrWebOCR,由于 TrWebOCR 启动时需要联网并且它使用的 Tr 相关的资料比较少,故而尝试使用 paddlepaddlepaddleocr 来替换 Tr, 从而有了本项目。

License

Apache 2.0

About

开源的中英文离线 OCR,使用 PaddleOCR 实现,提供了简单的 Web 页面及接口

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Vue 48.1%
  • Python 38.7%
  • JavaScript 6.4%
  • Dockerfile 3.0%
  • HTML 2.7%
  • Shell 1.1%