OnnxOCR-UI 是基于 OnnxOCR 的高级批量图片/PDF OCR 识别工具,采用支持 Web、Windows、Linux、Macos 的 python 程序。 打造,专为高效、易用和美观的批量文字识别场景设计。
介绍文章:基于 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- 使用现有
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.pyUI 界面与交互逻辑logic.pyOCR 识别与文件处理逻辑requirements.txt依赖包列表app_icon.ico界面与任务栏图标
main.py启动入口,仅负责启动 UI
POST /ocr_api
Content-Type: application/json
{
"image": "<图片的base64字符串>"
}{
"processing_time": 0.123,
"results": [
{
"text": "识别文本",
"confidence": 0.99
}
]
}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 启动参数调整。
- 返回结果为每一行文本的内容、置信度和文本框坐标。
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())无需 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。

