科研:
一、C3D(Learning Spatiotemporal Features with 3D Convolutional Networks)
1.首先介绍一下3D卷积:(与2D卷积对比)
2D不管有多少通道,一个卷积核只能对应输出一张特征图,这样就只存在了空间关系,丧失了时间关系
上面进行卷积操作的时间维度为3(kernel temporal depth),即对连续的三帧图像进行卷积操作,上面的 3D卷积是通过堆叠多个连续的帧组成一个立方体,然后在立方体中运用3D卷积核。在这个结构中,卷积层中每一个特征map都会与上一层中多个邻近的连续帧相连,因此捕捉运动信息。例如上面左图,一个卷积map的某一位置的值是通过卷积上一层的三个连续的帧的同一个位置的局部感受野得到的。
需要注意的是:3D卷积核只能从cube中提取一种类型的特征,因为在整个cube中卷积核的权值都是一样的,也就是共享权值,都是同一个卷积核(图中同一个颜色的连接线表示相同的权值)。我们可以采用多种卷积核,以提取多种特征。
2.下面分析一下对kernel temporal depth的选取问题
@数值选为多少合适?文中做了实验
其中证明depth=3效果最好,同时也证明了3D卷积比2D卷积效果好(depth=1即为2D卷积)
@各个卷积层如何选择depth?
两种方式:一种是所有层的depth相同,另一种是所有层depth不同(increase:3-5-5-7,decrease:7-5-5-3)
经过两个实验得出结论,3*3*3的卷积层效果最好!
3.文中还提到了Slow Fusion模型
该模型在前几层的卷积过程中,包含了时间信息,作者认为这是它表现好的原因,但是在最后一层fusion的过程中,还是完全丧失了时间信息,所以造成了一定缺陷。
二、mxnet编译
CUDA_VISIBLE_DEVICES=1 python ./rfcn/demo.py (使用RFCN网络一帧一帧进行测试)
CUDA_VISIBLE_DEVICES=1 python ./dff_rfcn/demo.py (使用deep feature flow进行测试)
对比后可以明显看出,dff速度的提高,但从标注的准确性上来说,略有欠缺。
而且DFF第一帧的训练时间与rfcn相同,也符合其提出的方法。