Learning to Segment Instances in Videos with Spatial Propagation Network

本文提出一种基于深度学习的视频实例分割方法,包括前景分割、实例识别和空间传播网络(SPN)细化。SPN通过学习像素亲和力细化对象分割,而连通区域感知滤波器(CRFA)消除不一致区域,实现视频中实例分割的精确识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Learning to Segment Instances in Videos with Spatial Propagation Network

Jingchun Cheng  Sifei Liu   Yi-Hsuan Tsai   Wei-Chih Hung   Shalini De Mello
      Jinwei Gu   Jan Kautz    Shengjin Wang    Ming-Hsuan Yang
  Tsinghua University     University of California    Merced 3NVIDIA Research


一、摘要

提出了一个基于深度学习的实例对象分割。

具体分为三步:

1、基于ResNet-101训练了一个通用模型用于前景背景传播;
2、通过在测试视频的第一帧使用增强对象注释微调模型以此训练实例模型和单个对象分割;
为了在视频中区分不同的实例,把实例中的每个对象都计算了像素级score map,每个score map 表明了对象的相似性并且仅在第一步中获得的前景掩模内计算。为精炼score map ,训练了空间传播网络。空间传播网络旨在训练如何基于每个帧中的成对相似性在空间传播粗分割掩码,以外还应用了滤波器,在视频中时间和空间的一致性下识别一个最好的连通区域。
3、通过比较不同实例的得分图确定每个视频中的实例对象分割。


二、介绍

关注的问题是多实例分割问题。

面临两个挑战:

1、不确定性;处理非刚性物体(例如,人类,动物)时,因为这些物体通常具有各种视角,姿势的个体运动。
2、遮挡;
2.1由于前景对象可能在某些帧中完全被遮挡
2.2不同实例之间的遮挡


解决方法:

目前大多数是CNN解决。具体讲是,CNN被训练为遵循视频序列中每帧的FCN结构输出前景/背景分割图。无监督可以训练前景模型,半监督,通过测试视频的第一帧的分割掩码微调模型到特定的前景区域。

问题:

由于前向传播的池化操作,网络生成的分段通常不与实际对象边界对齐。

解决方法:

许多现有的方法应用条件随机场(CRF)作为后处理模块来细化对象边界。

方法

### 学习带有噪声标注的图像分割 在处理带噪声标签的数据集时,空间校正方法能够有效提升模型性能。通过引入自适应均衡化学习框架,可以实现更鲁棒的学习过程[^1]。 #### 自适应均衡化学习框架概述 该框架主要由两个模块组成: - **一致性约束模块**:用于增强预测的空间连贯性和稳定性。 - **动态样本重加权机制**:自动调整不同训练样本的重要性权重。 #### 空间校正的具体实施方式 为了应对像素级分类中的错误标记问题,在训练过程中加入了额外的一致性损失项来鼓励相邻区域具有相似语义类别。具体来说,对于每一个输入图片 \(I\) 及其对应的含噪掩码图 \(M_{noisy}\),定义了一个基于距离度量的空间平滑函数 \(S(p,q)\)。 ```python import torch.nn.functional as F def spatial_correction_loss(pred, mask_noisy): # pred: 模型输出的概率分布 (N,C,H,W) # mask_noisy: 带有噪声的真实标签 (N,H,W) N, C, H, W = pred.shape # 计算softmax后的概率分布 prob_dist = F.softmax(pred, dim=1) # 获取最可能类别的索引作为伪标签 pseudo_labels = torch.argmax(prob_dist.detach(), axis=1).long() # 定义高斯核大小和标准差参数 kernel_size = 7 sigma = 2.0 # 创建二维高斯滤波器 gaussian_filter = get_gaussian_kernel(kernel_size, sigma).to(mask_noisy.device) # 对真实标签应用高斯模糊以获得软化的邻域信息 smoothed_mask = F.conv2d( input=F.one_hot(mask_noisy.long()).float().permute(0, 3, 1, 2), weight=gaussian_filter, padding=(kernel_size//2,) ) # 将通道维度移回最后一位并转换成整数类型 smoothed_mask = smoothed_mask.permute(0, 2, 3, 1).argmax(dim=-1).int() # 计算交叉熵损失 loss = F.cross_entropy(pred, smoothed_mask) return loss ``` 此代码片段展示了如何利用高斯卷积操作对原始噪声标签进行平滑处理,并将其应用于计算最终的目标函数的一部分——即空间矫正损失。这种方法有助于减少局部不一致的影响,从而提高整体分割质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值