2021-Flow-based Video Segmentation for Human Head and Shoulders

FUNet视频分割
提出一种基于光流的视频分割方法FUNet,通过阈值化光流获得运动信息,结合原始图像进行人体头部及肩部的实时分割。适用于视频会议等场景。

1. Title

论文链接:Flow-based Video Segmentation for Human Head and Shoulders
代码以及数据集链接:https://github.com/kuangzijian/Flow-Based-Video-Segmentation

2. Summary

本文提出的FUNet整体较为简单,主要就是基于PWCNet完成了光流预测,并通过设定阈值的方式,将光流转化为了Motion Feature Mask,该Mask作为辅助信息与原图一起送入一个简单的UNet网络中完成最终的视频分割任务。作者尚未在其他数据集中进行实验和测试,模型泛化能力尚不清楚。
除此之外,本文还提出了一个ConferenceVideoSegmentationDataset用于后续研究。

3. Problem Statement

人体头部以及肩膀部位的视频分割对于视频会议、虚拟现实应用来说是十分重要的,其难点在于如何在存在运动模糊的情况下,实时地对高质量视频进行前背景的分离。

4. Method(s)

为了解决上述问题,本文提出了一个Flow-Based Encoder-Decoder Network(FUNet)。
该网络的整体架构如下图所示:
整体架构
FUNet首先会对一个视频序列每两帧进行一次光流估计,并通过阈值化的方式将其转换为一个二值图,该二值图即可表征两帧之间的运动信息,随后该运动特征将会与原图进行拼接,送入到一个简单的UNet网络中用于完成最后的分割任务。

4.1 Motion Feature Extraction

本文的光流估计模块主要是基于PWCNet,模型结构见下图。
PWCNet
对于输入的两张图片 I 1 I_1 I1 I 2 I_2 I2,PWCNet对于每张图片均会生成 L L L层的特征金字塔,对于每一层特征,PWCNet将会将 I 2 I_2 I2的特征warp到 I 1 I_1 I1对应层的特征上,然后PWCNet将会构建一个Cost Volume用于存储当前帧和前一帧对应像素之间的Matching Costs,最终PWCNet将会基于上一层上采样后的光流预测结果以及当前层的Cost Volume来预测本层对应的光流。

基于PWCNet,FUNet即可对于一个视频序列预测其对应的光流,为了进一步获取其运动信息,降低噪声干扰,FUNet会基于一个阈值,将光流进行阈值化,对于每一帧都会得到一个Motion Feature Mask。

4.2 Motion and Appearance Fusion

在得到每一帧的Motion Feature Mask后,FUNet会将其与原始帧的RGB图片拼接在一起,然后送入一个简单的UNet网络中用于完成后续的分割任务。

4.3 Dataset

除了提出FUNet以外,本文还提供了一个在线会议形式的绿屏视频数据集,该数据集包含10个视频,一共3600帧图片。

5. Evaluation

作者仅在提出的数据集中完成了评估,评估指标为Dice Coefficient,在测试集上的指标为0.96.

6. Conclusion

本文主要是利用了PWCNet完成了光流估计,并采用阈值化的方法将光流转化为了运动信息,同时还提出了一个ConferenceVideoSegmentationDataset用于后续研究。

参考提供的引用内容,未涉及基于多注意力变压器和自适应超像素分割的主动学习的高光谱图像分类(Multi - Attention Transformer and Adaptive Superpixel Segmentation - Based Active Learning for Hyperspectral Image Classification)的相关信息。 高光谱图像分类是指对高光谱图像中的每个像素进行类别标记的过程。多注意力变压器(Multi - Attention Transformer)能够捕捉高光谱数据中的复杂特征和长距离依赖关系,自适应超像素分割可将图像分割成具有相似特征的区域,减少数据的冗余性,主动学习则可以通过选择最有价值的样本进行标注,提高分类效率和准确性。 在基于多注意力变压器和自适应超像素分割的主动学习的高光谱图像分类中,多注意力变压器可以用于提取高光谱图像的深层特征,自适应超像素分割可以将图像进行预处理,生成更有意义的超像素块,而主动学习则可以不断选择最具代表性的超像素块进行标注,以提升分类模型的性能。 ### 代码示例 以下是一个简化的高光谱图像分类流程示例(仅为概念展示,非完整代码): ```python import torch import torch.nn as nn # 定义多注意力变压器模块 class MultiAttentionTransformer(nn.Module): def __init__(self, input_dim, num_heads): super(MultiAttentionTransformer, self).__init__() self.multihead_attn = nn.MultiheadAttention(input_dim, num_heads) def forward(self, x): attn_output, _ = self.multihead_attn(x, x, x) return attn_output # 假设的自适应超像素分割函数 def adaptive_superpixel_segmentation(image): # 这里需要实现具体的自适应超像素分割算法 # 简单示例,返回分割后的超像素块 return image # 主动学习选择样本函数 def active_learning_selection(model, unlabeled_data): # 选择最有价值的样本 # 简单示例,随机选择 import random selected_index = random.choice(range(len(unlabeled_data))) return unlabeled_data[selected_index] # 高光谱图像分类模型 class HyperspectralClassifier(nn.Module): def __init__(self, input_dim, num_classes): super(HyperspectralClassifier, self).__init__() self.transformer = MultiAttentionTransformer(input_dim, num_heads=4) self.fc = nn.Linear(input_dim, num_classes) def forward(self, x): x = self.transformer(x) x = self.fc(x) return x # 示例使用 input_dim = 100 num_classes = 10 model = HyperspectralClassifier(input_dim, num_classes) # 模拟高光谱图像数据 hyperspectral_image = torch.randn(1000, input_dim) # 自适应超像素分割 segmented_image = adaptive_superpixel_segmentation(hyperspectral_image) # 主动学习选择样本 unlabeled_data = segmented_image selected_sample = active_learning_selection(model, unlabeled_data) # 训练模型 # 这里需要实现具体的训练流程 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值