PaddleSeg 全景分割工具箱快速上手:基于 Panoptic-DeepLab 的预测、训练与精度评估全流程指南
人工智能计算机视觉预训练【免费下载链接】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 全景分割工具箱位于仓库 contrib/PanopticSeg的快速开始指南。工具箱基于 PaddleSeg 打造将语义分割与实例分割统一为全景分割任务提供 Mask2Former、Panoptic-DeepLab 等前沿模型的训练、验证与部署全流程能力。读完本文你将能够完成从环境安装、下载预训练权重执行单图预测、解读三类可视化结果到数据集准备、模型训练、多卡并行训练与 PQ/mIoU/mAP 精度评估的完整实操闭环。一、环境准备与工具箱安装1.1 版本要求根据 完整功能文档 的说明本工具箱对运行环境有明确的版本约束依赖版本要求PaddlePaddle 2.4.0推荐 GPU 版本支持 CUDA 10.2 或更新版本Python 3.7PaddleSeg 2.8由于模型训练需要较高算力建议安装 GPU 版本的 PaddlePaddle。PaddlePaddle 的详细安装教程请参考其官方安装文档。1.2 安装 PaddleSeg 与全景分割工具箱首先拉取 PaddleSeg 项目默认获取最新发行版本切换到项目根目录后安装 PaddleSeg 本体git clone https://github.com/PaddlePaddle/PaddleSeg cd PaddleSeg # 安装 PaddleSeg 所需依赖 pip install -r requirements.txt # 从源码安装 PaddleSeg pip install .接着进入全景分割工具箱目录以可编辑模式安装cd PaddleSeg/contrib/PanopticSeg # 安装依赖 pip install -r requirements.txt # 以可编辑模式安装 pip install -e .其中pip install -e .依赖工具箱根目录下的 setup.py可编辑安装便于在开发过程中即时生效代码改动。1.3 检查安装情况执行如下指令验证安装是否成功python -c import paddlepanseg; print(paddlepanseg.__version__)若能打印出版本号则证明工具箱安装成功可以进入下一步。二、使用预训练模型进行预测2.1 下载预训练模型权重与示例数据官方文档提供了可直接使用的预训练权重与示例图像请分别下载并放置于项目根目录即contrib/PanopticSeg目录预训练模型权重model.pdparamsPanoptic-DeepLabResNet50、os32、Cityscapes 1025x513、bs8、90k 迭代的训练权重示例图像demo.png用于演示预测效果的示例图片。2.2 执行预测在contrib/PanopticSeg目录下先创建可视化结果输出目录再执行预测命令mkdir -p vis python tools/predict.py \ --config configs/panoptic_deeplab/panoptic_deeplab_resnet50_os32_cityscapes_1025x513_bs8_90k.yml \ --model_path model.pdparams \ --image_path demo.png \ --save_dir vis命令中四个关键参数的含义参数作用--config配置文件路径指定模型结构、数据集、后处理器等组件配置--model_path用于预测的模型权重路径动态图格式--image_path输入图像路径可以是一幅图像也可以是包含多幅图像的目录--save_dir预测结果保存目录需要说明的是上述命令使用的是动态图格式的模型进行推理。在部署阶段通常建议将模型转换为静态图格式以获得更高的推理效率详情参见 模型导出与部署 章节。从源码看tools/predict.py 内部通过Config加载配置文件、由make_default_builder统一构建模型与后处理器再调用paddlepanseg.core.predict完成推理--save_dir在源码中的默认值为./output/result。这意味着即使不显式指定--save_dir结果也会落到默认目录。2.3 观察可视化结果预测完成后对输入图像demo.pngvis目录下会生成三个可视化结果文件分别从语义、实例、全景三个角度呈现预测demo_sem.png语义分割视角用不同颜色表示不同的语义类别与常规语义分割可视化一致demo_ins.png实例分割视角用不同颜色表示不同的实例其中 stuff 类别如天空、道路等背景区域的所有像素被当作一个实例整体呈现demo_pan.png全景分割视角用不同的基准颜色表示不同的语义类别在此基础上为每个实例叠加颜色偏移以区分不同实例是语义与实例信息的融合视图。关于可视化结果的具体生成逻辑与pan_id编码协议可参考 编码协议文档 与 完整功能文档。三、模型训练3.1 准备数据集工具箱支持在公开数据集或自定义数据集上训练与评估公开数据集工具箱预置了自动化预处理脚本可对部分公开全景分割数据集生成 file list详见 tools/data/README.md。例如 Cityscapes 的 file list 生成脚本位于 create_cityscapes_file_lists.pyCOCO 的对应脚本位于 create_coco_file_lists.py自定义数据集需要手动编写 file list。file list 每行包含一对以空格分隔的路径第一条指向原始图像第二条指向全景分割标签。示例val2017/000000001000.jpg panoptic_val2017/000000001000.png val2017/000000001268.jpg panoptic_val2017/000000001268.png val2017/000000001296.jpg panoptic_val2017/000000001296.png ...全景分割标签必须编码为RGB 图像每个像素的 R、G、B 通道值按下式计算r id % 256 g id // 256 % 256 b id // (256 * 256) % 256其中id是能够唯一标识图像中一个实例或一个 stuff 区域的标识符。同时还需提供 JSON 格式的全景分割标注文件如 Cityscapes 的cityscapes_panoptic_train_trainId.json配置文件中的json_path即指向该文件。3.2 确认配置文件训练前需确认使用的配置文件。工具箱预置的所有配置均存放在 configs 目录下当前支持两类模型Panoptic-DeepLabpanoptic_deeplab_resnet50_os32_cityscapes_1025x513_bs8_90k.yml详见 模型说明Mask2Formermask2former_resnet50_os16_coco_1024x1024_bs4_370k.yml详见 模型说明。3.3 执行训练以 Panoptic-DeepLab 为例训练命令如下python tools/train.py \ --config configs/panoptic_deeplab/panoptic_deeplab_resnet50_os32_cityscapes_1025x513_bs8_90k.yml \ --do_eval \ --save_dir output其中--do_eval表示在训练过程中周期性评估模型精度--save_dir output指定训练结果模型权重等的保存目录。tools/train.py支持的完整命令行选项可通过python tools/train.py --help查看部分重要选项如下选项作用--config配置文件路径--save_dir训练检查点checkpoint保存路径--num_workers数据预加载使用的进程数量--do_eval训练过程中周期性执行模型验证--log_iters打印日志的间隔单位为迭代数--eval_sem验证阶段计算语义分割指标如 mIoU--eval_ins验证阶段计算实例分割指标如 mAP--debug启用调试模式程序异常终止时在异常位置自动添加 pdb 断点便于事后调试多卡并行训练指定 GPU 编号并使用paddle.distributed.launch启动# 指定要使用的 GPU 编号 export CUDA_VISIBLE_DEVICES0,1,2,3,4,5,6,7 python -m paddle.distributed.launch tools/train.py \ --config {配置文件路径}保存训练日志如需将日志落盘可采用如下组合以 Mask2Former 为例TAGmask2former python tools/train.py \ --config configs/mask2former/mask2former_resnet50_os16_coco_1024x1024_bs4_370k.yml \ --log_iters 50 \ --num_workers 4 \ --do_eval \ --eval_sem \ --eval_ins \ --save_dir output/${TAG} \ 21 \ | tee output/train_${TAG}.log3.4 模型前置条件说明请注意某些模型可能包含『前置条件』。例如Mask2Former 在训练、评估前可能需要编译外部 C/CUDA 算子——其可变形注意力模块的算子源码位于 paddlepanseg/models/ops/ms_deform_attn含.cc、.cu实现与 setup.py。请在对应config目录下的 README.md 中细节。四、评估模型精度指标4.1 评估命令训练过程中或训练完成后--save_dir指定目录默认为output下会存储模型权重等训练结果。其中output/best_model保存的是验证集上PQ 指标最高的模型权重可对其执行精度评估python tools/val.py \ --config configs/panoptic_deeplab/panoptic_deeplab_resnet50_os32_cityscapes_1025x513_bs8_90k.yml \ --model_path output/best_model/model.pdparams \ --eval_sem \ --eval_ins也可通过修改--model_path对其他模型权重进行精度评估python tools/val.py --help可查看完整选项列表。4.2 指标说明默认仅计算全景分割指标如PQPanoptic Quality全景质量出自 CVPR 2019 论文《Panoptic Segmentation》指定--eval_sem后额外计算语义分割指标如mIoU指定--eval_ins后额外计算实例分割指标如mAP。需要留意同时开启语义与实例指标评估会延长评估耗时。五、配置进阶后处理器与 Collect 算子5.1 配置文件基本规则工具箱采用模块化设计将数据集、模型、损失、优化器等定义为完全可配置的组件推荐通过 YAML 配置文件统一设置超参数。由于工具箱基于 PaddleSeg API 实现配置文件的基本编写规则与 PaddleSeg 一致锚点引用、组件type字段等语法可参考 PaddleSeg 配置文档。以 Panoptic-DeepLab 的配置文件为例其顶层包含train_dataset、val_dataset、model、optimizer、lr_scheduler、loss、postprocessor、runner、export等键并通过 YAML 锚点如num_classes 19在各组件间共享num_classes、ignore_index、label_divisor等关键值。5.2 后处理器postprocessor全景分割任务要求网络输出被转换为最终的全景分割结果包含图像中所有实例的 ID 与每个像素的语义类别这一转换由后处理器完成。可通过新增或修改配置文件中postprocessor键值对来配置示例postprocessor: type: MaskFormerPostprocessor num_classes: 19 object_mask_threshold: 0.8 overlap_threshold: 0.8 label_divisor: 1000 ignore_index: 255所有后处理器均支持配置num_classes、thing_ids、label_divisor和ignore_index四项通用参数。若某项未在配置文件中指定将首先尝试从val_dataset解析仍未找到则使用预设默认值。从源码看后处理器注册于paddlepanseg/postprocessors目录下基类 base_pp.py 定义通用接口panoptic_deeplab_pp.py 与 maskformer_pp.py 分别实现两种模型的后处理逻辑。以 PanopticDeepLabPostprocessor 为例其处理流程可概括为对语义分支输出做 softmax 得到sem_pred→ 通过阈值过滤与 NMSnms_kernel、top_k从 center heatmap 中提取实例中心 → 结合偏移量offset将像素分组归属到各实例中心 → 通过多数投票将 thing 区域粘贴为实例 ID、将面积不小于stuff_area的 stuff 区域填充为语义类别最终得到全景图。配置文件 panoptic_deeplab 配置 中对应的后处理参数为postprocessor: type: PanopticDeepLabPostprocessor num_classes: *num_classes label_divisor: *label_divisor stuff_area: 2048 threshold: 0.1 nms_kernel: 7 top_k: 200 ignore_index: *ignore_index5.3 Collect 算子与 PaddleSeg 不同本工具箱的所有数据变换transforms配置均需以Collect算子结尾。这是因为其数据预处理基于InfoDict机制详见 开发指南Collect算子负责从InfoDict对象中提取后续流程需要的键值对。训练阶段一般提取img预处理后的模型输入、label预处理后的参考标签、img_path、lab_path、img_h、img_w评估阶段一般提取img、label、ann从 JSON 标注解析的标注信息、image_id、gt_fields标记哪些项为参考标签、trans_info用于恢复图像尺寸的张量形状元信息、img_path、lab_path、pan_label、sem_label、ins_label。不同模型还会追加模型专属的键Panoptic-DeepLab 的训练变换中还需收集center、offset、sem_seg_weights、center_weights、offset_weights由GeneratePanopticDeepLabTrainTargets生成Mask2Former 的训练变换则收集gt_ids、gt_masks由GenerateMaskFormerTrainTargets生成并需要在train_dataset中通过no_collation_keys声明这两个键不参与默认批量化拼接。六、模型部署6.1 导出静态图模型为获得更高的推理效率部署阶段推荐将模型转换为静态图格式python tools/export.py \ --config {配置文件路径} \ --model_path {模型路径} \ --save_dir {导出模型保存路径} \ --input_shape {输入张量形状}请注意部分全景分割模型目前尚不支持导出为静态图格式请参考configs中的相关文档确认模型是否支持导出。导出时使用的预处理变换由配置文件的export.transforms字段定义如 Panoptic-DeepLab 配置中的Resize→Normalize→Collect。6.2 使用 Paddle-Inference API 预测导出完成后基于 Paddle-Inference API 执行预测python deploy/python/infer.py \ --config {部署配置文件路径} \ --image_path {单幅图像路径或包含图像的目录}其中{部署配置文件路径}是导出模型目录中deploy.yaml文件的路径推理脚本实现位于 deploy/python/infer.py。输出的预测结果是 RGB 图像各通道像素值按如下公式编码r pan_id % 256 g pan_id // 256 % 256 b pan_id // (256 * 256) % 256其中pan_id由后处理器计算得到唯一标识图像中的一个实例或 stuff 区域详细说明参见 编码协议文档。七、相关文档与源码导航如需继续深入建议按序阅读以下仓库内文档与源码完整功能文档安装、数据准备、配置编写、训练、部署的完整说明开发指南InfoDict、组件注册机制等内部设计原理编码协议文档pan_id与 RGB 标签编码协议预测入口 tools/predict.py、训练入口 tools/train.py、评估入口 tools/val.py、导出入口 tools/export.py后处理器实现 paddlepanseg/postprocessors、模型实现 paddlepanseg/models、评估器 paddlepanseg/utils/evaluation。至此你已经掌握了基于 PaddleSeg 的全景分割工具箱从安装、预测、训练、评估到部署的完整流程。无论是快速体验预训练模型的三视角可视化效果还是在自定义数据集上从零训练 Mask2Former 或 Panoptic-DeepLab均可参照本文逐步落地。赞分享人工智能计算机视觉预训练【免费下载链接】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 的全景分割工具箱实战Mask2Former 与 Panoptic-DeepLab 的训练、评估与部署基于 PaddleSeg 的全景分割工具箱实战Mask2Former 与 Panoptic DeepLab 的训练、评估与部署 全景分割Panoptic S人工智能计算机视觉预训练PaddleSeg 全景分割工具包PanopticSeg实战指南Mask2Former 与 Panoptic-DeepLab 的训练、评估与部署PaddleSeg 全景分割工具包PanopticSeg实战指南Mask2Former 与 Panoptic DeepLab 的训练、评估与部署 Pano人工智能计算机视觉预训练TensorFlow models 仓库全景分割实战COCO 上 Panoptic FPN 与 Panoptic-DeepLab 的训练、评测与预训练模型TensorFlow models 仓库全景分割实战COCO 上 Panoptic FPN 与 Panoptic DeepLab 的训练、评测与预训练模型 本人工智能深度学习计算机视觉NLP语音上一篇Vulkan错误处理与调试技巧Validation Layer实战与常见问题解决方案下一篇Cthulhu.jl高级技巧ascend功能揭秘追踪函数调用源头创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

微信QQ域名检测接口源码解析:基于官方API实现风险状态监控

微信QQ域名检测接口源码解析:基于官方API实现风险状态监控

简介:微信QQ域名检测接口源码包专为需要接入微信、QQ官方域名验证能力的开发者与企业准备,解决登录、分享、消息传递等场景中域名真实性校验与安全合规问题。资源共956个文件,压缩包整体约3.62MB,内容结构以JS源码、Markdown说明文…

2026/9/25 2:03:51 阅读更多 →
VS Code 2026 配置指南:用 TaoToken 统一 Key 打通 Cline 与 CC Switch

VS Code 2026 配置指南:用 TaoToken 统一 Key 打通 Cline 与 CC Switch

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 2:02:51 阅读更多 →
三菱FX5U以太网通信实战:MC协议与SLMP帧解析

三菱FX5U以太网通信实战:MC协议与SLMP帧解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 2:02:51 阅读更多 →

最新新闻

node-sass 内置 libsass 构建指南:通过 autotools 构建并安装系统级共享库

node-sass 内置 libsass 构建指南:通过 autotools 构建并安装系统级共享库

前端构建工具 【免费下载链接】node-sass :rainbow: Node.js bindings to libsass 项目地址: https://gitcode.com/gh_mirrors/no/node-sass 点击查看 免费下载 本文基于 node-sass 仓库内置的 libsass 文档 build-shared-library.md 展开,讲解如何把 n…

2026/9/25 5:17:05 阅读更多 →
EMQX 停止缓存订阅(Subscribe)ACL 授权检查结果:原理、实现与调优指南

EMQX 停止缓存订阅(Subscribe)ACL 授权检查结果:原理、实现与调优指南

后端物联网消息队列通信 【免费下载链接】emqx The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles 项目地址: https://gitcode.com/gh_mirrors/em/emqx 点击查看 免费下载 导读 本文围绕 EMQX 5.x 中一项针对授权&#xff08…

2026/9/25 5:17:05 阅读更多 →
统一身份认证系统落地实战:分级认证、单点登录与数据同步避坑指南

统一身份认证系统落地实战:分级认证、单点登录与数据同步避坑指南

简介:这份《统一身份认证系统技术方案》PDF面向系统架构师、后端开发与信息安全从业者,聚焦统一认证与授权管理平台的落地设计,可用于智慧海事等政企项目的方案参考与技术选型。资源为单个PDF文件,压缩包约2.74MB,内容…

2026/9/25 5:17:05 阅读更多 →
GORM PostgreSQL 驱动实战指南:从 DSN 连接到源码级配置解析

GORM PostgreSQL 驱动实战指南:从 DSN 连接到源码级配置解析

网络安全 【免费下载链接】sliver Adversary Emulation Framework 项目地址: https://gitcode.com/gh_mirrors/sl/sliver 点击查看 免费下载 本篇技术指南以 GORM 官方 PostgreSQL 驱动(gorm.io/driver/postgres)为核心,系统讲解…

2026/9/25 5:17:05 阅读更多 →
EasyXMen诊断模块Dcm深度剖析:UDS服务从报文接收到响应发送的全过程

EasyXMen诊断模块Dcm深度剖析:UDS服务从报文接收到响应发送的全过程

EasyXMen诊断模块Dcm深度剖析:UDS服务从报文接收到响应发送的全过程 【免费下载链接】开源小满EasyXMen代码仓库 持续18年精心打造的安全车控操作系统BSW代码。 项目地址: https://gitcode.com/easyxmen/XMen 🔍 EasyXMen(开源小满&am…

2026/9/25 5:17:04 阅读更多 →
FP16 到 INT4 混合精度量化迁移:分阶段切换与回退的 config.toml 骨架

FP16 到 INT4 混合精度量化迁移:分阶段切换与回退的 config.toml 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 5:16:04 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →