RapidOCR多引擎OCR:一套库离线跑遍CPU、GPU和移动端
RapidOCR多引擎OCR一套库离线跑遍CPU、GPU和移动端【免费下载链接】RapidOCR Awesome OCR multiple programing languages toolkits based on ONNX Runtime, OpenVINO, MNN, PaddlePaddle, TensorRT and PyTorch.项目地址: https://gitcode.com/GitHub_Trending/ra/RapidOCR客户给的是一套内网系统没网服务器是台老Intel CPU边缘盒子上还挂着GPU单张图留给识别的时间预算就几百毫秒。我用的就是RapidOCR的多引擎推理支持同一套代码配置里换推理后端CPU、GPU、移动端都能跑。跑起来快速体验pip install rapidocr onnxruntime之后就能开始首次调用会自动下载默认的PP-OCRv6检测和识别模型并缓存到本地from rapidocr import RapidOCR engine RapidOCR() result engine(ch_en_num.jpg) print(result.txts, result.scores)它到底快在哪RapidOCR多引擎推理切换推理引擎切换一行配置换后端RapidOCR包了6种后端onnxruntime默认、openvino、paddle、torch、tensorrt、mnn。det/cls/rec三个环节各自有独立的engine_type检测可以走ONNX Runtime、识别同时走TensorRT。对使用者意味着一套业务代码覆盖整个机房换硬件只改配置不改代码。默认值和全部可调项在默认配置里。engine RapidOCR(params{ Det.engine_type: onnxruntime, Rec.engine_type: tensorrt, })ONNX Runtime线程调优线程数只认合理范围默认开启ORT_ENABLE_ALL全量图优化说白了就是把图里重复的算子合并成大算子、加载时预先算好常量。intra_op_num_threads和inter_op_num_threads默认-1交给库自己选。注意这里代码会用os.cpu_count()校验你填的值超过核心数会被静默忽略不报任何错所以设越大越快不成立。EngineConfig.onnxruntime: intra_op_num_threads: 8 inter_op_num_threads: 4TensorRTFP16默认开INT8量化是可选开关TensorRT后端会从ONNX现场构建序列化引擎并写进cache_dir之后直接加载首次构建要几分钟。use_fp16默认true显卡支持就自动启用FP16想再压可以开INT8量化但精度要自己验证。构建开销是一次性的适合同一批图反复跑的场景。EngineConfig.tensorrt: use_fp16: true use_int8: false cache_dir: ./trt_cacheOpenVINOperformance_hint在延迟和吞吐间二选一OpenVINO是Intel CPU的专属选项。配置里暴露了performance_hint实时单张处理填LATENCY批量填THROUGHPUT另外还有INFERENCE_NUM_THREADS、超线程开关这些细项。纯Intel机器跑OCR可以优先试这个引擎看数字再决定要不要换。竖排、透明背景、歪照片预处理基本都兜住了输入若是宽矮长条宽高比超过8或高度不足30像素检测前会自动上下letterbox补齐到宽高比8让文字行高度足够、检测不漏裁剪出的文字行如果高宽比超过1.5会被判定为竖排并自动旋转90度再送识别带EXIF旋转的照片读取时自动摆正方向。不用自己处理竖排和横置截图预处理逻辑集中在process_img。实测数据仓库未公布benchmark先看这张表推理引擎适用硬件默认精度单图推理耗时(ms)峰值吞吐(张/秒)ONNX Runtime通用CPU / CUDA GPUFP32暂无公开数据暂无公开数据OpenVINOIntel CPUFP32暂无公开数据暂无公开数据TensorRTNVIDIA GPUFP16暂无公开数据暂无公开数据PaddlePaddleCPU / GPUFP32暂无公开数据暂无公开数据PyTorchCPU / CUDA / MPSFP32暂无公开数据暂无公开数据MNN移动端FP32暂无公开数据暂无公开数据仓库没有发布官方benchmark上面两个指标列全是暂无公开数据请以自己机器实测为准。从配置看差异最大的地方是ONNX Runtime线程数是否调到合理范围、TensorRT是否启用FP16、Intel CPU上是否加了performance_hint。开发中容易踩的坑首次调用慢到以为服务卡死我最初以为是CPU推理慢后来发现其实是三个模型在首次调用时从模型库下载并做sha256校验。离线机器提前下好指向本地路径params{Det.model_path: /models/det.onnx}。intra_op_num_threads设成16延迟没变化也没报错。我最初以为是引擎不生效后来发现代码会按os.cpu_count()校验线程数超范围直接静默丢弃。修法intra_op_num_threads: 8且必须不超过物理核心数。手机截图上检测框整体歪掉我最初以为是检测模型的问题后来发现照片带EXIF旋转cv2.imread不读这个信息而RapidOCR的LoadImage会做exif_transpose。修法直接传路径engine(photo_path)别自己解码成ndarray。RapidOCR多引擎推理适不适合你的场景纯Intel CPU、想省事默认ONNX Runtime或切OpenVINO并加performance_hint。有NVIDIA显卡、追单图延迟上TensorRT接受首次构建引擎的几分钟。做移动端App选MNN对应格式模型已在内置列表里。只识别单条文字、不需要定位框use_detFalse, use_clsFalse省掉两个模型的耗时。要用自己的数据微调在PaddleOCR侧调好转成ONNX后填进model_path即可。回头看RapidOCR多引擎OCR最值钱的点是把选推理框架变成了一件配置的事同一套API、6种后端、模型自动下载校验离线环境提前下好模型即可。配合det/cls/rec分环节开关和按次传参调优空间留得很足。代码和文档都是开源的git clone https://gitcode.com/GitHub_Trending/ra/RapidOCR就能看到完整实现。【免费下载链接】RapidOCR Awesome OCR multiple programing languages toolkits based on ONNX Runtime, OpenVINO, MNN, PaddlePaddle, TensorRT and PyTorch.项目地址: https://gitcode.com/GitHub_Trending/ra/RapidOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

rome_markup 深入解析:为 Rome 控制台输出构建 JSX 风格标记的过程宏

rome_markup 深入解析:为 Rome 控制台输出构建 JSX 风格标记的过程宏

开发工具CLILint格式化静态分析代码质量构建工具 【免费下载链接】tools Unified developer tools for JavaScript, TypeScript, and the web 项目地址: https://gitcode.com/gh_mirrors/to/tools 点击查看 免费下载 rome_markup 是 Rome 工具链中一个专门的过程宏…

2026/9/20 15:49:25 阅读更多 →
温湿度传感器以太网通信中的CRC选型与实战避坑指南

温湿度传感器以太网通信中的CRC选型与实战避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 15:49:25 阅读更多 →
Ghidra逆向工程入门:环境配置、Java报错排查与反编译实战

Ghidra逆向工程入门:环境配置、Java报错排查与反编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 15:49:25 阅读更多 →

最新新闻

Qt 5.15.19 终结与 Qt for MCUs 2.11 LTS 发布:ESP32-S3 和 RA8D1 支持及地图渲染解析

Qt 5.15.19 终结与 Qt for MCUs 2.11 LTS 发布:ESP32-S3 和 RA8D1 支持及地图渲染解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 16:20:55 阅读更多 →
Snowpack + Preact + TypeScript 项目模板完全指南:从 create-snowpack-app 脚手架到生产构建

Snowpack + Preact + TypeScript 项目模板完全指南:从 create-snowpack-app 脚手架到生产构建

Snowpack Preact TypeScript 项目模板完全指南:从 create-snowpack-app 脚手架到生产构建 【免费下载链接】snowpack ESM-powered frontend build tool. Instant, lightweight, unbundled development. ✌️ 项目地址: https://gitcode.com/gh_mirrors/sn/snowp…

2026/9/20 16:20:55 阅读更多 →
Python自动化测试完整指南:接口、UI、数据驱动与持续集成

Python自动化测试完整指南:接口、UI、数据驱动与持续集成

做自动化测试这行久了,经常被问到同一个问题:“到底怎么用 Python 写自动化测试?”问的人有刚转行的测试新人,也有写了好几年功能用例但想突破的老手。我发现大家普遍不缺学习热情,缺的是一个能从零讲清楚、又带真实代…

2026/9/20 16:20:55 阅读更多 →
antd Tag.CheckableTag 实战:实现类似 Checkbox 的完全受控可勾选标签

antd Tag.CheckableTag 实战:实现类似 Checkbox 的完全受控可勾选标签

前端UI组件设计系统 【免费下载链接】ant-design An enterprise-class UI design language and React UI library 项目地址: https://gitcode.com/gh_mirrors/ant/ant-design 点击查看 免费下载 Tag.CheckableTag 是 ant-design 中 Tag 组件的可勾选形态&#xff0…

2026/9/20 16:20:55 阅读更多 →
GetQzonehistory:QQ空间历史说说、留言与评论完整导出到本地

GetQzonehistory:QQ空间历史说说、留言与评论完整导出到本地

GetQzonehistory:QQ空间历史说说、留言与评论完整导出到本地 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory QQ空间从未提供数据导出入口;互动列表会被逐批截断&…

2026/9/20 16:20:55 阅读更多 →
.NET 物理文件提供程序深入解析:Microsoft.Extensions.FileProviders.Physical 的查找、监视与轮询机制

.NET 物理文件提供程序深入解析:Microsoft.Extensions.FileProviders.Physical 的查找、监视与轮询机制

语言运行时标准库JIT编译编译器 【免费下载链接】runtime .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps. 项目地址: https://gitcode.com/GitHub_Trending/runtime6/runtime 点击查看 免费下载 Microsoft.Extensions.FileProviders…

2026/9/20 16:19:53 阅读更多 →

日新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →