【论文学习】Future Person Localization in First-Person Videos

2023-05-16

论文摘要

我们提出了一个新方法来预测第一人称视频中观察到的人的未来位置。采用的是由可穿戴摄像机连续记录的第一人称视频。给出一个人的短片,从完整的数据流中提取出来,目标是预测这个人在未来帧中的位置。做了以下三个关键的观察:

a)第一人称视频通常包含显著的自我运动,这对目标人物在未来帧中的位置有很大影响;

b)目标人称的行为作为第一人称视频中估计透视效果的显著线索;

c)第一人称视频经常近距离捕捉人,使得利用目标姿势(例如,他们看向哪里)来预测他们未来的位置变得更容易。

将这三个观测结果合并到一个具有多流卷积-去卷积架构(multi-stream convolution-deconvolutionarchitecture)的预测框架中。

问题定义

本论文所采用的是第一人称视频(First-person videos)指可穿戴相机(wearable cameras)所拍摄的视频,比如 GoPro,Google Glass 等。基于第一人称视频相关的研究主要对应的应用领域包括盲人导航,AR ,自动驾驶等相关领域。

已知t时刻及之前几帧图像中行人的相关信息,要求算法预测未来几帧中该行人会出现在图像中的什么位置。问题示意图如下图所示。关于这个任务的技术有很多的用途,比如帮助行人避开迎面走来的行人,或是帮助移动机器人来规划运动的路径。

前期调查和方法总概

文中提出三点观察分析:

(1)搭载相机的第一人称佩戴者会对目标行人的行为产生影响。例如,如果相机佩戴者向前移动,第一人称视频中人的明显垂直位置将相应向下移动。此外,如果相机佩戴者朝人走去,会稍微改变行走方向,以避免相撞。这种类型的互动行为也会影响人们未来的迁移。

(2)人的行为是捕捉第一人称视频透视效果的显著线索。由于摄像机与地平面平行,因此第一人称视频帧中的视觉距离对应于不同的物理距离,这取决于在帧中观察到人的位置。为了将来更好的定位目标行人,必须考虑到这些差异,特别是在行人走向或远离相机佩戴者时。

(3)一个人的体态姿势表明了这个人是如何移动的,并将能对未来的位置进行预测。第一人称视频可以被有效地用来获取这类信息,因为第一人称通常会近距离捕捉人的图像。

基于这些关键观察,提出了一种方法,基于视频中人的自我运动、姿势、比例和人在当前和过去视频帧中的位置来预测在第一人称视频中看到的人的未来位置。作者开发了一个深度神经网络,学习前面几帧中上述线索的历史,并预测目标人物在后续未来帧中的位置。引入了卷积-去卷积架构来对这些历史中的时间演变进行编码和解码。

作者采用自己建立的第一人称视频数据集,称为第一人称移动(FPL)数据集。FPL数据集包含了大约5000人在不同的地方的视频。

算法及原理

本文用的是深度学习神经网络的方法来进行行人轨迹预测,文中以下面4个特征信息来进行行人轨迹的建模与学习。

1、行人检测框的位置序列(Location);

2、行人检测框的大小序列(Scale),在第一人称视角中,行人框的大小实际上隐含了透视投影的关系,即“近大远小”;

3、行人的骨架序列(Pose),骨架信息主要隐含了行人的动作,姿态,朝向等信息;

4、摄像机本身的运动信息(Ego-motion),由于第一人称视角中相机本身也是在不断运动的,所以相机本身的运动也不得不考虑进算法当中,具体而言,就是相机在每两帧之间的平移和旋转信息。

图中以t0表示当前帧,蓝色帧表示先前时刻检测到目标行人的位置,红色帧为预测的行人位置。

文中提出了一个基于 1 维卷积的神经网络:

网络最终的输出即为所需要的未来检测框位置序列。

实验结果

文中用该方法和其他三种方法进行对比,从四个行人行走方向预测进行误差实验,得到如下表的结果:

可以看出,本文方法得到的误差均小于其他三种方法。

 个人总结与不足分析

该文采用视频流的方法,对自动驾驶中采用相机进行行人轨迹预测有很大启发,比如行人骨架信息和搭载相机者的自运动两个影响因素是我所没有想到的,但文中所用的方法是针对一段已经录制好的视频进行深度学习来获得预测结果,因此在实验中并没有分析各个框架的实时效率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【论文学习】Future Person Localization in First-Person Videos 的相关文章

  • 在 Kotlin 中以编程方式更改区域设置

    我有一些在 Java 中以编程方式更改语言环境的代码 但是当我的应用程序迁移到 Kotlin 时 我无法再更改区域设置 例如 Java 中的这段代码运行得非常好 public static final void setAppLocale S
  • WinForms 本地化。该语言不反映默认的 resx 文件

    我正在尝试在 winform 应用程序中使用本地化 但有几个问题 我本想问最复杂的问题 但现在我遇到了一个基本问题 我已经构建了一个带有表单 标签和菜单条的基本 winform 我已将表单本地化设置为 true 并将标签文本设置为三种不同的
  • 使用本地化故事板进行即时本地化

    我正在开发一个应用程序 它有一个切换按钮可以在英语和阿拉伯语之间切换 并且应该是动态的 我正在使用该方法https github com maximbilan ios language manager https github com ma
  • 本地化 ASP.NET 资源的滑动过期

    假设我们有 2 个站点 myDomain AU 和 myDomain RU 具有相同的代码和本地化资源文件 resx 和 ru resx 我们预计大多数英语用户将使用 AU 网站 大多数俄语用户将使用 RU 网站 但是 如果 AU 域的某些
  • 本地化水晶报表

    在 Crystal Reports 上本地化标签 列标题 字段标签 页眉 页脚等 的好方法是什么 我们目前使用的是 XI R2 SP4 但希望迁移到 2008 年 看起来 2008 年提供了更好的查看器 UI 本地化 它有内容本地化的故事吗
  • 使用卡尔曼滤波器跟踪位置和速度

    我正在使用卡尔曼滤波器 恒定速度模型 来跟踪物体的位置和速度 我测量对象的 x y 并跟踪 x y vx vy 这是有效的 但是如果在传感器读数 x y vx vy 上添加 20 mm 的高斯噪声 即使该点没有移动 只是噪声也会发生波动 对
  • Scala 中的超时未来

    假设我有一个函数 它调用一个阻塞可中断的手术 我想在超时的情况下异步运行它 也就是说 我想在超时到期时中断该功能 所以我正在尝试做这样的事情 import scala util Try import scala concurrent Fut
  • Python `concurrent.futures`:根据完成顺序迭代 future

    我想要类似的东西executor map 除了当我迭代结果时 我想根据完成的顺序迭代它们 例如首先完成的工作项应该首先出现在迭代中 等等 这样 当且仅当序列中的每个工作项尚未完成时 迭代就会阻塞 我知道如何使用队列自己实现这一点 但我想知道
  • Java 区域设置区分大小写

    我有以下代码来显示当前区域设置 System out println Locale getDefault System out println new Locale en US 上面给出的输出如下 en US en us 如何构造一个 Lo
  • iPhone en_* 子语言本地化

    我想在我的 iphone 应用程序中将字符串本地化为 en GB 和其他 en 子语言 但 XCode 和 iphone 拒绝让这种情况发生 我已经为 en GB 和 en US 创建了 Localized strings 的本地化 我尝试
  • 让 NUMBERFMT 填充默认值的简单方法?

    我正在使用 Windows API获取数字格式Ex http msdn microsoft com en us library dd318113 28v vs 85 29 aspx使用当前用户的适当本地化选项来格式化一些数字以进行显示 例如
  • 异步任务中止时会发生什么?

    锈有async可以绑定到的方法Abortable https docs rs futures preview 0 3 0 alpha 19 futures future struct Abortable html期货 文档说 当中止时 未来
  • 如何控制 Paypal Sandbox 中显示的语言?

    我正在使用 Paypal Express Checkout 测试我的网站支付解决方案 但每当客户进入 PayPal 支付页面 在 paypal 沙箱中 时 该页面都会以英文显示 如何控制显示的语言 在我的网站上 我有一个语言选择器 因此我可
  • Rust 期货中的“then”、“and_then”和“or_else”有什么区别?

    我正在学习使用 Rust future 我发现它非常令人困惑 我觉得我很蠢 但什么时候才能then and then and or else使用 预期返回什么类型 请提供一些您希望看到的不同情况的示例 TL DR then当你想做某事而不管
  • BASH 中带有千位分隔符的数字格式

    我有一个号码12343423455 23353 我想用千位分隔符格式化数字 所以输出将是12 343 423 455 23353 printf 3f n 12345678 901 12 345 678 901
  • 如何将 Spotlight for Help 插入本地化的 macOS 应用程序?

    我正在 macOS 上使用 Swing GUI 框架实现 Java 应用程序 当使用system外观和感觉以及screen菜单栏 Swing 自动插入一个搜索栏 called 聚光灯寻求帮助 https developer apple co
  • 未找到键为“”的资源对象。自动部署的 ASP.NET MVC3 应用程序

    我有一个使用 LocalResources 本地化的 ASP NET MVC 3 应用程序 一切 一如既往 在我的机器上运行 但是当应用程序部署 通过 tfs 自动部署 到我的测试环境时 我收到以下错误 未找到键为 的资源对象 我的资源文件
  • Django:如何为应用程序添加中文支持

    我正在尝试将中文添加到我用 Django 编写的应用程序中 但我确实遇到了困难 我花了半天时间尝试了不同的方法 但没有成功 我的应用程序支持几种语言 这是设置 py file TIME ZONE Europe Dublin LANGUAGE
  • 如何将 take_while 与 future::Stream 一起使用?

    我想了解我应该使用什么语法take while https docs rs futures 0 1 futures stream trait Stream html method take while with futures Stream
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym

随机推荐