点个关注,每天更新两篇计算机视觉的文章
论文原称:Zhang B, Wang L, Wang Z, et al. Real-time action recognition with enhanced motion vector CNNs[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 2718-2726.
背景:双流卷积网络需要使用光流,而光流计算很费时,在K40GPU上每计算一帧需要60ms,这非常影响它的实时性,为此,本文应运而生。
前提知识:
在图像和视频压缩方面,使用H264协议对图像或视频进行压缩。具体理解如下:对第一帧进行帧内压缩,可得到 I 帧,对第一帧后面的帧进行帧间压缩可得到P帧和B帧。完整编码的帧叫 I 帧,参考之前的 I 帧生成的只包含差异部分编码的帧叫 P 帧(意思就是P帧是表明了某一帧在前一帧的像素变化值,需要通过前一帧和P帧才能得到它的下一帧图像,以此类推得到整个视频图像),还有一种参考前后的帧编码的帧叫 B 帧(这个用的比较广,压缩效率更高,B帧表示前后帧的差异)。本文里提到的motion vection指的就是P帧,即帧间像素变化,I帧是不包含运动信息的,在本文使用前一帧(指的是P帧)来代替遇到的I帧。
主要贡献:
- 提出使用光流CNN(OF-CNN)来训练运动向量CNN(MV-CNN),以实现光流的准确性和运动向量的实时性的结合效果。
- 提出三种训练方法用来结合光流和运动向量,以提高模型实时性
数据集:UCF-101, THUMOS14
模型:用于视频行为识别的双流卷积网络
论文主要思想:
motion vector 是基于比较大的像素块,而optical flow是基于像素点。因此motion vector的识别效果并不好,但计算速度很快,实时性很高,而optical flow刚好相反,识别效果好,计算速度很慢,导致实时性很低。本文主要的内容就是提出三种训练方式来结合OF-CNN和MV-CNN的优点,避免各自的缺点。简称优劣互补。这里OF-CNN和MV-CNN的网络结是一样的。
第一种Teacher Initialization (TI):由于光流和运动向量都是描述局部区域的信息(光流具体到像素点,运动向量描述的是像素块),因此他们在内在上是相关的。考虑到这点,论文提出使用已经训练好的OF-CNN的参数作为MV-CNN的初始化参数。然后再finetune MV-CNN直到它们融合。
第二种Supervision Transfer (ST):考虑到使用第一种方式可能会导致在finetune过程中从OF-CNN带过来的语义信息会丢失,因此第二种方式采用OF-CNN的FC Layer监督MV-CNN的训练。这种灵感来源于知识蒸馏,但知识蒸馏更偏重的是在一个小的模型上学到大模型的效果,而此处两个模型的结构是一样的,因此更偏重于让MV-CNN学到OF-CNN的效果,而不是把MV-CNN压缩得很小。
那这里是怎么实现监督的呢?方式如下:
(1)采用softmax计算fc layer的输出,Tn(o) = softmax(T(n−1)(o)),
Sn(v) =softmax(S(n−1)(v)),得到Tn(o),Sn(o),(T指的是teacher,即OF-CNN,S指的是student,即MV-CNN,n-1指的是第n-1层,是个下标)。这里之所以使用softmax是为了把输出值映射为各个类别的概率。为了把OF-CNN学到的特征教给MV-CNN,使用下面的交叉熵损失函数 来使得Tn(o)与Sn(o)尽可能地接近。
(2)使用了temp软化fc layer的输出,意思差不多等同于把Hard labels转化为soft labels。具体实施函数是:PT = softmax(T n−1/T emp), PS = softmax(Sn−1/T emp)
(3)除了考虑到监督的损失函数外,还要最小化MV-CNN的输出与ground truth的差距(公式3)。对于这两个损失函数,采用加权和的方式作为最终的损失函数(公式4)。
第三种Combination(TI+ ST):简单来说就是先训练OF-CNN,再把训练好的参数传给MV-CNN,这是第一种方式,然后再用第二种方式进行监督训练。
评估:
1.论文对OF-CNN,从零训练的MV-CNN,使用三种方式训练得到的EMV-CNN在两个数据集(UCF-101和THUMOS-14)在精度上进行了效果对比。
结论:使用(这三种训练方式来)增强的motion vector可以减少Temporal CNN中加入motion vector带来的精度损失,但速度是大大提升了,论文提出的方法提高了MV-CNN的泛化能力。
- 在两个数据集上测试了计算motion vector 和optical flow以及同时计算两者的速度。
结论:实时性很好,如果是使用第三种方式,每秒能计算390多帧。
3.采用w = temp^2,temp 取1,2,3。论文对这三个值进行了效果对比,差别不大,精度分别为78.9%, 79.3%, 79.2%。接下来的实验temp 取2。
4.最后,本文的模型是基于双流卷积的,因此还加入了Spatial CNN,组成了EMV+RGB-CNN在两个数据集上和在不同的设备上进行了实时性的测试,以及与其他的SOTA模型进行了精度和实时性的对比。
结论:精度略低于双流卷积模型,但实时性却接近它的30倍。精度和实时性都高于其他模型。
本文来源于公众号 CV技术指南 的技术总结系列。如有错误或不合理之处,欢迎在评论中指正。
欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。
在公众号中回复关键字 “技术总结” 可获取以下文章的汇总pdf。
其它文章
视觉目标检测和识别之过去,现在及可能
siamerse network总结
计算机视觉专业术语总结(一)构建计算机视觉的知识体系
欠拟合与过拟合技术总结
归一化方法总结
论文创新的常见思路总结
CV方向的高效阅读英文文献方法总结
计算机视觉中的小样本学习综述
知识蒸馏的简要概述
优化OpenCV视频的读取速度
NMS总结
损失函数技术总结
注意力机制技术总结
特征金字塔技术总结
池化技术总结
数据增强方法总结
CNN结构演变总结(一)经典模型
CNN结构演变总结(二)轻量化模型
CNN结构演变总结(三)设计原则
如何看待计算机视觉未来的走向
CNN可视化技术总结(一)-特征图可视化
CNN可视化技术总结(二)-卷积核可视化
CNN可视化技术总结(三)-类可视化
CNN可视化技术总结(四)-可视化工具与项目