PaddleSeg 中的 ANN 非局部语义分割模型:架构原理、配置解析与 Cityscapes/Pascal VOC 实战
人工智能计算机视觉预训练【免费下载链接】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 仓库中 ANNAsymmetric Non-local Neural Networks for Semantic Segmentation模型的官方文档与实现为核心系统讲解该模型的算法动机AFNB/APNB 两大核心模块、PaddleSeg 源码级实现细节、四份官方训练配置的逐项参数含义以及从训练到推理导出的完整实战流程帮助读者在 PaddleSeg 中快速复现并二次开发 ANN 语义分割模型。一、背景为什么需要非对称非局部网络传统 CNN 语义分割模型受限于感受野难以建模长距离依赖关系。Non-local 网络通过计算特征图上任意两个位置之间的相似度自注意力来捕获全局上下文但直接在完整分辨率特征图上计算会带来 $O(N^2)$ 量级的矩阵乘法开销显存与算力代价极高。针对这一问题Zhu Zhen 等人于 ICCV 2019 提出了Asymmetric Non-local Neural NetworksANN核心思路是在金字塔池化后的紧凑特征上做非局部建模把注意力计算从原始像素级空间转移到降采样后的少量代表性位置上从而大幅降低计算量而不损失精度。PaddleSeg 在 paddleseg/models/ann.py 中给出了完整实现并提供了 Cityscapes 与 Pascal VOC 12Aug 两大数据集上的官方配置与预训练权重。二、整体架构AFNB 与 APNB 两大核心模块从源码结构看PaddleSeg 的 ANN 实现由ANN网络主体、ANNHead分割头、AFNB、APNB以及两类SelfAttentionBlock组成层次清晰可直接对照论文复现。2.1 网络主体 ANNANN 类 的职责非常简洁挂载主干网络当前支持 ResNet50/101将主干输出交给ANNHead得到多尺度 logit再统一双线性插值回输入分辨率class ANN(nn.Layer): def __init__(self, num_classes, backbone, backbone_indices(2, 3), key_value_channels256, inter_channels512, psp_size(1, 3, 6, 8), enable_auxiliary_lossTrue, align_cornersFalse, pretrainedNone): ... self.head ANNHead(num_classes, backbone_indices, backbone_channels, key_value_channels, inter_channels, psp_size, enable_auxiliary_loss) def forward(self, x): feat_list self.backbone(x) logit_list self.head(feat_list) return [F.interpolate(logit, x.shape[2:], modebilinear, align_cornersself.align_corners) for logit in logit_list]backbone_indices默认取(2, 3)即主干网络的第 3、4 个 stage 输出前者作为低层特征low-level后者作为高层特征high-level。网络最终返回一个 logit 列表——主分支 logit 之外若开启辅助损失还会附带一个辅助 logit详见 2.3。2.2 ANNHead融合、上下文与分类ANNHead 是模型的核心组装逻辑依次完成三件事AFNB 特征融合用AFNB把低层特征与高层特征做非局部融合self.fusionAPNB 上下文增强融合结果先经过一层ConvBNReLU(3x3)降维到inter_channels再送入APNB提取非局部上下文self.context分类与辅助分支cls为 1x1 卷积输出num_classes通道的 logitauxlayer为辅助分割层输入低层特征输出辅助 logit 用于辅助损失。其中辅助分支使用 PaddleSeg 通用组件 AuxLayer先ConvBNReLU(3x3)压缩到inter_channels low_in_channels // 2接 Dropout 后再用 1x1 卷积输出类别数实现轻量、低开销的辅助监督。2.3 AFNB 与 APNB 的注意力计算细节AFNBAsymmetric Fusion Non-local Block与APNBAsymmetric Pyramid Non-local Block在 ann.py 中实现两者共享同一套自注意力逻辑SelfAttentionBlock_AFNB与SelfAttentionBlock_APNB区别只在于输入来源AFNB 的 query 来自高层特征、key/value 来自低层特征APNB 的 query/key/value 全部来自同一份输入。关键点在_pp_moduleann.py——它以F.adaptive_avg_pool2d把特征分别池化到psp_size指定的多个尺寸默认(1, 3, 6, 8)再展平拼接成紧凑的金字塔先验。这样 key/value 的空间尺寸从 $H \times W$ 缩减为 $\sum psp_size^2 193664 110$ 个代表点注意力相似度矩阵的规模随之骤减正是非对称名称的由来。单个自注意力块SelfAttentionBlock_AFNB的计算流程为f_value将低层特征映射到value_channels经_pp_module金字塔池化后转置为(B, S, C)f_query将高层特征映射到key_channels并展平为(B, HW, C)f_key将低层特征映射到key_channels同样金字塔池化计算相似度图sim_map query × key按key_channels ** -0.5缩放后做 softmaxsim_map × value得到上下文reshape 回空间维度后经W1x1 卷积输出。整个流程与标准 non-local 完全一致只是 key/value 的空间维度被金字塔池化大幅压缩这也是 ANN 能同时获得全局建模能力与低计算量的根本原因。AFNB/APNB外层还会将注意力输出与原输入 concat 后经 1x1 卷积融合conv_bn并施加dropout_prob0.05的 Dropout 增强泛化。三、官方配置逐项解析PaddleSeg 为 ANN 提供了 4 份开箱即用的训练配置位于 configs/ann分别覆盖两种主干ResNet50_vd / ResNet101_vd在两类主干输出步长output_stride8与两大数据集Cityscapes、Pascal VOC 12Aug上的组合配置文件主干数据集输入分辨率训练轮数itersann_resnet50_os8_cityscapes_1024x512_80k.ymlResNet50_vdCityscapes1024x51280000ann_resnet101_os8_cityscapes_1024x512_80k.ymlResNet101_vdCityscapes1024x51280000ann_resnet50_os8_voc12aug_512x512_40k.ymlResNet50_vdPascal VOC 12Aug512x51240000ann_resnet101_os8_voc12aug_512x512_40k.ymlResNet101_vdPascal VOC 12Aug512x512400003.1 Cityscapes 配置以 ResNet50 为例以 ann_resnet50_os8_cityscapes_1024x512_80k.yml 为例完整配置如下_base_: ../_base_/cityscapes.yml batch_size: 2 iters: 80000 lr_scheduler: type: PolynomialDecay learning_rate: 0.01 power: 0.9 end_lr: 1.0e-5 loss: types: - type: CrossEntropyLoss coef: [1, 0.4] model: type: ANN backbone: type: ResNet50_vd output_stride: 8 pretrained: https://bj.bcebos.com/paddleseg/dygraph/resnet50_vd_ssld_v2.tar.gz backbone_indices: [2, 3] key_value_channels: 256 inter_channels: 512 psp_size: [1, 3, 6, 8] enable_auxiliary_loss: True align_corners: False pretrained: null该文件通过_base_继承 configs/base/cityscapes.yml后者提供了数据集Cityscapesdataset_root: data/cityscapes、数据增强流水线ResizeStepScaling0.5~2.0 倍随机缩放、RandomPaddingCrop裁剪 1024x512、随机水平翻转、RandomDistort亮度/对比度/饱和度扰动、Normalize归一化以及优化器SGDmomentum0.9weight_decay4.0e-5。ANN 配置只做针对性覆盖二者合并后即为完整训练配置。各关键参数含义如下batch_size: 2/iters: 80000单卡批量大小与总迭代数。Cityscapes 分辨率较大1024x512配合注意力模块的显存占用官方取 batch_size2lr_schedulerPolynomialDecay多项式衰减初始学习率 0.01、power0.9、最终学习率end_lr: 1.0e-5VOC 基础配置中 end_lr 为 0loss主分支与辅助分支均使用CrossEntropyLoss系数coef: [1, 0.4]表示辅助损失权重为 0.4与enable_auxiliary_loss: True一一对应backboneResNet50_vd且output_stride: 8即通过 dilation 策略将主干输出步长控制为 8保留较高分辨率特征pretrained为官方 SSLD 预训练权重地址backbone_indices: [2, 3]取主干第 3、4 stage 输出分别作为低层/高层特征key_value_channels: 256AFNB 与 APNB 中自注意力 key/value 的通道数对应源码中key_channels/value_channelsinter_channels: 512APNB 模块的输入输出通道数即SelfAttentionBlock_APNB的out_channelspsp_size: [1, 3, 6, 8]金字塔池化的输出尺寸列表决定注意力计算的代表点数量align_corners: FalseF.interpolate的对齐参数。源码注释明确指出特征尺寸为偶数如 1024x512时应为False奇数尺寸如 769x769时应为True。3.2 配置继承链101 主干与 VOC 数据集的复用ResNet101 与 VOC 配置充分体现了 PaddleSeg 的配置复用设计ann_resnet101_os8_cityscapes_1024x512_80k.yml 仅两行——继承 ResNet50 的 Cityscapes 配置仅将主干替换为ResNet101_vd并更换对应 SSLD 预训练权重其余超参数完全保持一致ann_resnet50_os8_voc12aug_512x512_40k.yml 继承 configs/base/pascal_voc12aug.yml后者又继承 pascal_voc12.yml通过mode: trainaug启用 VOC 增强训练集trainvalVOC 场景下 batch_size4、输入 512x512、iters40000ann_resnet101_os8_voc12aug_512x512_40k.yml 同样只替换主干。这种基础配置 增量覆盖的层级结构_base_可层层嵌套是 PaddleSeg 所有模型配置的通用组织方式非常适合实验时快速切换主干、调整分辨率与训练轮数。四、官方基准性能下表为 PaddleSeg 官方在 ANN 配置上复现的评测结果评估指标为 mIoUflip 表示水平翻转测试增强msflip 表示多尺度 翻转测试增强原始数据与模型/日志/VisualDL 链接见 configs/ann/README.md4.1 CityscapesModelBackboneResolutionTraining ItersmIoUmIoU (flip)mIoU (msflip)ANNResNet50_OS81024x5128000079.09%79.31%79.90%ANNResNet101_OS81024x5128000080.61%80.98%81.50%4.2 Pascal VOC 2012 AugModelBackboneResolutionTraining ItersmIoUmIoU (flip)mIoU (msflip)ANNResNet50_OS8512x5124000080.82%81.10%81.67%ANNResNet101_OS8512x5124000079.62%79.84%80.33%从表中可以观察到两个有参考价值的现象其一无论数据集与主干如何组合多尺度 翻转测试增强都能稳定带来约 0.7~1 个百分点的 mIoU 提升说明 ANN 的全局上下文建模对输入尺度变化较为敏感其二在 VOC 12Aug 上 ResNet50 反而小幅超过 ResNet10180.82% vs 79.62%这与数据集规模、增强策略及训练轮数均为 40000 iters相关也提示在数据量有限的小数据集上过大的主干未必是最优选择。五、实战训练、验证、预测与导出PaddleSeg 的训练、验证、预测与导出入口统一位于 tools 目录ANN 配置可直接套用。5.1 训练python tools/train.py \ --config configs/ann/ann_resnet50_os8_cityscapes_1024x512_80k.yml \ --do_eval \ --use_vdl \ --save_interval 500 \ --save_dir output/ann_resnet50_cityscapes常用参数说明--do_eval在训练过程中周期评估验证集--use_vdl开启 VisualDL 日志记录--save_interval控制模型保存频率--save_dir指定输出目录。训练前需按 configs/base/cityscapes.yml 中dataset_root: data/cityscapes的要求准备数据目录结构。5.2 验证python tools/val.py \ --config configs/ann/ann_resnet50_os8_cityscapes_1024x512_80k.yml \ --model_path output/ann_resnet50_cityscapes/best_model/model.pdparams验证时使用与训练一致的评价配置并支持--aug_eval与--flip开启多尺度/翻转测试增强对应上文的 mIoU (flip) 与 mIoU (msflip) 指标。5.3 单图预测python tools/predict.py \ --config configs/ann/ann_resnet50_os8_cityscapes_1024x512_80k.yml \ --model_path output/ann_resnet50_cityscapes/best_model/model.pdparams \ --image_path demo.png \ --save_dir output/result5.4 模型导出与部署python tools/export.py \ --config configs/ann/ann_resnet50_os8_cityscapes_1024x512_80k.yml \ --model_path output/ann_resnet50_cityscapes/best_model/model.pdparams \ --save_dir output/export导出产物为静态图推理模型可进一步配合 deploy 目录下的 Python、C、FastDeploy 等部署方案使用。六、总结与扩展建议ANN 在 PaddleSeg 中的落地具备完整的论文 → 源码 → 配置 → 权重 → 基准闭环源码层面paddleseg/models/ann.py 以 AFNB/APNB 两大模块精准复现论文的非对称金字塔注意力机制配置层面configs/ann 的 4 份 YAML 通过_base_继承机制覆盖了两大主流数据集与两种主干基准层面官方给出了可复现的 mIoU 数据供对照。若希望基于 ANN 做二次开发可以关注以下几个切入点调整psp_size改变注意力代表点数量以权衡精度与速度修改key_value_channels/inter_channels控制模块容量切换backbone_indices改变低层/高层特征的选取层级在 configs/base的数据增强流水线上叠加自定义 transform 以适配新数据集。这些都是不改动模型代码即可完成的实验变量非常适合作为理解非局部 金字塔池化这一经典组合的入门与进阶实验。赞分享人工智能计算机视觉预训练【免费下载链接】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 中的 FCN HRNetCityscapes 与 Pascal VOC 语义分割配置全解析PaddleSeg 中的 FCN HRNetCityscapes 与 Pascal VOC 语义分割配置全解析 导读 本文围绕 PaddleSeg 仓库中人工智能计算机视觉预训练PaddleSeg 中的 DNLNetDisentangled Non-Local Networks解耦非局部注意力语义分割模型原理、配置与实战指南PaddleSeg 中的 DNLNetDisentangled Non Local Networks解耦非局部注意力语义分割模型原理、配置与实战指南 导读人工智能计算机视觉预训练PaddleSeg 中 BiSeNetV1 实时语义分割实战网络架构、Cityscapes 训练配置与源码解析PaddleSeg 中 BiSeNetV1 实时语义分割实战网络架构、Cityscapes 训练配置与源码解析 BiSeNetV1Bilateral Seg人工智能计算机视觉预训练上一篇BilibiliDown免费开源B站视频下载终极解决方案下一篇Enterprise Commerce 数据分析接入Vercel Analytics 与 Google Analytics 自由切换指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Patroni YAML 配置完全指南:从全局参数到 PostgreSQL 高可用集群的每一项配置详解

Patroni YAML 配置完全指南:从全局参数到 PostgreSQL 高可用集群的每一项配置详解

数据库高可用集群管理运维后端 【免费下载链接】patroni A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes 项目地址: https://gitcode.com/gh_mirrors/pa/patroni 点击查看 免费下载 本文以 Patroni 官方 YAML 配置文档…

2026/9/25 8:27:43 阅读更多 →
猫抓资源嗅探扩展:5 分钟免费捕获网页视频与 M3U8 流媒体

猫抓资源嗅探扩展:5 分钟免费捕获网页视频与 M3U8 流媒体

猫抓资源嗅探扩展:5 分钟免费捕获网页视频与 M3U8 流媒体 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 打开一个视频页面&#xff0c…

2026/9/25 8:27:43 阅读更多 →
Kubernetes Agent编排实战:Orchestrator与Workspace设计

Kubernetes Agent编排实战:Orchestrator与Workspace设计

1. 从“ax”这个标题说起:一个被低估的Agent编排切口第一次看到“ax”这个标题,加上后面跟着的 agent、orchestrator、kubernetes、workspace 这几个词,我脑子里第一反应是:这大概率是一个把 AI Agent 跑在 Kubernetes 上的编排层…

2026/9/25 8:27:43 阅读更多 →

最新新闻

PCB功率电感底部铺铜还是挖空?EMI与热设计的工程平衡法则

PCB功率电感底部铺铜还是挖空?EMI与热设计的工程平衡法则

/* 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 9:42:43 阅读更多 →
BACKDOOR2025 CTF题解:PNG隐写、RSA低指数、SQL注入与栈溢出

BACKDOOR2025 CTF题解:PNG隐写、RSA低指数、SQL注入与栈溢出

1. 先说说我为什么只写了这几道题BACKDOOR2025 是某安全社区在年初办的线上CTF,题目难度整体不算变态,但分类很全,MISC、Crypto、Web、Reverse、PWN 都上了。比赛时长 48 小时,周日晚上结束,周一我还要上班&#xff0c…

2026/9/25 9:42:43 阅读更多 →
API网关统一Token接入:OpenClaw、Claude Code与n8n部署实践

API网关统一Token接入:OpenClaw、Claude Code与n8n部署实践

先说结论:这类“网关给 OpenClaw、Claude、n8n 提供无限免费 token”的说法,本质是把多个合规 token 来源聚合到一个统一 API 入口,再由网关做路由、配额和密钥管理。它不会凭空生成 token,更不能绕过服务商的计费体系&#xff1b…

2026/9/25 9:42:42 阅读更多 →
OFDM频谱感知实战:10节点协作+循环平稳检测+历史谱图可视化

OFDM频谱感知实战:10节点协作+循环平稳检测+历史谱图可视化

简介:本资源是一套面向通信工程专业高年级本科生及无线认知网络研究者的OFDM信号协作频谱感知MATLAB仿真方案,聚焦于解决单节点在阴影与深度衰落场景下检测不可靠的问题,通过融合多节点感知结果提升频谱判断准确性。压缩包共6个文件&#xff…

2026/9/25 9:41:42 阅读更多 →
2026年AI大模型应用盘点:从通用对话到Coding Agent的15家主流工具实测

2026年AI大模型应用盘点:从通用对话到Coding Agent的15家主流工具实测

/* 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 9:41:42 阅读更多 →
计算机网络简答题与论述题核心考点梳理:从TCP/IP到子网划分

计算机网络简答题与论述题核心考点梳理:从TCP/IP到子网划分

简介:计算机网络课程的简答题与论述题常考内容,集中整理进一份Word文档,面向高校学生、考研备考生及求职面试者备考使用。文档系统梳理了电路交换、分组交换与报文交换的优缺点,分组传输中传输、传播、排队等延迟的影响因素&#…

2026/9/25 9:41:42 阅读更多 →

日新闻

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 阅读更多 →