PaddleX产线集成功能的使用整理

devtools/2025/4/1 7:59:51/

 一、环境搭建

1.1 安装paddle-gpu

需要根据安装机器的cuda的版本,选择合适的版本进行安装

#安装paddle-gpu  官网链接  https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html
python -m pip install paddlepaddle-gpu==2.6.2.post120 -i https://www.paddlepaddle.org.cn/packages/stable/cu120/python -m pip install paddlepaddle-gpu==3.0.0rc0 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/
或者:conda install paddlepaddle-gpu==3.0.0rc1 paddlepaddle-cuda=12.3 -c paddle -c nvidia
#验证
安装完成后您可以使用 python3 进入 python 解释器,输入import paddle ,再输入 paddle.utils.run_check()
如果出现PaddlePaddle is installed successfully!,说明您已成功安装。
查看paddleocr的版本使用的命令为:python -c "import paddle; print(paddle.__version__)"

1.2 安装paddlex

飞桨低代码开发工具PaddleX,提供了两种安装模式:Wheel包安装和插件安装(插件安装适合二次开发),具体的安装方法可以参考以下链接。

安装PaddleX - PaddleX 文档

 我使用的是wheel安装,因为只是为了快速的验证检测效果。

pip install https://paddle-model-ecology.bj.bcebos.com/paddlex/whl/paddlex-3.0.0rc0-py3-none-any.whl

 执行中遇到的问题:Can not import paddle core libstdc++.so.6: version `GLIBCXX_3.4.30' not found

解决方法:

最好的方法是conda虚拟环境安装gcc,conda install -c conda-forge gcc=12.1.0

二、PaddleX概述

完整的PaddleX模型产线开发流程如下图所示:

PaddleX 所提供的预训练的模型产线均可以快速体验效果,如果产线效果可以达到您的要求,您可以直接将预训练的模型产线进行开发集成/部署,如果效果不及预期,可以使用私有数据对产线中的模型进行微调,直到达到满意的效果。

PaddleX中每条产线都可以解决特定任务场景的问题如目标检测、时序预测、语义分割等,您需要根据具体任务选择后续进行开发的产线。例如此处为登机牌识别任务,对应 PaddleX 的通用OCR产线。更多任务与产线的对应关系可以在 PaddleX产线列表(CPU/GPU)查询。

三、OCR产线

3.1 通用ocr产线

通用OCR产线 - PaddleX 文档

OCR(光学字符识别,Optical Character Recognition)是一种将图像中的文字转换为可编辑文本的技术。它广泛应用于文档数字化、信息提取和数据处理等领域。OCR 可以识别印刷文本、手写文本,甚至某些类型的字体和符号。

通用 OCR 产线用于解决文字识别任务,提取图片中的文字信息以文本形式输出,本产线集成了业界知名的 PP-OCRv3 和 PP-OCRv4 的端到端 OCR 串联系统,支持超过 80 种语言的识别,并在此基础上,增加了对图像的方向矫正和扭曲矫正功能。基于本产线,可实现 CPU 上毫秒级的文本内容精准预测,使用场景覆盖通用、制造、金融、交通等各个领域。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。

通用OCR产线中包含必选的文本检测模块和文本识别模块,以及可选的文档图像方向分类模块文本图像矫正模块文本行方向分类模块

不想搭建环境,可快速的用以下的链接,进行在线验证。

大模型社区-飞桨星河AI Studio大模型社区

环境搭建的方法可以参考上一个博文。

使用命令实现图像的文本检测:

paddlex --pipeline OCR \--input general_ocr_002.png \--use_doc_orientation_classify False \--use_doc_unwarping False \--use_textline_orientation False \--save_path ./output \--device gpu:0

使用脚本实现的方法:

from paddlex import create_pipelinepipeline = create_pipeline(pipeline="OCR")output = pipeline.predict(input="./general_ocr_002.png",use_doc_orientation_classify=False,use_doc_unwarping=False,use_textline_orientation=False,
)
for res in output:res.print()res.save_to_img(save_path="./output/")res.save_to_json(save_path="./output/")

 3.2 通用表格识别

通用表格识别v2产线 - PaddleX 文档

表格识别是一种自动从文档或图像中识别和提取表格内容及其结构的技术,广泛应用于数据录入、信息检索和文档分析等领域。通过使用计算机视觉和机器学习算法,表格识别能够将复杂的表格信息转换为可编辑的格式,方便用户进一步处理和分析数据。

通用表格识别产线用于解决表格识别任务,对图片中的表格进行识别,并以HTML格式输出。本产线集成了业界知名的 SLANet 和 SLANet_plus 表格结构识别模型。基于本产线,可实现对表格的精准预测,使用场景覆盖通用、制造、金融、交通等各个领域。

可以使用下面的链接进行快速的验证。

大模型社区-飞桨星河AI Studio大模型社区

四、计算机视觉

4.1 开放词汇检测

开放词汇检测 - PaddleX 文档

开放词汇目标检测是当前一种先进的目标检测技术,旨在突破传统目标检测的局限性。传统方法仅能识别预定义类别的物体,而开放词汇目标检测允许模型识别未在训练中出现的物体。通过结合自然语言处理技术,利用文本描述来定义新的类别,模型能够识别和定位这些新物体。这使得目标检测更具灵活性和泛化能力,具有重要的应用前景。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。本产线目前不支持对模型的二次开发,计划在后续支持。目前查看公开的模型的精度并不是很高。

测试命令及脚本:

paddlex --pipeline open_vocabulary_detection \--input open_vocabulary_detection.jpg \--prompt "bus . walking man . rearview mirror ." \--thresholds "{'text_threshold': 0.25, 'box_threshold': 0.3}" \--save_path ./output \--device gpu:0
from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="open_vocabulary_detection")
output = pipeline.predict(input="open_vocabulary_detection.jpg", prompt="bus . walking man . rearview mirror .")
for res in output:res.print()res.save_to_img(save_path="./output/")res.save_to_json(save_path="./output/")

 功能说明:在命令及脚本中,给出了要求检测的目标为车,后视镜,行走的人,执行后的结果如下图所示:

4.2 开放词汇分割

开放词汇分割 - PaddleX 文档

开放词汇分割是一项图像分割任务,旨在根据文本描述、边框、关键点等除图像以外的信息作为提示,分割图像中对应的物体。它允许模型处理广泛的对象类别,而无需预定义的类别列表。这项技术结合了视觉和多模态技术,极大地提高了图像处理的灵活性和精度。开放词汇分割在计算机视觉领域具有重要应用价值,尤其在复杂场景下的对象分割任务中表现突出。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。本产线目前不支持对模型的二次开发,计划在后续支持。

测试命令及脚本:

paddlex --pipeline open_vocabulary_segmentation \--input open_vocabulary_segmentation.jpg \--prompt_type box \--prompt "[[112.9,118.4,513.8,382.1],[4.6,263.6,92.2,336.6],[592.4,260.9,607.2,294.2]]" \--save_path ./output \--device gpu:0
from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="open_vocabulary_segmentation")
output = pipeline.predict(input="open_vocabulary_segmentation.jpg", prompt_type="box", prompt=[[112.9,118.4,513.8,382.1],[4.6,263.6,92.2,336.6],[592.4,260.9,607.2,294.2]])
for res in output:res.print()res.save_to_img(save_path="./output/")res.save_to_json(save_path="./output/")

测试原图及结果如下:

4.3 旋转目标检测

旋转目标检测 - PaddleX 文档

旋转目标检测是目标检测模块中的一种衍生,它专门针对旋转目标进行检测。旋转框(Rotated Bounding Boxes)常用于检测带有角度信息的矩形框,即矩形框的宽和高不再与图像坐标轴平行。相较于水平矩形框,旋转矩形框一般包括更少的背景信息。旋转目标检测在遥感等场景中有重要的应用。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。

测试命令及脚本:

paddlex --pipeline rotated_object_detection \--input rotated_object_detection_001.png \--threshold 0.5 \--save_path ./output \--device gpu:0 \
from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="rotated_object_detection")
output = pipeline.predict(input="rotated_object_detection_001.png", threshold=0.5)
for res in output:res.print()res.save_to_img(save_path="./output/")res.save_to_json(save_path="./output/")

4.4 行人属性识别

行人属性识别 - PaddleX 文档

行人属性识别是计算机视觉系统中的关键功能,用于在图像或视频中定位并标记行人的特定特征,如性别、年龄、衣物颜色和款式等。该任务不仅要求准确检测出行人,还需识别每个行人的详细属性信息。行人属性识别产线是定位并识别行人属性的端到端串联系统,广泛应用于智慧城市和安防监控等领域,可显著提升系统的智能化水平和管理效率。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。

paddlex --pipeline pedestrian_attribute_recognition --input pedestrian_attribute_002.jpg --device gpu:0 --save_path ./output/
from paddlex import create_pipelinepipeline = create_pipeline(pipeline="pedestrian_attribute_recognition")output = pipeline.predict("pedestrian_attribute_002.jpg")
for res in output:res.print() ## 打印预测的结构化输出res.save_to_img("./output/") ## 保存结果可视化图像res.save_to_json("./output/") ## 保存预测的结构化输出

4.5 车辆属性识别

车辆属性识别 - PaddleX 文档

车辆属性识别是计算机视觉系统中的重要组成部分,其主要任务是在图像或视频中定位并标记出车辆的特定属性,如车辆类型、颜色、车牌号等。该任务不仅要求准确检测出车辆,还需识别每辆车的详细属性信息。车辆属性识别产线是定位并识别车辆属性的端到端串联系统,广泛应用于交通管理、智能停车、安防监控、自动驾驶等领域,显著提升了系统效率和智能化水平,并推动了相关行业的发展与创新。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成

paddlex --pipeline vehicle_attribute_recognition --input vehicle_attribute_002.jpg --device gpu:0 --save_path ./output/
from paddlex import create_pipelinepipeline = create_pipeline(pipeline="vehicle_attribute_recognition")output = pipeline.predict("vehicle_attribute_002.jpg")
for res in output:res.print() ## 打印预测的结构化输出res.save_to_img("./output/") ## 保存结果可视化图像res.save_to_json("./output/") ## 保存预测的结构化输出

4.6  人脸识别

人脸识别 - PaddleX 文档

人脸识别任务是计算机视觉领域的重要组成部分,旨在通过分析和比较人脸特征,实现对个人身份的自动识别。该任务不仅需要检测图像中的人脸,还需要对人脸图像进行特征提取和匹配,从而在数据库中找到对应的身份信息。人脸识别广泛应用于安全认证、监控系统、社交媒体和智能设备等场景。使用的前提需要构建人脸特征库,才能进行人脸识别。

4.7 图像异常检测

图像异常检测 - PaddleX 文档

图像异常检测是一种通过分析图像中的内容,来识别与众不同或不符合正常模式的图像处理技术。图像异常检测能够自动识别出图像中潜在的缺陷、异常或异常行为,从而帮助我们及时发现问题并采取相应措施。

本产线集成了高精度的异常检测模型 STFPM,提取图像中的异常或缺陷区域,使用场景覆盖工业制造、食品外观质检以及医疗影像分析等各个领域。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。

paddlex --pipeline anomaly_detection --input uad_grid.png --device gpu:0  --save_path ./output
from paddlex import create_pipelinepipeline = create_pipeline(pipeline="anomaly_detection")
output = pipeline.predict(input="uad_grid.png")
for res in output:res.print() ## 打印预测的结构化输出res.save_to_img(save_path="./output/") ## 保存结果可视化图像res.save_to_json(save_path="./output/") ## 保存预测的结构化输出

4.8  小目标检测

小目标检测 - PaddleX 文档

小目标检测是一种专门识别图像中体积较小物体的技术,广泛应用于监控、无人驾驶和卫星图像分析等领域。它能够从复杂场景中准确找到并分类像行人、交通标志或小动物等小尺寸物体。通过使用深度学习算法和优化的卷积神经网络,小目标检测可以有效提升对小物体的识别能力,确保在实际应用中不遗漏重要信息。这项技术在提高安全性和自动化水平方面发挥着重要作用。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。

paddlex --pipeline small_object_detection \--input small_object_detection.jpg \--threshold 0.5 \--save_path ./output \--device gpu:0
from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="small_object_detection")
output = pipeline.predict(input="small_object_detection.jpg", threshold=0.5)
for res in output:res.print()res.save_to_img(save_path="./output/")res.save_to_json(save_path="./output/")

4.9  通用图像多标签分类

图像多标签分类 - PaddleX 文档

图像多标签分类是一种将一张图像同时分配到多个相关类别的技术,广泛应用于图像标注、内容推荐和社交媒体分析等领域。它能够识别图像中存在的多个物体或特征,例如一张图片中同时包含“狗”和“户外”这两个标签。通过使用深度学习模型,图像多标签分类能够自动提取图像特征并进行准确分类,以便为用户提供更加全面的信息。这项技术在智能搜索引擎和自动内容生成等应用中具有重要意义。本产线同时提供了灵活的服务化部署方式,支持在多种硬件上使用多种编程语言调用。不仅如此,本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。

paddlex --pipeline image_multilabel_classification --input general_image_classification_001.jpg --device gpu:0
from paddlex import create_pipelinepipeline = create_pipeline(pipeline="image_multilabel_classification")output = pipeline.predict("general_image_classification_001.jpg")
for res in output:res.print() ## 打印预测的结构化输出res.save_to_img("./output/") ## 保存结果可视化图像res.save_to_json("./output/") ## 保存预测的结构化输出

4.10 通用语义分割

语义分割是一种计算机视觉技术,旨在将图像中的每个像素分配到特定的类别,从而实现对图像内容的精细化理解。语义分割不仅要识别出图像中的物体类型,还要对每个像素进行分类,这样使得同一类别的区域能够被完整标记。例如,在一幅街景图像中,语义分割可以将行人、汽车、天空和道路等不同类别的部分逐像素区分开来,形成一个详细的标签图。通用语义分割产线用于解决像素级别的图像理解问题,这项技术广泛应用于自动驾驶、医学影像分析和人机交互等领域,通常依赖于深度学习模型(如SegFormer等),通过卷积神经网络(CNN)或视觉变换器(Transformer)来提取特征并实现高精度的像素级分类,从而为进一步的智能分析提供基础。

paddlex --pipeline semantic_segmentation \--input makassaridn-road_demo.png \--target_size -1 \--save_path ./output \--device gpu:0
from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="semantic_segmentation")
output = pipeline.predict(input="makassaridn-road_demo.png", target_size = -1)
for res in output:res.print()res.save_to_img(save_path="./output/")res.save_to_json(save_path="./output/")

 

4.11  通用实例分割

通用实例分割 - PaddleX 文档

实例分割是一种计算机视觉任务,它不仅要识别图像中的物体类别,还要区分同一类别中不同实例的像素,从而实现对每个物体的精确分割。实例分割可以在同一图像中分别标记出每一辆车、每一个人或每一只动物,确保它们在像素级别上被独立处理。例如,在一幅包含多辆车和行人的街景图像中,实例分割能够将每辆车和每个人的轮廓清晰地分开,形成多个独立的区域标签。这项技术广泛应用于自动驾驶、视频监控和机器人视觉等领域,通常依赖于深度学习模型(如Mask R-CNN等),通过卷积神经网络来实现高效的像素分类和实例区分,为复杂场景的理解提供了强大的支持。

paddlex --pipeline instance_segmentation \--input general_instance_segmentation_004.png \--threshold 0.5 \--save_path ./output \--device gpu:0
from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="instance_segmentation")
output = pipeline.predict(input="general_instance_segmentation_004.png", threshold=0.5)
for res in output:res.print()res.save_to_img(save_path="./output/")res.save_to_json(save_path="./output/")

五、文本图像智能分析

文档场景信息抽取v4(PP-ChatOCRv4)是飞桨特色的文档和图像智能分析解决方案,结合了 LLM、MLLM 和 OCR 技术,一站式解决版面分析、生僻字、多页 pdf、表格、印章识别等常见的复杂文档信息抽取难点问题,结合文心大模型将海量数据和知识相融合,准确率高且应用广泛。本产线也提供了二次开发的能力,您可以基于本产线在您自己的数据集上训练调优,训练后的模型也可以无缝集成。

 文档场景信息抽取v4产线中包含版面区域检测模块表格结构识别模块表格分类模块表格单元格定位模块文本检测模块文本识别模块印章文本检测模块文本图像矫正模块文档图像方向分类模块。其中相关的模型是以子产线的方式集成,您可以通过产线配置来查看不同模块的模型配置。

该部分的快速体验,需要个人账户获得密钥,具体的执行流程可以参看官方网站的链接执行:

 文档场景信息抽取v4产线 - PaddleX 文档


http://www.ppmy.cn/devtools/172253.html

相关文章

DQL语句-distinct去重

MySQL | DQL语句-distinct去重 🪄个人博客:https://vite.xingji.fun 查询工作岗位 select job from emp;mysql> select job from emp;----------- | job | ----------- | CLERK | | SALESMAN | | SALESMAN | | MANAGER | | SALESMAN …

技术速递|为 .NET 的 AI 评估解锁新的可能性

作者:Wendy Breiding 排版:Alan Wang Microsoft.Extensions.AI.Evaluations 库旨在简化将 AI 评估流程集成到应用程序中的过程。它提供了一个强大的框架,用于评估您的 AI 应用程序并自动化评估其性能。 去年11月,我们发布了该库的…

诠视科技MR眼镜如何安装apk应用

诠视科技MR眼镜如何安装apk应用 1、使用adb工具安装1.1 adb工具下载1.2 解压adb文件1.3 使用adb安装apk 2、拷贝到文件夹安装 1、使用adb工具安装 1.1 adb工具下载 点击下面的链接开始下载adb工具,下载结束以后解压文件。 下载链接: https://download.xvisiotech…

智能家居赋能宠物经济:未来宠物行业的另一片蓝海

一、引言:宠物经济的范式转移 随着城市化进程的加速,宠物在现代家庭中的地位日益重要,宠物经济蓬勃发展。近年来,智能家居技术的兴起为宠物行业带来了新的变革,从传统的情感消费模式向技术赋能的精细化养宠模式转变。…

基于DrissionPage的TB商品信息采集与可视化分析

一、项目背景 随着电子商务的快速发展,淘宝作为中国最大的电商平台之一,拥有海量的商品信息。这些数据对于市场分析、用户行为研究以及竞争情报收集具有重要意义。然而,由于淘宝的反爬虫机制和复杂的页面结构,直接获取商品信息并不容易。尤其是在电商行业高速发展的今天,商…

性能测试理论基础-测试流程及方案设计要点

需求调研 因性能测试技术性和专业性要求比较高,通常需要性能测试人员参与需求调研和确认。 需求调研阶段,通常需要确认以下信息: 项目背景、测试范围、业务逻辑 & 数据流转(与开发确认)、系统架构、软硬件配置信息、 测试数据量(量级要一致)、外部依赖(第三方系统…

虚幻基础:UI

文章目录 控件蓝图可以装载其他控件蓝图可以安装其他蓝图接口 填充:相对于父组件填充水平框尺寸—填充—0.5:改变填充的尺寸填充—0.5:改变与父组件的距离 锚点:相对于父组件的控件坐标系原点,屏幕比例改变时&#xff…

PDF多表格结构识别与跨表语义对齐:基于对抗迁移的鲁棒相似度度量模型

文章目录 一. 项目结构二.流程分析2.1 批处理器核心代码解析 三. 跨页表格相似度匹配原理3.1 表头内容相似度-特征向量归一化3.2 表头内容相似度-余弦相似度3.3 定时缓存清理 ocr扫描有其局限性。对于pdf文本类型这种pdfbox,aspose-pdf,spire直接提取文本…