Scene-Centric Unsupervised Video Panoptic Segmentation 以场景为中心的无监督视频全景分割
论文地址:2606.04925 Scene-Centric Unsupervised Video Panoptic Segmentation
代码地址:Scene-Centric Unsupervised Video Panoptic Segmentation
1.图一

上半部分:模型预测结果展示 (Panoptic video predictions)
这部分展示了VideoCUPS模型在四个不同数据集 上跑出来的实际效果, 分别是 Cityscapes-VPS, Waymo, KITTI-STEP, MOTS 这四个数据集的示例。每张图下方标有 t₀, t₁, t₂,代表视频中的三个连续时间点(第0帧、第1帧、第2帧)。
图中的不同颜色代表不同的"语义类别"。
- 例如,在
Cityscapes-VPS中,紫色可能是"道路",蓝色是"汽车",绿色是"树木"。 - 在
MOTS中,红色可能是"人",棕色是"墙壁"。
做到了"时间上一致" :注意同一辆"汽车"或同一个人,在 t₀, t₁, t₂ 三帧图中,虽然位置移动了,但颜色保持不变、序号不改变。这就直观地展示了模型实现了"时间上一致的实例分割"。
效果:VideoCUPS 它能给视频中的每一辆车、每一个人都打上独一无二的、随时间不变的标签。
++陈述++:上半部分,这四组图展示了videoCPUS在四个不同数据集上跑出来的效果。这四个数据集分别是...... 每张图下方有T0,T1,T2,3个连续时间点,不同颜色代表不同的语义类别,比如,在前三张图中,蓝色代表的是车辆,紫色代表道路。在MOTS数据集中,红色代表行人。但无论是哪一个数据集,我们的模型对全场景的分割都做到了时间上一致,即连续的时间上颜色保持不变,序号不改变,并且分割精细。
下半部分:方法流程图 (Overview of the approach)
++陈述++:下半部分是方法核心流程:输入原始的单目视频,先提取特征,结合深度和运动线索,分两分支做实例/语义标签,再通过时序跟踪生成全景伪标签;接着用损失函数VideoDropLoss训练VPS模型(流程图右侧的'VPS Model'就是被训练的目标模型),最终输出视频全景分割结果。
这里的全景伪标签不是传统意义上的"训练集" ,而是训练的"监督信号" 。训练时,输入的是右侧原始视频;模型输出的预测结果,和左侧生成的"伪标签"计算损失(L_VDrop),从而更新模型参数。
原论文:"we use the closest video extension Panoptic Cascade MaskTrack R-CNN with a DINO ResNet-50"
VPS model的核心架构是:Panoptic Cascade MaskTrack R-CNN(DINO ResNet-50)本身是一个有监督的模型架构,但此论文通过无监督方式训练
这里的VPS模型原论文明确提到利用的是一个现成的模型Panoptic Cascade MaskTrack R-CNN全景级联掩模跟踪R-CNN,本论文中,这个模型被用作 VPS Model 的基础框架,虽然本身他是有监督模型,但在本论文通过无监督的方式来训练,最终得到VPSmodel
2.图二

(1)伪标签就是计算机自动生成的一帧图像还是视频?每个图像都标出了目标对象?
伪标签本质上是一堆"带颜色的标注图",跟视频帧数一一对应。它不是视频文件,而是跟视频配套的一堆标注数据。每一帧都有标注,每个像素都被打上了标签。
(2)整体流程讲解:第一路(上半部分)Instance Pseudo-Labeling 实例伪标签
++陈述++:这张图是本论文的核心创新点,它展示了如何生成全景伪标签,进而训练VPS模型。
首先我们输入原始视频,视频进入光流网络,该网络利用一个无监督的光流模型看两帧连续的画面,计算每个像素往哪移动、移动了多少,输出光流图,光流图展示了像素的运动速度和方向。
同一段视频同时进入 Depth Network(深度网络),该网络根据单目视频估计每个像素离相机有多远,输出运动概率图和深度图,分别得到运动信息和像素深度信息。最终同光流图一起输入到"区域生长"模块,
该模块先在运动概率图上找"种子"------也就是运动概率m ≥ 0.15、即运动概率高的像素点。以该点像水波纹一样向外"生长",把和它特征相似的像素都吸收进来,相似要满足深度相似、运动相似两个条件,即以下公式:
d_x 和 d_y:是像素 x 和 y 的深度值。
f_x 和 f_y:是像素 x 和 y 的光流向量(表示运动方向和速度)。
|d_x - d_y| / |d_x| < τ_d:这是计算两个像素深度差异的相对值。这个值越小,说明它们在空间上离得越近。
||f_x - f_y||_2 / ||f_x||_2 < τ_f:这是计算两个像素光流差异的相对值。这个值越小,说明它们运动方向和速度越一致。
满足这两个公式以后,这些相似像素值会被归为同一个物体,最终为该物体生成实例掩码。
下一步进入到传播与追踪模块,"传播"是利用光流图信息,把第t帧的物体掩码,在t+1帧中定位他的预测位置,"跟踪"的目的是计算物体掩码和下一帧预测位置的相似度,通过计算二者的交并比,来判定是否是同一个物体,如果是同一个物体掩码,就为他分配同一个ID;如果判定不是同一个物体掩码,我们会尝试在 t+2 帧中寻找,看它是否只是短暂地被遮挡了。(这些不讲:)在后续的几帧(例如 t+2, t+3)中继续尝试匹配 。如果在一个预设的时间窗口(比如连续 2-3 帧)内都找不到匹配,我们就会判定该物体已经离开画面,从而结束其生命周期,不再为其分配 ID。这就使得物体掩码在时间上连续。最终生成实例伪标签,即:右上角那个黑底彩色图。每个颜色代表一个不同的物体实例,并且同一个物体在不同帧里颜色/ID 是一样的。
最终生成实例伪标签,那么暂时这个伪标签中不同物体的颜色是不一样的,暂时不区分语义。
(3)整体流程讲解:第二路(下半部分)Semantic Pseudo-Labeling 语义伪标签
无监督、自监督、监督区分
- 监督学习 :需要 训练,用人工标注的标签。
- 自监督学习 :需要 训练,用计算机自动生成的伪标签,即:输入一个原始数据集到某个流程框架中进行自动标注,得到自动标注的标签。
- 无监督学习 :也需要训练 ,但不使用任何标签 ,模型自己分类, 学习数据的内在结构。典型的例子就是K-means聚类,它需要反复迭代计算,直到分好类为止,这个过程就是训练。
- (自监督学习属于无监督学习的一个分支,他们都不需要人工标注的标签)
原始视频首先进入到语义网络模块,分为两个分支,第一个分支对视频进行下采样,基于dino特征提取,①++将dino特征蒸馏到一个低维嵌入空间++,然后对dino特征向量使用k-means聚类算法,将像素分成CP个簇,这CP个簇代表cp个伪标签,我们为这CP个伪标签分配CP个颜色。然后根据像素对应的簇,渲染对应的颜色,就得到了语义预测图,这就是plow。
第2个分支保持视频原始分辨率,输入到Depth-guided Semantic Inference 深度引导语义推理模块,该模块对输入视频进行滑动窗口前向传播推理得到一个预测结果phigh,根据输入的深度图的深度d计算一个权重α,d越高,α越小(作者的假设是:近处的物体需要更精细的分割(依赖 P^high),远处的物体用粗略的分割(依赖 P^low)就足够了),代入下面公式对每个像素的低分辨率和高分辨率进行融合
得到的预测图进入"时序平滑",单帧的语义预测可能不稳定,用三帧滑动窗口(第 t-1 帧、第 t 帧、第 t+1 帧),三帧中当前像素哪个伪类别出现的次数多,当前像素就属于哪一类。
最终,实例为标签和语义为标签,同时进入Align对齐。具体操作是:对每个实例掩码,看看它覆盖的像素在语义伪标签里哪个伪类别占多数,就标记为该类别。这样每个物体实例既有唯一的 ID (来自实例分支),又有语义类别(来自语义分支)。
解释:
①DINO:Self-Distillation with No Labels (自蒸馏无标签学习) DINO 是一个基于 Transformer 的自监督学习模型
蒸馏→压缩、"嵌入"可以理解为一种降维和编码,划线部分意思就是:我们使用一个网络,将 DINO 模型输出的高维特征向量,通过某种方法(比如一个全连接层)压缩成一个维度更低的向量,这个低维向量就代表了该像素在"嵌入空间"中的位置。
3.训练中的两个技术
VideoDropLoss 是怎么工作的?
伪标签 只能看到正在动的东西 (比如飞驰的车),却看不见静止的东西(比如停着的车)。
VideoDropLoss解决了"伪标签只有运动物体"的缺陷,让模型能泛化到静止物体。
它的设计逻辑如下:
- 只考你会的:如果模型预测出了一个物体,而这个物体在伪标签里也有,那就对比一下。如果预测得准,就加分;如果预测得差,就扣分。这是为了巩固基本知识。
- 漏考的不管 :如果模型预测出了一个物体,但伪标签里没有 (比如一辆停着的车),这个评分标准会说:"嗯,不知道这东西对不对,但既然老师(伪标签)没说它是错的,那我就不扣分。"
正常损失函数的工作流程(以交叉熵损失为例)
假设我们有一个分类任务,模型预测一个概率分布
p,真实标签是y。
前向传播:
- 输入数据 -> 模型 -> 输出预测概率
p = [0.1, 0.8, 0.1](假设有3个类别)。- 真实标签
y = [0, 1, 0](第二个类别是正确的)。计算损失:
- 使用交叉熵损失函数
L = -Σ y_i * log(p_i)。L = - (0 * log(0.1) + 1 * log(0.8) + 0 * log(0.1)) = -log(0.8) ≈ 0.223。- 这个
L是一个具体的数值,代表了模型预测和真实标签之间的差距。反向传播:
- 损失值
L被传递给自动求导引擎。- 引擎会根据
L的大小,计算出它相对于模型所有参数的梯度(比如∂L/∂W,W是模型的权重)。- 这些梯度告诉每个参数:"你应该往哪个方向调整,才能让
L变小。"- 关键 :只要
L是一个非零的数值,它就会产生梯度,并更新参数。VideoDropLoss 的工作流程(对比)
现在我们来看 VideoDropLoss,它的工作流程是有条件的。
假设模型预测了一个物体
D_j,伪标签是ˆD_i。
前向传播:
- 和正常流程一样,模型输出预测
D_j。计算损失(核心区别):
- 首先计算
D_j和ˆD_i之间的最大交并比IoU_max_j。- 情况 A:
IoU_max_j > τ_IoU(比如 > 0.5)
- 这意味着模型预测的物体和伪标签里的物体重合度很高。
- 此时,损失函数会计算一个正常的损失值
L_d(D_j, ˆD_i)(比如分类损失和掩码损失)。- 这个损失值
L会被传递下去,进行反向传播,更新参数。- 情况 B:
IoU_max_j < τ_IoU(比如 < 0.5)
- 这意味着模型预测的物体和伪标签里的物体几乎不重合(比如模型预测了一辆静止的车,但伪标签里没有)。
- 此时,损失函数的输出
L被直接设置为 0。- 关键点 :当
L = 0时,∂L/∂W = 0。也就是说,没有梯度产生,参数不会更新。反向传播:
在情况 A 下,有梯度,参数会更新。
在情况 B 下,没有梯度,参数保持不变 。
特性 正常损失函数 (如 Cross-Entropy) VideoDropLoss 输入 模型预测 p,真实标签y模型预测 D_j,伪标签ˆD_i计算逻辑 直接计算预测和真实标签的差距 先计算 IoU,再根据IoU决定是否计算损失输出 总是一个非零的损失值 LL可能为 0,也可能是一个具体的损失值反向传播 总是产生梯度,更新参数 只有当 IoU > 阈值时才产生梯度,否则梯度为 0,参数不更新
训练时,我们计算。伪标签实例掩码Dj和预测掩码Di的交并比,如果交并比大于某个阈值τIOU,这意味着模型预测的物体和伪标签里的物体重合度很高,损失函数会计算一个正常的损失值 L_d,进行反向传播,更新参数;如果低于这个阈值,说明。预测的物体和伪标线的物体重合度低则损失函数输出零,参数不更新。
自增强的视频复制粘贴增强技术:
具体而言,对于给定的训练批次,我们执行推理并从模型的VPS预测结果中提取置信度较高的"物体"视频实例。随后对这些视频实例掩码进行随机缩放和水平翻转处理,再将增强后的掩码粘贴到训练批次的视频片段中。我们采用随机运动轨迹来粘贴掩码,以确保运动模式的多样性。最后,我们利用这些增强后的视频片段来训练模型。
++陈述++:对模型预测结果中执行度较高的视频实例掩码,我们对这些掩码进行缩放或水平翻转处理。然后。将处理后的掩码再次放到训练的视频片段中,增强了模型的训练效果和鲁棒性。
4.表一、图三

表格1是我们的方法,和其他几个VPS基准方法在cityscapes VPS验证集上的无监督视频全景分割任务对比,我们直接看最右侧的三个参数,它分别是时空质量、平均质量和分割质量。他们是衡量无监督全景分割的三个关键指标,我们可以对比下面几个基线无监督方法,我们的方法在三个指标上都是最高的,证明在无监督方法中,我们的方法具有优越性。但我们会发现即使这样,和监督方法比起来差距仍然悬殊,这也是无监督学习方法领域面临的一个巨大挑战,他还是无法逾越监督学习。
然后我们来看可视化的结果。这里我们对比了几个基线方法。大家可以看,在 t0, t1, t2 这几个时间点,我们的方法(最下面一行)在分割小物体、移动车辆和复杂背景下的物体时,都表现得更加准确和稳定。比如,在 t0 时刻,我们的方法正确识别了远处的行人,而其他方法出现了错误。在 t1 时刻,我们的方法对移动车辆的分割边界非常清晰。
总而言之,Figure 3 的定性结果直观地展示了 VideoCUPS 在分割精度和时间一致性上更加有优势。
5.表二、图四

表格2是该方法和其他几个基线方法在不同数据集上的泛化能力对比。我们还是先看无监督学习方法中,可以发现我们的方法在这三个不同的数据集中,这三个参数仍然都是最高的,说明我们的方法在不同数据集上更优且泛化能力强,而且对比监督学习方法,即使在各个参数上都比不上监督学习,但我们会发现一个现象,监督学习在改变数据集时指标波动巨大,我们的方法改变数据集是波动很小,也充分说明了我们方法的泛化性较强(监督学习在KITTI-STEP这个数据集上的三个指标差不多都是50左右。但它到了Waymo和MOTS这两个数据集上,它的各项参数大幅的下降,都不是折半了,比折一半还多而我们的方法从KITTI-STEP到Waymo、MOTS这几个数据集上,它们的各项参数下降幅度较小。这些种种现象充分证明了我们的方法具有更好的领域泛化性,并且也说明了一个问题,监督学习方法更容易受到领域偏移,也就是监督学习过度依赖源领域的特定视觉特征,而这些特征在新的领域可能不再适用,导致在其他数据集中指标急剧下降。而我们的无监督学习方法学习的特征更加通用。)。

该图是标签效率对比。
我们使用 Cityscapes-VPS 数据集,只给模型提供部分的标注数据,从 0% 到 100%逐渐增加标注数据,看模型性能。
在标注数据较少时,5、%10%的时候,我们的模型性能要比dino模型更好与。随机初始化的监督模型性能差不多。
当标注数据充足时,到达百分之百的时候,我们的模型甚至与预训练的监督模型性能基本持平。
这说明我们的方法在"少样本学习"场景下表现优异。
6.消融实验
生成视频伪标签的消融实验

我们从原生语义和区域生长实例相结合开始,当我们只有这几这两个组件的时候,各项参数如表所示,在我们加上深度引导语义推理组件时,各项参数稳步增长,我们又加上了实例传播与追踪组件,那么模型的各项参数进一步增长,我们继续加上时间语义平滑组件后,这三个参数达到最高。他又对比了一个非单目的基准方法,在STQ和AQ我们的方法是更高的,而SQ参数是不如这个方法的。说明我们的方法在深度语义推理方面还有所欠缺。但整体证明了各个组件的必要性

该表格是VideoCUPS 训练消融实验。只有基础训练时。三个值如表所示,当我们分别加上vedio droploss损失函数、视频复制粘贴增强技术、自增强复制粘贴增强技术完整配置版,模型的性能是直线上升的。这也充分证明了各个训练组件的必要性