人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG【免费下载链接】PaddleXAll-in-One Development Tool based on PaddlePaddle项目地址https://gitcode.com/paddlepaddle/PaddleX点击查看免费下载导读本文以「服装时尚元素检测」为实战场景系统讲解 PaddleX 3.0 通用目标检测产线的完整使用链路从产线选择、CLI 快速体验到数据集准备与校验、PicoDet-L 模型微调训练与评估、超参数调优再到产线测试与多种方式的开发集成/部署。读完本文你将掌握基于 PaddleX 产线工具从零完成一个垂直领域目标检测模型的全流程开发方案并了解底层配置与源码实现逻辑可直接复用到其他目标检测业务场景。1. 任务分析与产线选择服装时尚元素检测FashionPedia 场景本质上是一个目标检测任务需要在图像中定位服装上各类时尚元素如衣领、袖口、纽扣、口袋等的矩形包围框并给出类别。在 PaddleX 中这类任务对应的是通用目标检测产线object_detection。PaddleX 的模型产线由一个或多个模型组合实现每个产线解决一类特定场景任务所有产线均支持快速体验也支持使用私有数据微调模型并提供 Python API 以便集成到个人项目中。若无法确定任务与产线的对应关系可查阅 PaddleX 模型产线列表 了解各产线的能力介绍。使用产线前需要先安装 PaddleX安装方式请参考 PaddleX 安装指南。2. 快速体验产线PaddleX 提供两种快速体验方式本地通过 wheel 包体验或前往 AI Studio 星河社区在线体验。2.1 本地 CLI 快速体验安装 PaddleX 后直接执行一条命令即可用默认权重体验通用目标检测产线paddlex --pipeline object_detection \ --input https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/application/object_detection/FashionPedia_demo.png命令会下载示例图片使用产线内置的默认模型完成推理并在终端/输出目录中返回检测结果。2.2 星河社区在线体验前往 AI Studio 星河社区点击【创建产线】创建【通用目标检测】产线即可进行在线快速体验。2.3 体验结果评估体验完成后需要判断产线是否符合预期精度、速度等并判断产线包含的模型是否需要继续微调。如果默认权重由 COCO 数据集训练产出主要面向通用 80 类目标无法满足服装时尚元素检测的需求——例如检测不到时尚元素类别、精度不足——则需要采集和标注数据进行训练微调。本教程即围绕这一场景展开。3. 模型选型通用目标检测模型清单与 BenchmarkPaddleX 提供了数十个端到端目标检测模型完整清单见 PaddleX 模型列表。从源码看目标检测模块在 paddlex/modules/object_detection/model_list.py 中注册了包括 PicoDet 系列、PP-YOLOE_plus 系列、RT-DETR 系列、YOLO 系列、FasterRCNN 系列、CenterNet、DETR 等在内的大量模型训练器与推理器均以该清单为实体集合。其中部分代表性模型的 benchmark 如下模型模型下载链接mAP(%)GPU推理耗时ms[常规模式 / 高性能模式]CPU推理耗时ms[常规模式 / 高性能模式]模型存储大小MB介绍PicoDet-L推理模型 / 训练模型42.614.31 / 11.0645.95 / 25.0620.9PP-PicoDet 是一种全尺寸、覆盖宽目标的轻量级目标检测算法兼顾移动端设备运算量与传统目标检测算法相比具有更小的模型尺寸和更低的计算复杂度在保证检测精度的同时拥有更高的速度和更低的延迟。PicoDet-S推理模型 / 训练模型29.19.15 / 3.2616.06 / 4.044.4同上PP-YOLOE_plus-L推理模型 / 训练模型52.932.06 / 28.00185.32 / 116.21185.3PP-YOLOE_plus 是百度飞桨视觉团队自研的云边一体高精度模型 PP-YOLOE 的迭代升级版本通过使用 Objects365 大规模数据集并优化预处理大幅提升了端到端推理速度。PP-YOLOE_plus-S推理模型 / 训练模型43.711.43 / 7.5260.16 / 26.9428.3同上RT-DETR-H推理模型 / 训练模型56.3114.57 / 101.56938.20 / 938.20435.8RT-DETR 是第一个实时端到端目标检测器。它设计了高效的混合编码器满足模型效果与吞吐率的双需求高效处理多尺度特征并提出加速和优化的查询选择机制以优化解码器查询动态化支持通过不同解码器实现灵活的端到端推理速度。RT-DETR-L推理模型 / 训练模型53.034.76 / 27.60495.39 / 247.68113.7同上注以上精度指标为 COCO2017 验证集 mAP(0.5:0.95)。GPU 推理耗时基于 NVIDIA Tesla T4 机器精度类型为 FP32CPU 推理速度基于 Intel(R) Xeon(R) Gold 5117 CPU 2.00GHz线程数为 8精度类型为 FP32。从上表可以直观看出模型的取舍规律表格从上到下模型推理速度更快从下到上模型精度更高。本教程以 PicoDet-L 为例完成一次模型全流程开发——它在 20.9MB 的存储大小下兼顾了精度与速度适合作为入门与快速落地的选择。你可以依据实际使用场景算力资源、精度要求、端侧部署约束等选择合适的模型进行训练训练完成后在产线内评估效果并用于实际场景。4. 数据准备与校验4.1 数据准备本教程使用「服装时尚元素检测数据集」作为示例数据集通过以下命令获取cd /path/to/paddlex wget https://paddle-model-ecology.bj.bcebos.com/paddlex/data/det_mini_fashion_pedia_coco.tar -P ./dataset tar -xf ./dataset/det_mini_fashion_pedia_coco.tar -C ./dataset/如果使用自备的已标注数据集需要按照 PaddleX 的格式要求调整。目标检测任务模块使用的数据集类型为COCODetDataset其目录结构要求为根目录下包含annotations目录保存instance_train.json、instance_val.json等 COCO 格式标注文件目录名与文件名不可改变与images目录保存图像目录名不可改变。更完整的数据格式与标注工具Labelme、PaddleLabel使用说明请参考 PaddleX 目标检测任务模块数据准备教程。4.2 数据集校验对数据集进行校验只需一行命令python main.py -c paddlex/configs/modules/object_detection/PicoDet-L.yaml \ -o Global.modecheck_dataset \ -o Global.dataset_dir./dataset/det_mini_fashion_pedia_coco命令执行后PaddleX 会对数据集进行校验并统计基本信息。运行成功会在 log 中打印Check dataset passed !同时产出保存在./output/check_dataset目录下包括可视化示例样本图片和样本分布直方图校验结果文件为./output/check_dataset_result.json内容示例如下{ done_flag: true, check_pass: true, attributes: { num_classes: 15, train_samples: 4000, train_sample_paths: [ check_dataset/demo_img/297ea597f7dfa6d710b2e8176cb3b913.jpg, check_dataset/demo_img/2d8b75ce472dbebd41ca8527f0a292f3.jpg ], val_samples: 800, val_sample_paths: [ check_dataset/demo_img/40e13ebcfa281567c92fc9842510abea.jpg, check_dataset/demo_img/87808e379034ac2344f5132d3dccc6e6.jpg ] }, analysis: { histogram: check_dataset/histogram.png }, dataset_path: ./dataset/det_mini_fashion_pedia_coco, show_type: image, dataset_type: COCODetDataset }校验结果关键字段说明check_pass为true表示数据集格式符合要求只有通过数据校验的数据才可以训练和评估attributes.num_classes数据集类别数为 15该数值即后续训练需要传入的类别数量attributes.train_samples训练集样本数量为 4000attributes.val_samples验证集样本数量为 800attributes.train_sample_paths/attributes.val_sample_paths训练集/验证集样本可视化图片的相对路径列表analysis.histogram数据集中所有类别的样本数量分布直方图路径可用于观察类别是否均衡。4.3 数据集格式转换 / 数据集划分非必选如需对数据集进行格式转换或重新划分可通过修改配置文件或追加超参数的方式设置。相关参数位于配置文件CheckDataset字段下CheckDataset:convert:enable是否进行数据集格式转换为True时进行格式转换默认为Falsesrc_dataset_type若进行格式转换需设置源数据集格式目标检测支持LabelMe和VOC两种源格式split:enable是否重新划分数据集为True时进行划分默认为Falsetrain_percent训练集百分比为 0-100 之间的任意整数需保证与val_percent加和为 100val_percent验证集百分比为 0-100 之间的任意整数需保证与train_percent加和为 100。数据转换和数据划分支持同时开启划分数据时原有标注文件会在原路径下被重命名为xxx.bak。这些参数同样支持通过追加命令行参数设置例如重新划分数据集并设置训练/验证集比例为 80:20-o CheckDataset.split.enableTrue -o CheckDataset.split.train_percent80 -o CheckDataset.split.val_percent205. 模型训练与评估5.1 模型训练训练前请确保数据集已通过校验。完成 PaddleX 模型训练只需一条命令python main.py -c paddlex/configs/modules/object_detection/PicoDet-L.yaml \ -o Global.modetrain \ -o Global.dataset_dir./dataset/det_mini_fashion_pedia_coco \ -o Train.num_classes15PaddleX 中每个模型都提供了模型开发配置文件本教程对应 PicoDet-L.yaml支持修改训练超参数、单机单卡/多卡训练等只需修改配置文件或追加命令行参数。该配置文件的核心字段如下Global: model: PicoDet-L mode: check_dataset # check_dataset/train/evaluate/predict dataset_dir: /paddle/dataset/paddlex/det/det_coco_examples device: gpu:0,1,2,3 output: output CheckDataset: convert: enable: False src_dataset_type: null split: enable: False train_percent: null val_percent: null Train: num_classes: 4 epochs_iters: 50 batch_size: 16 learning_rate: 0.08 pretrain_weight_path: https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/PicoDet-L_pretrained.pdparams warmup_steps: 100 resume_path: null log_interval: 10 eval_interval: 1 Evaluate: weight_path: output/best_model/best_model.pdparams log_interval: 10 Export: weight_path: https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/PicoDet-L_pretrained.pdparams Predict: batch_size: 1 model_dir: output/best_model/inference input: https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_object_detection_002.png kernel_option: run_mode: paddle训练相关参数说明Globalmode运行模式支持数据校验check_dataset、模型训练train、模型评估evaluate、模型导出export、模型预测predictdevice训练设备可选cpu、gpu、xpu、npu、mlu除 cpu 外多卡训练可指定卡号如gpu:0,1,2,3output输出目录默认为outputTrain训练超参数设置num_classes类别数需与数据集校验结果一致本场景为 15epochs_iters训练轮次数batch_size批大小learning_rate学习率pretrain_weight_path预训练权重路径PaddleX 默认使用官方预训练权重做迁移学习初始化warmup_stepswarmup 步数resume_path断点续训权重路径log_interval/eval_interval日志打印间隔与评估间隔。更多超参数介绍请参考 PaddleX 通用模型配置文件参数说明。从源码看训练器 paddlex/modules/object_detection/trainer.py 中的DetTrainer.update_config()会将命令行传入的num_classes、batch_size、learning_rate、epochs_iters、warmup_steps、预训练权重路径等逐一写入底层 PaddleDetection 训练配置当模型名包含PicoDet时还会根据总轮次自动更新静态图训练中 assigner 的 epoch 数assigner_epochs max(int(epochs_iters / 10), 1)以保证 PicoDet 的标签分配策略与训练进度匹配。训练参数还可通过命令行覆盖例如指定模式为训练-o Global.modetrain指定前 2 卡 GPU 训练-o Global.devicegpu:0,1设置训练轮次为 50-o Train.epochs_iters50指定输出路径-o Global.output...训练产出说明训练完成后所有产出保存在指定输出目录默认为./output/下通常包括train_result.json训练结果记录文件记录训练任务是否正常完成以及产出的权重指标、相关文件路径等train.log训练日志文件记录训练过程中的模型指标变化、loss 变化等config.yaml训练配置文件记录本次训练的超参数配置.pdparams、.pdema、.pdopt.pdstate、.pdiparams、.pdmodel模型权重相关文件包括动态图网络参数、EMA 参数、优化器状态、静态图网络参数、静态图网络结构等。PaddleX 对用户屏蔽了动态图权重和静态图权重的概念训练过程中会同时产出动态图与静态图权重推理时默认选择静态图权重。5.2 模型评估训练完成后可以在验证集上评估指定权重文件的精度只需一行命令python main.py -c paddlex/configs/modules/object_detection/PicoDet-L.yaml \ -o Global.modeevaluate \ -o Global.dataset_dir./dataset/det_mini_fashion_pedia_coco模型评估同样支持修改配置文件或追加命令行参数。评估时需要指定模型权重文件路径每个配置文件都内置了默认权重保存路径如output/best_model/best_model.pdparams如需改变追加命令行参数即可例如-o Evaluate.weight_path./output/best_model/best_model.pdparams5.3 模型调优训练轮数控制着模型的训练深度轮数过少易欠拟合、过多易过拟合学习率则关乎模型收敛的速度与稳定性。优化模型性能时务必审慎考虑这两个参数并推荐采用控制变量法进行调参首先固定训练轮次为 50、批大小为 16基于 PicoDet-L 模型启动三组实验学习率分别为 0.02、0.04、0.08观察结果学习率 0.04 时精度最高在该学习率基础上继续改变训练轮次发现 80 epoch 时基本达到最佳精度。学习率探寻实验结果训练环境4 卡 GPUbatch_size16实验轮次学习率batch_size训练环境mAP0.5实验一500.02164卡0.428实验二500.04164卡0.471实验三500.08164卡0.440改变 epoch 实验结果实验轮次学习率batch_size训练环境mAP0.5实验二500.04164卡0.471实验二减少训练轮次300.04164卡0.425实验二增大训练轮次800.04164卡0.491实验二增大训练轮次1000.04164卡0.459注本教程为 4 卡教程。如果只有 1 张 GPU可通过调整训练卡数完成实验但最终指标未必与上述指标对齐属正常情况。6. 产线测试将产线中的模型替换为微调后的模型进行测试命令如下python main.py -c paddlex/configs/modules/object_detection/PicoDet-L.yaml \ -o Global.modepredict \ -o Predict.model_diroutput/best_model/inference \ -o Predict.inputhttps://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/application/object_detection/FashionPedia_demo.png执行后会在./output下生成预测结果。从源码看该预测流程由 paddlex/inference/models/object_detection/predictor.py 中的DetPredictor驱动输入图片依次经过ReadImage → Resize → NormalizeImage → Permute → Pad/PadStride → ToBatch等预处理算子送入静态图推理引擎再经DetPostProcess后处理输出检测框、类别与置信度。产线侧 paddlex/inference/pipelines/object_detection/pipeline.py 将threshold、img_size等参数透传给检测模型其中threshold用于过滤低置信度预测框。7. 开发集成与部署如果通用目标检测产线已达到你对推理速度和精度的要求可以直接进行开发集成/部署。7.1 使用微调权重接入 Python 项目首先获取 object_detection 产线配置文件将结果保存在my_path中paddlex --get_pipeline_config object_detection --save_path ./my_path然后编辑产线配置文件对应仓库中的 paddlex/configs/pipelines/object_detection.yaml将微调后模型权重的本地路径填写至model_dirpipeline_name: object_detection SubModules: ObjectDetection: module_name: object_detection model_name: PicoDet-S model_dir: null # 此处替换为您训练后得到的模型权重本地路径 batch_size: 1 img_size: null threshold: null随后在 Python 代码中即可这样使用产线from paddlex import create_pipeline pipeline create_pipeline(pipelinemy_path/object_detection.yaml) output pipeline.predict(https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/application/object_detection/FashionPedia_demo.png) for res in output: res.print() # 打印预测的结构化输出 res.save_to_img(./output/) # 保存结果可视化图像 res.save_to_json(./output/) # 保存预测的结构化输出产线配置中ObjectDetection子模块支持model_dir本地权重路径、batch_size批大小、img_size推理输入尺寸可传 int 或 (w, h) 二元组、threshold置信度阈值用于过滤低置信度预测框等参数。更多参数请参考 目标检测产线使用教程。7.2 三种生产部署方式PaddleX 还提供了其他三种部署方式高性能部署实际生产环境中许多应用对响应速度有严苛标准。PaddleX 提供高性能推理插件对模型推理及前后处理进行深度性能优化实现端到端流程显著提速。详细流程见 PaddleX 高性能推理指南。服务化部署将推理功能封装为服务客户端通过网络请求访问以获取推理结果是生产环境中常见部署形式。PaddleX 支持低成本实现产线服务化部署。详细流程见 PaddleX 服务化部署指南。端侧部署将计算与数据处理放在用户设备本身设备可直接处理数据而无需依赖远程服务器。PaddleX 支持将模型部署在 Android 等端侧设备上。详细流程见 PaddleX 端侧部署指南。8. 小结本文以服装时尚元素检测为线索走通了 PaddleX 通用目标检测产线的完整开发闭环产线选择 → 快速体验 → 模型选型 → 数据准备与校验 → 模型训练与评估 → 超参数调优 → 产线测试 → 开发集成与部署。关键要点可以概括为用paddlex --pipeline object_detection --input ...一行命令快速验证产线效果用python main.py -c paddlex/configs/modules/object_detection/PicoDet-L.yaml统一驱动数据集校验、训练、评估、预测各阶段通过-o追加命令行参数灵活覆盖配置数据校验通过check_pass: true是训练与评估的前置条件num_classes必须与校验结果一致调参遵循控制变量法本场景以学习率 0.04、80 epoch 获得最优 mAP0.50.491微调完成后通过paddlex --get_pipeline_config获取产线配置并将model_dir指向本地权重即可用create_pipeline集成进 Python 项目或按需选择高性能、服务化、端侧部署方案落地。赞分享人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG【免费下载链接】PaddleXAll-in-One Development Tool based on PaddlePaddle项目地址https://gitcode.com/paddlepaddle/PaddleX点击查看免费下载相关推荐Salt Player 本地音乐播放器实操指南离线播放 FLAC 曲库前要搞定的 5 件事Salt Player 本地音乐播放器实操指南离线播放 FLAC 曲库前要搞定的 5 件事 Salt Player椒盐音乐是一款自 2020 年起持续开发人工智能大模型低代码计算机视觉深度学习模型推理服务PaddleX 通用目标检测流水线实战服装时尚元素检测FashionPedia从数据到部署全流程PaddleX 通用目标检测流水线实战服装时尚元素检测FashionPedia从数据到部署全流程 PaddleX 的通用目标检测General Obje人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG微调语音基于 PaddleX 3.0 通用目标检测产线实现行人跌倒检测从快速体验到模型微调与部署全流程指南基于 PaddleX 3.0 通用目标检测产线实现行人跌倒检测从快速体验到模型微调与部署全流程指南 本教程以「行人跌倒检测」这一典型安防场景为例完整演示 P人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG微调语音上一篇5分钟掌握浏览器中免费解锁加密音乐的终极指南下一篇1秒解决表格数据难题TabPFN如何用AI革命表格数据分析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考