TurboOCR

每秒200+张图,TensorRT加速的OCR服务,开箱即用。

TurboOCR 是一个基于 C++ 实现的高性能 OCR 服务,专为追求极致吞吐量的场景设计。它集成了百度飞桨的 PP-OCRv6 模型,并利用 TensorRT FP16 推理加速,在 OmnidocBench 基准上实现了每秒超过 200 张图片的处理速度。项目提供 HTTP 和 gRPC 两种接口,方便集成到现有服务中。它解决了传统 OCR 服务性能瓶颈问题,尤其适合大规模文档数字化、实时视频流文字识别等对速度要求极高的应用。核心能力包括:高效的模型推理优化、灵活的部署方式(支持 Docker)、以及面向生产环境的稳定性设计。

开源 free 搜索知识
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1086
维护状态 较活跃
是否开源
定价模式 free

项目数据

分类搜索知识
开发团队aiptimizer
所属国家
定价模式free
价格说明开源项目,MIT许可证,可免费自行部署使用,无在线服务。
访问状态
是否开源
开源协议MIT
主要语言C++
技术栈/模型document-ai,document-parsing,easyocr,fastapi,fp16,gpu-ocr,grpc,inference-server,nvidia,ocr,paddleocr,pdf-extraction,qwen-vl,rag,tensorrt,text-detection,text-recognition
GitHub 星标★ 1086
30天Star增速
HF 下载量
上线时间2026-03-20 00:00:00
最近更新2026-09-23 00:00:00
维护状态较活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数4

使用教程

难度:入门 约 10 分钟 部署方式:Docker 5 步

环境要求

  • Linux 系统
  • NVIDIA 驱动 595+
  • Turing 或更新的 GPU(RTX 20 系列 / GTX 16 系列及以上)
  • 显存约 4 GB(纯文本)到约 8 GB(完整流水线:版面+表格+公式)
  • 已安装 Docker 与 NVIDIA Container Toolkit(--gpus all 可用)

安装与启动步骤

  1. 1启动 OCR 容器

    用官方镜像启动服务,映射 8000(HTTP)与 50051(gRPC)端口,并挂载命名卷缓存 TensorRT 引擎。

    docker run --gpus all -p 8000:8000 -p 50051:50051 
      -v trt-cache:/home/ocr/.cache/turbo-ocr 
      ghcr.io/aiptimizer/turboocr:latest
  2. 2等待引擎构建

    首次启动会从 ONNX 构建 TensorRT 引擎,5090 约 90 秒,旧卡可能长达 1 小时;期间 nginx 会返回连接被拒。

  3. 3调用 OCR 接口

    向后端发送图片二进制,返回文本、置信度和包围框。容器就绪后即可执行。

    curl -X POST http://localhost:8000/ocr/raw 
      --data-binary @document.png -H "Content-Type: image/png"
  4. 4加速引擎构建

    如果首次构建太慢,可加大优化等级,构建时间缩短 3~5 倍,但有轻微速度回退。

    docker run --gpus all -e TRT_OPT_LEVEL=3 -p 8000:8000 -p 50051:50051 
      -v trt-cache:/home/ocr/.cache/turbo-ocr 
      ghcr.io/aiptimizer/turboocr:latest
  5. 5自行构建镜像

    如需从源码构建 GPU 镜像,使用仓库内的 Dockerfile.gpu,再按前述命令启动。

    docker build -f docker/Dockerfile.gpu -t turboocr .
    docker run --gpus all -p 8000:8000 -p 50051:50051 
      -v trt-cache:/home/ocr/.cache/turbo-ocr turboocr

关键配置

配置项必填说明示例
OCR_MODEL选择模型档位,或指定 PP-OCRv5 script 模型tiny
DISABLE_LAYOUT设为 1 跳过版面模型,省约 300–500 MB 显存0
PIPELINE_POOL_SIZE并发 GPU 流水线数量,默认自动;小显存卡建议调低1
REQUEST_TIMEOUT_MS单请求推理超时,超时返回 504;0 表示不限时60000
CLS_ALL_BOXES设为 1 对每行文本做 0°/180° 方向分类,适合混排/倒置扫描件0
LAYOUT_MERGE_MODE嵌套框策略:all/outer/innerall

如何确认成功

curl 向 http://localhost:8000/ocr/raw 发图,返回含 results 数组(text、confidence、bounding_box)的 JSON 即成功。

常见问题

Q:刚启动就请求,提示连接被拒?

A:这是正常的:首次启动要从 ONNX 构建 TensorRT 引擎,期间 nginx 会返回 connection refused,等后端就绪后再请求即可。

Q:第二次启动还要等很久吗?

A:不用。挂载 trt-cache 命名卷后引擎会被缓存,后续启动是瞬时完成的。

Q:显存不够怎么办?

A:纯文本约需 4 GB,完整流水线约 8 GB,且每个 PIPELINE_POOL_SIZE 副本会再占一整套;显存小时请调低该值,或用 DISABLE_LAYOUT=1 跳过版面模型。

Q:支持 AMD 或 Apple 芯片吗?

A:目前只有 NVIDIA 后端正式发布,Apple Metal 与 Intel OpenVINO 后端在测试中,AMD ROCm 仍在开发。

注意事项

  • 必须使用 --gpus all 把 GPU 透传给容器,否则无法推理。
  • 首次启动会构建 TensorRT 引擎,耗时可能很长,建议保留 trt-cache 卷避免重复构建。
  • 服务默认同时开放 HTTP 8000(nginx 反代到 Drogon 8080)与 gRPC 50051,两个端口都会自动启动。

核心亮点

  • 性能极致:TensorRT FP16 优化,单机吞吐量远超常规 OCR 服务,实测 200+ img/s。
  • 接口友好:同时提供 HTTP 和 gRPC,适配微服务和内部调用场景。
  • 模型先进:集成 PP-OCRv6,识别精度和速度平衡良好。

不足之处

  • 依赖特定硬件:TensorRT 优化依赖 NVIDIA GPU,非 N 卡环境无法发挥性能。
  • 文档/社区待观察:早期项目,文档和社区生态尚不成熟。

适用场景

  • 大规模文档扫描数字化,批量图片文字提取。
  • 视频流实时字幕识别,需要高吞吐低延迟。
  • 云服务商提供 OCR API,需要高并发处理能力。

替代项目

PaddleOCR、Tesseract OCR、EasyOCR

项目介绍

TurboOCR 是计算机视觉领域的开源项目,由 aiptimizer 开发,是 2026 年新上线的项目。

在全站 13,014 个收录项目中,它的 GitHub 星标数(1,086)位列前 30%,在计算机视觉分类中处于中上游。

近 42 天,它的 GitHub 星标从 965 增加到 1,086,净增 121。

项目保持着较活跃的维护节奏,最近一次代码更新于 2026-09-23。MIT许可证,可免费自行部署使用,无在线服务。

它主要面向的使用场景是:大规模文档扫描数字化,批量图片文字提取。同类可对比的替代方案包括 PaddleOCR、Tesseract OCR、EasyOCR。

上一篇:bootcamp

下一篇:EgoLife

同类项目推荐

modlens 开源

给纯文本编码代理装上眼睛,粘贴图片即刻获得结构化视觉证据。

The first vision plugin for DeepSeek Harness, and the vision bridge for every text-o···

★ 4019 2026-08-19
opencv 开源

开箱即用的视觉算法库,搞定图像视频处理与识别

Open Source Computer Vision Library

★ 90930 2026-08-10
OpenCVTutorials 开源

中文 OpenCV 教程,从入门到实战,边看边跑代码

OpenCV-Python4.1 中文文档

★ 1430 2026-08-20
DEIMv2 开源

用DINOv3做实时检测,又快又准,直接落地。

[DEIMv2] Real Time Object Detection Meets DINOv3

★ 2046 2026-08-14