PaddleOCR3.5正式发布,带来以下核心升级:
发布浏览器端PaddleOCR.js,开发者可以用更轻量的方式在前端应用中直接调用OCR能力。
支持将PaddleOCR-VL文档解析内容转为Word,以及将Word、Excel、PPT等类型的办公文档转为Markdown。
融入Hugging Face开发生态,通过统一推理引擎配置方式,支持基于Transformers完成OCR系列模型推理。
import { PaddleOCR } from "@paddleocr/paddleocr-js";const ocr = await PaddleOCR.create({ lang: "ch", ocrVersion: "PP-OCRv5", worker: true, ortOptions: { backend: "auto" }});const [result] = await ocr.predict(fileOrBlob);console.log(result.items);from paddleocr import PaddleOCRocr = PaddleOCR( lang="ch", ocr_version="PP-OCRv5")result = ocr.predict("general_ocr_002.png")import { PaddleOCR } from "@paddleocr/paddleocr-js";// 支持 Python 风格的 snake_case 参数const ocr = await PaddleOCR.create({ lang: "ch", ocr_version: "PP-OCRv5"});// 也支持 JavaScript 风格的 camelCase 参数// const ocr = await PaddleOCR.create({// lang: "ch",// ocrVersion: "PP-OCRv5"// });const [result] = await ocr.predict(fileOrBlob);import { OcrVisualizer } from "@paddleocr/paddleocr-js/viz";const viz = new OcrVisualizer({ font: { family: "Noto Sans SC", source: "/fonts/NotoSansSC-Regular.ttf" }});const blob = await viz.toBlob(imageBitmap, result);from paddleocr import PaddleOCRVLpipeline = PaddleOCRVL()output = pipeline.predict("./paddleocr_vl_demo.png")pages_res = []for res in output: res.save_to_word(save_path="output") ## 保存当前图像的Word格式的结果 pages_res.append(res) output = pipeline.restructure_pages(pages_res)for res in output: res.save_to_word(save_path="output") ## 将合并后的多页结果保存为Word格式向左滑动查看导出后的word文件
# 转换 Word 文档,输出到文件paddleocr doc2md -i report.docx -o output.md# 转换 Excel 表格,输出到文件paddleocr doc2md -i data.xlsx -o output.md# 转换 PowerPoint 演示文稿,输出到文件paddleocr doc2md -i slides.pptx -o output.md
向左滑动查看导出后的Markdown文件
向左滑动查看导出后的Markdown文件
全面适配Transformers推理后端
PaddleOCR3.5将Transformers正式纳入统一推理引擎体系,支持通过统一的配置方式,让开发者可以用同一套接口切换不同底层后端。对需要融入 Hugging Face AI开发生态的用户来说,这意味着在熟悉的Transformers环境中,也能更顺畅地接入OCR与文档解析能力,减少跨生态集成成本,并让原本分散的部署选择变得更加统一、清晰。
从使用门槛上看,这次适配也尽量保持了简单直接。开发者只需在环境中安装5.4.0或更高版本的transformers以及3.5.0版本的paddleocr,即可通过统一接口完成调用。以文本检测模型为例:
from paddleocr import TextDetectionmodel = TextDetection( model_name="PP-OCRv5_server_det", engine="transformers",)result = model.predict("general_ocr_001.png")其中,engine可以是paddle_static、paddle_dynamic或transformers,分别对应飞桨静态图(Paddle Inference)、飞桨动态图和Transformers后端。
Transformers提供高效简洁的单模型的加载、配置与推理能力,而PaddleOCR在模块封装与多模型编排能力有长期积累的优势。在底层,我们保留了面向单模型的灵活接入方式;在更高一层,PaddleOCR仍然能够把检测、方向分类、识别等能力按业务需要串联组合起来,让开发者既能享受Transformers生态的便利,也能继续使用 PaddleOCR 已经成熟的产线化能力,实现更强的组合效果。例如,同样可以通过 engine 参数将 OCR pipeline直接切换到对应后端:
paddleocr ocr -i xxx.png \ --use_doc_orientation_classify False \ --use_doc_unwarping False \ --use_textline_orientation False \ --save_path ./output \ --engine transformers
执行结果与使用飞桨静态图完全对齐:
此外,PaddleOCR3.5还支持通过engine_config参数配置推理后端的初始化参数,进而实现更细粒度的设备选择、精度控制与推理行为调优,让统一接口之上也保留了足够的灵活性与可定制空间。
