CV / PPOCR
PPOCR
Detects text polygons, rectifies each region, recognizes the text, and returns coordinates and confidence.
选择你正在使用的设备,设置指南和文档将相应更新。
快速开始
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-ppocr:latest \
python web_service.py --platform rk3576 --model_dir /app/model --host 0.0.0.0 --port 8000REST API
使用 REST API 进行推理。复制以下命令。
curl http://localhost:8080/v1/chat/completions -d '{
"model": "ppocr-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "ppocr-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())模型详情
在 reComputer RK3576 和 RK3588 上运行 PPOCR
此端到端 OCR 服务来自 reComputer-RK-CV。它会检测文本多边形,按阅读顺序排序,对每个裁剪区域进行透视校正,并识别每一行文本。
模型信息
| 组件 | 文件 |
|---|---|
| 文本检测器 | model/ppocr_det.rknn |
| 文本识别器 | model/ppocr_rec.rknn |
| 字符字典 | model/ppocr_keys_v1.txt |
| 标注字体 | model/simfang.ttf |
| 输出 | 文本、置信度、四边形坐标、裁剪图和延迟 |
PPOCR 仅支持静态图像。上游服务特意未包含摄像头、本地视频或 MP4 分析控件。
运行服务
RK3576
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-ppocr:latest \
python web_service.py --platform rk3576 --model_dir /app/model \
--host 0.0.0.0 --port 8000RK3588
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-ppocr:latest \
python web_service.py --platform rk3588 --model_dir /app/model \
--host 0.0.0.0 --port 8000打开 http://<BOARD_IP>:8000 或 /docs。
启动参数
| 参数 | 默认值 | 说明 |
|---|---|---|
--platform | 必填 | rk3576 或 rk3588。 |
--model_dir | model | 模型、字典、字体和示例图像。 |
--image | 无 | 服务器启动前分析的静态图像。 |
--output | 无 | --image 的标注 JPG/PNG 输出路径。 |
--no_server | 关闭 | 处理完 --image 后退出。 |
--host / --port | 0.0.0.0 / 8000 | 服务地址和端口。 |
分析一个已挂载的图像、保存标注、打印 JSON 并退出:
python web_service.py --platform rk3576 --model_dir model \
--image /data/document.jpg --output /data/document_result.jpg --no_serverREST API
端点: POST /api/models/ppocr/predict
curl -X POST "http://<BOARD_IP>:8000/api/models/ppocr/predict" \
-F "file=@document.jpg" -F "drop_score=0.5" \
-F "include_crops=false"可选字段包括 det_threshold、box_threshold、unclip_ratio、drop_score、max_results 和 include_crops。其他端点提供健康状态、配置、最新结构化结果、最新标注 JPEG 和交互式 OpenAPI 文档。
| 字段 | 默认值 | 说明 |
|---|---|---|
det_threshold | 0.3 | 像素图检测阈值,范围为 0 到 1。 |
box_threshold | 0.6 | DB 文本框最低分数。 |
unclip_ratio | 1.5 | 多边形扩展比例,范围为 0.1 到 5。 |
drop_score | 0.5 | 合并文本中包含的最低识别置信度。 |
max_results | 100 | 发送至识别器的最大区域数。 |
include_crops | false | 在结果行中包含 base64 JPEG 裁剪图。 |
重要响应字段:
{
"success": true,
"model": "ppocr",
"result": {
"text": "Recognized first line\nRecognized second line",
"lines": [
{
"index": 1,
"text": "Recognized first line",
"confidence": 0.9621,
"accepted": true,
"box": [[42, 31], [286, 29], [287, 72], [43, 74]]
}
],
"count": 2,
"timing_ms": {"detection": 54.2, "recognition": 71.4, "total": 129.8}
}
}检测质量会直接影响识别。极小、模糊、弯曲、竖排、低对比度或大角度旋转的文本可能无法检测,简单的阅读顺序启发式方法也可能不适用于复杂的多栏文档。include_crops=true 会增大响应体积,主要用于 Web 结果面板。检测器和识别器是流水线阶段,必须与字符字典和透视裁剪逻辑保持兼容。
本地构建
docker build -f docker/rk3576/ppocr.dockerfile \
-t rk3576-ppocr:local src/rk3576_ppocr
docker build -f docker/rk3588/ppocr.dockerfile \
-t rk3588-ppocr:local src/rk3588_ppocr输入与输出
Input: still image. Output: ordered text lines, confidence scores, quadrilaterals, and annotated image.