Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读

Action4D: Online Action Recognition in the Crowd and Clutter

论文链接:

http://openaccess.thecvf.com/content_CVPR_2019/papers/You_Action4D_Online_Action_Recognition_in_the_Crowd_and_Clutter_CVPR_2019_paper.pdf

摘要

在拥挤杂乱的环境中识别每个人的行为是计算机视觉中一项具有挑战性的任务。本文建议解决这个具有挑战性的问题,使用一个整体的4D“扫描”杂乱的场景,包括每个细节的人和环境。这就产生了一个新的问题,即在杂乱的4D表示中识别多人的行为。

首先,本文提出了一种新的四维跟踪方法,能够可靠地实时检测和跟踪每个人。              然后,本文建立了一个新的深层神经网络Action4DNet来识别每个被跟踪者的行为。这样的模型在真实环境中提供了可靠和准确的结果。

为了进一步提高模型的性能,本文还设计了一个自适应的三维卷积层和一个新的判别时间特征学习目标。本文的方法对摄像机视角不变,抗杂波,能够处理人群。

实验结果表明,该方法快速、可靠、准确。本文的方法为实际应用中的动作识别铺平了道路,并准备部署到智能家居、智能工厂和智能商店中。

1.       Introduction

本文提出了一个新的Action4DNet,利用在线4D建模来识别杂乱环境中每个主体的行为。              本文的工作有以下贡献:

•本文解决了在杂乱的4D海量数据中识别多人行为的新问题。

•本文提出了一种利用4D立体数据实时检测和跟踪人的新方法。

•本文提出了一种新的深层神经网络Action4DNet,用于动作识别。本文设计了一个自适应卷积层来处理来自多个摄像机传感器的噪声。本文还提出了一种新的判别损失,以在序列动作识别中获得更好的时间特征学习。据本文所知,本文的方法是首次尝试将深层神经网络应用于杂乱的“整体”4D立体数据,用于在线帧式动作识别。

•本文在实验中收集并标记了一个新的4D数据集。目前还没有包含多人和杂波的4D动作识别数据集。本文将发布数据集。

•本文提出的方法能够抵抗拥挤和干扰,并且可以直接用于复杂的实际应用。

2.       Method

本文的任务是识别个人在杂乱拥挤的环境中的行为。本文的方法从构建每个时刻的整个场景的三维体表示开始。在此基础上,提出了一种基于场景三维体数据序列的人体检测与跟踪方法。这样,本文可以在每个时间瞬间裁剪每个以人为中心的三维立体。本文的4D跟踪器将这些关联的3D立体序列用作构建Action4DNet的输入。以下各节将讨论详细信息。

在本文能够识别出每个人的行为之前,检测场景中的每个对象是一个必要的步骤。为了动作识别,本文还需要在一段时间内观察每一个对象。因此本文需要追踪现场的每个人。跟踪也有助于消除虚假的人的检测和找回失踪的人。以往的多人跟踪方法大多采用背景减法去除背景差异。不幸的是,背景减法或图形/地面分离对于无约束的动态环境是困难的。

本文的4D跟踪器不需要图形/地面分离,能够直接处理有噪声的4D数据。给出了一组经过标定的RGBD图像,建立了整个场景的三维点云。这些卷构建在三维点云的顶部。如果体素O(i)中有一个点,本文将其占用率设为1。这些体素位于环境的场景表面。也可以填充每个对象的内部体素。然而,本文的实验表明,如此密集的表象对动作识别并没有多大好处。因此,本文在这项工作中只使用表面立体。

上面的跟踪器在每一个时刻都能给本文精确的物体三维位置,可以用来裁剪出三维物体进行动作识别。图4显示了裁剪立体表示,其中人员位于中心。即使在背景杂乱的情况下,音量表示也清晰地显示出一个人的动作。事实上,由于背景对象的上下文信息,它们是动作识别的理想对象。

本文处理4D立体(3D立体序列)数据,以推断每个时刻的动作。还有很多其他的线索可以用来推断一个人的动作,例如,身体姿势,身体部位的运动,以及被试正在处理的物体。例如,如果本文看到一个人下面有一把椅子,本文可以推断这个人              坐。潜在的,每个人的位置或速度也可以用来推断具体的行动。

然而,在本文中,本文仅依靠立体数据来建立本文的4D动作识别模型。本文构造了深度卷积神经网络Action4DNet,用于精确的动作识别。输入的4D立体通过一系列3D卷积层与3D池层组合以产生动作特征。同时,本文还建议使用一个辅助注意网,这将在下面的小节中详细讨论。这些特征在每个时刻都被输入到一个递归神经网络(RNN)中,以聚集时间信息进行最终动作分类。在下面,本文将更详细地介绍网络结构。

3.       Experimental results

在这一部分中,本文评估了所提出的4D方法的动作识别,并将本文的方法与不同的竞争方法进行了比较。

为了评估该方法的性能,本文收集了一个4D动作识别数据集。通过设置3个不同的环境(Env1、Env2和Evn3)和不同数量的Kinect V2摄像机来采集RGBD图像,生成动态场景的4D体表示。这三个环境位于不同背景的不同房间。本文以每帧的方式标记视频:每个视频帧都有一个动作标签。本文还使用每帧的准确度评估了所有的动作识别模型。本文数据集的统计数据汇总在表1中。

本文将提出的方法与不同的基线方法进行比较。基线包括:

•形状文本256和形状文本512:

三维形状上下文是形状上下文[3]描述符的三维版本。三维形状上下文具有高度轴和角度轴均匀分区,以及径向轴对数分区。

本文测试了两个版本的三维形状上下文:

ShapeContext256有256个存储箱,ShapeContext512有512个存储箱。本文建立了一个以三维形状上下文描述符为输入的深度网络。该网络使用LSTM网络来聚合时间信息。              •时刻:

矩是另一种流行的形状描述。本文使用4阶的原始时刻。与上述形状上下文方法类似,矩描述子被输入CNN进行动作识别。

•骨骼:

OpenPose[6]是RGB图像上最先进的棒形检测器之一。本文使用颈点规范化每个对象关节的位置,然后将xy坐标连接到特征向量中。本文使用与上述形状上下文方法相似的方法来训练深度网络。

•颜色+深度:

在这种方法中,本文根据本文的跟踪结果来确定每个人的边界框。本文从所有摄像机中裁剪视频中每个人的颜色和深度图像。本文使用裁剪后的颜色和深度图像及其动作标签来训练一个深度神经网络。公平地说,本文在本文的所有方法中都没有使用动议。              •点网络:

PointNet[20]是目前最先进的三维点云目标识别和语义分割的深度学习方法之一。本文将点网模型扩展为包含一个LSTM层,以便它能够处理用于动作识别的序列数据。利用多幅RGBD图像的点云,可以对网络进行端到端的训练。

•I3D和NL-I3D:

嵌入式3D ConvNet[7](I3D)在RGB视频上实现了最先进的动作识别。本文还与非局部I3D[27](NL-I3D)进行了比较,后者引入了非局部操作,以便更好地进行远程相关性建模。

•SparseConvNet

SparseConvNet[10]定义了子流形卷积,它跟踪“活动”站点以减少计算开销。本文使用3D卷和LSTM头训练SparseConvNet来识别3D流中的动作。

表3、表4和表5表明,本文提出的方法始终比所有竞争方法给出更好的结果。高精度还得益于本文可靠的4D人员跟踪器,它获得了所有测试和培训视频100%的跟踪率。本文的方法也很快,使用一个GTX1080 TI,本文的方法能够跟踪10个人,并推断他们的行动在15帧/秒(FPS)对立体空间为50毫米×50毫米×50毫米体素。在25毫米×25毫米×25毫米的体素上,一个人可以以25 FPS的速度识别动作。

图7显示了三个不同测试中Action4DNet的混淆矩阵。有趣的是,在测试二和测试三中发现了许多缺失的检测。特别是,对于弯腰动作,测试2和测试3都有超过40%的识别缺失。这可能是由于这种行为的巨大变化和不同的地面真值标签使用的不一致的标签标准。同时,本文的方法还混淆了一些如图7所示的操作。这主要是由于来自Kinect传感器的噪声数据。使用更好的深度相机和更好的时间同步,本文的动作识别结果可以进一步提高。此外,本文还可以进一步包含颜色等其他体素属性,并使用多分辨率体数据来获得更稳健的结果。

4.       Conclusion

本文提出了一种新的在线4D动作识别方法Action4DNet,它能够生成4D的环境立体,跟踪三维空间中的每个人,并推断出每个人的动作。本文的方法能够处理多人和强杂波。特别是,提出的自适应卷积层和判别时间特征学习目标进一步提高了模型的性能。本文在不同环境下的实验结果证明了本文的方法在不同的竞争方法下具有更好的性能。所提出的方法可以被部署以使不同的应用程序能够增强人们与环境的交互方式。

Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读的更多相关文章

  1. 在MotionBuilder中绑定C3D动作和模型

    [题外话] 实验室人手不足,虽然自己连MotionBuilder一点都没有用过,但是老板叫自己干也只能硬着头皮上了.本文详细介绍了MotionBuilder 2013中的摄像机操作以及在MotionB ...

  2. TogetherJS – 酷!在网站中添加在线实时协作功能

    TogetherJS是一个免费.开源的 JavaScript 库,来自 Mozilla 实验室,可以实现基于 Web 的在线协作功能.把 TogetherJS 添加到您的网站中,您的用户可以在实时的互 ...

  3. cocos2dx中关于Action动作的相关API的具体介绍

     //CCMoveBy  创建一个移动的动作 //參数1:移动到目标坐标所需的时间 //參数2:目标坐标 //支持reverse 能够获取其反向动作 //CCMoveTo  一样的 //CCAct ...

  4. (数据科学学习手札96)在geopandas中叠加在线地图

    本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 国庆期间,抽空给大家分享在geopandas中叠 ...

  5. RGBD动作识别的多视图层融合模型

    摘要 基于视觉的动作识别在实践中遇到了不同的挑战,包括从任何角度识别主题,实时处理数据以及在现实环境中提供隐私.甚至识别基于配置文件的人类动作(基于视觉的动作识别的一个子集),在计算机视觉中也是一个巨 ...

  6. [SQL]select scope_identity()传回插入相同范围之识别资料行中的最后一个识别值

    传回插入相同范围之识别资料行中的最后一个识别值.范围是一个模组:预存程序.触发程序.函数或批次.因此,如果两个陈述式在相同预存程序.函数或批次中,它们就在相同范围中. 语法: SCOPE_IDENTI ...

  7. [转]webstorm中js文件被识别成txt类型

    问题描述: webstorm中index.js文件被识别成txt格式,如下图. 原因: webstorm中js文件被识别成txt文件,原因在于txt类型识别了以当前js文件名命名的模式. 解决办法: ...

  8. ICTCLAS中的HMM人名识别

    http://www.hankcs.com/nlp/segment/ictclas-the-hmm-name-recognition.html 本文主要从代码的角度分析标注过程中的细节,理论谁都能说, ...

  9. Batch Normalization原理及其TensorFlow实现——为了减少深度神经网络中的internal covariate shift,论文中提出了Batch Normalization算法,首先是对”每一层“的输入做一个Batch Normalization 变换

    批标准化(Bactch Normalization,BN)是为了克服神经网络加深导致难以训练而诞生的,随着神经网络深度加深,训练起来就会越来越困难,收敛速度回很慢,常常会导致梯度弥散问题(Vanish ...

随机推荐

  1. 官宣 MAUI 在.NET Preview 3的最新进展

    我们在.NET 6 Preview 3中交付了.NET多平台应用UI的移动和桌面开发的最新进展.此版本添加了Windows平台和WinUI 3,改进了基本应用程序和启动构建器,添加了原生生命周期事件, ...

  2. 1.4.17 base标签

    如果我们定义的超链接在另一个窗口打开,代码如下: <!DOCTYPE html> <html lang="en"> <head> <met ...

  3. IE 兼容问题笔记

    IE 兼容问题笔记 解决IE11兼容HTML5 设置 document.body的一些用法以及js中的常见问题 flex布局浏览器兼容处理 ie8, ie9 css3 media媒体查询器用法总结 c ...

  4. hdu1572 水搜索

    题意: 中文的不解释; 思路:           其实就是一个水的搜索,直接搜索不会超时,还有别跑最短路了,题目没要求跑最短路,别读错题,刚开始自己嘚嗖的跑了一边最短路 wa了 ,正好最近看了STL ...

  5. hdu1671 字典树记录前缀出现次数

    题意:       给你一堆电话号,问你这些电话号后面有没有相互冲突的,冲突的条件是当前这个电话号是另一个电话号的前缀,比如有 123456789 123,那么这两个电话号就冲突了,直接输出NO. 思 ...

  6. Windows核心编程笔记之进程

    改变进程基址,获取进程基址 #include <Windows.h> #include <iostream> #include <strsafe.h> #inclu ...

  7. 你注意到了吗?修改API文档也需要规范!

    关于API接口文档的内容和格式规范的文章,之前也有写过,网上也有不少写的比我还好的,就不赘述了,今天想说的是一个很容易被忽略的点,修改API文档的规范:版本控制. 示例 拿Eolinker来演示一下流 ...

  8. Failed opening required

    报错 点击页面右下角的图标,再点击错误可以显示报错.或者在项目中runtime--log也可以查看error [64]think\\__require_file(): Failed opening r ...

  9. 常用加密算法学习总结之散列函数(hash function)

    散列函数(Hash function)又称散列算法.哈希函数,散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来.该函数将数据打乱混合,重新创建一个叫做散列值(hash values ...

  10. [bug]Flask:KeyError: 'A secret key is required to use CSRF.'

    参考 https://blog.csdn.net/huanglianggu/article/details/81263865