欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  互联网

使用增强运动向量CNNs的实时行为识别

程序员文章站 2022-04-01 12:41:06
论文原称:Zhang B, Wang L, Wang Z, et al. Real-time action recognition with enhancedmotion vector CNNs[C]//Proceedings of the IEEE Conference on ComputerVision and Pattern Recognition. 2016: 2718-2726.背景:双流卷积网络需要使用光流,而光流计算很费时,在K40GPU上每计算一帧需要60ms,这非常影响它的实时性,为...

论文原称: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帧。
使用增强运动向量CNNs的实时行为识别

主要贡献:

  • 提出使用光流CNN(OF-CNN)来训练运动向量CNN(MV-CNN),以实现光流的准确性和运动向量的实时性的结合效果。
  • 提出三种训练方法用来结合光流和运动向量,以提高模型实时性

数据集:UCF-101, THUMOS14

模型:用于视频行为识别的双流卷积网络

论文主要思想:
使用增强运动向量CNNs的实时行为识别
motion vector 是基于比较大的像素块,而optical flow是基于像素点。因此motion vector的识别效果并不好,但计算速度很快,实时性很高,而optical flow刚好相反,识别效果好,计算速度很慢,导致实时性很低。本文主要的内容就是提出三种训练方式来结合OF-CNN和MV-CNN的优点,避免各自的缺点。简称优劣互补。这里OF-CNN和MV-CNN的网络结是一样的。
使用增强运动向量CNNs的实时行为识别
第一种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)。
使用增强运动向量CNNs的实时行为识别
使用增强运动向量CNNs的实时行为识别

第三种Combination(TI+ ST):简单来说就是先训练OF-CNN,再把训练好的参数传给MV-CNN,这是第一种方式,然后再用第二种方式进行监督训练。

评估:

1.论文对OF-CNN,从零训练的MV-CNN,使用三种方式训练得到的EMV-CNN在两个数据集(UCF-101和THUMOS-14)在精度上进行了效果对比。

使用增强运动向量CNNs的实时行为识别使用增强运动向量CNNs的实时行为识别

结论:使用(这三种训练方式来)增强的motion vector可以减少Temporal CNN中加入motion vector带来的精度损失,但速度是大大提升了,论文提出的方法提高了MV-CNN的泛化能力。

  1. 在两个数据集上测试了计算motion vector 和optical flow以及同时计算两者的速度。
    使用增强运动向量CNNs的实时行为识别
    使用增强运动向量CNNs的实时行为识别
    结论:实时性很好,如果是使用第三种方式,每秒能计算390多帧。

3.采用w = temp^2,temp 取1,2,3。论文对这三个值进行了效果对比,差别不大,精度分别为78.9%, 79.3%, 79.2%。接下来的实验temp 取2。

4.最后,本文的模型是基于双流卷积的,因此还加入了Spatial CNN,组成了EMV+RGB-CNN在两个数据集上和在不同的设备上进行了实时性的测试,以及与其他的SOTA模型进行了精度和实时性的对比。
使用增强运动向量CNNs的实时行为识别
使用增强运动向量CNNs的实时行为识别

结论:精度略低于双流卷积模型,但实时性却接近它的30倍。精度和实时性都高于其他模型。

如有错误或不合理之处,欢迎在评论中指正。
欢迎关注公众号“CV技术指南”,主要进行计算机视觉方向的论文解读,最新技术跟踪,以及CV技术的总结。
使用增强运动向量CNNs的实时行为识别

本文地址:https://blog.csdn.net/KANG157/article/details/109002270

相关标签: 计算机视觉