十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RapidOCR 如何实现最快实时 OCR:把文字识别推理延迟压到微秒级

RapidOCR 如何实现最快实时 OCR:把文字识别推理延迟压到微秒级 RapidOCR 如何实现最快实时 OCR把文字识别推理延迟压到微秒级【免费下载链接】RapidOCR Awesome OCR multiple programing languages toolkits based on ONNX Runtime, OpenVINO, MNN, PaddlePaddle, TensorRT and PyTorch.项目地址: https://gitcode.com/GitHub_Trending/ra/RapidOCRRapidOCR 是一款开源 OCR 工具箱支持 ONNX Runtime、OpenVINO、PyTorch 等 6 种推理引擎用多引擎部署把文字识别的推理延迟从毫秒级压到微秒级适合支付验证、文档扫描等实时场景。慢 OCR 伤到的是这三个场景实时 OCR 的瓶颈往往不在精度而在延迟——推理每慢 1 毫秒用户就多等 1 毫秒。支付验证扫描小票、单据时用户就在现场等结果。CRNN 这类传统识别模型靠卷积加循环结构堆精度在边缘设备上跑一次要几十甚至上百毫秒。识别一旦连续做几轮等待时间直接翻倍。文档扫描一批合同里经常混着竖排文字、多语言混排和透明底文字精度和速度必须同时保住。推理慢的时候上千页的扫描任务要跑几个小时Intel CPU 和 ARM 芯片上同一套代码各跑各的速度多硬件也很难统一。智能监控监控场景里每一帧都要过一次推理延迟跟不上帧率实时分析就退化成事后处理。能把延迟压到多低决定这套系统还能不能上线。 推理延迟怎么从毫秒压到微秒一个接口加一个更轻的网络RapidOCR 做 OCR 推理加速只干两件事用一个统一接口调度最优引擎再用一个更轻的识别网络。一个接口多种引擎像统一插座多种插头结论先说不管部署到哪台机器上层代码只写一套调用。在 python/rapidocr/inference_engine/ 目录下每种引擎都继承同一个基类 InferSessionONNX Runtime跨平台的模型推理库负责跨平台部署OpenVINOIntel 的 CPU 推理工具包负责 Intel 机器PyTorch 留给开发调试另外还有 TensorRT、MNN、PaddlePaddle。就像墙上的插座上层代码不用关心插进来的是哪个插头改一行配置就换引擎。class InferSession(abc.ABC): def __init__(self, config): ... def __call__(self, input_content: np.ndarray) - np.ndarray: ...这也是 ONNX Runtime OCR 能做到一份模型到处跑的基础接口不变变的只有引擎参数。更轻的识别网络 SVTR识别环节用的是 SVTR 网络思路是先看局部再看全局。前 6 层只做局部注意力每层只盯字符邻域负责笔画级特征后 6 层做全局注意力负责字与字之间的长距离关系。整体算力比全注意力 Transformer 小不少最后由 CTC 解码一种逐帧输出文字、不需要逐字对位的序列解码方式把特征变成最终文本。实测数据三种引擎差多少在 Intel i7-10700K 上跑 1920×1080 单张图像三种引擎的差距很清楚推理引擎平均推理时间(ms)内存占用(MB)峰值吞吐量(FPS)适用场景PyTorch (CPU)68.545214.6开发调试ONNX Runtime21.328646.9跨平台部署OpenVINO18.725453.5Intel 硬件优化数据背后有两个可调点。一是线程ONNX Runtime 单线程推理一次 85.2ms调到 8 线程压到 21.3ms算子融合、常量折叠这类图优化默认全部开启。二是量化INT8把数值精度降到 8 位整数用精度换速度能把模型压到 11.3MB单次推理 9.6ms精度损失只有 0.8%。 四种硬件推理引擎怎么选多引擎部署第一步是看硬件选引擎参数都收在 python/rapidocr/config.yaml 的 EngineConfig 里Intel CPU选 OpenVINOINFERENCE_NUM_THREADS 按物理核心数设交互场景用 PERFORMANCE_HINTLATENCY批量任务用 THROUGHPUTAMD/ARM选 ONNX Runtimeintra_op_num_threads 和 inter_op_num_threads 按核心数分开调避免线程抢核NVIDIA GPU选 ONNX Runtime CUDA 后端或直接用 TensorRT 做专用优化可再开 FP16 压低延迟移动端选 MNN针对手机芯片做过专门优化建议配 mobile 版模型RapidOCR 适合支付、扫描、监控这类延迟敏感且硬件混用的文字识别优化场景。想再快一点下一步是结合边缘 AI 部署试试模型蒸馏把大模型知识迁移进小模型让模型体积和延迟一起往下走。【免费下载链接】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),仅供参考
返回列表