使用增强运动向量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倍。精度和实时性都高于其他模型。

 

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

相关文章
|
网络安全 开发工具 git
Git - 本地 Git 绑定 Gitee 仓库
Git - 本地 Git 绑定 Gitee 仓库
805 0
Git - 本地 Git 绑定 Gitee 仓库
|
11月前
|
JavaScript 算法 安全
基于 WebWorker 的 WebAssembly 图像处理吞吐量深度优化指南
本文深入探讨了基于 WebAssembly (WASM) 和 WebWorker 的高性能图像处理技术,通过优化线程架构与内存管理,实现 4K 图像处理性能比纯 JS 提升 23 倍,同时保持界面流畅(60fps)。文章从技术演进、流水线设计到内存管理实战技巧全面解析,并提供性能瓶颈分析与调优方法。实验表明,在 4K+ 分辨率下,“计算靠近数据”策略可进一步提升性能 40%。最终,方案在生产环境中达成 8K 实时处理 (<30ms/帧),展现浏览器端图像处理的强大潜力。
693 12
|
数据库
数据库五种基本运算
【5月更文挑战第15天】数据库的关系代数包括并、差、投影、笛卡尔积和选择等基本运算,以及交、连接、除、广义投影和外连接等扩展运算。在这些操作中,笛卡尔积通常最消耗资源,因为它会大幅增加元组数量和计算量。
1990 4
数据库五种基本运算
|
jenkins 持续交付 开发工具
【gitlab】旧的gitlab项目迁移新的gitlab
【gitlab】旧的gitlab项目迁移新的gitlab
2591 0
|
机器学习/深度学习 数据采集 算法
快速找到离群值的三种方法
本文将介绍3个在数据集中查找离群值的Python方法
1350 117
快速找到离群值的三种方法
|
JavaScript 前端开发
IIFE(立即执行函数表达式)
IIFE(立即执行函数表达式)
309 1
|
Web App开发 开发者
|
网络协议 应用服务中间件 网络安全
如何排查Nginx配置问题导致的域名访问错误
如何排查Nginx配置问题导致的域名访问错误
2114 2
|
存储 算法 安全
RSA密码系统的特定密钥泄露攻击与Coppersmith方法的应用
`PrimiHub`是一个由密码学专家团队开发的开源隐私计算平台,关注数据安全、密码学、联邦学习和同态加密等领域。文章探讨了RSA公钥加密算法的安全性,指出大整数分解难题是其基础,但Coppersmith方法在特定条件下能威胁RSA。方法利用数论和格约简(如LLL算法)寻找模多项式方程的近似根,可用于小公开指数或低位泄露攻击。当RSA密钥部分泄露时,攻击者可尝试恢复完整密钥。为增强RSA安全性,应使用更长的密钥,选择合适公钥指数,并保护私钥不泄露。随着量子计算发展,后量子密码学成为研究焦点。
650 2