YOSO
论文信息
- 标题:You Only Segment Once: Towards Real-Time Panoptic Segmentation
- 作者:Jie Hu, Linyan Huang, Tianhe Ren, Shengchuan Zhang, Rongrong Ji, Liujuan Cao
- 单位:厦门大学 多媒体可信感知与高效计算教育部重点实验室
- 发表:arXiv:2303.14651, 2023(CVPR 投稿版)
- 开源:https://github.com/hujiecpp/YOSO
全景分割是 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
先说清评测量什么,才能理解"实时"的代价。全景分割的标准指标是 PQ(Panoptic Quality) #Kirillov et al., 2019,对每个类别把预测掩码与真值做 IoU 匹配后
它把分割质量(分子,匹配对的 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) 双分支 | UPSNet | semantic head + Mask R-CNN instance head 各一套 | 慢 |
| (b) semantic-first | PanopticDeepLab / LPSNet / RealTimePan | 先出全部 semantic mask,再用 box/point 定位 instance | 较快但泛化弱 |
| (c) 统一 kernel | PanopticFCN / K-Net / MaskFormer / Mask2Former | 动态卷积为 things + stuff 同时出掩码,一次前向 | 准但重 |
| (d) YOSO | 本文 | (c) 范式 + CFA 提速特征端 + SDCA 提速 kernel 端 | 实时 + 竞争精度 |
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:把"插值优先"重参数化成"卷积优先"
动机:聚合器要把 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$,则
即"先卷积后插值"与"先插值后卷积"完全等价。#Hu et al., 2023 但二者的 FLOPs 相差悬殊:IFA 在 $h\times w$ 高分辨率上做卷积,CFA 在低分辨率上做。其 FLOPs 比为
其中 $d$ 为通道维度,$n$ 为 proposal 数,$k$ 为动态卷积核大小。实测:聚合器单模块 FLOPs 从 16.6G 降到 2.1G、GPU 延迟从 4871µs 降到 1877µs——2.6× GPU 提速,且因为数学等价,性能无损失。#Hu et al., 2023
3.3 SDCA:用可分离动态卷积等价实现多头交叉注意力
动机: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——即
的标准多头交叉注意力,可被一组核由 $Q$ 动态生成的 1D 卷积等价替代,得到 Dynamic Convolution Attention (DCA)
其中卷积核 $W(Q)$ 由 query $Q$ 动态生成(而非固定参数)。再按 depthwise + pointwise 分解 $W(Q)$,就得到核心贡献 SDCA:
SDCA 相对标准 MHCA 的 FLOPs 比为
其中 $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{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)。
YOSO 在四个数据集上分别训练(非联合预训练),遵循 DETR 式端到端集合预测:一对一 Hungarian 二分匹配,无 NMS / anchor。#Hu et al., 2023 训练用 stuff 并集合并、things 独立、重叠区取 max 的全景格式化策略。主干预用 ImageNet 预训练的 ResNet-50。
损失函数:作者声明采用分类损失 + 掩码损失(含 dice 与 cross-entropy 这类全景分割常用项),但原文未给出损失的具体数学形式与各项权重——这是复现的一个明确缺口(详见文末披露表)。动态卷积分组方式、hard sigmoid 不可导处的处理、迭代更新的具体公式也未明确给出。#Hu et al., 2023
| 超参 | 值 | 出处 / 说明 |
|---|---|---|
| Backbone | ResNet-50(ImageNet 预训练) | 非 HGNetv2/Swin #Hu et al., 2023 |
| 隐藏维度 $d$ | 256 | #Hu et al., 2023 |
| 聚合器通道 $c_{2..5}$ | 128 / 256 / 512 / 1024 | tab5 单模块测速配置 #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$ | 2 | tab7 #Hu et al., 2023 |
| 迭代 stage 数 $T$ | 2 | tab9 #Hu et al., 2023 |
| batch size | 16 | 四库统一 #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 |
训练配置披露(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
YOSO 是单图像、单次前向的实时模型——没有视频流的 chunk / cache / causal mask 那一套,它的"实时"体现在单张图端到端跑过 45 FPS。推理链路是训练链路的"提速版" #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 |
|---|---|---|---|
| COCO | V100 | 46.4 PQ | 45.6 |
| Cityscapes | V100 | 52.5 PQ | 22.6 |
| ADE20K | V100 | 38.0 PQ | 35.4 |
| Mapillary Vistas | A100 | 34.1 PQ | 7.1 |
| 消融实验 | 3090 | — | — |
| 实例分割附加 | 2080Ti | — | — |
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 |
6.2 主实验:四库全景分割
| Method | Scale | PQ | PQt | PQs | FPS |
|---|---|---|---|---|---|
| PanopticDeepLab | 641,641 | 35.1 | — | — | 20.0 |
| RealTimePan | 800,1333 | 37.1 | 41.0 | 30.7 | 15.9 |
| LPSNet | 800,1333 | 39.1 | 43.9 | 30.1 | 9.3 |
| PanopticFCN | 800,1333 | 44.3 | 50.0 | 35.6 | 9.2 |
| MaskFormer | 800,1333 | 46.5 | 51.0 | 39.8 | 17.6 |
| K-Net | 800,1333 | 47.1 | 51.7 | 40.3 | — |
| Mask2Former | 800,1333 | 51.9 | 57.7 | 43.0 | 8.6 |
| YOSO | 512,800 | 46.4 | 50.7 | 40.0 | 45.6 |
| YOSO | 800,1333 | 48.4 | 53.5 | 40.8 | 23.6 |
| 数据集 | Scale | PQ | PQt | PQs | FPS | 定位 |
|---|---|---|---|---|---|---|
| Cityscapes | 512,1024 | 52.5 | 43.5 | 59.1 | 22.6 | 实时档 |
| Cityscapes | 1024,2048 | 59.7 | 51.0 | 66.1 | 11.1 | 与 PanopticDeepLab 持平且快 1.3×,比 FPSNet 高 4.7 #Hu et al., 2023 |
| ADE20K | 640,2560 | 38.0 | 37.3 | 39.4 | 35.4 | 速度精度双优 MaskFormer,PQ 仍低于 Mask2Former(39.7) #Hu et al., 2023 |
| Mapillary Vistas | 2048,2048 | 34.1 | 24.3 | 47.2 | 7.1 | PQs=47.2 stuff 最强,PQt=24.3 落后(作者承认)#Hu et al., 2023 |
6.3 消融:五个旋钮,看哪个最值钱
| 消融 | 配置 | 关键数值(PQ@FPS) | 结论 |
|---|---|---|---|
| tab5 聚合器 | IFA vs CFA(d=256, c2-5) | IFA 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 attention | MHCA/SDCA/DCA/PDCA/DDCA | MHCA 46.0 / SDCA 47.0 / DCA 46.9 / PDCA 43.7 / DDCA 46.6 | SDCA 最佳 +1.0 PQ;PDCA 缺 cross-dim 最差;详见下表 |
| tab7 block 数 N | N=1,2,3,4 | 46.4@30.1 / 47.0@29.2 / 47.5@28.9 / 47.2@28.7 | N=3 峰值,选 N=2 折中速度精度 #Hu et al., 2023 |
| tab8 核大小 t | t=1,3,5,7 | 46.8@30.6 / 47.0@29.2 / 47.3@28.3 / 47.1@27.6 | t=5 饱和;t=1(退化为 pointwise)降到 46.8 证 cross-dim 重要 #Hu et al., 2023 |
| tab9 迭代 T | T=1,2,3 | 45.7@30.1 / 47.0@29.2 / 47.5@28.9 | T=2 最佳,T=3 仅 +0.5 但掉 FPS #Hu et al., 2023 |
| tab10 proposal n | n=50,100,150,200 | 44.2@33.7 / 47.0@29.2 / 46.9@26.3 / 46.7@24.3 | 50→100 大涨 +2.8,150 饱和,200 反降;选 n=100 速度最优 #Hu et al., 2023 |
| Attention | PQ | FLOPs | Latency (µs) | FPS | 交互类型 |
|---|---|---|---|---|---|
| MHCA | 46.0 | 31.5M | 2608 | 27.3 | cross-token + cross-dim |
| SDCA | 47.0 | 5.4M | 2183 | 29.2 | cross-token + cross-dim(可分离) |
| DCA | 46.9 | 15.5M | 1701 | 30.0 | cross-token + cross-dim |
| PDCA | 43.7 | 5.2M | 1450 | 30.2 | 仅 cross-token(缺 cross-dim) |
| DDCA | 46.6 | 0.3M | 1242 | 30.3 | 仅 cross-dim(缺 cross-token) |
6.4 失败案例与定性结果
作者诚实承认的局限 #Hu et al., 2023:① Mapillary Vistas 的 PQt 仅 24.3,落后 SOTA——things 类别多、proposal kernel $n=100$ 在多类别场景可能不够,这恰是 K-Net/MaskFormer 重 decoder 的合理性所在;
附录的实例分割附加实验(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 对应一个完整实例而非碎片化激活。
把 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) 统一 kernel | 是 | 否 | YOSO 继承其 pre-attention,提速到实时 #Zhang et al., 2021 |
| MaskFormer / Mask2Former | (c) mask classification | 是 | 否 | YOSO 精度低 ~3.5 PQ 但快数倍 #Cheng et al., 2021 |
| SOLOv2 | instance 侧动态核×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 |
YOSO 把"实时"做到了,但代价是 $n=100$ 个 proposal kernel 在 things 类别密集的场景(如 Mapillary 65 类)会不够用——这正是 K-Net/MaskFormer 重 decoder 的合理性所在。YOSO 没有正面回应这个短板,只在 Mapillary PQt=24.3 上诚实暴露了它。读这篇时要把"实时 + 小尺度"和"重 decoder + 高精度"看成同一问题的两端,而非 YOSO 全面胜出。#Hu et al., 2023
① "证明等价 → 推理换快版本"是可迁移的方法论:任何含"两个线性算子串联"的模块,只要能证等价,就能训练保旧、推理换快,免重训提速——CFA 是范本。
一句话收束: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 正式录用等未联网确证的条目从略。