ESC
输入关键词搜索文章
目录

YOSO

arXiv 2023 · 厦门大学
一次分割即得全景:动态卷积统一 things/stuff,CFA + SDCA 两招把全景分割推到实时

论文信息

一句话读懂:全景分割(panoptic segmentation)要给图里每个像素同时打上语义类别和实例身份,传统做法是 semantic 与 instance 两条重分支各跑一遍——又慢又重。YOSO #Hu et al., 2023 把它收敛成一次动态卷积:一组 panoptic kernel 与一张图像特征图做卷积,you only segment once,things 和 stuff 同时出来。要做到实时,作者靠两招——CFA(卷积优先聚合,用双线性插值的齐次性 + 可加性数学证明它和插值优先的 IFA 完全等价,于是训练用 IFA、推理重参数化成 CFA,免重训白拿 2.6× GPU 提速)和 SDCA(把多头交叉注意力用 depthwise + pointwise 可分离动态卷积实现,+1.0 PQ、~1.2× 提速)。COCO 46.4 PQ@45.6 FPS、Cityscapes 52.5 PQ@22.6 FPS、ADE20K 38.0 PQ@35.4 FPS、Mapillary Vistas 34.1 PQ@7.1 FPS。一个诚实的限定:YOSO 不是新范式,而是 K-Net / MaskFormer 统一 kernel × feature map 范式的工程高效化变体;而且 SDCA 在 GPU 实测延迟上反而比它要替代的 DCA 慢——"实时"主要来自 CFA + 小尺度,SDCA 的贡献更多在精度而非速度。
YOSO 与四类全景分割 pipeline 对比 Overview
图 1:通往实时全景分割的四条路线。(a) 双分支(semantic + instance 各一套,如 UPSNet);(b) semantic-first 再用 box/point 定位 instance(如 PanopticDeepLab / LPSNet);(c) 用动态卷积为 things + stuff 同时预测掩码(如 PanopticFCN / K-Net / MaskFormer);(d) YOSO:高效的 feature pyramid aggregator + 轻量 separable dynamic decoder 一次出图。图中省略输入图像与 backbone(来源:Hu et al., 2023, Fig.1)。
Part 1 · 引言
实时全景分割的两难:要么准而慢,要么快而泛化差

全景分割是 Kirillov 等人 #Kirillov et al., 2019 在 2019 年正式定义的任务:给输入图像的每个像素同时分配一个语义类别和一个实例身份。语义标签天然分两类——stuff 是摊开的、数不清的背景概念(天空、道路),things 是可数的物体(人、车)。这种划分自然把全景分割拆成两个子任务:stuff 走语义分割、things 走实例分割。#Hu et al., 2023 任务的难度也由此而来:要让一个网络同时把"数不清的背景"和"数得清的物体"都切对,传统做法是 semantic 与 instance 两条分支各跑一遍——两条分支都得重,于是实时就无望。

作者把这条赛道上的努力整理成图 1 的四象限:(a) 双分支(PanopticFPN/UPSNet #Xiong et al., 2019 这类,semantic head + Mask R-CNN #He et al., 2017 风格 instance head 并存);(b) 先给所有类别生成 semantic mask,再用 box/point 定位 instance(PanopticDeepLab #Cheng et al., 2020、LPSNet #Hong et al., 2021、RealTimePan #Hou et al., 2020);(c) 用动态卷积为 things + stuff 同时预测掩码(PanopticFCN #Li et al., 2021、K-Net #Zhang et al., 2021、MaskFormer #Cheng et al., 2021);(d) YOSO 自己。#Hu et al., 2023

这条路上有个长期未解的两难——也正是 YOSO 要打的靶子:一方面,要精度就得用重的 neck 和 head(多尺度 FPN、Transformer decoder,如 K-Net / MaskFormer #Zhang et al., 2021 #Cheng et al., 2021),于是实时做不到;另一方面,把模型做小(FPSNet #De et al., 2020、LPSNet #Hong et al., 2021、RealTimePan #Hou et al., 2020)能跑快,但泛化会掉。#Hu et al., 2023 准而慢快而泛化差,是实时全景分割长期被卡住的二元困局。YOSO 的回答是:不必在范式上另起炉灶,而是在 (c) 路线(统一 kernel × feature map)上把每个模块都做工程级的提速——一次分割拿全景,且实时。

作者是厦门大学 Rongrong Ji / 刘娟娟团队(多媒体可信感知与高效计算教育部重点实验室),这条"高效视觉模型"线与他们对车载、嵌入式感知的兴趣一致。#Hu et al., 2023

核心 Insight 预告:YOSO 的两个提速点都不是"换更猛的算子",而是证明两件事数学等价后换更快的实现——CFA 证明"插值优先"与"卷积优先"等价,SDCA 证明多头交叉注意力可被可分离动态卷积等价实现。先把等价性钉死,再把推理换成快的那个版本,这是本文最值得带走的方法论。
Part 2 · 问题剖析
两件事卡住了实时:(c) 路线哪里重,PQ 又在量什么

先说清评测量什么,才能理解"实时"的代价。全景分割的标准指标是 PQ(Panoptic Quality) #Kirillov et al., 2019,对每个类别把预测掩码与真值做 IoU 匹配后

$$\mathrm{PQ} = \frac{\sum_{(p,g)\in TP} \mathrm{IoU}(p,g)}{\mathrm{|TP|} + \tfrac{1}{2}\mathrm{|FP|} + \tfrac{1}{2}\mathrm{|FN|}} = \frac{\Sigma\,\mathrm{TP}}{\Sigma\,\mathrm{TP} + \Sigma\,\mathrm{FP} + \Sigma\,\mathrm{FN}}$$

它把分割质量(分子,匹配对的 IoU 之和)与检测召回(分母,漏检 FP/FN 都罚)合在一个数里,stuff 和 things 分开报 PQs / PQt#Kirillov et al., 2019 所以"46.4 PQ"是分割精度与召回的复合分数,不是单纯 mIoU 或 AP。

明确了指标,再看 (c) 路线为什么重。K-Net / MaskFormer 这类统一 kernel 范式 #Zhang et al., 2021 #Cheng et al., 2021 把全景分割建模成一组 panoptic kernel 与一张特征图做动态卷积:每个 kernel 负责一个潜在实例或 stuff 类别,kernel × feature 出一张掩码,一次前向就把 things + stuff 都生成。范式本身很优雅——免 NMS、免两套分支。但它把两处算力开销留了下来:① 特征提取端需要重的多尺度 FPN 把 backbone 各层特征聚成高分辨率特征图,插值-first 的聚合方式在 GPU 上又慢又费 FLOPs;② kernel 生成端需要多头交叉注意力(MHCA)让 kernel 与特征交互,标准 MHCA 复杂度随 query 数和特征维度二次膨胀。#Hu et al., 2023

作者没有否定 (c) 范式,而是指出它的两个模块都"太重",可以分别替换。突破口是两条等价性:插值-first 聚合与卷积-first 聚合数学上等价,多头交叉注意力可被可分离动态卷积等价实现。一旦等价,训练维持原样、推理换快版本即可——这正是 Part 3 两个核心模块的来路。

路线代表方法things + stuff 怎么出实时性
(a) 双分支UPSNetsemantic head + Mask R-CNN instance head 各一套
(b) semantic-firstPanopticDeepLab / LPSNet / RealTimePan先出全部 semantic mask,再用 box/point 定位 instance较快但泛化弱
(c) 统一 kernelPanopticFCN / K-Net / MaskFormer / Mask2Former动态卷积为 things + stuff 同时出掩码,一次前向准但重
(d) YOSO本文(c) 范式 + CFA 提速特征端 + SDCA 提速 kernel 端实时 + 竞争精度
表 1:四条全景分割路线对照(据 Hu et al., 2023, Fig.1 与 Related Work 整理)。
Part 3 · 模型结构与创新
backbone → aggregator → decoder → 一次动态卷积出全景

3.1 整体 pipeline:从图像到一张张掩码的全链路

YOSO 的前向是一条单阶段链路 #Hu et al., 2023:ResNet-50 主干(ImageNet 预训练)抽多尺度特征 → Feature Pyramid Aggregator(含 CFA)把各层聚成一张高分辨率图像特征图 → Separable Dynamic Decoder(含 SDCA)生成一组 panoptic kernel → kernel 与特征图做2D 动态卷积一次出全部掩码 → 分类头给每个 kernel 一个类别 → 后处理把 stuff 合并、things 独立。整条路无 NMS、无两套分支,you only segment once

这里有个建模关键:全景分割被写成端到端集合预测,输出 $\boldsymbol{M}\in\mathbb{B}^{n\times h\times w}$$n$ 个二值掩码)+ $\boldsymbol{L}\in\mathbb{R}^{n\times l}$(每个掩码在 $l$ 个类别上的 logits),遵循 DETR #Carion et al., 2020 的二分匹配训练、免 NMS。$n=100$ 个 proposal kernel 构成集合上界。#Hu et al., 2023 Part 3.2 与 3.3 分别在特征端和 kernel 端各做一次"等价换快"。

graph TD
    IMG["输入图像"] --> BB["ResNet-50 backbone (ImageNet 预训练)"]
    BB --> AGG["Feature Pyramid Aggregator (CFA)
多尺度特征 → 单张高分辨率特征图"] AGG --> FEAT["图像特征图"] BB --> DEC["Separable Dynamic Decoder (SDCA)
生成 n=100 个 panoptic kernel"] DEC --> KER["panoptic kernels"] FEAT --> DC["2D 动态卷积 (kernel × feature)"] KER --> DC DC --> MASK["n 张掩码 M"] MASK --> CLS["分类头 → 类别 L"] CLS --> POST["后处理: stuff 并集 / things 独立 / 重叠取 max"] POST --> OUT["全景分割输出"]

3.2 CFA:把"插值优先"重参数化成"卷积优先"

Feature Pyramid Aggregator 与 CFA 模块结构
图 2:Feature Pyramid Aggregator。多级特征先用 1×1 卷积压缩通道,再聚合;CFA 把"先双线性插值上采样、再 1×1 卷积"的 IFA 换成"先 1×1 卷积、再双线性插值",二者数学等价但卷积优先在 GPU 上显著更快(来源:Hu et al., 2023, Fig.2)。

动机:聚合器要把 backbone 的 $c_2,c_3,c_4,c_5$ 多级特征融合成一张高分辨率特征图。标准做法是 Interpolation-First Aggregation (IFA):先把低分辨率特征双线性插值上采样到统一分辨率,再做 1×1 卷积(无 bias)融合通道。问题在于高分辨率上做卷积,FLOPs 和 GPU 延迟都大。#Hu et al., 2023

直觉:双线性插值是个线性算子,1×1 卷积也是线性算子,两个线性算子的顺序理论上可交换。如果把卷积挪到插值之前——在低分辨率上先卷积、再插值上采样——卷积就在小张量上做,FLOPs 大幅下降,而结果不变。这就是 Convolution-First Aggregation (CFA)

机制(等价性证明):作者用双线性插值的两个性质给出证明。双线性插值对输入具有齐次性可加性(任何线性算子都满足),这意味着它是一个线性算子。设双线性插值算子为 $\mathcal{U}(\cdot)$、1×1 卷积(无 bias)为 $\mathcal{W}(\cdot)=W\cdot$,则

$$\mathcal{U}\bigl(\mathcal{W}(x)\bigr) = \mathcal{W}\bigl(\mathcal{U}(x)\bigr) \tag{1}$$

即"先卷积后插值"与"先插值后卷积"完全等价。#Hu et al., 2023 但二者的 FLOPs 相差悬殊:IFA 在 $h\times w$ 高分辨率上做卷积,CFA 在低分辨率上做。其 FLOPs 比为

$$\frac{\mathrm{FLOPs}_{\mathrm{IFA}}}{\mathrm{FLOPs}_{\mathrm{CFA}}} = \frac{4(c_5+c_4+c_3)hw + (c_5+c_4+c_3+c_2)\,dhw}{\left(\tfrac{c_5}{64}+\tfrac{c_4}{16}+\tfrac{c_3}{4}+c_2\right)dhw + \tfrac{1}{2}\,dhw + 3\,dhw} > 1 \quad(\text{据原文 tex 注释,约 } 7.9\times) \tag{2}$$

其中 $d$ 为通道维度,$n$ 为 proposal 数,$k$ 为动态卷积核大小。实测:聚合器单模块 FLOPs 从 16.6G 降到 2.1G、GPU 延迟从 4871µs 降到 1877µs——2.6× GPU 提速,且因为数学等价,性能无损失。#Hu et al., 2023

最妙的工程技巧:训练 IFA、推理 CFA。等价性意味着两个模块可互换,于是训练时仍用表达更直接的 IFA,推理时直接把 IFA 重参数化(re-parameterize)成 CFA——既不用重训,又白拿 2.6× 提速。这是结构重参数化思想 #Ding et al., 2021(RepVGG 系)在聚合器上的一次干净落地,但作者更进一步用双线性插值齐性-可加性给出了数学等价证明而非经验近似。

3.3 SDCA:用可分离动态卷积等价实现多头交叉注意力

Separable Dynamic Decoder 与 SDCA 模块结构
图 3:Separable Dynamic Decoder。三子模块:pre-attention(用 hard sigmoid 二值门控生成 masked feature)、separable dynamic convolution(SDCA,用 depthwise + pointwise 可分离动态卷积实现多头交叉注意力)、post-attention(聚合输出)。SDCA 把标准 MHCA 的多头权重共享给一组动态卷积核(来源:Hu et al., 2023, Fig.3)。

动机:kernel 生成端要让 panoptic kernel($n=100$ 个 query)与图像特征做交互,标准做法是多头交叉注意力(MHCA),其复杂度随 query 数和维度二次膨胀,是 (c) 路线另一处重负担。#Hu et al., 2023

直觉:多头注意力本质是"多个并行的线性投影 + softmax 加权求和"。作者发现这一串操作可以被1D 动态卷积等价实现——卷积核的"通道维"对应"头"维,于是多头的并行性被卷积的通道并行吃下;再把动态卷积拆成 depthwise + pointwise(MobileNet #Howard et al., 2017 的老把式),就得到 Separable Dynamic Convolution Attention (SDCA)

机制(演进链):先用 1D 卷积等价实现多头注意力的三步操作(投影、加权、输出投影)#Hu et al., 2023——即

$$\mathrm{MHCA}(Q,F) = \mathrm{Softmax}\!\left(\frac{Q K^{\top}}{\sqrt{d}}\right) V,\quad K=W_K F,\ V=W_V F \tag{3}$$

的标准多头交叉注意力,可被一组核由 $Q$ 动态生成的 1D 卷积等价替代,得到 Dynamic Convolution Attention (DCA)

$$\mathrm{DCA}(Q,F) = \mathrm{Conv1D}_{\,W(Q)}(F) \tag{4}$$

其中卷积核 $W(Q)$ 由 query $Q$ 动态生成(而非固定参数)。再按 depthwise + pointwise 分解 $W(Q)$,就得到核心贡献 SDCA

$$\mathrm{SDCA}(Q,F) = \mathrm{Pointwise}\!\bigl(\mathrm{Depthwise}_{\,W_{dw}(Q)}(F)\bigr) \tag{5}$$

SDCA 相对标准 MHCA 的 FLOPs 比为

$$\frac{\mathrm{FLOPs}_{\mathrm{MHCA}}}{\mathrm{FLOPs}_{\mathrm{SDCA}}} = \frac{4nd^2+2n^2d}{2ndt+2n^2d} = \frac{2d+n}{t+n} > 1 \tag{6}$$

其中 $d=256$ 为隐藏维度、$n=100$ 为 proposal 数、$t$ 为动态卷积核大小(消融最佳 $t=5$)。#Hu et al., 2023 一处记号修正:原文式 (6) 右侧写作 $\frac{2d+n}{k+n}$,其中 $k$ 应为 kernel size $t$(与左式及上下文一致,核查 .tex 源码第 499 行确认系记号笔误),本文统一用 $t$

三个子模块串成 decoder:① pre-attention 用 hard sigmoid 二值门控从特征图生成 masked feature,给后续动态卷积一个聚焦的输入

$$\boldsymbol{V} = r\bigl(\sigma(\boldsymbol{S}*\boldsymbol{Q})\bigr)\, r(\boldsymbol{S})^{\top} = r\bigl(\sigma(\boldsymbol{A})\bigr)\, r(\boldsymbol{S})^{\top}$$

其中 $\boldsymbol{S}$ 为聚合特征图、$\boldsymbol{Q}$ 为 proposal kernel、$\sigma$ 为阈值 0.5 的 hard sigmoid(二值门控)、$r$ 为 reshape;② separable dynamic convolution(SDCA 本体)做 kernel-feature 交互;③ post-attention 用 multi-head self-attention + FFN 聚合输出,生成最终的 panoptic kernel。#Hu et al., 2023 整个 decoder 的 pre-attention 设计"Inspired by"K-Net #Zhang et al., 2021,这是 YOSO 与 K-Net 最直接的血脉联系。

3.4 一次动态卷积出全景:mask 生成与迭代精修

kernel 与特征图就位后,2D 动态卷积$n$ 个 panoptic kernel 作用在图像特征图上,一次生成 $n$ 张掩码——things 的实例掩码和 stuff 的语义掩码同源同出,这是 "you only segment once" 的字面落点。#Hu et al., 2023 decoder 还支持迭代精修(cascade,$T$ 个 stage),每个 stage 用上一层输出更新 kernel 再做一次动态卷积,逐步锐化掩码边界。消融显示 $T=2$ 是速度-精度折中(见 Part 6 tab9)。

训练-推理两套实现:CFA 的"训练 IFA / 推理 CFA"重参数化是全文最值得复用的工程模式——只要能证明等价,推理就能换快的版本而不动训练。SDCA 则相反,它直接换掉 MHCA 的实现,训练推理同构,靠 weight-sharing 把多头开销压进卷积通道维。
Part 4 · Training Pipeline
四库分别训练,batch 16 / lr 1e-4,损失具体形式未披露

YOSO 在四个数据集上分别训练(非联合预训练),遵循 DETR 式端到端集合预测:一对一 Hungarian 二分匹配,无 NMS / anchor。#Hu et al., 2023 训练用 stuff 并集合并、things 独立、重叠区取 max 的全景格式化策略。主干预用 ImageNet 预训练的 ResNet-50。

损失函数:作者声明采用分类损失 + 掩码损失(含 dice 与 cross-entropy 这类全景分割常用项),但原文未给出损失的具体数学形式与各项权重——这是复现的一个明确缺口(详见文末披露表)。动态卷积分组方式、hard sigmoid 不可导处的处理、迭代更新的具体公式也未明确给出。#Hu et al., 2023

超参出处 / 说明
BackboneResNet-50(ImageNet 预训练)非 HGNetv2/Swin #Hu et al., 2023
隐藏维度 $d$256#Hu et al., 2023
聚合器通道 $c_{2..5}$128 / 256 / 512 / 1024tab5 单模块测速配置 #Hu et al., 2023
proposal 数 $n$100(消融饱和于 150)tab10 #Hu et al., 2023
动态卷积核大小 $t$3(原文未显式声明主模型 t;据 tab6 测试配置与消融基线推断为 3,消融最佳 5 饱和)tab6/tab8 #Hu et al., 2023
attention block 数 $N$2tab7 #Hu et al., 2023
迭代 stage 数 $T$2tab9 #Hu et al., 2023
batch size16四库统一 #Hu et al., 2023
学习率1e-4#Hu et al., 2023
COCO 训练370k iter(LSJ 数据增强)large-scale jitter #Hu et al., 2023
Cityscapes / Mapillary 训练180k iter#Hu et al., 2023
ADE20K 训练30k iter#Hu et al., 2023
消融实验训练270k iter#Hu et al., 2023
数据增强LSJ(large-scale jitter)COCO 主实验用 #Hu et al., 2023
表 2:YOSO 超参数(据 Hu et al., 2023 正文 + 消融表 + .tex 源码提取)。

训练配置披露(10 项逐项标注)

训练配置项披露状态值 / 说明
训练数据已披露COCO 370k / Cityscapes+Mapillary 180k / ADE20K 30k iter,LSJ 增强 #Hu et al., 2023
训练硬件未披露原文未给训练 GPU 型号 / 数量(推理用 V100/3090/A100/2080Ti)#Hu et al., 2023
优化器未披露原文未明确给出(lr=1e-4、batch=16 已给)#Hu et al., 2023
学习率已披露1e-4;schedule / warmup 未明确 #Hu et al., 2023
Batch size已披露16 #Hu et al., 2023
训练步数 / 轮数已披露按 iter 给出(见训练数据行)#Hu et al., 2023
训练时长未披露原文未给 #Hu et al., 2023
模型参数量部分披露主表给 FPS / FLOPs,参数量未单列 #Hu et al., 2023
精度格式未披露FP32/FP16/BF16 未明确 #Hu et al., 2023
Checkpoint 策略未披露原文未给 #Hu et al., 2023
训练配置披露缺口

原文给了 iter 数、lr、batch、backbone、LSJ 增强和全部消融超参,但优化器类型、学习率 schedule/warmup、训练硬件、训练时长、精度格式、checkpoint 策略、损失函数具体形式与权重均未明确给出——复现需读开源代码(github.com/hujiecpp/YOSO)确认。#Hu et al., 2023

Part 5 · Inference Pipeline
单次前向 + 重参数化提速:一次分割怎么在线跑起来

YOSO 是单图像、单次前向的实时模型——没有视频流的 chunk / cache / causal mask 那一套,它的"实时"体现在单张图端到端跑过 45 FPS。推理链路是训练链路的"提速版" #Hu et al., 2023

  • 输入准备
  • :按数据集分辨率输入单张 RGB 图(COCO/Cityscapes/ADE20K 各自约定分辨率,Mapillary 用更高分辨率,故 FPS 跌到 7.1)。#Hu et al., 2023

  • 特征提取(CFA 推理版)
  • :ResNet-50 抽多尺度特征 → Feature Pyramid Aggregator。推理时聚合器直接以 CFA 形态运行——因为 Part 3.2 已证明 CFA 与 IFA 数学等价,训练好的 IFA 权重被重参数化成 CFA,在低分辨率上做卷积再插值上采样。这一步是 2.6× GPU 提速的主要来源,且无需任何额外训练#Hu et al., 2023

  • kernel 生成(SDCA)
  • :Separable Dynamic Decoder 生成 $n=100$ 个 panoptic kernel。pre-attention 用 hard sigmoid 二值门控出 masked feature,SDCA 用 depthwise + pointwise 可分离动态卷积做 kernel-feature 交互,post-attention 聚合。迭代 $T=2$ 个 stage 精修 kernel。#Hu et al., 2023

  • 一次动态卷积出掩码
  • $n$ 个 kernel 与图像特征图做 2D 动态卷积,一次生成全部 things 实例掩码 + stuff 语义掩码——这是 "you only segment once" 的字面落点,也是它免两套分支、免 NMS 的根源。#Hu et al., 2023

  • 后处理
  • :stuff 类别按分类 logits 的 argmax 取并集合并写入全景图、things 保持独立实例 ID、重叠像素按分类置信度 argmax 决定归属——全流程无 NMS,拼成最终全景图。#Hu et al., 2023

    推理时还有两个旋钮值得拎出来。其一是迭代 stage 数 $T$:decoder 在一次前向内对 kernel 做 $T$ 轮 cascade 精修,每轮用上一层输出更新 kernel 再做一次动态卷积,掩码边界逐轮锐化——消融显示 $T$ 从 1 加到 2 PQ 从 45.7 跳到 47.0(+1.3),再加到 3 只多 0.5 但 FPS 掉,故推理取 $T=2$。其二是分辨率-FPS 权衡:YOSO 的速度对输入分辨率高度敏感,COCO 512,800 跑 45.6 FPS,Mapillary 2048,2048 直接跌到 7.1 FPS——高分辨率下动态卷积在更大特征图上展开,开销随 $h\times w$ 线性涨。这意味着把"46.4 PQ@45.6 FPS"迁移到高分辨率下游时不能照搬,需在分辨率与 FPS 间显式权衡。#Hu et al., 2023

    数据集推理硬件指标FPS
    COCOV10046.4 PQ45.6
    CityscapesV10052.5 PQ22.6
    ADE20KV10038.0 PQ35.4
    Mapillary VistasA10034.1 PQ7.1
    消融实验3090
    实例分割附加2080Ti
    表 3:推理硬件与速度(据 Hu et al., 2023 主表与消融说明)。注意 Mapillary 用 A100 且分辨率更高,故 7.1 FPS 不与 COCO 的 45.6 直接可比。
    反直觉发现:SDCA 实测比 DCA 慢。FLOPs 分析(式 6)说 SDCA 比 DCA 更省,但 GPU 实测延迟 SDCA 反而更高——因为 depthwise + pointwise 两步串行执行,GPU 并行度吃不满。#Hu et al., 2023 这意味着 YOSO 的"实时"主要来自 CFA + 小尺度$d=256$$n=100$$N=2$$T=2$),SDCA 的贡献更多在精度(+1.0 PQ)而非速度。这是作者自己诚实披露的、与 FLOPs 理论分析矛盾的工程现实——读这篇论文时不要只看 FLOPs。
    部署可操作启发

  • 部署时务必开 CFA 重参数化路径,这是免重训的 2.6× 提速开关;
  • 若场景对延迟极致敏感、可接受略掉精度,可把 SDCA 换回 DCA(实测更快)甚至更轻的 attention;
  • 高分辨率场景(如 Mapillary)FPS 会被分辨率拖累,需在分辨率与 FPS 间显式权衡,不要被 COCO 的 45.6 FPS 误导。
  • Part 6 · 实验配置与验证
    四库全景 + 五项消融:哪个组件最值钱

    6.1 实验配置

    配置项披露状态值 / 说明
    评测数据集已披露COCO panoptic(133 类)/ Cityscapes(19 类)/ ADE20K(150 类)/ Mapillary Vistas(65 类)#Hu et al., 2023
    评测指标已披露PQ↑(全景质量,含 PQs / PQt 分项)/ FPS↑ #Kirillov et al., 2019
    Baseline 方法已披露PanopticDeepLab / LPSNet / RealTimePan / PanopticFCN / K-Net / MaskFormer / Mask2Former 等 #Hu et al., 2023
    推理硬件已披露主实验 V100、Mapillary 用 A100、消融 3090、实例附加 2080Ti #Hu et al., 2023
    推理分辨率已披露按数据集约定(Mapillary 分辨率最高,故 FPS 最低)#Hu et al., 2023
    推理环境未披露PyTorch / CUDA 版本未明确给出 #Hu et al., 2023
    表 4:实验配置(6 项必含基础项,逐项标注披露状态)。

    6.2 主实验:四库全景分割

    MethodScalePQPQtPQsFPS
    PanopticDeepLab641,64135.120.0
    RealTimePan800,133337.141.030.715.9
    LPSNet800,133339.143.930.19.3
    PanopticFCN800,133344.350.035.69.2
    MaskFormer800,133346.551.039.817.6
    K-Net800,133347.151.740.3
    Mask2Former800,133351.957.743.08.6
    YOSO512,80046.450.740.045.6
    YOSO800,133348.453.540.823.6
    表 5:COCO panptic validation 主对比(据 Hu et al., 2023, Table 1)。512,800 尺度 YOSO 以 45.6 FPS 最快、46.4 PQ,比 PanopticDeepLab 快 ~2.3× 且 PQ 高 ~11.0;800,1333 尺度 48.4 PQ,超 K-Net 1.3、MaskFormer 1.9,与 Max-DeepLab 持平,比 Mask2Former 低 3.5 但快 2.7×。#Hu et al., 2023
    数据集ScalePQPQtPQsFPS定位
    Cityscapes512,102452.543.559.122.6实时档
    Cityscapes1024,204859.751.066.111.1与 PanopticDeepLab 持平且快 1.3×,比 FPSNet 高 4.7 #Hu et al., 2023
    ADE20K640,256038.037.339.435.4速度精度双优 MaskFormer,PQ 仍低于 Mask2Former(39.7) #Hu et al., 2023
    Mapillary Vistas2048,204834.124.347.27.1PQs=47.2 stuff 最强,PQt=24.3 落后(作者承认)#Hu et al., 2023
    表 5b:其余三库 YOSO 主结果(据 Hu et al., 2023, Table 2–4)。注:Cityscapes 高尺度 59.7 PQ 与 PanopticDeepLab 持平(非"低 7.2")——前稿曾误把 COCO 的对比错挂到 Cityscapes,已据原文修正。
    关键发现:YOSO 在 COCO 上以 45.6 FPS 跑到 46.4 PQ(512,800 尺度),是首个在四库上都给出竞争力的实时全景分割框架;但它并未在绝对精度上超越重模型 Mask2Former——800,1333 尺度 48.4 PQ 仍差 Mask2Former 3.5 PQ(51.9)。它的卖点是用一小部分算力拿到"够用"的精度,而非刷榜。#Hu et al., 2023
    COCO 与 Cityscapes 上 FPS 对 PQ 的速度-精度权衡曲线
    图 4:COCO 与 Cityscapes 上 FPS 对 PQ 的速度-精度权衡。YOSO 落在曲线左上角——同精度档下更快、同速度档下更准,明显优于 PanopticDeepLab / LPSNet / RealTimePan 等实时档对手(来源:Hu et al., 2023, Fig.4)。

    6.3 消融:五个旋钮,看哪个最值钱

    CFA 与 SDCA 的 FLOPs 减少等高线
    图 5:FLOPs 减少比等高线。左 CFA:输入特征图通道维度是降 FLOPs 的关键;右 SDCA:输入 token 的隐藏维度是关键。两者都印证"通道/隐藏维度越大,等价替换省得越多"(来源:Hu et al., 2023, Fig.5)。
    消融配置关键数值(PQ@FPS)结论
    tab5 聚合器IFA vs CFA(d=256, c2-5IFA 47.5@23.3 / 16.6G / 4871µs;CFA 47.0@29.2 / 2.1G / 1877µs独立训练差 0.5 PQ;但 IFA 权重可重参数化为 CFA 推理、输出完全等价、免重训拿 2.6× 提速 #Hu et al., 2023
    tab6 attentionMHCA/SDCA/DCA/PDCA/DDCAMHCA 46.0 / SDCA 47.0 / DCA 46.9 / PDCA 43.7 / DDCA 46.6SDCA 最佳 +1.0 PQ;PDCA 缺 cross-dim 最差;详见下表
    tab7 block 数 NN=1,2,3,446.4@30.1 / 47.0@29.2 / 47.5@28.9 / 47.2@28.7N=3 峰值,选 N=2 折中速度精度 #Hu et al., 2023
    tab8 核大小 tt=1,3,5,746.8@30.6 / 47.0@29.2 / 47.3@28.3 / 47.1@27.6t=5 饱和;t=1(退化为 pointwise)降到 46.8 证 cross-dim 重要 #Hu et al., 2023
    tab9 迭代 TT=1,2,345.7@30.1 / 47.0@29.2 / 47.5@28.9T=2 最佳,T=3 仅 +0.5 但掉 FPS #Hu et al., 2023
    tab10 proposal nn=50,100,150,20044.2@33.7 / 47.0@29.2 / 46.9@26.3 / 46.7@24.350→100 大涨 +2.8,150 饱和,200 反降;选 n=100 速度最优 #Hu et al., 2023
    表 6:五项消融汇总(据 Hu et al., 2023, Table 5–10)。
    AttentionPQFLOPsLatency (µs)FPS交互类型
    MHCA46.031.5M260827.3cross-token + cross-dim
    SDCA47.05.4M218329.2cross-token + cross-dim(可分离)
    DCA46.915.5M170130.0cross-token + cross-dim
    PDCA43.75.2M145030.2仅 cross-token(缺 cross-dim)
    DDCA46.60.3M124230.3仅 cross-dim(缺 cross-token)
    表 6b:五种 attention 变体逐项对比(据 Hu et al., 2023, Table 6)。SDCA FLOPs(5.4M) 低于 DCA(15.5M),但 GPU 延迟(2183µs) 反高于 DCA(1701µs)——depthwise+pointwise 串行执行吃不满并行度。
    最重要的消融发现:cross-dimension 交互比 cross-token 交互更值钱。tab6 里 PDCA(缺跨维度交互)最差(43.7 PQ,掉 3.3),DDCA(只有跨维度、缺跨 token)仍能到 46.6——说明对全景分割而言,让 kernel 的"头"维度之间交互(cross-dimension)比让不同 token 之间交互(cross-token)更重要。原因在于panoptic kernel 彼此需要独立(每个 kernel 对应一个实例/stuff),过度 cross-token 反而模糊身份。这也是为何标准 MHCA 反而不如 DCA/SDCA——一个反直觉的结果。#Hu et al., 2023 (记号注:原文 Eq.9 定义 depthwise=cross-dimension、pointwise=cross-token,本表据此口径;但原文 L686 行文将 DDCA 描述为 cross-token,与 Eq.9 相反,系原文内部不一致,本表取 Eq.9 口径。)

    6.4 失败案例与定性结果

    COCO 全景分割定性结果
    图 6:COCO 验证集全景分割定性结果(来源:Hu et al., 2023, Supplementary Fig.1)。

    作者诚实承认的局限 #Hu et al., 2023:① Mapillary Vistas 的 PQt 仅 24.3,落后 SOTA——things 类别多、proposal kernel $n=100$ 在多类别场景可能不够,这恰是 K-Net/MaskFormer 重 decoder 的合理性所在;

  • COCO 仍差 Mask2Former
  • #Cheng et al., 2022 约 3.5 PQ(800,1333 尺度,48.4 vs 51.9);
  • SDCA 实测延迟反比 DCA 慢(见 Part 5);
  • $t=7$$n=200$$N=4$ 均已过饱和,继续加大边际收益微小。
  • 附录的实例分割附加实验(tab11)还揭示一个有趣侧面 #Hu et al., 2023:YOSO 用 panoptic 训练的模型直接做实例分割(不专门训练),550 尺度达 34.7 mAP@38.7 FPS,大物体 APl=58.6 全表最高(SOLOv2 55.4、SparseInst 51.9),608 尺度 APl 进一步到 59.2——说明 panoptic kernel 对大物体分割有天然优势,一个 kernel 对应一个完整实例而非碎片化激活。

    Part 7 · 讨论与启发
    不是新范式,而是一次漂亮的"等价换快"

    把 YOSO 放回地图:它是 (c) 路线(统一 kernel × feature map)的工程高效化变体,不是新范式。它继承 K-Net #Zhang et al., 2021 / MaskFormer #Cheng et al., 2021 的统一 kernel 范式,只批评其"模块太重"而不否定范式本身——pre-attention 明确"Inspired by"K-Net,主表对标 K-Net 47.1 PQ。#Hu et al., 2023 两个提速点的来源也清晰:CFA 来自结构重参数化 #Ding et al., 2021(RepVGG 系,但用双线性插值齐性-可加性给出数学等价证明,比 RepVGG 系更硬);SDCA 来自 MobileNet #Howard et al., 2017 的 depthwise/pointwise 分解 + linear attention 系列 #Kitaev et al., 2020

    方法范式things+stuff 统一?实时?YOSO 的差异
    PanopticDeepLab(b) semantic-first较快YOSO 快 2.3× 且 PQ 高 11.0 #Hu et al., 2023
    K-Net(c) 统一 kernelYOSO 继承其 pre-attention,提速到实时 #Zhang et al., 2021
    MaskFormer / Mask2Former(c) mask classificationYOSO 精度低 ~3.5 PQ 但快数倍 #Cheng et al., 2021
    SOLOv2instance 侧动态核×feature仅 things较快附录 tab11 对照,YOSO 大物体 APl 领先 #Wang et al., 2020
    SparseInst实时实例分割 SOTA仅 things附录对照,YOSO 大物体领先 #Cheng et al., 2022-SparseInst
    YOSO(c) + 工程提速CFA + SDCA 两招把 (c) 推到实时 #Hu et al., 2023
    表 7:YOSO 与五个前置工作的七维定位(据 citation 调研 + Hu et al., 2023 整理)。
    未被充分讨论的范式短板

    YOSO 把"实时"做到了,但代价是 $n=100$ 个 proposal kernel 在 things 类别密集的场景(如 Mapillary 65 类)会不够用——这正是 K-Net/MaskFormer 重 decoder 的合理性所在。YOSO 没有正面回应这个短板,只在 Mapillary PQt=24.3 上诚实暴露了它。读这篇时要把"实时 + 小尺度"和"重 decoder + 高精度"看成同一问题的两端,而非 YOSO 全面胜出。#Hu et al., 2023

    可操作启发

    "证明等价 → 推理换快版本"是可迁移的方法论:任何含"两个线性算子串联"的模块,只要能证等价,就能训练保旧、推理换快,免重训提速——CFA 是范本。

  • SDCA 的"depthwise+pointwise 替多头注意力"思路可迁移到任何 query × feature 交互场景,但
  • 务必实测 GPU 延迟而非只看 FLOPs,串行分解可能反更慢。
  • 全景/实例分割里,若 kernel 需保持身份独立,优先 cross-dimension 交互、弱化 cross-token 交互——这是 tab6 给出的一条可复用设计直觉。
  • 与本博客其它文章互参:YOSO 的免 NMS 集合预测来自
  • DETR;统一 kernel 范式与 SAM 系的并行 query 同源;SAM 2 的多 query 迭代精修与 YOSO 的 $T$ stage 可对照;同为"实时 + 端到端 + 无后处理",ContourFormer 走 contour 表示、YOSO 走 mask 表示,是分割表示光谱的两端;SDCA"用卷积替注意力"与 Mamba 用 SSM 替注意力同属高效注意力光谱的两端。

    一句话收束:YOSO 没有发明新范式,但它把"证明等价再换快实现"这件事做得很漂亮——CFA 靠双线性插值齐性-可加性给出数学等价,SDCA 靠 depthwise/pointwise 分解给出多头注意力的等价实现。读懂这两条等价性,比记住 46.4 PQ 这个数字更值钱。

    参考来源

    • Hu, J. et al. (2023). You Only Segment Once: Towards Real-Time Panoptic Segmentation. arXiv:2303.14651. arXiv:2303.14651 · github.com/hujiecpp/YOSO
    • Kirillov, A. et al. (2019). Panoptic Segmentation(PQ 指标定义). CVPR 2019. arXiv:1801.00868
    • Zhang, R. et al. (2021). K-Net: Towards Unified Image Segmentation. NeurIPS 2021. arXiv:2104.04926 · 精读 →
    • Cheng, B. et al. (2020). Panoptic-DeepLab. CVPR 2020. arXiv:1911.09457
    • Cheng, B. et al. (2021). Per-Pixel Classification is Not All You Need for Semantic Segmentation (MaskFormer). NeurIPS 2021. arXiv:2107.06278
    • Cheng, B. et al. (2022). Masked-attention Mask Transformer (Mask2Former). CVPR 2022.
    • Wang, X. et al. (2020). SOLOv2: Dynamic, Faster and Stronger. NeurIPS 2020. arXiv:2006.02788 · 精读 →
    • Cheng, T. et al. (2022). Sparse Instance Activation for Real-Time Instance Segmentation. CVPR 2022. arXiv:2203.12827
    • Carion, N. et al. (2020). End-to-End Object Detection with Transformers (DETR). ECCV 2020. arXiv:2005.12872
    • He, K. et al. (2017). Mask R-CNN. ICCV 2017.
    • Xiong, Y. et al. (2019). UPSNet: A Unified Panoptic Segmentation Network. CVPR 2019.
    • De, A. et al. (2020). FPSNet: Fast Panoptic Segmentation.
    • Hong, R. et al. (2021). LPSNet: A Lightweight Solution for Panoptic Segmentation.
    • Hou, J. et al. (2020). RealTimePan: Real-Time Panoptic Segmentation.
    • Li, Y. et al. (2021). PanopticFCN: A Unified Fully Convolutional Network for Panoptic Segmentation.
    • Howard, A. et al. (2017). MobileNets: Efficient Convolutional Neural Networks(depthwise/pointwise 分解).
    • Kitaev, N. et al. (2020). Reformer: The Efficient Transformer(linear attention 谱系).
    • Ding, X. et al. (2021). RepVGG: Making VGG-style ConvNets Great Again(结构重参数化).

    来源说明:本文事实性数值与公式均锚定论文正文 + .tex 源码(arXiv source tarball);引用链五个前置工作的身份经联网核验(arXiv 编号/venue 以 .bbl 为准)。GitHub star/被引次数/CVPR 正式录用等未联网确证的条目从略。

    延伸阅读ContourFormer · 实时端到端分割精读