2.1 Dynamic Video Segmentation Network
- code: tensorflow GitHub - XUSean0118/DVSNet: Modified implementation for DVSNet based on Tensorflow
- paper:http://openaccess.thecvf.com/content_cvpr_2018/papers/Xu_Dynamic_Video_Segmentation_CVPR_2018_paper.pdf
2.1.1 Introduction
网络分2部分:分割网络、流网络
分割网络:可以通过任何当代最先进的体系结构来实现
流网络:是在FlowNet 2.0[35]的基础上开发的。我们将每一帧划分为多个区域。连续帧之间差异较小的区域,其中大多数图像内容相似,应该遍历流网络(下图)
在内容发生显著变化的连续帧之间存在巨大差异的区域,必须通过分割网络(下图)
为了定义一种系统策略,在保持灵活性和可定制性的同时,有效地为两个网络分配帧区域,我们进一步提出了两种技术:
- (i)自适应关键帧调度策略
- (ii)决策网络(DN)
自适应关键帧调度策略:是决定是否通过分割网络处理输入帧区域的技术。之前采用的固定关键帧调度策略,这个方法是:按置信度来更新关键帧。
expected confidence score ---高于阈值-----→流网络
---低于阈值–----→分割网络
其中:决策阈值可针对不同场景进行调整。
决策网络 DN:得到估计输入帧区域的 expected confidence score
在DVSNet中,DN被实现为CNN,其网络大小远小于图像识别的典型网络架构。DN可以通过监督学习进行培训,具体内容见第3.4节。
2.1.2 背景
光流
光流估计,以前的大多数方法主要是为在CPU上运行而开发的,未能结合GPU提供的执行效率。对于在GPU上运行的深度学习方法,FlowNet[34]是第一个将DCNN应用于光流估计的模型。随后,它演变为两种最新的体系结构。一种被称为空间金字塔网络(SpyNet)[43],它使用[44]的从粗到细的空间金字塔结构来学习每个金字塔级别的残差流。另一个是FlowNet 2.0[35],它引入了一种新的学习时间表、堆叠架构和专门用于小运动的子网络,以增强流量估计。在本文中,我们将FlowNet 2.0的构建块集成到DVSNet中,以加速语义视频分割。
视频语义分割
Clockwork对网络中的不同层的特征图采用不同的更新周期,并在某些网络层中重用过去帧的特征图以减少计算[29]。
深度特征流(DFF)利用光流网络生成流场,并将特征图从关键帧传播到附近帧[30]。据报道,Clockwork的运行速度比每帧方法快1.3倍[29],然而,在Cityscapes数据集上,其mIoU从65.9%下降到64.4%[2],相比之下,DFF的运行速度是每帧方法的三倍,在相同的数据集上,其mIoU仅从71.1%略微下降到70.0%[30]。
DFF在准确性和效率方面都比Clockwork表现出更好的性能。
然而,一个主要的缺点是它采用了固定的关键帧调度策略。受DFF的启发,所提出的DVSNet采用了自适应关键帧调度策略,在准确性和效率方面都比DFF提供了更好的性能。
2.1.3 DVSNet网络结构和方法
基于DN的决策,在步骤3中,帧区域被转发到不同的路径,以生成它们的区域语义分割。对于空间扭曲路径,使用特殊的扭曲函数W(*)[30]来处理具有来自关键帧的同一区域的分割Sk的流网络F的输出,以生成该区域的新分割Oc。请注意,流量网络本身无法生成区域图像分割。它只是通过光流预测物体的位移,并且需要依赖于翘曲函数W(*)和关键帧中包含的信息。我们建议感兴趣的读者参考[30]了解W(*)的更多详细信息。
自适应调度阈值
下图是DFF的取关键帧策略(a);DVSNet取关键帧策略(b);
下图是DN的训练流程,以及DN在整个结构中的位置,DN的网络结构如图显示:一个卷积层,三个全连接
因此confidence score 的标注数值如下:是两个模型输出的计算结果
其中:
- C(u,v)是一个只有当u等于v时才输出1的函数,否则为0。
- P是像素总数
基于帧区域的执行方案的合理性
图中的实验数据来源解释:假设每个帧被划分为四个区域。绘制了从时间戳300到600的曲线,并使用固定的关键帧调度策略,该策略每15帧更新一次关键帧。
实验现象:可以看出,整个帧的置信度得分并没有随着时间的推移而明显波动。然而,在大多数情况下,不同帧区域的置信度得分显示出显著的变化。
DN及其训练方法
- 结构:DN是一种轻量级的CNN,仅由一个卷积层和三个全连接层组成。
- 输入:DN将流网络的一个中间层的特征图作为输入。
- 优化器:Adam优化器
- 损失:MSE损失
如下图:在Flow 网络中的哪层为DN的输入
2.1.4 实验
数据集:Cityscapes 训练集2975帧、验证集500帧和测试集1525帧
指标:第20帧上测量mIoU Fps
设备:带有两个Intel Xeon E5-2620 CPU和一个NVIDIA GTX 1080 Ti GPU的服务器上执行所有实验。
backbone:在实验中,我们预先训练了三个语义分割模型:DeepLab Fast、PSPNet、DeepLabv2,作为DVSNet中分割网络的基线模型。
DeepLab Fast是DeepLabv2[6]的修改版本,PSPNet和DeepLab-v2分别从PSPNet[8]和DeepLab-v2[6]中复制。对于复制的基线模型,我们从原始版本中删除了几个额外的特征,包括CRF、多尺度推理和滑动窗口分割,以提高它们的执行速度。
实验结果:
1)表中 Baseline 部分 :per-frame的三个实验结果,意思是每张都进分割模型的预测
2)表中的 Balance mode下的不同阈值,t,代表有阈值限制下的部分帧FlowNet预测,另一部分关键帧分割模型预测
3)表中 Hight-speed mode下的实验是,严格t的要求,更少的关键帧,更快速的推理
进一步实验:精度和速度的平衡关系
1) 不同阈值t下的: Y-精度(mIoU)和 X-帧速率(fps)
2) 单看绿色曲线,都是Deeplab-v2 ,随着阈值的降低,准确率↓,速度↑
3)FlowNet2-s、FlowNet2-S 是相同结构不同深浅的网络 S深 s浅
进一步实验:DVSNet自适应关键帧调度策略的验证
其中:
- d:帧差,顾名思义:帧和帧的差
- f:流量,所有像素点移动的幅度
- u和v分别表示水平和垂直移动
- G(*)是将RGB图像转换为灰度图像的灰度算子
- P:是帧区域中的像素总数
1)在不同的关键帧调度策略下,Y-准确度(mIoU)与 X-帧速率(fps)的关系。
2) t是目标置信度得分阈值。红线 DVSNet 策略在不同的阈值t下的 Y/X
3) l是DFF[30]中的关键帧更新周期。蓝线 ,不同周期的 Y/X
4) d是帧差阈值。使用帧差数值为判断是否为关键帧,绿线,不同帧差的Y/X
5) f是流量大小阈值。使用移动量数值为判断是否为关键帧,黄线,不同流量的Y/X
进一步实验:DN配置进行的实验
我们对图7所示的许多DN配置进行了实验,并在表2中总结了结果。
我们向DN提供来自流网络不同层的特征图,包括第4、第5和第6卷积层之后的特征图。
我们在表2中添加了一行【key-frame+flow】,以表示DN与关键帧和流网络的输出一起提供的情况。
可以观察到,在第6个卷积层之后的特征图导致最低的错误率。
进一步实验:帧划分方案的影响
1) 表3比较了五种不同方案来划分视频帧。原图、切成两半、2X2....
2) spatial warping/segmentation : 发送到 spatial warping 路径的帧区域的数量 与 发送到分割路径的帧区的数量 的比率
3) 较高的比率指示更多的帧区域被转发到 spatial warping 路径。我们观察到,2×2分割方案提供了spatial warping 路径的最佳利用。
4) 结果还表明,太少或太多的帧区域不能很好地利用spatial warping 路径。
5) 没有任何帧区域的帧禁止DVSNet利用连续帧之间的帧差异的非均匀性。
6) 过多的帧区域导致频繁转发到分割网络。
进一步实验:重叠区域对精度的影响
1) Y-准确度(mIoU)与 X-重叠区域深度(pix)
2) 当重叠区域的深度增加时,mIoU精度也增加