动作识别与关系推理 动作识别综述
yuyutoo 2024-10-21 12:12 1 浏览 0 评论
作者:知乎—寒寒寒寒寒啊
地址:https://www.zhihu.com/people/han-han-han-han-han-a-5
关注action recognition大概3个多月,从做videonet的竞赛到公司实习,都在做动作识别相关算法的研究,19年cvpr,iccv关于动作识别相关paper的研究重点来看,其中有两个我比较关注:long-term和relation modeling,long-term的motivation比较直接,之前的动作识别算法无论是基于frame level的TSN以及后续针对TSN做的改进算法如eco,trn,tsm等,还是基于3D卷积的i3d,p3d等,其都是short或者说middle term的,其只能关注到几秒的视频片段,但对于长时序的动作来说,是不够的,所以如何建模几十秒甚至分钟级别是非常重要的,Long-Term Feature Banks for Detailed Video Understanding通过建立一个长时序的特征库,去计算短期的特征与长期特征的交互来获得long-term的特征。
另外一个感兴趣的研究重点则是关系推理,关系推理最早是DeepMind的A simple neural network module for relational reasoning提出的,通过采用cnn提取的feature作为object来建模两两object之间的relation去做reasoning,取得了不错的效果,如下图,将特征图不同颜色的object两两配对并与LSTM提取的文字特征进行concat,然后通过几层FC去获得最终的结果。
后面将通过几篇相关论文展现动作识别领域是如何建模关系来进行推理的。
1:Videos as Space-Time Region Graphs
自Non-local Neural Networks问世,被广泛应用到各个领域并且都获得很不错的效果,其motivation首先是做视频上的long-range的,通过计算不同帧所有像素点特征的加权和去获得当前位置的响应,从而克服卷积只能处理某一个局部区域而无法得到全局信息的缺点。其也可以看做是在做relation,计算的是某两个pixel之间的相似度,而不是两两object之间的相似度。那如果能之间从视频帧中检测出来对动作分类有意义的object,然后再建模这些object之间的联系岂不是更加直接?就像要做喝水动作的识别,我们直接将每一帧的水杯以及喝水的人检测出来,然后当做nodes放入graph中去做relation,应该可以很好地建模出spatial上人与水杯以及temporal上的相同人与相同水杯之间的关系,这其实也是后面Videos as Space-Time Region Graphs这篇文章的思路。如下图,将正在翻阅一本书的人以及书分别给检测出来,则能够建立不仅仅是spatial并且temporal上的信息了。
下图是文章网络结构的pipline,首先输入的视频帧序列通过I3D网络得到T×H×W×d的feature,通过RPN获取T帧中每一帧上物体的bbox,然后通过ROIAlign得到每个物体的feature map再maxpool得到d维的feature vector,作为每个物体的特征,而后将这n个特征作为nodes送入Graph中建模不同object之间的关系。
2:Graph Convolutional Networks for Temporal Action Localization
这是19年iccv中一篇将图模型用于temporal action detection(action localization)的文章,temporal action detection类似于object detection,只不过其是在时间维度进行detection,故很多方法也是沿用object detection来的。本文的motivation是之前的方法没有关注到不同proposal之间的关系,如果能够利用图网络去建立两两proposal之间的relation,那么会对detection的结果有帮助。
如上图,首先使用BSN方法去获得输入视频帧的proposals,而后通过两条规则去建立图的边:(1) Contextual Edges:I(pi,pj)代表temporal上两个proposals之间的交集,U(pi,pj)代表temporal上两个proposals之间的并集,那么r(pi,pj)则代表temporal上两个proposals的重叠度,当r(pi,pj)>θctx(论文中取0.7)时,这两个proposals连边。
但Contextual Edges只考虑到了重叠度很高的情况,大概率这两个proposals是属于同一个action class的,但如果是重叠度没这么高的proposals应该也需要建立联系(2)Surrounding Edges:|ci - cj|代表两个proposals之间中心点坐标的差值,当d(pi,pj)<θsur时,这两个proposals连边,则考虑了两个大概率不是同一个class的proposals之间的联系。
图建立好了以后通过图卷积则可以找到不同proposals之间的relation了。
3:Learning Actor Relation Graphs for Group Activity Recognition
本文是19年cvpr的一篇关于用图模型去model排球比赛中不同运动员之间的relation的文章,思路与上一篇文章很相似,motivation就是在类似排球这种的团体运动中,如果能够建立不同运动员之间的联系,那么能够很好地帮助进行团体运动的分类。如下图,如果可以知道红色的点是在扣杀,周围蓝色的点是站立,黄色的点是在阻挡,那么可以轻松的认为这个片段是左边扣杀。
跟上篇文章类似,首先输入是视频片段与每一帧每一个球员的bounding box(个人感觉bbox提前给定还是有点太直接了,可能是因为如果使用检测方法去检测的话,应该会存在漏检或误检的问题吧,但这也是需要解决的一个难题),由于排球运动中球员数量是一定的12个,所以每一帧就有12个bbox。文章采用TSN的稀疏采样的方法,如下图采取的3帧,通过CNN提取特征了之后,与bbox送入ROIAlign层获得d维的feature vector,总共得到N个feature vector。对于这N个feature,每两个之间连一条边构造图网络,以model不同actor之间的关系。对于不同proposals之间的relation,文中提出了Appearance relation与Position relation两种方法。
个人认为,视频不同于图像,图像中的信息是静态的,大多表示图像中物体是什么,但视频由于是多帧的图像的集合,是带有时序信息的,可以描述为视频中人与人,人与物的交互,那么关系推理就显得格外的重要了,如果能利用图模型有效地建立不同objects之间的关系,应该能很大程度的提高performance的吧。
参考文献:
【1】Wang L, Xiong Y, Wang Z, et al. Temporal segment networks: Towards good practices for deep action recognition[C]//European conference on computer vision. Springer, Cham, 2016: 20-36.
【2】Wu C Y, Feichtenhofer C, Fan H, et al. Long-term feature banks for detailed video understanding[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 284-293.
【3】Santoro A, Raposo D, Barrett D G, et al. A simple neural network module for relational reasoning[C]//Advances in neural information processing systems. 2017: 4967-4976.
【4】Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 7794-7803.
【5】Wang X, Gupta A. Videos as space-time region graphs[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 399-417.
【6】Zeng R, Huang W, Tan M, et al. Graph Convolutional Networks for Temporal Action Localization[J]. arXiv preprint arXiv:1909.03252, 2019.
【7】Wu J, Wang L, Wang L, et al. Learning Actor Relation Graphs for Group Activity Recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 9964-9974.
相关推荐
- mysql数据库如何快速获得库中无主键的表
-
概述总结一下MySQL数据库查看无主键表的一些sql,一起来看看吧~1、查看表主键信息--查看表主键信息SELECTt.TABLE_NAME,t.CONSTRAINT_TYPE,c.C...
- 一文读懂MySQL的架构设计
-
MySQL是一种流行的开源关系型数据库管理系统,它由四个主要组件构成:协议接入层...
- MySQL中的存储过程和函数
-
原文地址:https://dwz.cn/6Ysx1KXs作者:best.lei存储过程和函数简单的说,存储过程就是一条或者多条SQL语句的集合。可以视为批文件,但是其作用不仅仅局限于批处理。本文主要介...
- 创建数据表:MySQL 中的 CREATE 命令深入探讨
-
数据库是企业日常运营和业务发展的不可缺少的基石。MySQL是一款优秀的关系型数据库管理系统,它支持数据的插入、修改、查询和删除操作。在数据库中,表是一个关系数据库中用于保存数据的容器,它由表定义、表...
- SQL优化——IN和EXISTS谁的效率更高
-
IN和EXISTS被频繁使用在SQL中,虽然作用是一样的,但是在使用效率谁更高这点上众说纷纭。下面我们就通过一组测试来看,在不同场景下,使用哪个效率更高。...
- 在MySQL中创建新的数据库,可以使用命令,也可以通过MySQL工作台
-
摘要:在本教程中,你将学习如何使用MySQLCREATEDATABASE语句在MySQL数据库服务器上创建新数据库。MySQLCREATEDATABASE语句简介...
- SQL查找是否"存在",别再用count了
-
根据某一条件从数据库表中查询『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECTCOUNT(*)呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往...
- 解决Mysql数据库提示innodb表不存在的问题
-
发现mysql的error.log里面有报错:>InnoDB:Error:Table"mysql"."innodb_table_stats"notfo...
- Mysql实战总结&面试20问
-
1、MySQL索引使用注意事项1.1、索引哪些情况会失效查询条件包含or,可能导致索引失效如果字段类型是字符串,where时一定用引号括起来,否则索引失效...
- MySQL创建数据表
-
数据库有了后,就可以在库里面建各种数据表了。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。后面也是通过SQL语句和Navicat...
- MySQL数据库之死锁与解决方案
-
一、表的死锁产生原因:...
- MySQL创建数据库
-
我的重点还是放在数据表的操作,但第一篇还是先介绍一下数据表的容器数据库的一些操作。主要涉及数据库的创建、修改、删除和查看,下面演示一下用SQL语句创建和用图形工具创建。后面主要使用的工具是Navica...
- MySQL中创建触发器需要执行哪些操作?
-
什么是触发器触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段...
- 《MySQL 入门教程》第 17 篇 MySQL 变量
-
原文地址:https://blog.csdn.net/horses/article/details/107736801原文作者:不剪发的Tony老师来源平台:CSDN变量是一个拥有名字的对象,可以用于...
- 关于如何在MySQL中创建表,看这篇文章就差不多了
-
数据库技术是现代科技领域中至关重要的一部分,而MySQL作为最流行的关系型数据库管理系统之一,在数据存储和管理方面扮演着重要角色。本文将深入探讨MySQL中CREATETABLE语句的应用,以及如何...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)