尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

PP-OCRv6 文本识别部署实战:5分钟跑通,从一行命令到代码集成一步到位

PP-OCRv6 文本识别部署实战:5分钟跑通,从一行命令到代码集成一步到位 PP-OCRv6 文本识别部署实战5分钟跑通从一行命令到代码集成一步到位【免费下载链接】PP-OCRv6_medium_rec_onnx项目地址: https://ai.gitcode.com/paddlepaddle/PP-OCRv6_medium_rec_onnx如果你正被「把图片、截图、票据里的文字变成可编辑文本」这件事反复折腾那么飞桨PaddlePaddle开源的PP-OCRv6_medium_rec_onnx很值得你花5分钟了解一下。这篇PP-OCRv6 文本识别部署实战指南不堆术语、不绕弯子带你从零开始把模型跑起来并讲清楚怎么接进你自己的程序。先回答一个实际问题它到底能帮你省下什么先看一个再常见不过的场景月末整理报销单几十张发票需要一张张核对、抄录产品经理丢来一张截图说「把这个列表里的字帮我提出来」或者你想给内部系统加一个「扫一扫自动录入」的功能。这些事如果靠人工费时且容易出错如果靠传统 OCR 工具又常常在识别率上翻车。PP-OCRv6_medium_rec_onnx 解决的就是「把图片里的文字识别成字符串」这件事。你给它一张包含文字的图片它返回给你识别出的文本和对应的置信度分数整个过程只需要几秒而且完全可以在本地运行数据不出内网。轻量却不掉队一组数据看懂它的真实水平很多人的第一反应是这么轻的模型精度能行吗答案是它属于「小而强」那一类几个关键数字可以说明问题指标数值说明参数量约 19M1900万模型体积小部署成本低支持语言50 种中文、英文及大量小语种开箱即用印刷体中文准确率91.5%常规印刷文档识别表现稳定印刷体英文准确率94.1%英文场景表现更亮眼综合 W-Avg 分数83.2%覆盖手写、古籍、竖排、工业场景等 16 类任务更难得的是它在不少细分场景上的成绩已经超过了参数量高达百亿级别的通用视觉大模型——用 19M 参数实现这样的效果正是它适合被快速部署到实际业务中的底气。项目采用 Apache-2.0 协议开源学习、自用甚至商用都很自由。开工之前先花两分钟认识两个关键词在敲命令之前有两个概念值得先搞清楚它们决定了你后面所有操作的原理。ONNX一种开放、通用的神经网络模型格式。你可以把它理解成模型的「通用语言」同一个 ONNX 文件无论底层是哪个框架训练出来的都能被各种推理引擎加载运行。ONNX Runtime微软开源的推理引擎专门负责高效执行 ONNX 模型。我们装好它就相当于给模型配好了「运行环境」。所以整个部署其实就两步装好 PaddleOCR 工具库再装好 ONNX Runtime模型就能跑起来。依赖安装非常简单两条命令即可# 安装 PaddleOCR 基础库包含模型加载、推理、后处理等能力 pip install paddleocr # 如果还想解锁更多功能可以安装完整版 pip install paddleocr[all]# 安装 ONNX RuntimeGPU 版推理速度更快 pip install onnxruntime-gpu如果你的机器没有独立显卡也不必担心换成 CPU 版的 onnxruntime 同样可以正常使用只是速度会慢一些。最快上手路径一行命令文字识别安装完成后激动人心的时刻就到了。找到一张包含文字的图片打开终端执行下面的命令即可完成一次完整的文字识别paddleocr text_recognition \ --model_name PP-OCRv6_medium_rec \ --engine onnxruntime \ -i ./你的图片.jpg命令里的三个关键参数分别是--model_name指定使用 PP-OCRv6_medium_rec 这个识别模型--engine选择 onnxruntime 作为推理引擎-i告诉它「去识别哪张图」。首次运行会自动下载模型文件之后就可以离线使用了。整个过程不需要你写任何代码真正意义上的「一行命令文字识别」。识别结果怎么看读懂返回的 JSON命令跑完后你会在终端看到类似下面这样的输出它以 JSON 结构组织每个字段都有明确的含义{res: {input_path: ./你的图片.jpg, page_index: None, rec_text: 这是一行识别出来的文字, rec_score: 0.9857}}字段含义input_path你输入的图片路径page_index页码索引单张图片通常为空rec_text识别出的文本内容直接可用的字符串rec_score置信度分数越接近 1 代表模型越有把握rec_score是个很实用的信息你可以用它做二次过滤比如只把分数高于 0.9 的结果自动入库低于阈值的转人工复核这在票据自动录入类场景里非常常见。把能力搬进自己的程序Python 快速集成 OCR命令行适合快速验证但真实业务往往需要把能力嵌进自己的系统里。别担心Python 集成同样简单核心代码只有三行from paddleocr import TextRecognition model TextRecognition(model_namePP-OCRv6_medium_rec, engineonnxruntime) output model.predict(input./你的图片.jpg, batch_size1)拿到output后你可以遍历每条结果用res.print()打印内容或者用res.save_to_json()把结果落盘保存for res in output: res.print() res.save_to_json(save_path./output/res.json)就这样一个能识别图片文字的模块就接入完毕了。之后无论是做批量文件夹扫描、对接 Web 接口还是写一个桌面小工具都只是在这个基础上扩展而已。从「认文字」到「读整页」检测加识别一条龙上面的流程处理的是「单行文字图片」——也就是图片里只有一行文字。但真实场景中你拿到的往往是一整页文档、一张票据或一张街拍照片里面散布着很多行文字。这时候就需要先「检测」再「识别」检测模块先框出图片里所有文字区域识别模块再逐块读取内容。好消息是这套完整流程同样一条命令搞定paddleocr ocr -i ./你的图片.jpg \ --text_detection_model_name PP-OCRv6_medium_det \ --text_recognition_model_name PP-OCRv6_medium_rec \ --engine onnxruntime \ --save_path ./output其中PP-OCRv6_medium_det是配套的文本检测模型--save_path会把可视化结果带框标注的图片保存到指定目录方便你直观地看到检测和识别效果。如果你希望整页识别也走代码集成同样只需一个PaddleOCR对象from paddleocr import PaddleOCR ocr PaddleOCR( text_detection_model_namePP-OCRv6_medium_det, text_recognition_model_namePP-OCRv6_medium_rec, engineonnxruntime, ) result ocr.predict(./你的图片.jpg) for res in result: res.print() res.save_to_img(output) res.save_to_json(output)仓库里都有什么认识 inference.yml 与它的关键配置这个项目仓库里躺着三个核心文件各司其职inference.onnx模型本体就是前面推理时真正加载的那个文件inference.yml模型配置文件记录输入输出规范inference.json模型的结构描述文件供底层框架解析。如果你想把 ONNX 模型文件直接下载下来研究或者对照着看配置可以先把仓库克隆到本地git clone https://gitcode.com/paddlepaddle/PP-OCRv6_medium_rec_onnx其中inference.yml是最值得你花点时间看的文件它的内容可以拆成三大块预处理PreProcess定义了图片进入模型前要经历哪些加工比如DecodeImage负责把图片解码成模型能读的像素数据RecResizeImg负责把图片统一缩放到合适尺寸——默认高度固定为 48 像素宽度可按需变化。后处理PostProcess指定了CTCLabelDecode作为文本解码方式并附带一份庞大的字符表。这份字符表覆盖了 18000 多个字符包含中文、英文、数字、标点以及各种多语言符号——这就是模型能识别 50 种语言的底气来源。运行后端Hpi记录了不同推理后端如 TensorRT、PaddleInfer的动态输入形状等参数方便在特定硬件上做性能优化。理解了这个文件你就掌握了「调模型」的入口想改输入尺寸、想换字符集都可以从这里入手。识别不准怎么办几个立竿见影的调优技巧再好的模型输入质量太差也会「翻车」。如果你发现识别结果不理想可以按下面的顺序排查检查图片质量模糊、过暗、文字太小都是大忌。拍摄时保持对焦清晰、光线充足能显著提升准确率。尽量保持文字水平倾斜过大的文字容易让识别器「读歪」。可以先用图像处理手段把图片转正或者交给带文本方向矫正的完整 pipeline 处理。善用 batch_size 参数在 Python 集成时通过model.predict(input[图1, 图2, ...], batch_size8)批量喂入多张图片可以明显提升整体吞吐适合大批量处理场景。多语言无需额外配置模型默认就支持 50 种语言中英文混排也能直接识别不用为每种语言单独切换模型。善用可视化输出跑完检测识别流程后把--save_path指向一个目录用带框的标注图核对能帮你快速定位是「没检测到」还是「检测到但认错了」从而对症下药。动手吧你的第一个识别结果只差一条命令回看整个流程你会发现 PP-OCRv6 文本识别部署其实一点也不复杂装两个依赖跑一条命令就能看到识别结果再写三行代码能力就长在了你自己的项目里。轻量、精准、多语言、可商用这套组合对于想快速上线 OCR 能力的团队和个人开发者来说几乎是最省心的选择。现在就打开终端准备一张带文字的图片把刚才那条命令敲下去。5 分钟后你收获的不只是第一行识别文本更是一套随时可以复用的文字识别能力。【免费下载链接】PP-OCRv6_medium_rec_onnx项目地址: https://ai.gitcode.com/paddlepaddle/PP-OCRv6_medium_rec_onnx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表