论文笔记 之Clockwork Convnets for Video Semantic Segmentation

1,本文解决的问题

应用于单帧的语义分割直接应用于视频时,计算量太大。即如何降低视频语义分割的整体计算量和延迟?

2,本文的方法

通过研究视频各帧在时间上的关联,减少计算量。

1,作者的两个观察

1,深层特征变化比浅层特征慢

图像的像素变化很大,但是场景的语义信息变化很小(深层特征变化比浅层特征慢)

作者设计了一个实验来证明和探究这种现象:
将两帧时间戳t,t-1相近图像输入卷积神经网络(好像是FCN),将其在某个layer输出的特征图St和St-1(尺度:WxHx深度)输入到一个打分层l(score layer)。
l是一个线性层,其预测St和St-1的每一个像素是K个类别的概率,l的输出是Stl和St-1l(尺度:WxHxK)。
将Stl和St-1l改为one-hot-encoding形式,即将概率最大的类别设为1,其余为0。
使用hamming distance(值不同的位的数量) 计算Stl和St-1l的one-hot-encoding形式的difference:dsm
论文笔记 之Clockwork Convnets for Video Semantic Segmentation
作者计算了不同layer的dsm,结果见表Table1和图Fig2:
论文笔记 之Clockwork Convnets for Video Semantic Segmentation可以看到,越深层的特征,dsm越小。
作者认为原因有两点:
    1,网络结构方面:更多的Pooling使得对于translation和noise更加鲁棒;
    2,学习方面:features转变为跟目标类别有关的高级特征,而不是跟普通的外表(general appearance)有关的特征
论文笔记 之Clockwork Convnets for Video Semantic Segmentation作者用相邻帧的高级特征改造后作为当前帧的高级特征进行语义分割,从而减少计算量。
但从Fig2可以看出,对于运动比较大的视频Fig2(左),高级特征也有比较大的变化。
因此,应该自适应的选择高层特征dsm大的帧进行update,但是直接用高层特征dsm作为判断依据就违背了通过省略高层特征的计算降低计算量的初衷。
作者发现,低层特征pool4和高层特征fc7的dsm变化趋势相同,因此用低层特征的dsm作为自适应判断依据。

2,可以将执行过程(execution)视为网络结构(architecture)的一个方面,从而可以根据目标为网络设计计算时间表

可以将执行过程(execution)视为网络结构(architecture)的一个方面,从而可以根据目标为网络设计计算时间表

2,本文的策略

本文提出模型的结构如图Fig3所示:
论文笔记 之Clockwork Convnets for Video Semantic Segmentation本质上是在FCN的基础上加了三个时钟clock信号,来控制FCN的计算过程。以FCN的conv1,conv4,conv5的输入为界,将FCN分成3个stage,每个stage根据相应的clock信号选择执行计算(文中称为update)或者使用之前缓存的计算结果。可以简单的将clock看作开关。

作者采用了三种clock模式:
1,exponential clockwork,指数时钟。clock1一直触发,clock1,clock2,clock3的触发(update)成指数递减,
2,alternating clockwork,交替时钟。clock1,一直触发,clock2和3同时每两帧触发一次。
3,adaptive clockwork,自适应时钟。clock1,一直触发,当pooling4的特征图与缓存中相应特征图的dsm大于一定阈值时,clock2和3同时触发。