摄像头图像分析目标物体大小位置_单个运动摄像头估计运动物体深度,谷歌挑战新难题...

155cac060a7cdfb89c2be08624c2e776.png

雷锋网 AI 科技评论按:人类视觉系统有一个我们习以为然但其实极其强大的功能,那就是可以从平面图像反推出对应的三维世界的样子。即便在有多个物体同时移动的复杂环境中,人类也能够对这些物体的几何形状、深度关系做出合理的推测。

然而类似的事情对计算机视觉来说就有相当大的挑战,在摄像头和被拍摄物品都静止的情况下尚不能稳定地解决所有的情况,摄像头和物体都在空间中自由运动的情况就更难以得到正确的结果了。原因是,传统的三维重建算法依赖三角计算,需要假设同一个物体可以从至少两个不同的角度同时观察,通过拍摄的图像之间的区别(视差)解算三维模型。想要满足这样的前提,要么需要一个多摄像头阵列,要么要保持被拍摄物体完全静止不动,允许单个摄像头在空间中移动观察。那么,在只有单个摄像头的情况下,深度计算中要么会忽略掉移动物体,要么无法计算出正确的结果。

7d58f228659ae565265d9c9c2cabbff6.png

在谷歌的新研究《Learning the Depths of Moving People by Watching Frozen People》中,他们提出了一种新的基于深度学习的方法来解决单个摄像头+摄像头和物体都在移动的状况下的深度预测,在任意视频上都有很好的效果。这个方法中用人类姿态、常见物体形态的先验学习替代了对于图像的直接三角计算。雷锋网 AI 科技评论介绍如下。

值得指出的是,用机器学习的方法「学习」三维重建/深度预测并不是什么新鲜事,不过谷歌的这项研究专门针对的是摄像头和被摄物体都在移动的场景,而且重点关注的被摄物体是人物,毕竟人物的深度估计可以在 AR、三维视频特效中都派上用场。

3ddd5de75572a04bafd225fb2a872989.gif

3029b906aef349570b7071a7db39c3d0.gif

巧妙地寻找训练数据

正如绝大多数此类方法一样,谷歌选择了用有监督方法训练这个模型。那么他们就需要找到移动的摄像头拍摄的自然场景视频,同时还带有准确的深度图。找到大量这样的视频并不容易。如果选择生成视频的方法,这需要非常逼真的建模,而且在多种场景、光照、复杂度的组合下呈现自然的人物动作,不仅有很高的难度,而且想要泛化到真实场景中仍然有一定难度。另一方法是在真实世界中拍摄这样的视频,需要摄像头支持 RGBD (彩色图像+深度图),微软的 Kinect 就是一种常用的低价方案;但这个方案的问题是,这类摄像头通常只适用于室内环境,而且在三维重建过程中也通常有各自的问题,难以得到理想的精度。

机智的研究人员们想到了利用 YouTube 上面的视频。YouTube 上的海量视频中,各种题材、场景、拍摄手法的都有,有一类视频对这个任务极其有帮助:视频中的人假装时间静止,保持位置和姿态不动,然后一个摄像机在空间中移动,拍下整个场景。由于整个场景中的物体都是固定的,就可以用传统的基于三角计算的方法精确地还原整个三维场景,也就得到了高精度的深度图。谷歌的研究人员们搜集了大概 2000 个这样的视频,包括了不同数量的人们在各种各样不同的真实场景中摆出各种姿势。

f6eecfcff21a51bbdf539fbafe20e2ca.gif

9d01fde8f5a896c45e0b26fa2cbc59ac.gif

为正在移动的人估算距离

上面说到的「时间静止」视频提供了移动的摄像头+静止的物体的训练数据,但是研究的最终目标是解决摄像头和物体同时运动的情况。为了应对这个区别,谷歌的研究人员们需要把网络的输入结构化。

一种简单的解决方案是为视频中的每一帧分别推理深度图(也就是说模型的输入是单帧画面)。虽然用「时间静止」视频训练出的模型已经可以在单帧图像的深度预测中取得顶尖的表现,但谷歌的研究人员们认为,他们还可以利用多个帧的信息进一步提升模型的表现。比如,对于同样的固定物体,摄像头的移动形成了不同视角的两帧画面,就可以为深度估计提供非常有用的线索(视差)。为了利用这种信息,研究人员们计算了每个输入帧和另一帧之间的二维光流(两帧之间的像素位移)。光流同时取决于场景的深度和摄像头的相对位置,不过由于摄像头的位置是未知的,就可以从光流场中消去两者间的依赖,从而得到了初始深度图。这样得到的深度图只对场景中静态的部分有效,为了还能处理移动的人,研究人员们增加了一个人物分割网络,把人从初始深度图中遮蔽掉。那么,网络的输入就由这三部分组成:RGB 彩色图像,人物掩蔽,以及通过视差计算的带有掩蔽的深度图。

234d1a5d540f79219c7f5d7c48d6324a.png

对于这样的输入,网络的任务就是补上有人的区域的深度图,以及对整幅画面的深度图做一些完善。由于人体有较为固定的形状和尺寸,网络可以很容易地从训练数据中学到这些先验,并给出较为准确的深度估计。在训练完毕后,模型就可以处理摄像头和人物动作都任意变化的自然拍摄视频了。

与当前的其它优秀方法的对比如下图。

91cbd79e7e078b400554c7ef40a7a6d9.gif

通过深度图实现三维视频效果

得到准确的深度图之后,一种简单、常见的使用方法就是实现景深和虚焦效果,如下图。

1474e887039caa9595b77e825dfab8d7.gif

其它的用法还比如可以用原图结合深度图进行小幅视角变换,合成「三维画面」,如下图;甚至在画面中增加具有准确深度和尺寸的三维元素也不难。

98b44ee41866f519efe8b14e717ed3ff.gif

论文地址:https://arxiv.org/abs/1904.11111

via ai.googleblog.com,雷锋网 AI 科技评论编译

Github项目推荐:

d70997c630c62df1ded3a551abce7f48.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode LCS 03. 主题空间(广度优先搜索BFS)

文章目录1. 题目2. 解题1. 题目 「以扣会友」线下活动所在场地由若干主题空间与走廊组成,场地的地图记作由一维字符串型数组 grid,字符串中仅包含 “0"~"5” 这 6 个字符。 地图上每一个字符代表面积为 1 的区域,其中 …

SQL SERVER PIVOT 行转列、列传行

在数据库操作中,有些时候我们遇到需要实现“行转列”的需求,例如一下的表为某店铺的一周收入情况表: WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL) 我们先插入一些模拟数据: INSERT INTO WEEK_INCOME SELECT 星期一,1000 UNION…

mysql cluster 查看数据库表名称_MySQL Cluster如何创建磁盘表方法解读

MySQL Cluster采用一系列的Disk Data objects来实现磁盘表;接下来为您详细介绍一、概念MySQL Cluster采用一系列的Disk Data objects来实现磁盘表。Tablespaces:作用是作为其他Disk Data objects的容器。Undo log files:存储事务进行回滚需要的信息&…

(运算符) 运算符

& 运算符既可作为一元运算符也可作为二元运算符。 备注 一元 & 运算符返回操作数的地址(要求 unsafe 上下文)。 为整型和 bool 类型预定义了二进制 & 运算符。 对于整型,& 计算操作数的逻辑按位“与”。 对于 bool 操作数&am…

LeetCode 1903. 字符串中的最大奇数

文章目录1. 题目2. 解题1. 题目 给你一个字符串 num ,表示一个大整数。 请你在字符串 num 的所有 非空子字符串 中找出 值最大的奇数 ,并以字符串形式返回。如果不存在奇数,则返回一个空字符串 “” 。 子字符串 是字符串中的一个连续的字符…

mysql分页插件springboot_SpringBoot--使用Mybatis分页插件

1、导入分页插件包和jpa包org.springframework.bootspring-boot-starter-data-jpacom.github.pagehelperpagehelper-spring-boot-starter1.2.52、增加分页配置# 主键自增回写方法,默认值MYSQL,详细说明请看文档mapper:identity: MYSQL# 设置 insert 和 update 中,是…

LeetCode 1904. 你完成的完整对局数

文章目录1. 题目2. 解题1. 题目 一款新的在线电子游戏在近期发布,在该电子游戏中,以 刻钟 为周期规划若干时长为 15 分钟 的游戏对局。 这意味着,在 HH:00、HH:15、HH:30 和 HH:45 ,将会开始一个新的对局,其中 HH 用一…

LeetCode 1905. 统计子岛屿(BFS)

文章目录1. 题目2. 解题1. 题目 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地)。 一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域。 任…

vue是什么软件_Angular vs React vs Vue:2020年的最佳选择是什么?

在2020年,想象没有HTML,CSS和Javascript的Web开发是不切实际的。 Javascript是Web应用程序前端开发的灵魂。 如果您登陆此页面,那么我认为您在Java语言和Java编程语言的不同框架和库之间感到困惑。企业和软件开发人员最常见的一些查询是&…

LeetCode 1910. 删除一个字符串中所有出现的给定子字符串

文章目录1. 题目2. 解题1. 题目 给你两个字符串 s 和 part ,请你对 s 反复执行以下操作直到 所有 子字符串 part 都被删除: 找到 s 中 最左边 的子字符串 part ,并将它从 s 中删除。 请你返回从 s 中删除所有 part 子字符串以后得到的剩余…

tcp长连接和短连接的区别_TCP --- 连接

一个TCP连接由4个元组组成:2个ip地址和2个端口号tcp三次握手为什么是三次握手解决历史连接问题通过三次握手才能阻止重复历史连接的初始化通过三次握手,才能对通讯双方的初始序号初始化如果只有2次握手,发送方一旦发送创建连接的请求就无法撤…

LeetCode 1911. 最大子序列交替和(动态规划)

文章目录1. 题目2. 解题1. 题目 一个下标从 0 开始的数组的 交替和 定义为 偶数 下标处元素之 和 减去 奇数 下标处元素之 和 。 比方说,数组 [4,2,5,3] 的交替和为 (4 5) - (2 3) 4 。 给你一个数组 nums ,请你返回 nums 中任意子序列的 最大交替和…

LeetCode 1912. 设计电影租借系统(map+set)

文章目录1. 题目2. 解题1. 题目 你有一个电影租借公司和 n 个电影商店。 你想要实现一个电影租借系统,它支持查询、预订和返还电影的操作。 同时系统还能生成一份当前被借出电影的报告。 所有电影用二维整数数组 entries 表示,其中 entries[i] [shopi…

python第一周心得_python第一周心得-Go语言中文社区

Python 简介Python 作为一个近年备受好评的语言,它的一些优点让人无法忽视。Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。它的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号&am…

使用预训练模型进行句对分类(Paddle、PyTorch)

文章目录1. Paddle2. PyTorch3. 提交结果分别使用两种框架,加载预训练模型,对句对进行分类 数据下载:千言数据集:文本相似度 1. Paddle 可以使用 paddlenlp 直接加载预训练模型,比较方便 # %% # 比赛地址 # https…

mysql1033错误存储引擎_MySQL Innodb存储引擎因为缓存配置出现的错误

引用100920 10:50:21 mysqld_safe Starting mysqld daemon with databases from /byread/dataInnoDB: The InnoDB memory heap is disabledInnoDB: Mutexes and rw_locks use GCC atomic builtinsInnoDB: mmap(11010048000 bytes) failed; errno 12InnoDB: Fatal error: cannot…

LeetCode 1913. 两个数对之间的最大乘积差

文章目录1. 题目2. 解题1. 题目 两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) 。 例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) 16 。 给你一个整数数组 nums ,选出四个 不同的 下标 w、x、y 和 z ,使数…

PHP和MySQL开发WordPress_wordpress是什么开发的

wordpress是什么开发的?WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。截至2018年4月,排名前1000万的网站超过30.6%使用WordPress。WordPress是最受欢迎的网站内容管理系统。WordPress是目前…

LeetCode 1920. 基于排列构建数组

文章目录1. 题目2. 解题1. 题目 给你一个 从 0 开始的排列 nums&#xff08;下标也从 0 开始&#xff09;。 请你构建一个 同样长度 的数组 ans &#xff0c;其中&#xff0c;对于每个 i&#xff08;0 < i < nums.length&#xff09;&#xff0c;都满足 ans[i] nums[nu…

LeetCode 1922. 统计好数字的数目(快速幂)

文章目录1. 题目2. 解题1. 题目 我们称一个数字字符串是 好数字 当它满足&#xff08;下标从 0 开始&#xff09;偶数 下标处的数字为 偶数 且 奇数 下标处的数字为 质数 &#xff08;2&#xff0c;3&#xff0c;5 或 7&#xff09;。 比方说&#xff0c;“2582” 是好数字&a…