👁️ pdocr-rpc — PaddleOCR RPC 服务
"服务端一次部署,客户端零成本使用,OCR 即服务。"
概述
pdocr-rpc 是基于 PaddleOCR 封装的 RPC 服务,包含客户端和服务端。通过 XML-RPC 协议将 OCR 识别能力封装为远程服务,客户端只需安装一个轻量包即可使用,无需安装庞大的 PaddlePaddle 和 PaddleOCR。
GitHub: https://github.com/linuxdeepin/pdocr-rpc
文档站: https://linuxdeepin.github.io/pdocr-rpc/
PyPI: https://pypi.org/project/pdocr-rpc/
许可证: Apache 2.0
解决的痛点
- PaddleOCR 安装太重(PaddlePaddle + PaddleOCR + 模型文件),每次环境搭建费时费力
- 团队多台机器需要 OCR 能力,每台都安装一遍是重复劳动
- 测试自动化需要 OCR 定位/验证,但不想污染测试环境的依赖
- 需要跨平台 OCR(Linux X11/Wayland、Windows、macOS),统一调用方式
核心设计
- 服务端:一次性安装部署 PaddleOCR,启动 RPC 服务等待客户端请求
- 客户端:轻量安装,通过
OCR.ocr()完成截图上传 → 识别 → 坐标返回 - 协议:XML-RPC(Python 标准库
xmlrpc),多线程服务(ThreadingMixIn)
核心特性
全屏截图识别
不传参数,自动截取当前屏幕并识别所有文字,返回 {字符串: (中心x, 中心y)} 字典:
指定图片识别
查找字符串坐标
传入目标字符串,返回该字符串在屏幕中的中心坐标:
多语言支持
支持中文、英文、法语、德语、韩语、日语:
匹配度控制
调整字符串匹配的相似度阈值(0~1,默认 0.6):
返回模式切换
return_default=True:返回 PaddleOCR 原始数据结构(四个角坐标 + 文本 + 置信度)return_first=True:多个匹配时只返回第一个
重试与超时
支持网络重试、重试间隔、超时和最大匹配次数配置:
跨平台截图
集成 funnylog
客户端集成 funnylog 日志框架,OCR 识别结果自动以 DEBUG 级别输出,方便调试。
技术栈
项目结构
使用方式
服务端
创建 ocr_server.py:
自定义端口:
客户端
配置项
依赖说明
许可证
Apache 2.0
声明:本站所有文章,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。-- mikigo