
人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载本文以 QualityInspector飞桨工业质检全流程解决方案中configs/seg/目录下的分割模型配置文件为对象系统讲解 PaddleSeg 训练配置文件中的全部核心配置项——训练/验证数据集、批大小、迭代数、优化器、学习率、损失函数、模型结构与导出配置并结合仓库内的真实 YAML 示例Cityscapes 基线与缺陷检测 OCRNet 配置说明如何在工业质检场景中编写、复用与运行这些配置最终完成分割模型的训练与验证。一、配置文件在 QualityInspector 中的作用QualityInspector 是飞桨视觉套件PaddleClas、PaddleSeg、PaddleDetection之上构建的工业质检全流程解决方案其核心特性之一就是统一可配置的解决方案支持检测、分割单模型以及检测 RoI 分割串联 后处理的组合方案只需修改配置即可组合视觉套件中的模型见 QualityInspector 项目说明。在分割任务中contrib/QualityInspector/configs/seg/目录下保存了不同模型的配置文件PaddleSeg 依靠这些 YAML 文件完成模型的训练train、验证val与导出export。配置文件即算法方案说明书——数据集用哪个、训练多少步、用什么优化器和学习率策略、接什么损失函数、选哪个模型骨架全部由它声明。当前仓库中configs/seg/目录的构成如下_base_/可被其他配置继承的公共基配置如cityscapes.yml、ade20k.yml、mtile_dataset.yml等各模型子目录mobileseg/、mscale_ocrnet/、ocrnet/、pspnet/、segformer/、uhrnet/、unet/、upernet/每个目录内含 README 与该模型的训练 YAML目录根部的 README.md 与 README_cn.md即本文所讲解的配置项总览。二、核心配置项总览一份典型的分割训练配置由以下顶层字段组成train_dataset、val_dataset、batch_size、iters、optimizer、lr_scheduler、loss、model、export。下面逐一展开。1. train_dataset训练数据集train_dataset: type: Cityscapes # 数据集类型 dataset_root: data/cityscapes transforms: - type: Normalize mode: train # 训练模式type数据集类型PaddleSeg 内置了 Cityscapes、ADE20K、VOC 等标准数据集也支持通用Dataset类型配合train_path/val_path指向自定义数据清单质检缺陷数据即用此类其余参数dataset_root、transforms、mode等具体取值请参考对应模型训练配置文件与数据集文档。2. val_dataset验证数据集val_dataset: type: Cityscapes dataset_root: data/cityscapes transforms: - type: Normalize mode: val # 验证模式结构与train_dataset一致区别在于mode: val且验证阶段通常只做归一化Normalize而不做数据增强。训练过程中可通过--do_eval定期在验证集上评测。3. batch_size单卡批大小单张卡上每步迭代训练时的数据量。一般来说显存越大可相应调高batch_size的值。注意该字段是单卡维度多卡训练时实际吞吐为batch_size × 卡数。在 QualityInspector 的缺陷分割配置中如ocrnet_hrnetw18_defect_256x256_40k.yml输入尺寸小256×256批大小可设到 16而 Cityscapes 基线的 1024×512 输入则通常设为 2。4. iters训练迭代数使用一个 batch 数据对模型做一次参数更新即一次迭代iterationiters即训练总迭代次数。它与epoch不同——PaddleSeg 配置以迭代数为训练终止条件例如Cityscapes 常规训练iters: 80000或160000质检缺陷分割数据量较小iters: 40000见 ocrnet_hrnetw18_defect_256x256_40k.yml。5. optimizer训练优化器optimizer: type: sgd momentum: 0.9 weight_decay: 4.0e-5type优化器类型。README 指出支持 Paddle 官方所有优化器在 PaddleSeg 主仓库的配置文件详解中明确当前训练链路常用的为sgd与adam及 Transformer 类模型常用的AdamWweight_decayL2 正则化强度如4.0e-5其余参数momentum、beta1、beta2等参考 Paddle 官方 Optimizer 文档。实际仓库中可以看到两种典型用法卷积类模型用sgd momentum如 cityscapes.yml而 SegFormer 等 Transformer 模型使用AdamW并显式关闭继承_inherited_: Falseoptimizer: _inherited_: False # 不继承基配置中的优化器 type: AdamW beta1: 0.9 beta2: 0.999 weight_decay: 0.01见 segformer_b0_cityscapes_1024x512_160k.yml6. lr_scheduler学习率策略推荐lr_scheduler: type: PolynomialDecay learning_rate: 0.01 end_lr: 0 power: 0.9type学习率策略类型共支持 10 种PolynomialDecay、PiecewiseDecay、StepDecay、CosineAnnealingDecay、ExponentialDecay、InverseTimeDecay、LinearWarmup、MultiStepDecay、NaturalExpDecay、NoamDecayPaddleSeg 主仓库的 use 文档中还提及ReduceOnPlateau、LambdaDecay两种合计 12 种其余参数learning_rate、end_lr、power等随策略类型不同而不同详见 Paddle 官方 LRScheduler 文档。分割训练中最常用的是PolynomialDecay多项式衰减学习率从learning_rate按power次方衰减至end_lr。Cityscapes 基线使用learning_rate: 0.01, power: 0.9, end_lr: 0SegFormer 则使用更小的learning_rate: 0.00006, power: 1。7. learning_rate旧式学习率配置不推荐该配置不推荐使用将来会被废弃建议使用lr_scheduler代替。旧式写法以value指定初始学习率以decay声明衰减learning_rate: value: 0.1 decay: type: poly # 衰减类型目前只支持 poly power: 0.9 end_lr: 0.0001value初始学习率decay.type衰减类型目前仅支持polydecay.power衰减率decay.end_lr最终学习率。新项目请一律使用lr_scheduler字段。8. loss损失函数loss: types: - type: CrossEntropyLoss coef: [1]types损失函数列表类型取自 PaddleSeg 损失函数库CrossEntropyLoss、DiceLoss、LovaszSoftmaxLoss 等具体支持值参考损失函数库文档ignore_index训练过程中需要忽略的类别如标注中的边界/未知像素。默认取值与train_dataset的ignore_index一致推荐不设置此项若手动设置必须保证loss与train_dataset的ignore_index相同否则会造成标签与损失计算不一致coef与损失列表一一对应的加权系数。多损失组合时用于平衡各分支例如 OCRNet 使用主损失 辅助空间细节损失loss: types: - type: CrossEntropyLoss - type: CrossEntropyLoss coef: [1, 0.4]见 ocrnet_hrnetw18_defect_256x256_40k.yml9. model待训练模型model: type: OCRNet backbone: type: HRNet_W18 pretrained: https://bj.bcebos.com/paddleseg/dygraph/hrnet_w18_ssld.tar.gz num_classes: 6 backbone_indices: [0]type模型类型支持值见 PaddleSeg 模型库FCN、OCRNet、SegFormer、PSPNet、UPerNet、MobileSeg、UHRNet、UNet 等configs/seg/下各子目录即对应实现backbone骨干网络可指定pretrained预训练权重本地路径或 URLnum_classes像素类别数必须与数据集的类别数一致质检缺陷分割中常为背景 N 类缺陷如 6 类其余参数backbone_indices、embedding_dim等随模型不同而不同请参考对应模型训练配置文件。10. export模型导出配置export: transforms: - type: Normalizetransforms预测部署阶段的预处理操作支持配置的 transforms 与train_dataset、val_dataset等相同。若不填写该项默认只对数据做归一化标准化——这意味着导出模型在推理时若需要 resize、padding 等操作必须在此显式声明与训练/验证阶段的预处理保持一致。三、配置继承机制_base_与_inherited_QualityInspector 的配置体系支持继承这是组织多套实验配置的关键机制子配置通过_base_: ../_base_/cityscapes.yml声明继承某个基配置未在子配置中重写的字段自动沿用基配置值某个字段若想完全推翻基配置而非增量覆盖需显式标记_inherited_: False如 SegFormer 中替换优化器为 AdamW。典型示例# configs/seg/segformer/segformer_b0_cityscapes_1024x512_160k.yml _base_: ../_base_/cityscapes.yml batch_size: 1 iters: 160000 model: type: SegFormer backbone: type: MixVisionTransformer_B0 pretrained: https://bj.bcebos.com/paddleseg/dygraph/backbone/mix_vision_transformer_b0.tar.gz embedding_dim: 256 num_classes: 19这样便复用了基配置中的数据集定义、数据增强管线等公共内容仅针对模型本身做替换。四、完整配置示例可直接运行的骨架综合 PaddleSeg 配置文件详解 中的完整示例一份自洽的分割训练配置如下batch_size: 4 # 一次迭代送入网络的图片数单卡显存越大可越高 iters: 80000 # 总迭代次数 train_dataset: # 训练数据集 type: Cityscapes dataset_root: data/cityscapes transforms: - type: ResizeStepScaling # 按 scale_step_size 为步长随机缩放 min_scale_factor: 0.5 max_scale_factor: 2.0 scale_step_size: 0.25 - type: RandomPaddingCrop # 随机裁剪图像与标注 crop_size: [1024, 512] - type: RandomHorizontalFlip # 随机水平翻转 - type: Normalize # 标准化 mode: train val_dataset: # 验证数据集 type: Cityscapes dataset_root: data/cityscapes transforms: - type: Normalize mode: val optimizer: type: sgd momentum: 0.9 weight_decay: 4.0e-5 lr_scheduler: type: PolynomialDecay learning_rate: 0.01 power: 0.9 end_lr: 0 loss: types: - type: CrossEntropyLoss coef: [1] model: type: FCN backbone: type: HRNet_W18 pretrained: pretrained_model/hrnet_w18_ssld num_classes: 19 pretrained: Null backbone_indices: [-1]而面向工业质检缺陷分割的真实配置OCRNet HRNet_W18256×256 输入6 类40k 迭代见 ocrnet_hrnetw18_defect_256x256_40k.yml其数据部分使用通用Dataset类型train_dataset: type: Dataset num_classes: 6 dataset_root: ./ train_path: dataset/MT_dataset/train.txt transforms: - type: ResizeStepScaling min_scale_factor: 0.5 max_scale_factor: 2.0 scale_step_size: 0.25 - type: RandomPaddingCrop crop_size: [256, 256] - type: RandomHorizontalFlip - type: RandomDistort brightness_range: 0.4 contrast_range: 0.4 saturation_range: 0.4 - type: Normalize mode: traintrain_path/val_path指向的 txt 文件即样本清单每行一个图像-标注对这是把任意自建质检数据接入训练链路的标准方式被注释的CopyPaste变换prob: 0.5则是针对缺陷样本少、可做贴片增强的预留手段。五、用配置文件驱动训练与验证配置文件编写完成后即可通过 QualityInspector 提供的训练/验证脚本tools/seg/驱动。以缺陷分割配置为例详见 训练验证文档单卡训练python3 tools/seg/train.py --config configs/seg/ocrnet/ocrnet_hrnetw18_defect_256x256_40k.yml \ --do_eval --use_vdl --save_interval 1000 --save_dir ./output/多卡训练CUDA_VISIBLE_DEVICES0,1 python3 -m paddle.distributed.launch \ --config configs/seg/ocrnet/ocrnet_hrnetw18_defect_256x256_40k.yml \ --do_eval --use_vdl --save_interval 1000 --save_dir ./output/验证使用训练中保存的最优模型python3 tools/seg/val.py --config configs/seg/ocrnet/ocrnet_hrnetw18_defect_256x256_40k.yml \ --model_path ./output/best_model/model.pdparams命令要点--config或-c指定 YAML 配置文件路径--do_eval训练过程中定期在验证集上评测--save_interval控制保存间隔--use_vdl开启 VisualDL 可视化日志--vdl_log_dir指定日志目录--model_path验证时指定权重文件如best_model/model.pdparams-o可覆盖配置文件中的任意字段检测任务的eval.py常用-o weights...指定权重。六、扩展与注意事项算法可扩展QualityInspector 的configs/seg/只保留了部分算法配置MobileSeg、OCRNet、PSPNet、SegFormer、UHRNet、UNet、UPerNet、MScaleOCRNet 等但实际可使用 PaddleSeg 中集成的任意算法——只需把对应算法的 config 文件放入./configs/seg/即可按同样的流程训练。数据增强按需裁剪训练集 transform 顺序影响最终效果ResizeStepScaling→RandomPaddingCrop→RandomHorizontalFlip→RandomDistort→Normalize是分割任务的标准增强链验证与导出阶段应保持与训练一致的Normalize参数。类别一致性model.num_classes、train_dataset.num_classes与标注数据中的类别编号必须一一对应loss中如设置ignore_index需与数据集一致。学习率选择卷积类模型HRNet/ResNet 骨干通常用PolynomialDecay 0.01Transformer 类模型SegFormer/MixVisionTransformer用更小的学习率如6e-5配合AdamW二者不可混用默认值。导出前的预处理export.transforms不填时导出模型仅含归一化若部署链路需要 resize 等操作务必在此显式声明否则推理时输入尺寸与训练不一致会导致精度下降。通过配置文件QualityInspector 实现了训练、验证、导出三阶段行为与工业质检任务的解耦更换模型、调整数据或调优超参都只需要编辑 YAML 而非修改代码这正是其统一可配置解决方案设计理念在分割链路上的直接体现。赞分享人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载相关推荐PaddleSeg 语义分割训练配置文件详解从基础配置项到训练、评估与导出实战PaddleSeg 语义分割训练配置文件详解从基础配置项到训练、评估与导出实战 PaddleSeg 将模型训练、验证与导出所需的全部超参数统一组织在 YAML人工智能计算机视觉预训练PaddleSeg QualityInspector 全流程配置文件解析从 ENV 到 PipeLine 的工业质检 PPL 配置实战PaddleSeg QualityInspector 全流程配置文件解析从 ENV 到 PipeLine 的工业质检 PPL 配置实战 全流程配置文件end人工智能计算机视觉预训练PP-YOLOE Objects365 预训练模型库与配置文件详解 —— QualityInspector 工业质检目标检测方案PP YOLOE Objects365 预训练模型库与配置文件详解 —— QualityInspector 工业质检目标检测方案 本指南以 PaddleSeg人工智能计算机视觉预训练创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考