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

简介: 论文原称: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.

论文原称: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帧。


image.png

主要贡献:


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


  • 提出三种训练方法用来结合光流和运动向量,以提高模型实时性


数据集:UCF-101, THUMOS14


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


论文主要思想:


image.png

motion vector 是基于比较大的像素块,而optical flow是基于像素点。因此motion vector的识别效果并不好,但计算速度很快,实时性很高,而optical flow刚好相反,识别效果好,计算速度很慢,导致实时性很低。本文主要的内容就是提出三种训练方式来结合OF-CNN和MV-CNN的优点,避免各自的缺点。简称优劣互补。这里OF-CNN和MV-CNN的网络结是一样的。


image.png


第一种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)。


image.png


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


评估:


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


image.png


image.png


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


在两个数据集上测试了计算motion vector 和optical flow以及同时计算两者的速度。


image.png


image.png


结论:实时性很好,如果是使用第三种方式,每秒能计算390多帧。


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


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


image.png


image.png


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

 

如有错误或不合理之处,欢迎在评论中指正。

相关文章
|
2月前
|
机器学习/深度学习 数据采集 编解码
深度学习之实时医学影像增强
基于深度学习的实时医学影像增强是一种将先进的深度学习技术应用于医学影像处理的创新方法,旨在通过高效的图像增强算法帮助医生更准确地诊断和治疗患者。
62 2
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能质量检测与控制
使用Python实现深度学习模型:智能质量检测与控制 【10月更文挑战第8天】
188 62
使用Python实现深度学习模型:智能质量检测与控制
|
13天前
|
存储 自然语言处理 算法
“无”中生有:基于知识增强的RAG优化实践
本文作者基于自身在RAG技术领域长达半年的实践经验,分享了从初识RAG的潜力到面对实际应用挑战的心路历程,以及如何通过一系列优化措施逐步解决这些挑战的过程。
180 19
“无”中生有:基于知识增强的RAG优化实践
|
1月前
|
机器学习/深度学习 数据采集 传感器
使用Python实现深度学习模型:智能土壤质量监测与管理
使用Python实现深度学习模型:智能土壤质量监测与管理
215 69
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能舆情监测与分析
【8月更文挑战第16天】 使用Python实现深度学习模型:智能舆情监测与分析
356 1
|
2月前
|
机器学习/深度学习 传感器 数据采集
深度学习之设备异常检测与预测性维护
基于深度学习的设备异常检测与预测性维护是一项利用深度学习技术分析设备运行数据,实时检测设备运行过程中的异常情况,并预测未来可能的故障,以便提前进行维护,防止意外停机和生产中断。
78 1
|
2月前
|
数据采集 机器学习/深度学习 TensorFlow
声纹识别实战:从数据采集到模型训练
【10月更文挑战第16天】声纹识别技术通过分析个人的语音特征来验证其身份,具有无接触、便捷的特点。本文将带你从零开始,一步步完成声纹识别系统的构建,包括数据采集、音频预处理、特征提取、模型训练及评估等关键步骤。我们将使用Python语言和相关的科学计算库来进行实践。
216 0
|
3月前
|
机器学习/深度学习 自然语言处理 语音技术
FunAudioLLM与其他语音模型多维度对比简析
FunAudioLLM与其他语音模型多维度对比简析
114 13
|
7月前
|
机器学习/深度学习 算法 计算机视觉
ython打造智能车牌识别系统,实现快速准确的车辆识别与追踪技术
ython打造智能车牌识别系统,实现快速准确的车辆识别与追踪技术
|
7月前
|
机器学习/深度学习 运维 算法