首页 > 编程知识 正文

视频语义分割笔记怎么做,语义分割视频教程

时间:2023-05-04 10:50:50 阅读:272815 作者:2745

video semantic segmentation 第一篇、Deep Feature Flow for Video Recognition(DFF)(2017)

提出问题:快速准确的视频识别对于自动驾驶和视频监控等高价值场景至关重要。 然而,将现有的图像识别网络应用于单个视频帧会导致大多数应用无法承受的计算成本。

解决问题:在这项工作中,我们介绍了深度特征流,这是一种快速准确的视频识别方法。 它在稀疏关键帧上应用图像识别网络。 它通过光流将深度特征图从关键帧传播到其他帧。

使用方法:光流法

整体网络训练策略

1)采用随机梯度下降SGD,在每个batch,将一个关键帧k 和 随机非关键帧 i 进行匹配,其中0<=i - k<=9,(比如cityscapes是第20帧标注的视频,每个视频总共有30帧,那么我们需要取出第20帧到29帧)进行训练。求损失的时候还是用标签和输出特征图进行criterion计算
(但是我有一点不明白,非关键帧没有标签图怎么求损失?????)

2)我们在光流网络的最后输出中额外添加一些通道作为比例场输出(比例场用来正则化由于遮挡引起的光流传播误差。)

3)这里解决了我对第一点的疑惑:特征从帧k 到帧i 的传播是通过这个函数进行的,M是预测的光流场,S是预测出来比例场,假设非关键帧有标签,那么在损失反向传播的过程中,我们可以对帧i的损失求梯度,,在这一项中包含了k帧的特征项,可以看出,对于每一个非关键帧的损失,即使没有标签图,他们的损失也是可以通过求关键帧的损失求得的,所以文章才说,在以前没有使用光流的时候,训练视频图像,进行逐帧训练只能使用带注释的帧,而DFF可以轻松使用所有帧,只要对其中某一帧i进行了注释。 换句话说,即便使用稀疏的关键帧注释,DFF也可以充分使用数据。 这对于许多视频识别任务可能是有益的。

推理复杂度

网络结构

光流网络:默认采用FlowNetS,我们还设计了两个较低复杂度的变体。第一个称为FlowNet Half,将FlowNet每一层中的卷积内核数量减少了一半,并将复杂度降低到了1/4。第二个被称为FlowNet Inception,采用了Inception结构,并将复杂度降低到FlowNet的1/ 8。 在飞行椅数据集上对这三个光流网络进行了预训练。输出步幅为4。输入图像为一半原图大小。 因此,流场的分辨率为原始分辨率的1/8。 由于特征网络的特征步长为16,因此使用双线性插值法将流场和比例场进一步缩小一半,以匹配特征图的分辨率。
特征提取网络ResNet50ResNet101按照DeepLab做法,特征步长从32减少到16以生成更密集的特征图。将conv5层的第一个块修改为步长为1。将空洞算法应用于conv5中的所有3×3卷积核,以保持视野(膨胀比率= 2)。 将随机初始化的3×3卷积附加到conv5,以将特征通道尺寸减小到1024,在该处还应用了空洞算法(膨胀= 6)。 生成的1024维特征图是后续任务的中间特征图。

实验

基础网络训练是在2975张训练图片上进行的,整体网络因该是在视频帧上进行的???
一共用了8个GPU(普通人玩不起。。。。)batchsize = 64 ,每张GPU分配8张。

评估

对于特征提取网络Nfeat,默认为ResNet-101模型。 对于光流网络F,默认为FlowNet。 根据数据集中视频的不同帧速率,默认情况下,对于Cityscapes分割,关键帧持续时间长度l为5(即每隔5帧选取一个关键帧)(cityscapes是1秒17帧即每隔大约0.3秒更新关键帧

精度与速度的权衡

关键帧设置的越密集,推理速度越慢,精度越高,反之越稀疏,速度越快,精度越低。

s为加速因子,l为关键帧持续长度,r为计算开销比例,l越大,s越大,网络速度越快。可以在速度与精度之间进行平稳的折衷,并可以灵活地满足不同的应用需求。
选择flownet half 最快,精度也较好。为了实现相同的高速,ResNet-101比ResNet-50需要更大的关键帧长度l。
从图中可以看出用resnet50可以达到69.7的精度(l=0,即每帧都预测,只有2fps)随着l的增大,速度越快,精度越低。直到l = 10,精度最低达到62.3,fps为17.8(resnet50 + flownet inception)
l = 5 ,69.2 miou ,5.6fps(resnet50)
#### 任务网络的分界点
经过实验证明:Ntask的网络是可以完全去除的,不仅不影响精度,而且可以以高分割速度。这等效于在语义分割直接传播最终的预测图。但是在精度和速度上,使用0层与使用1层几乎是等效的。 我们选择1层作为默认图层,因为在特征传播之后会保留一些可调参数,这可能更通用。(即Ntask保留一层一维卷积层,即把1024的维度绛维成classes维度的那一层)

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

第二篇 Dynamic Video Segmentation Network(DVSNet)(2018)

摘要

在Cityscape数据集上,我们的DVSNet能够以19.8 fps的速度达到70.4%的mIoU。高速版本的DVSNet能够在同一数据集上以63.2%的mIoU提供30.4的fps

方法

我们进一步提出了两种技术:(i)自适应关键帧调度策略,以及(ii)决策网络(DN)
所提出的自适应关键帧调度策略根据称为期望置信度得分的新度量来更新关键帧。对每个帧区域评估预期的置信度得分。预期置信度得分越高,光流网络生成的分割图与分割网络相似的可能性就越大。

首先分析帧区域的预期置信度得分。如果其预期置信度得分高于预定义阈值,则由光流网络进行处理。否则,将其分配给分割网络。决策阈值可针对不同场景进行调整。较高的阈值会导致分割结果的mIoU更高,而较低的阈值则延迟更低。可调整阈值允许DVSNet应用于各种情况。

在本文中,我们将FlowNet 2.0的模块合并到我们的DVSNet中,以加速视频语义分割。

相关工作

Clockwork对网络中功能图的不同层采用不同的更新周期,并在某些网络层中重用过去帧的功能图以减少计算量。 深度特征流(DFF)利用光流网络生成流场,并将特征图从关键帧传播到附近的帧。 Clockwork的运行速度比每帧方法快1.3倍,但在Cityscapes数据集上,它的mIoU从65.9%降至64.4%。相比之下,DFF的运行速度比每帧方法快三倍,并且在相同数据集上,其mIoU仅从71.1%降至70.0%。 在准确性和效率方面,DFF表现出比Clockwork好得多的性能。 但是,主要缺点是它采用了固定的关键帧调度策略。 在DFF的启发下,提出的DVSNet包含了一种自适应关键帧调度策略,在准确性和效率上都比DFF更好。

网络相关步骤

DVSNet框架包括三个主要步骤。 DVSNet框架的第一步将输入帧分为帧区域。在图3中,我们假设Ik代表关键帧,Ii代表当前帧,并且帧区域的数量等于4。我们进一步假设时间戳为t的帧区域对应于关键帧区域,而时间戳为t + 10的帧区域对应于当前帧区域。关键帧区域和相应的当前帧区域之间的差异显示在左下方。在此示例中,区域1在时间戳t和t + 10之间显示出更多的像素差异,而其他区域仅稍有变化。在步骤2中,DN分析Ik和Ii之间的帧区域差距,并分别评估四个区域的预期置信度得分。 DN将每个区域的预期置信度得分与预定阈值进行比较。如果区域的预期置信度得分低于阈值,则将相应区域发送到分割路径(分割网络),否则它将被送入warp路径。

关键帧更新策略

DN(关键帧更新网络)训练策略

置信度分数的数学形式定义为:

P是帧区域总的像素个数,p是每个像素的id,O是光流网络输出的像素类别,S是分割网络输出像素类别。C是计算相似度的函数,当O和S相同时候为1,当O和S不同的时候为0。DN通过评估流网络F r的输出是否能够生成令人满意的区域分割Or来确定何时更新关键帧区域r。 给定目标阈值t,DN将其预期置信度得分与t进行比较。 如果高于t,则认为F r是令人满意的。 否则,将Ir(输入图片)转发到图3中的分割路径。所提出的自适应策略的优点是目标阈值t是可调整的。 较低的t导致较低的精度和较高的fps,另一方面,较高的t会导致较高的精度。

实验

我们在Cityscapes的每个验证视频片段的第1帧到第20帧上进行评估我们将第一个帧设置为初始关键帧,并在带注释的第20个帧上测量mIoU。关键操作)

网络架构Deeplab-Fast:对于复现的基准模型,我们从原始版本中删除了一些额外的功能,包括CRF,多尺度推断和滑动窗口分割,以提高其执行速度。 基线分割模型的mIoU和fps值以每帧的方式进行测量,而无需任何帧划分或流动网络的帮助。
阈值设得越低,那么关键帧更新得就越慢,mIOU就越低,反之阈值越高,关键帧就更新得越频繁,曲线如图所示。其中FLowNet-S是比FlowNet-s更深的网络,因此速度要慢一点
DVS还比较了4种关键帧调度策略的性能:
1)绿色:帧间差距(每两张图整体计算灰度值的差距):
由于是整张图都参与计算,所以可以看出速度是最慢的。G是求灰度值。
2)蓝色:固定帧策略(DFF)
3)黄色:光流的大小:
u和v分别代表水平和垂直运动。
4)红色:本文的关键帧调度策略,因为是只使用四分之二图像的像素,所以速度最快。
为了公平起见,所有网络都配置为(DeepLab-Fast,FlowNet2-s)。

实验细节
1)将光流网络最后一层的输出送进DN网络得到的误差最小(与标签的比例)

2)较高的比率表示更多的帧区域被转发到光流warp路径。可以显示出划分成2x2的区域最佳。
结果还表明,太少或太多的框架区域不能很好地利用空间扭曲路径。 没有任何帧区域的帧,DVSNet不能利用连续帧之间的帧差异中的非均质性。 过多的帧区域会导致预期置信度得分发生较大变化,从而导致许多帧区域频繁转发给分割网络。
帧重叠区域对结果的影响(划分成2x2的特征图时不是均匀划分?有重叠区域)
没有重叠的区域,DVSNet只能实现高达65.5%mIoU的精度。 但是,当重叠区域的深度增加时,mIoU精度也增加。 曲线在70%mIoU处饱和,对应于64个像素的重叠深度。 但是,更多的重叠像素会导致更大的帧区域,从而导致计算时间增加。 根据我们的实验,经验值64像素似乎是DVSNet的最佳选择。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。