[paddleocr]PP-ChatOCRv4 产线使用教程

告别通用模型不准!手把手教你用私有数据微调PaddleOCR PP-ChatOCRv4,搞定产线票据识别 本文详细介绍了如何利用私有数据微调PaddleOCR PP-ChatOCRv4模型,解决产线票据识别中的精度问题。通过问题诊断、数据准备、模块化微调和产线部署四个步骤,显著提升OCR识别准确率,适用于工业质检、金融票据等垂直领域。 阅读详情
AI摘要

本文介绍了 PP-ChatOCRv4 产线的二次开发方法。若默认模型权重在特定场景下精度或速度不佳,可进行模型微调。完成微调训练后,可获取本地模型权重文件,通过自定义产线配置文件使用微调后的模型,还说明了在 CLI 和 Python API 中加载配置文件的方法。


# 此脚本只展示了图片的用例,其他文件类型的调用请查看API参考来调整

import base64
import pprint
import sys
import requests


API_BASE_URL = "http://0.0.0.0:8080"

image_path = "./demo.jpg"
keys = ["姓名"]

with open(image_path, "rb") as file:
    image_bytes = file.read()
    image_data = base64.b64encode(image_bytes).decode("ascii")

payload = {
    "file": image_data,
    "fileType": 1,
}

resp_visual = requests.post(url=f"{API_BASE_URL}/chatocr-visual", json=payload)
if resp_visual.status_code != 200:
    print(
        f"Request to chatocr-visual failed with status code {resp_visual.status_code}."
    )
    pprint.pp(resp_visual.json())
    sys.exit(1)
result_visual = resp_visual.json()["result"]

for i, res in enumerate(result_visual["layoutParsingResults"]):
    print(res["prunedResult"])
    for img_name, img in res["outputImages"].items():
        img_path = f"{img_name}_{i}.jpg"
        with open(img_path, "wb") as f:
            f.write(base64.b64decode(img))
        print(f"Output image saved at {img_path}")

payload = {
    "visualInfo": result_visual["visualInfo"],
}
resp_vector = requests.post(url=f"{API_BASE_URL}/chatocr-vector", json=payload)
if resp_vector.status_code != 200:
    print(
        f"Request to chatocr-vector failed with status code {resp_vector.status_code}."
    )
    pprint.pp(resp_vector.json())
    sys.exit(1)
result_vector = resp_vector.json()["result"]

payload = {
    "image": image_data,
    "keyList": keys,
}
resp_mllm = requests.post(url=f"{API_BASE_URL}/chatocr-mllm", json=payload)
if resp_mllm.status_code != 200:
    print(
        f"Request to chatocr-mllm failed with status code {resp_mllm.status_code}."
    )
    pprint.pp(resp_mllm.json())
    sys.exit(1)
result_mllm = resp_mllm.json()["result"]

payload = {
    "keyList": keys,
    "visualInfo": result_visual["visualInfo"],
    "useVectorRetrieval": True,
    "vectorInfo": result_vector["vectorInfo"],
    "mllmPredictInfo": result_mllm["mllmPredictInfo"],
}
resp_chat = requests.post(url=f"{API_BASE_URL}/chatocr-chat", json=payload)
if resp_chat.status_code != 200:
    print(
        f"Request to chatocr-chat failed with status code {resp_chat.status_code}."
    )
    pprint.pp(resp_chat.json())
    sys.exit(1)
result_chat = resp_chat.json()["result"]
print("Final result:")
print(result_chat["chatResult"])

4. 二次开发

如果 PP-ChatOCRv4 产线提供的默认模型权重在您的场景中,精度或速度不满意,您可以尝试利用您自己拥有的特定领域或应用场景的数据对现有模型进行进一步的微调,以提升在您的场景中的识别效果。

4.1 模型微调

由于 PP-ChatOCRv4 产线包含若干模块,模型产线的效果如果不及预期,可能来自于其中任何一个模块。您可以对提取效果差的 case 进行分析,通过可视化图像,确定是哪个模块存在问题,并参考以下表格中对应的微调教程链接进行模型微调。

情形微调模块微调参考链接
版面区域检测不准,如印章、表格未检出等版面区域检测模块链接
表格结构识别不准表格结构识别链接
印章文本存在漏检印章文本检测模块链接
文本存在漏检文本检测模块链接
文本内容都不准文本识别模块链接
垂直或者旋转文本行矫正不准文本行方向分类模块链接
整图旋转矫正不准文档图像方向分类模块链接
图像扭曲矫正不准文本图像矫正模块暂不支持微调

4.2 模型应用

当您使用私有数据集完成微调训练后,可获得本地模型权重文件,然后可以通过自定义产线配置文件的方式,使用微调后的模型权重。

  1. 获取产线配置文件

可调用 PaddleOCR 中 PPChatOCRv4 产线对象的 export_paddlex_config_to_yaml 方法,将当前产线配置导出为 YAML 文件:

from paddleocr import PPChatOCRv4

pipeline = PPChatOCRv4()
pipeline.export_paddlex_config_to_yaml("PP-ChatOCRv4.yaml")
  1. 修改配置文件

在得到默认的产线配置文件后,将微调后模型权重的本地路径替换至产线配置文件中的对应位置即可。例如

......
SubModules:
    TextDetection:
    module_name: text_detection
    model_name: PP-OCRv5_server_det
    model_dir: null # 替换为微调后的文本检测模型权重路径
    limit_side_len: 960
    limit_type: max
    thresh: 0.3
    box_thresh: 0.6
    unclip_ratio: 1.5

    TextRecognition:
    module_name: text_recognition
    model_name: PP-OCRv5_server_rec
    model_dir: null # 替换为微调后的文本检测模型权重路径
    batch_size: 1
            score_thresh: 0
......

在产线配置文件中,不仅包含 PaddleOCR CLI 和 Python API 支持的参数,还可进行更多高级配置,具体信息可在 PaddleX模型产线使用概览 中找到对应的产线使用教程,参考其中的详细说明,根据需求调整各项配置。

  1. 在 CLI 中加载产线配置文件

在修改完成配置文件后,通过命令行的 --paddlex_config 参数指定修改后的产线配置文件的路径,PaddleOCR 会读取其中的内容作为产线配置。示例如下:

paddleocr pp_chatocrv4_doc --paddlex_config PP-ChatOCRv4.yaml ...
  1. 在 Python API 中加载产线配置文件

初始化产线对象时,可通过 paddlex_config 参数传入 PaddleX 产线配置文件路径或配置字典,PaddleOCR 会读取其中的内容作为产线配置。示例如下:

from paddleocr import PPChatOCRv4

pipeline = PPChatOCRv4(paddlex_config="PP-ChatOCRv4.yaml")

[PaddleOCR] PP-ChatOCRv4 产线模型微调与部署实战指南 本文详细介绍了PP-ChatOCRv4产线模型的微调与部署实战指南,涵盖从基础安装到产线场景应用的全流程。通过实际案例展示如何应对电子标签识别中的挑战,包括数据准备、关键配置参数调整和模型微调技巧。同时提供部署优化方案,确保在有限硬件资源下实现稳定高效的OCR识别,特别适合工业场景中的复杂文本识别需求。 阅读详情

相关推荐

PaddleX PP-ChatOCRv3 魔改调用Ollama接口

文档场景信息抽取v3(PP-ChatOCRv3)只能用飞桨和百度千帆的在线大模型接口,在离线部署时就无法调用,这里提供一个魔改PaddleX源码的方案,调用本地Ollama模型。(先叠个甲,这个方法只是能用,具体是不是最优解不考虑)

sdh382760724的博客 1637

国产神级开源 OCR 神器,再次起飞。

PP-ChatOCRv4在上一代基础上,结合文心大模型4.5 Turbo强大的理解优势,并支持离线使用多模态文档理解模型PP-DocBee2,实现了更高效的文本图像信息抽取,一站式解决版面分析、生僻字、多页pdf、表格、印章识别等常见的复杂文档信息抽取难点问题。② PP-StructureV3,文档解析能力,其实我一直比较关注复杂版面的解析问题,毕竟常规版面的解析,现在大模型处理也不错,并且也有一些开源方案可以满足,试了几张,一个字,绝!① 关键信息抽取精度相比上一代提升15个百分点,效果业界领先。

公众号:逛逛GitHub 2734

PaddleOCR 3.0 技术报告

本技术报告介绍了 PaddleOCR 3.0,一个 Apache 许可的开源 OCR 和文档解析工具包。为满足大语言模型时代对文档理解日益增长的需求,PaddleOCR 3.0 提出了三大解决方案:(1) 用于多语言文本识别的 PP-OCRv5,(2) 用于分层文档解析的 PP-StructureV3,以及 (3) 用于关键信息提取的 PP-ChatOCRv4。与主流视觉语言模型 (VLMs) 相比,这些参数少于 1 亿的模型在精度和效率上具有竞争力,可与数十亿参数的 VLMs 相媲美。

qq_37533306的博客 2130

【PaddleOCR】文档图像智能分析解决方案PP-ChatOCRV4介绍

一、什么是PP-ChatOCRV4二、关键指标对比三、PP-ChatOCRv4 Demo示例四、灵活部署与二次开发五、常见问题解答5.1 多模态大模型支持5.2 性能优化5.3 精度提升方法在当今数字化时代,文档信息抽取变得日益重要。面对复杂的文档图像分析需求,PP-ChatOCRV4应运而生,成为飞桨平台中一款独具特色的文档图像智能分析解决方案。PP-ChatOCRV4是飞桨平台推出的文档图像智能分析解决方案。

qq_38614074的博客 1560

PP-ChatOCRv4运行教程[可运行源码]

本文详细介绍了如何快速上手PP-ChatOCRv4,包括环境准备、命令行和Python脚本两种使用方式。PP-ChatOCRv4是一款强大的文档图像智能分析工具,能够抽取文档中的文字、表格、印章等关键信息。环境准备部分包括安装wheel包和获取大语言模型的API key。命令行方式支持快速体验,Python脚本方式适合项目集成。文章还详细说明了API参数和预测流程,帮助用户高效使用该工具。

从零构建PEMFC仿真模型:MATLAB/Simulink中的模块化拆解与系统集成

本文详细介绍了如何在MATLAB/Simulink环境中从零构建质子交换膜燃料电池(PEMFC)仿真模型,包括电化学模型、气体供应系统和热管理系统的模块化实现。通过多物理场耦合技巧和系统集成策略,帮助工程师和研究者高效开发PEMFC控制策略,优化性能并实现实时仿真。

weixin_29294975的博客 360

OCR第三个方案:PP-OCRv4的初步探索

PP-OCRv3(2022):采用SVTR识别架构,中文识别准确率突破80% PP-OCRv4(2023):融合Transformer与CNN的混合架构,实现多维度性能突破

懒人的技术笔记 3326

保姆级教程:Java调用海康SDK实现录像回放与倍速播放(附完整代码)

本文详细介绍了如何使用Java调用海康SDK实现录像回放与倍速播放功能,包括开发环境配置、设备连接、流媒体处理、倍速播放实现及性能优化等关键步骤。通过完整的代码示例和实战经验,帮助开发者快速构建智能录像回放系统,提升开发效率。

weixin_29285605的博客 357

别再只调API了!手把手教你用Python脚本微调PaddleOCR的PP-ChatOCRv4模型,搞定产线定制化需求

本文详细介绍了如何通过Python脚本微调PaddleOCR的PP-ChatOCRv4模型,解决产线定制化OCR需求。从构建高质量数据集到模块化诊断与精准微调,再到产线部署的实战技巧,帮助工程师突破API调用的局限,提升识别准确率和效率。

weixin_30500105的博客 424

力扣(Leetcode)第1题:两数之和(C语言版本)

题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6

qq_39855356的博客 3312

创建动态代理对象bean,并动态注入到spring容器中

使用过Mybatis的同学,应该都知道,我们只需要编写mybatis对应的接口和mapper XML文件即可,并不需要手动编写mapper接口的实现。这里mybatis就用到了JDK动态代理,并且将生成的接口代理对象动态注入到Spring容器中。 这里涉及到几个问题。也许有同学会有疑问,我们直接编写好类,加入@Component等注解不是可以注入了吗?或者在配置类(@Configuration)...

lichuangcsdn的博客 3万+

PaddleOCR 版本演进全解析:从 2.0 到 3.2 的更新日志深度导读

本篇技术指南以 PaddleOCR 官方更新日志([docs/update/update.md](https://link.gitcode.com/i/16acc4c5209bfa5ec928f6e8861d0ea1))为主线,系统梳理 PaddleOCR 从 2020 年开源到 2025 年 8 月的全部重要版本节点、核心模型与产线能力演进、部署与训练体系升级脉络,并结合当前仓库源码([padd

gitblog_00227的博客 990

8台 × 8卡 910B NPU之顶尖大模型选型分析

本文对比了2026年主流大语言模型在昇腾910B NPU集群上的部署方案。重点评估了GLM5、MiniMax M2.5、Kimi K2.5、DeepSeek V3.2和Qwen 3.5旗舰版等候选模型,从部署需求(显存占用)、能力表现(基准测试、多模态支持)和NPU生态适配度三个维度进行分析。结果显示DeepSeek V3.2综合表现最优:支持BF16/W8A8/INT4量化,在4TB显存环境下可实现2000+ TPS,首token延迟<100ms,且具备官方NPU支持。备选方案Qwen 3.5旗舰版

FeelTouch Labs 758

PaddleOCR介绍

PaddleOCR介绍

网络资源是无限的 653

通达信波段交易公式实战:如何用副图指标精准捕捉买卖点(附完整源码)

本文深入解析通达信波段交易副图指标的构建与应用,提供完整源码实现,帮助投资者精准捕捉买卖点。通过趋势强度度量、超买超卖判断及信号过滤机制,结合K线图分析,有效提升波段交易的成功率。

weixin_29306317的博客 608

【学长笔记】关于车牌识别的CCPD数据集按比例划分

本文介绍了一个用于CCPD车牌数据集划分的Python脚本,主要功能包括:1) 将数据集按比例划分为训练集、验证集和测试集;2) 支持图像与标签文件校验;3) 可自定义划分比例和样本数量限制;4) 自动生成标准目录结构。脚本使用随机种子确保可重复性,并通过tqdm显示进度条。处理后数据可直接用于YOLO等目标检测模型的训练与评估,建议在预处理完成后立即执行划分以避免数据泄露。文章还提供了相关技术博客的参考链接。

apple_53308981的博客 1478

PaddleOCR 3.x 全景指南:从 PP-OCRv6 多语种识别到 PaddleOCR-VL 复杂文档解析

PaddleOCR 3.x 是飞桨团队面向大模型时代重构的 OCR 与文档智能工具链,本文以 [docs/index.md](https://link.gitcode.com/i/6a5bebb7f45fe4b5f9a82fcdd82b6a2c) 为骨架,系统梳理 3.x 的核心能力矩阵(PaddleOCR-VL、PP-OCRv6、PP-StructureV3、PP-ChatOCRv4)、安装与命

gitblog_00359的博客 36

【智能车Code review】——拐点的寻找

CROSSROAD:十字拐点 ROUNDISLAND:环岛拐点 rightfindflag[i]:表示第i行的右线是否被找到,1为找到,0为没有找到 flag_find_huan_rightdown_point :找到环岛右下拐点标志 flag_find_huan_rightmiddle_point:找到环岛右中拐点标志 找拐点的思路:观察一段数据中数据点的走向趋势,并且保证这段数据是准确的。在摄像头畸变比较严重的情况下这种方法不再适用 关于函数的调用请见:https://blog.youkuaiyun.com/qq.

hanhan的博客 1万+

【PaddleOCR】基于python的PP-ChatOCRv4快速运行教程,预测流程中API参数说明

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。

qq_38614074的博客 2088

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

PaddleOCR PP-ChatOCRv4实战:智能信息提取指南

您是否还在为处理复杂文档信息提取而烦恼?面对版面分析、生僻字识别、多页PDF解析、表格提取、印章文本识别等挑战,传统OCR技术往往力不从心。PaddleOCR PP-ChatOCRv4作为飞桨特色的文档智能分析解决方案,结合了LLM(大语言模型)、MLLM(多模态大语言模型)和OCR技术,一站式解决这些痛点问题。 通过本文,您将掌握: - PP-ChatOCRv4的核心架构与工作原理 - 快速上...

gitblog_00665的博客 1097

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【限时免费】 PaddleOCR PP-ChatOCRv4:新一代文档智能分析解决方案深度解析

PaddleOCR PP-ChatOCRv4:新一代文档智能分析解决方案深度解析 【免费下载链接】PaddleOCR 飞桨多语言OCR工具包(实用超轻量OCR系统,支持80+种语言识别,提供数据标注与合成工具,支持服务器、移动端、嵌入式及IoT设备端的训练与部署) Awesome multilingual OCR too...

gitblog_00406的博客 538

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

PaddleOCR PP-ChatOCRv4-doc Pipeline 实战指南:LLM + OCR 文档智能信息抽取全流程

PP-ChatOCRv4-doc 是飞桨 PaddleOCR 提供的一站式文档与图像智能分析管线,将文档方向分类、版面解析、表格结构识别、文本检测识别、公式识别、印章识别等视觉模型与 LLM / MLLM 深度结合,用于解决版面复杂、生僻字、多页 PDF、表格、印章文字等文档信息抽取难题。本文将以 [docs/version3.x/pipeline_usage/PP-ChatOCRv4.en.md

gitblog_00672的博客 135

PaddleOCR 与 PaddleX 协同使用指南:产线配置导出、加载与版本对应关系

PaddleOCR 在推理部署环节基于飞桨低代码开发工具 PaddleX 构建,二者共享产线(Pipeline)命名体系与配置格式。本文从版本对应关系、产线注册名映射出发,系统讲解如何通过 `export_paddlex_config_to_yaml` 导出、编辑并加载 PaddleX 产线配置文件,并结合仓库源码剖析配置合并的优先级机制,帮助读者在高级配置与服务化部署场景中高效协同使用两个工具。

gitblog_00526的博客 249

PaddleOCR 3步完成OCR日期提取:从发票到合同的时间信息实战指南

读完这篇指南,你会掌握用 PaddleOCR 完成 OCR 日期提取的最小可行方案:从发票、合同、登记表中把"开票日期""签署时间""出生日期"这类信息批量识别出来,并标准化成 `YYYY-MM-DD` 格式。全文只保留两段能直接跑通的代码,其余用大白话讲清楚原理和避坑方法。 ## 为什么你需要它:一次对账引发的事故 📄 上个月帮财务核对一批供应商发票时,我们遇到了典型的麻烦:两百多张发票扫

gitblog_01162的博客 779

PaddleX 文档场景信息抽取v3(PP-ChatOCRv3-doc)产线实战指南:LLM+OCR 融合的关键信息抽取方案

文档场景信息抽取v3(PP-ChatOCRv3-doc)是 PaddleX 中结合大语言模型(LLM)与 OCR 视觉能力的文档智能分析产线,通过版面分析、表格结构识别、印章识别、多页 PDF 处理与文心大模型知识融合,一站式解决复杂文档中的关键信息抽取难题。本文基于仓库内 [产线使用教程](https://link.gitcode.com/i/034f076580df335fdc161d1c52

gitblog_00201的博客 211

PaddleOCR 3.x 文档智能解析全景指南:PP-OCRv6、PaddleOCR-VL、PP-StructureV3 与 PP-ChatOCRv4 核心能力与上手实战

> 本文以 [docs/index.en.md](https://link.gitcode.com/i/83df1e7296da9e4b83af03b9eba6ab31) 为主线,结合仓库内 [PP-OCRv6 技术文档](https://link.gitcode.com/i/30976abadabbe9a68e2af0b012606c93)、[PaddleOCR-VL-1.6 技术文档](htt

gitblog_00617的博客 204
上一篇: [paddleocr]PP-StructureV3 产线使用教程
下一篇: windows上matlab2024b下载和安装教程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值