Skip to content

OnnxOCR-UI 是基于 OnnxOCR 的高级批量图片/PDF OCR 识别工具,采用支持 Web、Windows、Linux、Macos 的 python 程序。 打造,专为高效、易用和美观的批量文字识别场景设计。

License

Notifications You must be signed in to change notification settings

tabortao/OnnxOCR-UI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 OnnxOCR-UI

📖 OnnxOCR-UI 简介

OnnxOCR-UI 是基于 OnnxOCR 的高级批量图片/PDF OCR 识别工具,采用支持 Web、Windows、Linux、Macos 的 python 程序。 打造,专为高效、易用和美观的批量文字识别场景设计。

OnnxOCR-UI OnnxOCR-UI

介绍文章:基于 OnnxOCR 实现的批量 PDF、图片 OCR 识别工具

✨ 主要功能

  • 支持批量图片、PDF 文件拖拽或选择添加
  • PDF 转图片采用 pymupdf,无需 poppler
  • 识别结果可分别输出 txt 或合并为一个 txt,文件名自动带时间戳
  • 输出文件夹自动创建,兼容中文路径
  • 自定义高端黑色主题 UI,窗口支持拉伸、最大化、最小化、居中、任务栏图标
  • 状态栏实时显示进度与提示
  • 文件列表区显示文件名、大小、处理用时
  • “清除添加”按钮可一键清空已选文件
  • 支持模型选择(PP-OCRv5、PP-OCRv4、ch_ppocr_server_v2.0),可热切换
  • 可选是否输出处理图片(_ocr.jpg)
  • 进度条实时显示整体进度,PDF 按页数动态更新
  • 多图识别时状态栏提示平均速度

🛠️ 依赖环境

  • Python 3.7
  • customtkinter
  • tkinterdnd2
  • Pillow
  • opencv-python
  • pymupdf

安装依赖:

pip install -r requirements.txt

启动方式

python main.py

Docker 部署

  • 使用现有 Dockerfile 构建本地镜像并运行:
docker build -t onnxocr-web .
docker run -p 5005:5005 onnxocr-web
  • 使用 docker-compose 启动(示例):
version: "3.8"
services:
  onnxocr-web:
    image: tabortoa/onnxocr-ui:latest
    ports:
      - "5005:5005"
    restart: unless-stopped

启动后,访问 http://localhost:5005/ 即可使用 Web UI。

目录结构

  • onnxocr_ui 项目目录
    • ui.py UI 界面与交互逻辑
    • logic.py OCR 识别与文件处理逻辑
    • requirements.txt 依赖包列表
    • app_icon.ico 界面与任务栏图标
  • main.py 启动入口,仅负责启动 UI

OCR API

1) Base64 图像识别

POST /ocr_api

请求格式

Content-Type: application/json

{
  "image": "<图片的base64字符串>"
}

返回格式

{
  "processing_time": 0.123,
  "results": [
    {
      "text": "识别文本",
      "confidence": 0.99
    }
  ]
}

Python 示例代码

import requests, base64

with open('test_images/1.jpg', 'rb') as f:
    img_b64 = base64.b64encode(f.read()).decode()

resp = requests.post('http://127.0.0.1:8000/ocr_api', json={"image": img_b64})
print(resp.json())
  • 端口号请根据实际 uvicorn 启动参数调整。
  • 返回结果为每一行文本的内容、置信度和文本框坐标。

2) 图片链接识别

POST /ocr_url

请求格式(JSON):

{
  "url": "https://example.com/path/to/image.jpg",
  "model_name": "PP-OCRv5"
}

返回格式与 /ocr_api 相同。

示例(curl):

curl -X POST 'http://127.0.0.1:5005/ocr_url' \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com/path/to/image.jpg"}'

示例(Python):

import requests

resp = requests.post('http://127.0.0.1:5005/ocr_url', json={
  'url': 'https://example.com/path/to/image.jpg',
  'model_name': 'PP-OCRv5'
})
print(resp.json())

3) 路径直连识别(纯文本返回)

无需 POST,可直接在站点后附加图片 URL 进行识别,返回 text/plain

GET /r/{img_url:path}

示例:

http://127.0.0.1:5005/r/https://example.com/path/to/image.jpg

可选参数用于切换模型:

http://127.0.0.1:5005/r/https://example.com/path/to/image.jpg?model_name=PP-OCRv5

返回为每行一条识别文本,文本已去除多余空格,适合在浏览器中快速查看识别结果。

其他说明

  • 支持 PyInstaller 打包,图标自动适配
  • 详细开发说明见 docs/OnnxOCR 开发说明.md
  • 版本更新详见 docs/ChangeLogs.md
  • 关注微信公众号“可持续学园”,回复“OnnxOCR-UI”,获取编译好的最新版 Windows 版 OnnxOCR-UI.exe。

🙏 感谢

About

OnnxOCR-UI 是基于 OnnxOCR 的高级批量图片/PDF OCR 识别工具,采用支持 Web、Windows、Linux、Macos 的 python 程序。 打造,专为高效、易用和美观的批量文字识别场景设计。

Resources

License

Stars

Watchers

Forks

Packages

No packages published