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

资讯详情

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

PaddleOCR Python API 入门:三步跑通第一张图,批量提速开关全在这

PaddleOCR Python API 入门:三步跑通第一张图,批量提速开关全在这 PaddleOCR Python API 入门三步跑通第一张图批量提速开关全在这【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCRPaddleOCR 是飞桨生态里的多语言 OCR让机器读图里文字工具包支持 80 多种语言模型够轻手机上都能跑。你真正需要记住的其实就一句话装好包import一个PaddleOCR类把图片路径丢进predict()检测加识别两步它一口气做完。下面按先跑通、再提速、最后排错的顺序讲不念参数手册。第一张图怎么跑从安装到出结果先装两样东西推理引擎PaddlePaddle模型跑起来的底座和 PaddleOCR 本体。CPU 环境两条命令就够python -m pip install paddlepaddle -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ python -m pip install paddleocr[all]然后是全文最关键的三段代码贴进脚本就能跑from paddleocr import PaddleOCR ocr PaddleOCR(langch) # 中文英文传 en日文 japan韩文 korean result ocr.predict(./image.jpg) for res in result: res.print() # 直接打印文字置信度 res.save_to_img(output) # 存一张画了框的效果图 res.save_to_json(output) # 存结构化 JSON方便下游消费跑完你手里拿到的结果对象里rec_texts是识别出的文字列表rec_scores是每个词对应的置信度0~1 的分数rec_polys是文字框的四个角点坐标。做业务一般只取前两个就够了。批量处理提速值得动的几个开关 单张图跑通后真正费时间的是批量。提速思路只有一个关掉你确定不需要的步骤把能并行的地方并行掉。方向分类判断文字是不是上下颠倒是最容易先关的。如果你的图片来自固定来源、方向都正常初始化时加use_textline_orientationFalse整条流水线能快一截。同理扫描件才需要文档矫正普通截图关掉use_doc_unwarping即可——我实际跑的时候把这两个开关关掉后同样的图片集耗时明显下降。图片很大时用text_det_limit_side_len限制送入检测模型的边长默认值已经比较克制别盲目调大批量喂图时把text_recognition_batch_size从默认值调大识别阶段会按批并行吞吐直接上台阶。ocr PaddleOCR( langch, use_textline_orientationFalse, # 方向已固定时关掉 text_recognition_batch_size16, # 批量识别吃满 GPU text_det_limit_side_len960, # 超大图限制检测输入尺寸 text_rec_score_thresh0.5, # 置信度低于 0.5 的结果直接丢弃 ) results ocr.predict([a.jpg, b.jpg, c.jpg]) # 传列表即可批量还有一个新手容易忽略的点predict()一次把整张图的中间结果都留在内存里predict_iter()则是逐张吐出结果的生成器。处理超大图或图片列表很长时用后者循环消费内存曲线会平稳得多。换语言、换模型按需求点菜lang参数负责选语言ocr_version负责选模型代数PP-OCRv3 到 PP-OCRv6 都支持。两个都不传时3.x 版本默认给你 PP-OCRv6 的 medium 模型中英日韩繁这几个常用语言直接能用不用做任何配置。少数语种阿拉伯语、西里尔、印度系文字等走 PP-OCRv5 的多语言模型同样只改lang就行。如果对特定任务有精度要求可以绕开自动选模型直接用text_detection_model_name/text_recognition_model_name点名模型比如 server 版或者用*_model_dir指向自己训练、下载好的本地模型目录——离线环境部署时基本都得走这条路。只要检测框或只要文字也能单独用完整流水线是检测识别一条龙但很多时候你只需要其中一半。包体里把单模型也做成了独立类TextDetection只输出文字框TextRecognition只吃裁剪好的文字条并读出文字PPStructureV3则做整页文档结构分析版面、表格、公式一起解出来。用法和主类一致都是初始化后调predict这里就不重复贴代码了去 paddleocr/_models/ 目录下对应文件翻一眼类定义即可。另外提醒一句老教程里的ocr.ocr(img)方法在 3.x 里已经标记弃用跑起来会有警告新代码一律用predict参数名也换了一套比如det_db_thresh现在是text_det_thresh照着新名字写就不会踩到。两个最容易卡住新手的坑 ⚠️模型加载失败。首次predict时框架会自动下载模型公司内网或代理环境下这一步最常挂。解决办法先在能联网的机器上把模型拉下来再通过text_detection_model_dir等参数指到本地目录之后初始化就不会再碰网络。内存或速度不达标。依次检查三件事use_textline_orientation和use_doc_unwarping是不是能关text_det_limit_side_len是不是被调得过大识别批量是不是可以加大。如果还是紧把输入分辨率降一档比换硬件更现实。详细参数含义可查 快速开始文档命令行用法paddleocr ocr -i xxx.jpg和 Python 接口是一一对应的调试时先跑命令行确认环境没问题再回头改代码能省不少排查时间。把上面那三段最核心的代码贴进你的终端换上自己手边的一张图PaddleOCR 的第一次识别现在就可以跑起来。【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表