2-2.5-3D的室内场景理解

主要内容

摘要随着低成本、紧凑型2-2.5-3D视觉传感设备的出现,计算机视觉界对室内环境的视景理解越来越感兴趣。本文为本课题的研究提供了一个全面的背景,从历史的角度开始,接着是流行的三维数据表示和对可用数据集的比较分析。在深入研究特定于应用程序的细节之前,简要介绍了在文献中广泛使用的底层方法的核心技术。之后根据基于场景理解任务的分类,回顾了所开发的技术:包括全局室内场景理解以及子任务,例如场景分类、对象检测、姿势估计、语义分割、三维重建、显著性检测、基于物理的推理和提供性预测。随后,总结了用于评估不同任务的性能指标,并对最新技术进行了定量比较。最后对当前面临的挑战进行了总结,并对需要进一步研究的开放性研究问题进行了展望。

介绍

根据输入媒体的不同,视觉场景理解大致可以分为两类:静态理解(对于图像)和动态理解(对于视频)。本文特别关注室内场景2-2.5-3D视觉数据的静态场景理解。我们专注于3D媒体,因为3D场景理解能力是通用人工智能agent开发的核心,这些智能agent可以部署到各种新兴应用领域,如自主车辆、家用机器人、医疗保健系统、教育、环境保护和信息娱乐。

数据表示

下面将会重点介绍用于表示和分析场景的流行的2.5D和3D数据表示,现有常用的data representation主要有:

1. 点云2. Voxel Representation(体素)3. 3D Mesh4. Depth Channel and Encodings5. 八叉树6. Stixels7. Truncated Signed Distance Function8. 构造立体几何

核心技术

1、Convolutional Neural Networks

CNN具有强大的特征拟合能力,非常适合结构化数据的特征提取和表示。

2、Recurrent Neural Networks

RNN的隐藏状态提供了一种存储机制,在时序数据上具有很大的优势。但当目标是在序列数据中记住长期关系时,它并不有效。因此,RNN只容纳短期记忆,并且在通过它处理的旧信息的“记忆”(几步之遥)方面面临困难。为了克服这一局限性,引入了递归网络的改进版本,包括长短期记忆(LSTM)、门控递归单元(GRU)、双向RNN(B-RNN)和神经图灵机(NTM)。这些体系结构引入额外的门和循环连接以提高存储能力。

3、Encoder-Decoder Architectures

编解码网络是一种人工神经网络,可用于有监督和无监督的学习任务。给定一个输入,“编码器”模块学习数据的紧凑表示,然后用于重建原始输入或另一种形式的输出。

4、马尔可夫随机场(Markov Random Field)

马尔可夫随机场(MRF)是在任意图上定义的一类无向概率模型。图形结构由一组相互连接的节点(例如,图像中的单个像素或超级像素)组成边缘(图像中像素之间的连接)。每个节点代表一个满足马尔可夫性质的随机变量,即,如果相邻变量已知,则条件独立于所有变量。

MRF和CRF模型都非常适合结构化预测任务,其中预测的输出具有相互依赖的模式,而不是分类时的单个类别标签。场景理解任务通常涉及结构化预测,这些模型允许在进行局部预测时结合上下文,模型中的上下文可以通过成对势和群势(定义在随机变量组上)进行编码。

5、Sparse Coding(稀疏编码)

稀疏编码是一种无监督的方法,用于寻找一组基向量,使得输入向量“x”可以由它们的线性稀疏组合表示。基本向量集称为“字典”(D),通常通过训练数据学习。给定字典,计算稀疏向量α,以便使用D和α精确地重构输入x。稀疏编码可以看作是将非线性输入分解为线性向量的稀疏组合。如果基向量的数目很大或特征向量的维数较高,则计算D和α所需的优化过程的计算代价可能很高。

6、Decision Forests

决策树是一种有监督的算法,它基于在训练集上学习的基于图的规则层次结构对数据进行分类。决策树中的每个内部节点表示一个测试或属性(真或假问题),而每个叶节点表示类标签上的决策。为了建立一个决策树,从一个接收所有训练数据的根节点开始,并根据测试问题将数据分割成子集。然后这些子集成为输入

对于接下来的两个子节点。这个过程一直持续到在每个节点产生尽可能好的标签分布,即实现数据的完全分解。

7、Support Vector Machines

主要的一些问题

1、Image Classification

图像识别是视觉场景理解的基础,也是基本任务之一。有关场景或对象类别的信息可以帮助完成更复杂的任务,如场景分割和对象检测。分类算法正被用于各种领域,如医学成像、自动驾驶汽车和上下文感知设备。本节将概述2.5D/3D场景分类的一些最重要的方法:手工制作的特征、自动特征学习、无监督学习,并处理不同的三维表示,如体素和点云。常见的分类方法主要有:传统机器学习方式、深度学习2D图像识别以及3D点云识别。

分类主要存在的问题:1. 2-2.5-3D数据可以用上述多种方式表示。接下来的挑战是选择以最小的计算复杂度提供最大信息的数据表示。2. 一个关键挑战是区分细粒度类别和适当的类内变化模型。3. 设计能够处理照明、背景杂波和三维变形的算法。4. 设计能从有限数据中学习的算法

2、Object Detection

目标检测涉及识别目标实例和类别。通常,对象检测算法输出对象的位置(由围绕对象实例可见部分的2/3D边界框定义)和类,例如沙发、椅子。该课题对汽车自动驾驶、增强和虚拟现实等应用具有重要意义。然而,在诸如机器人导航等应用中,我们需要所谓的“amodal目标检测”,它试图找到一个目标的位置以及它的完整位置只有一部分可见时三维空间中的形状和方向。在这一部分中,回顾了主要针对室内场景的2-2.5-3D目标检测方法。观察了手工特征在目标识别中的作用以及最近向基于深度神经网络的区域建议(对象候选)生成和目标检测管道的过渡。除了监督模型外,还回顾了无监督三维目标检测技术。现有的目标检测技术主要有:基于anchor、anchor-free以及one-stage和two-stage方法。

目标检测面临的一些问题:1. 现实世界中的环境可能非常杂乱,在这样的环境中进行对象识别是非常有挑战性的。2. 检测算法还应能够处理视点和照明的变化和变形。3. 在许多场景中,有必要了解场景上下文以成功地检测对象。4. 对象类别具有长尾(不平衡)分布,这使得对不频繁的类建模具有挑战性。

3、Semantic Segmentation

这项任务涉及到图像中每个像素的标记及其相应的语义意义类别,语义分割的应用包括家用机器人、基于内容的检索、自动驾驶汽车和医学成像。解决语义分割问题的努力已经从使用手工制作和特定于数据的特征发展到自动特征学习技术。

现有方法主要集中在基于深度学习方式的语义分割、实例分割、全景分割以及部件分割。主要挑战:1. 像素级标记需要本地和全局信息,挑战在于设计这样的算法,能够结合广泛的上下文信息2. 在实例分割的情况下,同一类被分割成不同的实例,难度增加很多3. 由于遮挡和背景混乱,获得密集像素级预测尤其是接近物体边界的预测是一项挑战4. 分割也受外观、视角和尺度变化的影响

4、Physics-based Reasoning

场景是视觉世界的静态图像。然而,当人类看到静态图像时,他们可以推断场景中隐藏的动态。例如,从一个有球员和一个球的足球场的静止图像中,我们可以了解预先存在的运动模式,并猜测在场景中可能发生的未来事件。因此,我们可以计划我们的行动,并作出明智的决定。根据人类的这种认知能力,计算机视觉已经努力发展出对场景潜在物理特性的洞察。这些包括从静态场景估计当前和未来的动力学、理解对象的支持关系和稳定性、体积和遮挡推理。这些算法的应用包括机器人的任务和运动规划、监视和监视。

基于物理的推理的主要挑战包括:1. 这项任务要求从非常有限的信息(如静止图像)开始,并进行外推,以预测有关场景动态的丰富信息2. 一个理想的特征是充分模拟物理世界的先验信息3. 基于物理的推理需要算法对上下文信息进行推理

5、Object Pose Estimation

姿态估计任务是根据特定的坐标系来确定物体的位置和方向。有关物体姿态的信息对于机器人平台的物体操作和场景重建(例如,通过拟合三维CAD模型)至关重要。注意姿态估计任务与目标检测任务高度相关,因此,现有的工作按顺序或在联合框架中解决这两个问题。直接特征匹配技术(例如,在图像和模型之间)也被用于姿势估计。

姿态估计算法遇到的重要困难是:1. 探测物体和同时估计其方位的要求使这项任务特别具有挑战性。2. 物体的姿态在不同场景之间变化很大,因此算法应该对这些变化保持不变。3. 遮挡和变形使姿势估计任务变得困难,特别是当同时存在多个对象时。

6、3D Reconstruction from RGB-D

人类在三维空间中对周围环境进行可视化和解释,通过对物体或场景的三维推理,可以更深入地理解物体的力学、形状和三维纹理特征。为此,通常需要从单个或多个RGB-D图像恢复完整的3D形状。三维重建在医学成像、虚拟现实和计算机图形学等领域有着广泛的应用。因为,从对象的密集重叠RGB-D视图进行3D重建是一个相对简单的问题,这里我们关注的是从单个或一组RGB-D图像(部分遮挡导致信息不完整)进行场景重建。

三维重建是一个极具挑战性的问题,因为:1. 不完整信息的完整三维重建是一个不适定问题,没有唯一的解决方案。2. 由于传感器噪声、深度分辨率低、数据丢失和量化误差等原因,该问题是一个重大的挑战。3. 它需要适当地合并有关场景或对象几何体的外部信息,以便成功重建。

7、Saliency Prediction(显著性预测)

人类视觉系统有选择地关注场景的显著部分,并对最显著的区域进行详细的理解。

显著区域的检测对应于场景中的重要对象和事件及其相互关系。2-2.5-3D传感模式的显著性估计方法主要包括RGB-D、光场成像和点云方式。显著性预测在用户体验分析、场景摘要、图像/视频自动标注、资源受限设备的优先处理、目标跟踪和新颖性检测等方面具有重要的应用价值。显著性预测任务的重要问题是:1. 显著性是不同因素的复杂函数,包括外观、纹理、背景属性、位置、深度等,建模这些复杂关系是一项挑战2. 它需要自上而下和自下而上的提示来准确地建模对象显著性3. 一个关键的必要条件是对本地和全球环境进行充分编码

8、Affordance Prediction

基于对象的关系(例如椅子靠近桌子)已经成功地用于场景理解任务,如语义分割和整体推理,但是,解释室内场景的一个有趣方向是理解对象的功能或提供,即可以对特定对象执行哪些操作(例如,可以坐在椅子上,将咖啡杯放在桌子上)。对象的这些特征可以用作属性,这些属性对于跨类别传递知识非常有用,这种能力在辅助机器人、家用机器人和工业机器人等应用领域非常重要,因为在这些领域,机器人需要与周围环境进行积极的交互。

Affordance Prediction具有挑战性,因为:

1. 此任务需要来自多个来源和内容原因的信息来发现关系。2. 通常需要对隐藏的上下文(例如,场景中不存在的人类)建模,以预测对象的正确提供。3. 关于物理和材料特性的推理对于该供应检测至关重要。

9、Holistic/Hybrid Approaches

到目前为止,已经讨论了对理解场景语义、组成对象及其位置、对象功能及其显著性等方面有重要意义的各个任务。在整体场景理解中,模型旨在同时对场景的多个互补方面进行推理,以提供详细的场景理解。

整体场景理解的重要障碍是:1. 由于对象间交互的复杂性,在现实环境中准确地建模对象与背景之间的关系是一项艰巨的任务。2. 由于需要在场景分解的多个层次进行推理,因此很难进行有效的训练和推理。3. 整合多个单独任务,并将一个信息源与另一个信息源互补是一项关键挑战。

2-2.5-3D的室内场景理解的更多相关文章

  1. 点云深度学习的3D场景理解

    转载请注明本文链接: https://www.cnblogs.com/Libo-Master/p/9759130.html PointNet: Deep Learning on Point Sets ...

  2. 点云上的深度学习及其在三维场景理解中的应用(PPT内容整理PointNet)

      这篇博客主要是整理了PointNet提出者祁芮中台介绍PointNet.PointNet++.Frustum PointNets的PPT内容,内容包括如何将点云进行深度学习,如何设计新型的网络架构 ...

  3. ECCV 2018 | 旷视科技提出统一感知解析网络UPerNet,优化场景理解

    全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕.届时,旷视首席科学家孙 ...

  4. Unity3D制作3D虚拟漫游场景(二)

    传送门: Unity3D制作3D虚拟漫游场景(一) -------------------------------------------------------------------------- ...

  5. 【Unity3d】3d网页游戏场景打包与加载

    http://www.cnblogs.com/dosomething/archive/2012/04/07/2436353.html 3d游戏中  一个场景往往比较大  如果游戏的进行需要下载一个10 ...

  6. 用一个应用场景理解ASP.NET Core Identity是什么?

    目录 前言 基于声明的认证(Claims-based Authentication) 应用场景一 在ASP.NET Core 中Identity是如何实现的 类ClaimsPrincipal 考察另外 ...

  7. Unity 3D还原Scene场景、市面多数游戏视角高度自定义、第三人称视角分离功能:平移、拖动、看向中心等

    Unity视角的高度自定义 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  8. [Axiom 3D]3.SceneManager场景管理器

    首先看看Axiom.Core命名空间下public abstract class SceneManager : DisposableObject A SceneManager organizes th ...

  9. Unity3D制作3D虚拟漫游场景(一)

    开始前先说一些题外话,本来这个工程是已经完成了超过一半了,然而由于手残重装了系统不小心删除了,现在只好再做一遍了.顺便写一下博供今后写代码参考. 这是一款使用unity3D开发的虚拟城市漫游游戏,实际 ...

随机推荐

  1. 【Navicat】获取表结构的DDL语句以及获取更新表字段的操作的DDL

    1.获取表结构的DDL语句 2.获取修改表结构某一字段的DDL语句  设计表-修改表字段(记住不要保存)-SQL预览

  2. 设计模式-UML图简单介绍

    直接上法宝: 1.类(Class)     类图分三层:     第一层显示类的名称,如果是抽象类,则就用斜体显示.     第二层是类的特性,通常就是字段和属性.     第三层是类的操作,通常是方 ...

  3. MS08_067漏洞攻击

    MS08_067 MS08_067是典型的缓冲区溢出漏洞,Windows的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞,远程攻击者可以通过发送恶意的RPC请求触发这个溢出,导致完全入侵用户 ...

  4. POJ3762 时间段用k次

    题意:       有n个任务,每个任务有自己的开始时间和结束时间,还有完成这个任务能获得的价值,然后每一天的同一个时刻只能执行一个任务,每个任务必须连续执行完成,最多可以工作m天,问这m天能获得的最 ...

  5. Day004 顺序结构

    顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构. 语句与语句之间,是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它 ...

  6. Day002 Java开发环境搭建

    Java开发环境搭建 JDK.JRE.JVM JDK: Java Development Kit(包涵JRE) JRE: Java Runtime Environment(包涵JVM) JVM: Ja ...

  7. Maven关于web.xml中Servlet和Servlet映射的问题

    在配置Servlet时,有两个地方需要配置. 一个是<servlet>,另一个是<servlet-Mapping>,这两个一个是配置Servlet,一个是配置其映射信息. &l ...

  8. lombok,Invalid byte tag in constant pool: 19

    今天偶到一个奇怪的问题: 三台生产服务器部署同样的代码,同样的tomcat ,jdk等环境. 其中有一台服务器启动时报lombok-1.18.6.jar!   Invalid byte tag in ...

  9. 初步了解web

    ------------------------1.Web应用程序的main方法在哪里------------------------Tomcat:从启动到运行首先,我们是通过执行 Tomcat 的s ...

  10. 【odoo】[经验分享]数据迁移注意事项

    [odoo14]经典好书学习没有烂尾,主体已完成,可移步了解.https://www.cnblogs.com/xushuotec/p/14428210.html 背景 近期,有朋友打算上odoo系统. ...