HOI - PaStaNet: Toward Human Activity Knowledge Engine
文章目录
- 0. 前言
- 1. 要解决什么问题
- 2. 用了什么方法
- 2.1. 数据集介绍
- 2.2. 模型介绍
- 3. 效果如何
- 4. 还存在什么问题&可借鉴之处
0. 前言
- 相关资料:
- arxiv
- github,官网
- 论文解读(卢老师解读),一作讲座
- 论文基本信息
- 领域:不仅仅包括HOI
- 作者单位:上海交大
- 发表时间:CVPR 2020
- 一句话总结:提出了一种基于知识驱动(识别人体不同部分以及每个部分的状态,并推理出行为信息)的图像级行为理解方法。
1. 要解决什么问题
- 卢老师解读原文:
之前的方法大多基于实例级别的特征或知识(human,object)出发去学习action,但是对于human-object interaction这种复杂的行为,仅靠这种粗粒度的知识是不够的(目前大家的性能都卡在了一个台阶上),且训练出来的模型常因不同数据集的action种类设定不同而很难泛化(domain gap)。
- 目前基于图像的行为识别方法都是
adopt direct mapping
- 卢老师说的
基于实例级别的特征或知识
,而这种方法目前已经碰到瓶颈了。 - 可以看到,下图左图就是之前方法实现Human Object Interaction(后文简称HOI)的基本思路。
- 卢老师说的
2. 用了什么方法
提出了卢老师所谓的
知识驱动的行为理解
(Human Activity Understanding)。- 也就是上图中的右图。
- 整体思路就是,先检测人的各个部分以及对应的状态,再通过这些状态识别行为类别。
本文主要内容包括:
- 数据集介绍
- 模型介绍
2.1. 数据集介绍
- 先吐个槽:这数据集名字差评,PaStaNet,看着像个模型名字。
- 下文先开始介绍数据集构建的过程:
- PaSta Definition:即问题抽象。
- 上面我们提到,要“先检测人的各个部分以及对应的状态”,那到底将人分为哪几个部分,每个部分又都有哪些状态呢?
- 将人划分为10个部分: head, two upper arms, two hands, hip, two thighs, two feet。头、手臂x2、手x2、躯干(hip直接翻译是臀部,但感觉好像少了一点,可能说是躯干更合适)、腿x2、脚x2。
- 在收集并研究了200000张图片后,发现人体每个部分的状态(state)的数量都是有限的。具体有哪些太多了,看附录吧。
- Data Collection:收集数据,通过众包以及现有数据集获取,最终选择了20万张。
- Activity Labeling:标注行为。行为类别主要是人类日常行为以及一些常见的HOI行为,最终选择了11.8万丈图片以及 156 类HOI标签,具体类别看附录。
- Body Part Box:先进行姿态估计,再通过姿态结果获取human parts。
- 这部分手动调整过,提高精度。
- 这部分有一些细节,关于关键点的一些处理,没细看。
- PaSta Annotation:标注body part states,即人体每一部分的状态。现通过众包标注,大概有22万的标注结果。大概过程如下
- 第一步,根据前文的156类行为以及WordNet,选择200个动词,如手部state包括hold pick,头部state包括eat/talk to。
- 第二步,寻找对迁移学习帮助最大的人体状态。找了150人来标注1万张图片的详细PaSta。
- 第三步,根据标注结果,通过NPMI方法(我也不知道是啥)来计算行为以及PaSta的co-occurrence。选择76个NPMI得分高的PaSta。
- 第四步,通过上面1万张图片的标注结果作为引子,自动生成其他图片的 PaSta 标签,让其他210个标注者对自动生成的结果进行改进。
- 第五步,由于每个人同时可能有多个动作,所以标注10个PaSta。这里没看明白,是一个人标10个PaSta的意思吗。
- 第六步,为了确保质量,每张图片标注两次,以及通过自动/手动方式质检。
- PaSta Definition:即问题抽象。
- 最终,获得11.8万图片,28.5万人物bbox,25万物体bbox,72.4万行为标签,7百万PaSta标签。
- 其他一些工作:
- 验证现有的标签能涵盖大部分类别。
- 验证PaSta可以很好的被预测(毕竟模型迁移的时候,就是需要预测PaSta)。
2.2. 模型介绍
首先定义两种行为特征表示范式(问题抽象方式,即行为通过哪些特征来表示)
- Conventional Paradigm:即 实例级别 的特征表示,行为得分通过图片、人物bbox、与人物交互的物体bbox三部分表示。
- PaStaNet Paradigm:这种范式包括两部分
- 首先,PaSta的特征通过图像、人物每个部分的bbox、交互物体来表示。
- 其次,是构建PaSta-based Reasoning方法,输入PaSta以及其他特征,输出行为。
- 人体每一部分的行为得分通过上一部提取的PaSta特征以及交互物体特征。
- 如果没有交互的物体,就将整张图片的ROI结果最为物体特征。
- 如果有多个物体,那就为每个物体构建一个 PaSta 特征以及物体特征的pair。
从模型角度看,可以将上面的思路分解为以下几个部分:
- 以图片作为输入,获取human parts。这部分工作是卢老师组以前的一篇论文
- 以图片以及human parts作为输入,获取 human parts states。
- 以图片, human parts以及对应的states作为输入,获取行为类别。
Part State Recognition
- 问题描述:已知图像、Human Part box,获取。
- 需要先计算一个alpha,用于表示某个part的特征对于结果的关联程度,取值0-1。
- 如何计算?以 part feature 以及 object feature 作为输入,通过一个 part attention predictor 计算得到。
- GT如何获取?如果human part与人的action有联系,那label就是1,没联系就是0。
- 这一步要获取一个对于alpha的分类结果损失函数
- 识别PaSta
- 首先明确,这是一个多分类任务,即一个human part可能对应多个 states
- PaSta的输入是人体特征以及物体特征,将两个特征拼接+maxpooling+fc,得到预测结果。
- 人体特征是要乘以上面一步计算出来的系数 alpha。
Activity2Vec
- 这部分的任务是将前面的这些 PaSta 信息转换为特征,以便后续的应用(比如行为识别/HOI)。
- 这部分内容就包括视觉特征以及语言特征。
- 视觉特征,就是使用前面 PaSta Recognition 最后一层FC。
- 语言特征,引入了一个Bert,细节没细看,也看不懂。
- PaSta-based Activity Reasoning
- 论文中的原文是
reason out the activities
,有点推理的意思了。 - 之前获得了part-lebel 的特征,那要怎么应用到最终任务中呢?
- 构建图网络(hierarchical activity graph)
- 图网络推理的实现方式尝试了很多,下面图中有介绍。
- 总体方法就是使用 instance-lebel 特征以及 part-lebel 特征进行后融合。
- 论文中的原文是
3. 效果如何
- 利用PaSta直接进行迁移学习
同ImageNet训练backbone一样,利用PaStaNet训练的Activity2Vec,可以很好地把大量part知识迁移到新任务上,例如,在大型的行为数据上,我们取得了非常好的效果提升:HICO(+6.4mAP),HICO-DET(+5.0mAP);甚至跨模态在视频数据集AVA也有3.6mAP的提升。
- 上面是直接迁移学习,也就是直接在目标数据集上先预测PaSta,再进行各自任务。那如果要迁移到的目标数据集本身就带有PaSta的信息,会怎么样呢?
同时,我们还证明了,在模型能够完美估计part states时,我们的方法可以直接爆炸式提升性能,HICO(65mAP, 目前传统方法40mAP左右),HICO-DET(34mAP,传统方法20mAP左右),AVA(49mAP,sota的video模型如slowfast在28mAP左右)。
4. 还存在什么问题&可借鉴之处
- 按照我个人的理解,本文方法有 推理 以及 可解释性 的功能,非常新的思路,很喜欢。
- 作者提到,该方法的主要特点是:可重用性(Resuability)以及可移植性(Transferability)。换句话说,本工作是一个基础工作,可作为其他工作的前置项。
HOI - PaStaNet: Toward Human Activity Knowledge Engine相关推荐
- SFFAI分享 | 李永露:PaStaNet:Toward Human Activity Knowledge Engine
在"以人为中心的计算"中,根据传感器数据来识别和理解人的动作是关键的一环,而基于视觉的行为识别更是人机交互与感知中的关键.已有行为识别的方法大多基于实例级别的特征或知识进行学习,但 ...
- 对比学习系列论文CPCforHAR(一):Contrastive Predictive Coding for Human Activity Recognition
0.Abusurt 0.1逐句翻译 Feature extraction is crucial for human activity recognition (HAR) using body-worn ...
- TensorFlow for Hackers (Part VI) - Human Activity Recognition using LSTMs on Android
Ever wondered how your smartphone, smartwatch or wristband knows when you're walking, running or sit ...
- 文献记录(part47)--KU-HAR: An open dataset for heterogeneous human activity recognition
学习笔记,仅供参考,有错必纠 数据集- KU-HAR: An open dataset for heterogeneous human activity recognition 摘要 在人工智能中,人 ...
- 【深度学习】A model-based gait recognition method with body pose and human prior knowledge
标题:A model-based gait recognition method with body pose and human prior knowledge 概要 作者提出了一个新的基于模型的步 ...
- Deep learning for sensor-based human activity recognition: overview, challenges and opportunities
公众号"机器之心"针对这篇综述的主要内容,做了详细的讲解.具体如下: 传感器设备和物联网的广泛应用使得基于传感器的人类行为识别成为可能.然而,这个领域仍然存在一些重大挑战(chal ...
- Understanding and Modeling of WiFi Signal Based Human Activity Recognition
相关研究 现有的无设备人体活动识别和定位工作可分为四类:基于接收信号强度指示器(RSSI)的.基于专用硬件的.基于雷达的和基于CSI的. 其中基于CSI的人类活动识别系统主要依靠WiFi信号的统计特征 ...
- 阅读笔记:Towards Environment Independent Device Free Human Activity Recognition
摘要 现有的系统面临的主要挑战是到达接收器的无线信号通常带有关于环境和目标人体动作的大量特定信息.因此,一个在特定环境特定对象上训练的行为识别模型在别的环境下表现不好.为了解决这个问题,我们提出了 ...
- EI——Towards Environment Independent Device Free Human Activity Recognition
1.论文介绍 对于通过无线信号实现无设备人类活动识别这个技术,该论文提出了一个问题:接收装置接收到的无线信号中通常携带有大量的记录活动的特定环境和人类对象的大量信息,这导致原本在一个环境中性能很好的活 ...
最新文章
- 我的编码规范(慢慢补充)
- Packet for query is too large (1166 1024). You can change this value
- 2017-2018-1 20155324 《信息安全系统设计基础》第十四周学习总结
- 【linux】学习2
- 逍遥模拟器配置burpsuite抓包环境
- 新买的笔记本电脑怎么分盘_别再吐槽游戏本越玩越慢:笔记本电脑降速揭秘+散热维护小贴士...
- 独家揭秘:微博深度学习平台如何支撑4亿用户愉快吃瓜?
- pr字幕一个一个出现的笨方法
- c语言编程十进制转八进制算法,C语言十进制如何转八进制?
- excel设置数据点的标记格式
- 记录项目中遇到的坑(二)
- 小白学SLAM的流水账(一):跑通ORB踩过的坑
- S3D 2.0 截图
- Springboot使用Mapstruct拷贝对象,集成swagger2
- 程序的世界里,短暂的放空
- 习题 6.12 有一行电文,已按下面规律译成密码:...即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
- ElementUI-Dialog标题添加图标,自定义图标
- unity 获取深度图(drawcall不翻倍)
- JAVA计算机毕业设计在线小说系统Mybatis+系统+数据库+调试部署
- 运维小知识之企业内部NTP服务器基础安装与配置使用