尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

PaddleSeg API 全景指南:transforms、datasets、models、core 与 cvlibs 六大接口模块详解

发布时间:2026/9/25 5:07:35

资讯中心
01
ARTICLE

PaddleSeg API 全景指南:transforms、datasets、models、core 与 cvlibs 六大接口模块详解

PaddleSeg API 全景指南:transforms、datasets、models、core 与 cvlibs 六大接口模块详解
人工智能计算机视觉预训练【免费下载链接】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 是飞桨生态下的语义分割开发库其 API 按职责划分为六大模块数据变换paddleseg.transforms、数据集处理paddleseg.datasets、分割模型集paddleseg.models、骨干网络paddleseg.models.backbones、训练/评估/预测接口paddleseg.core以及组件构建工具库paddleseg.cvlibs。本文以 API 索引文档 为主线逐个模块梳理公开接口的函数签名、参数取值与默认值并结合仓库源码说明各模块的落地位置帮助你在不读完整文档的情况下快速完成“数据增强—数据集接入—模型搭建—训练评估”的全链路 API 调用。一、API 模块总览docs/apis/README.md 将整个 API 面组织为以下六个条目模块文档入口源码入口Data Transformation数据变换/增强paddleseg.transformspaddleseg/transforms/transforms.pyDataset Processing数据集处理paddleseg.datasetspaddleseg/datasets/dataset.pySemantic Segmentation Model Set分割模型集paddleseg.modelspaddleseg/models/init.pyBackbone Networks骨干网络paddleseg.models.backbonepaddleseg/models/backbones/Training, Evaluating and Predicting训练/评估/预测paddleseg.corepaddleseg/core/train.py、paddleseg/core/val.py、paddleseg/core/predict.pyComputer Vision Library组件构建工具paddleseg.cvlibspaddleseg/cvlibs/manager.py、paddleseg/cvlibs/config.py从文档目录结构看每个模块同时提供中英文两份 Markdown 文档如 transforms.md 与 transforms_cn.md并通过 docs/apis/index.rst 中的 Sphinx toctree 汇编为在线文档。API 文档中的每个接口标题都直接链接到对应源码文件这种“文档—源码”一一映射的写法本身也提示了每个接口的实现位置。二、数据变换模块 paddleseg.transformspaddleseg.transforms覆盖语义分割训练中常用的预处理与数据增强操作。所有变换作用的输入数据形状为[height, width, channels]。完整参数说明见 transforms 文档实现位于 paddleseg/transforms/transforms.py。2.1 Compose变换流水线的入口class paddleseg.transforms.Compose(transforms, to_rgbTrue)transforms(list)按顺序执行的数据预处理或增强操作列表to_rgb(bool, optional)是否将图像转换为 RGB 色彩空间默认True。异常约定当transforms不是列表时抛出TypeError当列表长度小于 1 时抛出ValueError。也就是说一条合法的增强流水线至少需要包含一个算子。2.2 几何类变换接口签名核心参数与默认值水平随机翻转RandomHorizontalFlip(prob0.5)prob翻转概率默认 0.5垂直随机翻转RandomVerticalFlip(prob0.1)prob翻转概率默认 0.1固定尺寸缩放Resize(target_size(512, 512), interpLINEAR)interp取值NEAREST/LINEAR/CUBIC/AREA/LANCZOS4/RANDOM与 OpenCV 插值模式一致RANDOM表示每次随机选取一种插值方式长边缩放ResizeByLong(long_size)long_size缩放后长边像素数长边区间缩放ResizeRangeScaling(min_value400, max_value600)将长边随机缩放至[min_value, max_value]短边等比步进缩放ResizeStepScaling(min_scale_factor0.75, max_scale_factor1.25, scale_step_size0.25)在min_scale_factor与max_scale_factor之间按步长随机取比例若min_scale_factor max_scale_factor抛出ValueError填充Padding(target_size, im_padding_value(127.5, 127.5, 127.5), label_padding_value255)向图像与标注图右下角补值target_size非 list/tuple 抛TypeError长度不为 2 抛ValueError随机裁剪可填充RandomPaddingCrop(crop_size(512, 512), im_padding_value(127.5, 127.5, 127.5), label_padding_value255)目标裁剪尺寸大于原图时自动做右下角填充随机旋转RandomRotation(max_rotation15, im_padding_value(127.5, 127.5, 127.5), label_padding_value255)标注图同步旋转并做相应填充填充值列表长度须与通道数一致随机比例-纵横比裁剪RandomScaleAspect(min_scale0.5, aspect_ratio0.33)按面积比与纵横比裁剪后再缩放回原图标注图同步min_scale0时直接返回原图这类几何变换的共同特点是“图像与标注图同步变换”裁剪/旋转引入的边界区域由im_padding_value图像默认 127.5即归一化前灰度与label_padding_value默认 255对应ignore_index填充避免边界像素污染训练标签。2.3 颜色类变换class paddleseg.transforms.RandomDistort(brightness_range0.5, brightness_prob0.5, contrast_range0.5, contrast_prob0.5, saturation_range0.5, saturation_prob0.5, hue_range18, hue_prob0.5)按概率随机调整亮度、对比度、饱和度与色相hue_range默认为 18度其余range参数默认 0.5。此外RandomBlur(prob0.1)以 0.1 的概率对图像做高斯模糊。2.4 归一化 Normalizeclass paddleseg.transforms.Normalize(mean(0.5, 0.5, 0.5), std(0.5, 0.5, 0.5))文档明确给出三步归一化流程① 像素值先减去 min_val② 再除以 (max_val - min_val)把像素压到 [0.0, 1.0]③ 减去mean并除以std。注意mean/std的长度必须与图像通道数一致当mean/std不是列表或std中存在 0 时抛出ValueError。默认的(0.5, 0.5, 0.5)等价于常见的“先缩放到 0~1 再减 0.5 除 0.5”的 ImageNet 风格前置归一化。以上算子组合起来即构成配置文件train_transforms字段的典型写法可在 configs/base/cityscapes.yml 等基础配置中查看实际用法。三、数据集模块 paddleseg.datasetspaddleseg.datasets提供标准化的语义分割数据集接入方式文档入口为 datasets 文档其中列出的数据集包括 Custom Dataset、Cityscapes、PascalVOC、ADE20K、OpticDiscSeg 等分别对应 paddleseg/datasets/cityscapes.py、paddleseg/datasets/voc.py、paddleseg/datasets/ade.py、paddleseg/datasets/optic_disc_seg.py。自定义数据集统一使用Dataset类实现见 paddleseg/datasets/dataset.pyclass paddleseg.datasets.Dataset( transforms, dataset_root, num_classes, modetrain, train_pathNone, val_pathNone, test_pathNone, separator , ignore_index255, edgeFalse)关键参数说明transforms该数据集专属的变换流水线通常为transforms.Compose实例dataset_root数据集根目录num_classes类别数modetrain/val/test决定读取哪一路路径文件train_path / val_path / test_path各自对应的列表文件每行记录一张图像及其标注separator列表文件中图像与标注之间的分隔符默认空格ignore_index忽略类标签默认 255与 transforms 中label_padding_value的默认值呼应保证填充区域不参与损失计算edge是否启用边缘加权edge mode训练。从源码结构看paddleseg/datasets/下还实现了 ChaseDB1、DRIVE、HRF、STARE、PASCAL Context、Supervisely 等多个数据集类均遵循“路径列表 transforms”的同一接入范式因此迁移到新数据集时只需实现__getitem__的图像/标注读取逻辑。四、分割模型集 paddleseg.modelspaddleseg.models汇集了可直接实例化的语义分割网络。文档入口为 models 文档。从 paddleseg/models/init.py 的导出语句可以看到模型集至少涵盖FCN、PSPNet、DeepLabv3/v3、OCRNet、DANet、GCNet、BiSeNet、ANN、GSCNN、FastSCNN、UNet、HarDNet、U2Net/U2Netp 等除骨干网络与损失函数外按from .xxx import *逐模块导出。每个分割模型的构造都接收num_classes、backbone骨干网络实例等核心参数并通过decode模块paddleseg/models/decode/与 backbone 组合——这一结构也解释了配置文件里model.backbone与model.decode两级字段的来源。完整模型清单与各自签名见 docs/apis/models/models.md训练配置示例可参考 configs/ 下按模型名组织的目录如 configs/deeplabv3p/。五、骨干网络 paddleseg.models.backbonesbackbones 文档 给出了骨干网络的统一约定。文档中列出的代表接口包括paddleseg.models.backbones.ResNet_vd( layers50, output_strideNone, multi_grid(1, 1, 1), lr_mult_list(0.1, 0.1, 0.2, 0.2), pretrainedNone)layersResNet 层数如 50output_stride输出步长ASPP 类头部常要求 8/16multi_gridDilated ResNet 的网格因子lr_mult_list各 stage 的学习率倍数配合多尺度骨干网络训练pretrained可选的分类预训练权重。文档同时收录了 HRNet、MobileNetV3、XceptionDeeplab 等骨干例如 ResNet_vd 实现 对应 Bag of Tricks for Image Classification with Convolutional Neural Networks 的 vd 变体。从源码目录看paddleseg/models/backbones/ 中实际可用的骨干远多于文档首批列出的四个还包括 HRNet/UHRNet、LiteHRNet、GhostNet、MobileNetV2、ShuffleNetV2、STDCNet、PIDNet、MobileOne、Swin Transformer、Vision Transformer、CAE、SeaFormer、TopFormer、HRFormer、EfficientFormerV2、MScan、StrideFormer、ResNet_MS3 等——即文档中的骨干列表是示例性的选型时以源码目录与模型配置为准。六、训练、评估与预测接口 paddleseg.corepaddleseg.core暴露了面向 API 用户的三大入口train、evaluate、predict分别实现在 paddleseg/core/train.py、paddleseg/core/val.py、paddleseg/core/predict.py参数详见 core 文档。6.1 trainpaddleseg.core.train( model, train_dataset, val_datasetNone, optimizerNone, save_diroutput, iters10000, batch_size2, resume_modelNone, save_interval1000, log_iters10, num_workers0, use_vdlFalse, lossesNone)model(nn.Layer)语义分割模型train_dataset(paddle.io.Dataset)训练数据集val_dataset(paddle.io.Dataset, optional)验证数据集用于训练中周期性评估optimizer(paddle.optimizer.Optimizer)优化器save_dir(str, optional)模型快照保存目录默认outputiters(int, optional)训练迭代数默认 10000batch_size(int, optional)单卡/单 CPU 的 mini batch size默认 2resume_model(str, optional)断点续训的模型路径save_interval(int, optional)每多少迭代保存一次快照默认 1000log_iters(int, optional)每多少迭代打印一次日志默认 10num_workers(int, optional)DataLoader worker 数默认 0use_vdl(bool, optional)训练中是否将数据记录到 VisualDL默认 Falselosses(dict)包含types与coef两个键的字典coef长度须等于 1 或len(losses[types])types为paddleseg.models.losses中损失对象的列表coef为对应系数列表用于多损失加权组合。6.2 evaluatepaddleseg.core.evaluate( model, eval_dataset, aug_evalFalse, scales1.0, flip_horizontalTrue, flip_verticalFalse, is_slideFalse, strideNone, crop_sizeNone, num_workers0)评估时支持两种可选策略测试时增强aug_evalTrue时启用多尺度与翻转增强scales为尺度列表或单一浮点数默认 1.0flip_horizontal默认 True/flip_vertical默认 False控制翻转方向滑窗评估is_slideTrue时按crop_size先宽后高与stride先宽后高对大图做滑窗切块评估两者在启用滑窗时必填。返回三个标量验证集的mIoU、pixel accuracy与kappa。6.3 predictpaddleseg.core.predict( model, model_path, transforms, image_list, image_dirNone, save_diroutput, aug_predFalse, scales1.0, flip_horizontalTrue, flip_verticalFalse, is_slideFalse, strideNone, crop_sizeNone)用于推理并可视化参数与evaluate的增强/滑窗参数一一对应aug_pred对应aug_evalmodel_path(str)预训练模型路径transforms(transform.Compose)输入图像的预处理流水线image_list(list)待预测图像路径列表image_dir(str, optional)图像根目录默认 Nonesave_dir(str, optional)结果保存目录默认output其余aug_pred/scales/flip_*/is_slide/stride/crop_size含义同evaluate。对于命令行用户core模块的同一套训练/评估/推理逻辑也被 tools/train.py、tools/val.py、tools/predict.py 封装为配置文件驱动的脚本入口两者底层复用相同实现API 方式适合把分割训练嵌入到自己的 Python 工程里。七、组件工具库 paddleseg.cvlibspaddleseg.cvlibs是 PaddleSeg 的“组件构建基础设施”文档入口为 cvlibs 文档主要解决三件事配置解析、组件注册、参数初始化。7.1 ComponentManagerclass paddleseg.cvlibs.manager.ComponentManager(name)见 paddleseg/cvlibs/manager.py。文档描述其职责是“实现一个 Manager 类把新组件正确地加入模型组件以类或函数的形式被添加”。它通过register装饰器为指定组件名如model、optimizer维护注册表from paddleseg.cvlibs import manager model_manager manager.get_manager(model) model_manager.add_component class MySegNet(...): ...配合 paddleseg/cvlibs/builder.py 中的build_from_config配置文件里model: type: MySegNet这类字段才能被解析成真实的类实例——这是配置文件系统能动态实例化模型、骨干、优化器的前提。7.2 Configpaddleseg.cvlibs.config.Config实现见 paddleseg/cvlibs/config.py提供对 YAML 配置的统一访问支持点号路径取键config[model.backbone]、merge_dict式的层级合并与_base_继承机制——这也解释了为什么 configs/base/ 中的数据集配置可以被各模型配置以_BASE_方式复用。配置合法性还由 paddleseg/cvlibs/config_checker.py 做字段级校验。7.3 参数初始化paddleseg.cvlibs还导出constant_init等参数初始化函数见 paddleseg/cvlibs/param_init.py用于自定义模型中卷积/线性层的初始化策略。八、从文档到源码的速查路径把六大模块串起来一条完整的 API 开发路径是用paddleseg.datasets.Dataset或内置 Cityscapes 等构造train_dataset/val_dataset在其中注入paddleseg.transforms.Compose([...])流水线用paddleseg.models中的分割网络 paddleseg.models.backbones中的骨干实例化model必要时借助paddleseg.cvlibs的 Config 与 ComponentManager 机制注册自定义组件调用paddleseg.core.train完成训练多损失通过losses字典加权调用paddleseg.core.evaluate获取 mIoU/accuracy/kappapaddleseg.core.predict输出可视化结果。每个接口的完整签名、Raises 说明与中英文文档入口均收录在 docs/apis/ 目录下且文档中所有接口标题都直链到对应源码文件可作为深入阅读的索引。赞分享人工智能计算机视觉预训练【免费下载链接】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点击查看免费下载相关推荐CANN pyasc 算子编程语言 asc.language 接口全景指南adv/basic/core/fwk 四大模块与编程模型解析CANN pyasc 算子编程语言 asc.language 接口全景指南adv/basic/core/fwk 四大模块与编程模型解析 CANN pyasc编程语言编译器人工智能CANNAscendwhereami API接口详解Python模块化调用的完整指南whereami API接口详解Python模块化调用的完整指南 想要通过WiFi信号和机器学习技术精准定位你的位置吗whereami项目为你提供了简单高效机器学习OBS Core API 详解从 obs_startup 到 Display/Viewlibobs 核心接口完全指南OBS Core API 详解从 obs_startup 到 Display/Viewlibobs 核心接口完全指南 本文基于 OBS Studio 仓库中音视频直播屏幕录制桌面应用视频上一篇推荐Node.js Web Scraper 库下一篇推荐JSON Schema - 一个用于描述 JSON 数据结构的语言创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。