0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三种不同的3D数据表示的基本深度学习方法

ml8z_IV_Technol 来源:未知 作者:李倩 2018-09-03 15:29 次阅读

导读:我们将专注于最近的深度学习技术,这些技术支持3D对象分类和语义分割。我们将首先回顾一些有关捕获和表示3D数据的常用方法的背景信息。然后,我们将描述三种不同的3D数据表示的基本深度学习方法。最后,我们将描述有前途的新研究方向,并总结我们对该领域前进方向的看法。

假设你正在建造一辆需要了解周围环境的自动驾驶汽车。为了能够感知行人、骑自行车的人和周围的其他车辆以便安全行驶,你将如何设计你的汽车?你可以使用相机,但这似乎并不特别有效,因为相机拍出来的照片是2D的,而你只能将3D“挤压”为从相机捕获的2D图像,然后你尝试从2D图像信息(比如到你前面的行人或汽车的距离)中恢复实际的3D环境信息。通过将3D环境压缩到2D图像,你将丢弃对你最重要的许多信息。尝试将这些信息重新组合在一起很困难,即使对于最先进的算法,也容易出错。

相反,最好是能够使用3D数据扩充你的2D世界视图。你可以直接通过传感器找到这些物体,而不是尝试估算2D图像与行人或其他车辆的距离。但现在感知这一部分是比较困难的。你如何在3D数据中真正识别人?如骑自行车的人和汽车等物体。传统的深度学习技术,如卷积神经网络(CNN),可以使这些物体在2D图像中直接识别,需要适应3D工作。幸运的是,在过去的几年里,人们已经对3D中的感知问题进行了相当多的研究,我们在本文中的任务是简要概述这项工作。

特别是,我们将专注于最近的深度学习技术,这些技术支持3D对象分类和语义分割。我们将首先回顾一些有关捕获和表示3D数据的常用方法的背景信息。然后,我们将描述三种不同的3D数据表示的基本深度学习方法。最后,我们将描述有前途的新研究方向,并总结我们对该领域前进方向的看法。

我们如何捕获和表示3D数据?

很明显,我们需要能够直接在3D中运行的计算机视觉方法,但这提出了三个明显的挑战:感知,表示和理解3D数据。

感知

捕获3D数据的过程很复杂。虽然2D相机便宜且广泛,但3D感测通常需要专门的硬件设置。

立体视觉利用多台摄像机,通过测量被感知物体位置的变化来计算深度信息(来源:爱丁堡大学)

1、立体视觉将两个或以上摄像机相对于彼此固定在特定位置,并使用此设置捕获场景的不同图像,匹配相应的像素,并计算每个像素在图像之间的位置差异以计算其在3D空间中的位置。这大致是人类感知世界的方式 - 我们的眼睛捕捉到现实世界中两个独立的“图像”,然后我们的大脑会看到物体的位置在我们的左眼和右眼之间的位置如何不同以确定其3D位置。立体视觉很有吸引力,因为它涉及的硬件很简单 - 只有两个或以上普通相机。然而,在精度或速度很重要的应用中,这种方法并不是很好。

RGB-D相机输出包含颜色信息和每像素深度的四通道图像(来源:九州大学)

2、RGB-D涉及使用除了彩色图像(“RGB”)之外还捕获深度信息(“D”)的特殊类型的相机。具体来说,它捕获了从普通2D相机获得的相同类型的彩色图像,但是,对于某些像素子集,它还会告诉你相机前面的距离。在内部,大多数RGB-D传感器通过“结构光”进行工作,该结构光将红外图案投射到场景上并感知该图案如何扭曲到几何表面上,或者“飞行时间”,其观察投射的红外光多长时间需要返回相机。你可能听说过的一些RGB-d相机包括微软Kinect和iPhone X的面部识别传感器。RGB-D很棒,因为这些传感器相对较小且成本较低,却很快速且不受视觉匹配误差的影响。然而,由于遮挡(前景中的物体阻挡投影到其后面的物体上),RGB-D相机的深度输出通常会有许多孔,图案感应失败和范围问题(投影和感应都变得难以远离相机)。

LIDAR使用多个激光束(同心圆感应)直接感知环境的几何结构(来源:Giphy)

3、LiDAR涉及在物体上发射快速激光脉冲并测量它们返回传感器所花费的时间。这类似于我们上面描述的RGB-D相机的“飞行时间”技术,但是LiDAR具有明显更长的距离,捕获更多的点,并且对来自其他光源的干扰更加具有鲁棒性。如今,大多数3D LiDAR传感器都是多线(最多64线)光束垂直对齐、可以快速旋转,以便在传感器周围的所有方向上看到。这些是大多数自动驾驶汽车中使用的传感器,因为它们的精度、范围和坚固性,但是LiDAR传感器的问题在于它们通常很大,很重且非常昂贵(64光束传感器)大多数自动驾驶汽车的使用成本为75,000美元)。其结果是,许多公司正在努力开发更便宜的“固态激光雷达”系统,可以在3D感知,而不必旋转。

3D表示

一旦捕获了3D数据,你需要以一种有意义的方式表示它,作为您正在构建的处理管道的输入。您应该知道四种主要表示形式:

3D数据的不同表示。(a)点云(来源:Caltech),(b)体素网格(来源:IIT Kharagpur),(c)三角网格(来源:UW),(d)多视图表示(来源:斯坦福)

a、点云只是3D空间中点的集合;每个点由(xyz)位置指定,可与一些其他属性(如rgb颜色)一起指定。它们是捕获LiDAR数据的原始形式,立体和RGB-D数据(由标记为每像素深度值的图像组成)通常在进一步处理之前转换为点云。

b、体素网格源自点云。“体素”就像3D中的像素;将体素网格视为量化的固定大小的点云。虽然点云可以在空间中的任何位置具有无限数量的点与浮点像素坐标,但是体素网格是3D网格,其中每个单元格或“体素”具有固定大小和离散坐标。

c、多边形网格由一组多边形面组成,这些面具有接近几何表面的共享顶点。将点云视为来自底层连续几何表面的采样3D点的集合;多边形网格旨在以易于渲染的方式表示那些底层表面。虽然最初是为计算机图形创建的,但多边形网格也可用于3D视觉。有几种方法可以从点云中获得多边形网格,包括Kazhdan等人的泊松曲面重构。

d、多视图表示是从不同的模拟视点(“虚拟相机”)捕获的渲染多边形网格的2D图像的集合,以便以简单的方式传达3D几何。简单地从多个摄像机(如立体声)捕获图像和构建多视图表示之间的区别在于多视图需要实际构建完整的3D模型并从几个任意视点渲染它以完全传达底层几何。与上面用于存储和处理3D数据的其他三种表示不同,多视图表示通常仅用于将3D数据转换为用于处理或可视化的简单格式。

理解

既然已经将3D数据转换为易于理解的格式,那么你就需要构建一个计算机视觉管道来理解它。这里的问题是,根据数据的表示,扩展在2D图像(如CNN)上运行良好的传统深度学习技术可能很难处理,使得诸如对象检测或分段之类的传统任务具有挑战性。

学习多视图输入

使用3D数据的多视图表示是使2D深度学习技术适应3D的最简单方法。这是将3D感知问题转换为2D感知问题的一种聪明方式,但仍然允许您推断对象的3D几何结构。使用这种想法的早期基于深度学习的工作是Su等人的多视图CNN一种简单而有效的架构,可以从3D对象的多个2D视图中学习特征描述符。与将单个2D图像用于对象分类任务相比,该方法实现了该方法,提高了性能。这是通过将单个图像输入到在ImageNet上预训练的VGG网络来实现的,以便提取显着特征,汇集这些产生的激活图,并将该信息传递到附加的卷积层以进行进一步的特征学习。

多视图CNN架构

但是,多视图图像表示具有许多限制。主要问题是你并没有真正学习3D -固定数量的2D视图仍然只是底层3D结构的不完美近似。因此,由于从2D图像获得的有限特征信息,诸如语义分割之类的任务(尤其是在更复杂的对象和场景上)的任务变得具有挑战性。此外,这种可视化3D数据的形式对于计算受限的任务(如自动驾驶和虚拟现实)而言不可扩展 - 请记住,生成多视图表示需要渲染完整的3D模型并模拟多个任意视点。最终,多视图学习面临许多缺点,这些缺点促使研究直接从3D数据学习的方法。

学习体积表示法

使用体素网格进行学习可以解决多视图表示的主要缺点。体素网格弥合了2D和3D视觉之间的差距- 它们是最接近图像的3D表示,使得将2D深度学习概念(如卷积算子)与3D相匹配变得相对容易。Maturana和Scherer的VoxNet是第一个在给定体素网格输入的情况下在对象分类任务上获得令人信服的结果的深度学习方法之一。VoxNet对概率占用网格进行操作,其中每个体素包含该体素在空间中占据的概率。该方法的益处在于其允许网络区分已知自由的体素(例如,LiDAR束穿过的体素)和占用未知的体素(例如,LiDAR束撞击的体素后面的体素)。

VoxNet架构

VoxNet的架构本身非常简单,由两个卷积层,一个最大池层和两个完全连接的层组成,用于计算输出类别得分向量。与大多数最先进的图像分类网络相比,该网络更浅,参数更少,但它是从数百种可能的CNN架构的随机搜索中选择的。由于体素网格与图像非常相似,因此它们采用的实际跨步卷积和合并算子是这些算子从2D像素到3D体素的简单修改;卷积运算符使用内核而不是内核在2D CNN中使用的内核,并且池操作符考虑体素的非重叠3D块而不是2D像素块。

VoxNet的一个问题是该体系结构本身并不是旋转不变的。虽然作者合理地假设传感器保持直立,以便体素网格的轴与重力方向对齐,关于旋转的旋转不能做出这样的假设来自后面的对象仍然是同一个对象,即使体素网格中的几何图形与学习的卷积内核非常不同地相互作用。为了解决这个问题,他们采用了简单的数据增强策略。在训练过程中,他们多次旋转每个模型并训练所有副本;然后,在测试时,它们将最终完全连接层的输出汇集到输入的几个旋转中。他们指出,与汇集中间卷积层的输出(如Su等人)相比,这种方法导致了类似的性能,但收敛速度更快。多视图CNN在他们的“视图池”步骤中,通过这种方式,VoxNet通过在输入体素网格的不同旋转上共享相同的学习卷积核权重来学习旋转不变性。

VoxNet代表了迈向真正3D学习的重要一步,但体素网格仍然存在许多缺点。首先,与点云相比,它们会失去分辨率,因为如果它们靠近在一起,则表示复杂结构的几个不同点将被分类到一个体素中。同时,与稀疏环境中的点云相比,体素网格可能导致不必要的高内存使用,因为它们主动消耗内存来表示自由和未知空间,而点云仅包含已知点。

点云学习

PointNet

鉴于基于体素的方法存在这些问题,最近的工作主要集中在直接在原始点云上运行的架构上。最值得注意的是,Qi等人的 PointNet(2016)是最早提出的处理这种形式的不规则三维数据的方法之一。然而,正如作者所指出的,点云只是一组由xyz位置以3D表示的点。更具体地说,给定在点云中,网络需要学习不变的独特功能 输入数据的排列,因为馈入网络的点的排序不会影响基础几何。此外,网络应该对点云的变换具有鲁棒性 - 旋转,平移和缩放不应影响预测。

为了确保输入排序的不变性,PointNet背后的关键洞察力是使用简单的对称函数,为输入的任何排序产生一致的输出(此类函数中的示例包括加法和乘法)。在这种直觉的指导下,PointNet架构背后的基本模块(称为PointNet Vanilla)定义如下:

这里是是一个对称函数,将输入点转换为维向量(用于对象分类)。这个功能可以近似,使得存在另一个对称函数,在等式中是一个多层感知器(MLP),它将各个输入点(及其相应的特征,如xyz位置,颜色,表面法线等)映射到更高维度的潜在空间。max-pooling操作用作对称函数,将学习的特征聚合到点云的全局描述符中。传递这个单一特征向量另一个输出对象预测的MLP。

为了解决学习对点云几何变换不变的表示的挑战,PointNet采用了一种称为T-Net的迷你网络,它将仿射变换应用于输入点云。这个概念类似于Jaderberg等人的空间变压器网络。但更简单,因为不需要定义新类型的图层。T-Net由可学习的参数组成,使PointNet能够将输入点云转换为固定的规范空间 - 确保整个网络即使是最轻微的变化也能保持稳健。

PointNet架构

整个PointNet架构将vanilla方法和T-Net与多个MLP层集成在一起,为层云创建特征表示。然而,除了对象分类之外,PointNet还支持对象和场景的语义分割。为实现此目的,该体系结构将来自最大池对称函数的全局特征向量与输入数据通过几个MLP后学习的每点特征相结合。通过连接这两个向量,每个点都知道其全局语义和本地特征,使网络能够学习更有意义的功能,以帮助进行分段。

使用PointNet的室内场景的语义分割结果

PointNet ++

尽管PointNet取得了令人瞩目的成果,但其中一个主要缺点是架构无法捕获点邻域内的底层局部结构- 这一想法类似于使用CNN从图像中增加感知域大小来提取特征。为了解决这个问题,齐等开发了PointNet ++(2017),从PointNet架构衍生出来,但也能够在点云中学习本地区域的功能。这种方法背后的基础是一个分层特征学习层,它有三个关键步骤。它(1)采样点作为局部区域的质心,(2)基于距质心的距离对这些局部区域中的相邻点进行分组,以及(3)使用迷你PointNet对这些区域的特征进行编码。

逐步重复这些步骤,以便在点云内的不同大小的点组中学习特征。通过这样做,网络可以更好地理解整个点云中本地点集群内的底层关系 - 最终有助于提高泛化性能。这项工作的结果表明,PointNet ++能够对包括PointNet在内的现有方法进行重大改进,并在3D点云分析基准测试(ModelNet40和ShapeNet)上实现了最先进的性能。

有希望的新研究领域—图CNN

目前关于处理三维数据的深度学习架构的研究主要集中在点云表示上,最近的大部分工作都是从PointNet / PointNet ++扩展思路,并从其他领域中汲取灵感,以进一步提高性能。一篇这样的论文的例子是Wang等人的动态图形细胞神经网络(2018),其使用基于图的深度学习方法来改进点云中的特征提取。想法是PointNet和PointNet ++无法捕获各个点之间的几何关系,因为这些方法需要保持不同输入排列的不变性。然而,通过考虑一个点并将它作为有向图周围的最近邻居,Wang等人。构造EdgeConv,一个在数据中的点之间生成唯一特征的运算符。

SPLATNet

SPLATNet架构

另一方面,一些研究已经远离PointNet / PointNet ++中提出的经典特征提取方法,选择设计一种处理点云的新方法。苏等人的SPLATNet(2018)体系结构是点云研究中这一新焦点的一个很好的例子 - 作者设计了一种新颖的体系结构和卷积运算符,而不是直接在点云上运行。本文背后的关键见解是将“感受野”的概念转化为不规则点云,这使得即使在稀疏区域也能保留空间信息(PointNet / PointNet ++的一个关键缺点)。特别令人着迷的是,SPLATNet可以将从多视图图像中提取的特征投影到3D空间中,将这些2D数据与端到端可学习架构中的原始点云融合在一起。使用这种2D-3D联合学习,SPLATNet实现了语义分割的最新技术

Frustum PointNets

可视化从2D边界框估计生成的3D平截头体

第三个有希望的研究方向涉及扩展我们上面描述的基本架构构建块,以构建更复杂的网络,用于3D等物体检测等有用任务。基于使用2D和3D数据的想法,Qi等人的 Frustum PointNets(2017)提出了一种融合RGB图像和点云的新方法,以提高在大型3D场景中定位对象的效率。用于该任务的常规方法通过直接在整个点云上对滑动窗口执行分类来确定对象的可能3D边界框,这在计算上是昂贵的并且使得实时预测变得困难。齐等人做出两个关键贡献。

首先,他们建议最初使用标准CNN在2D图像上进行物体检测,挤出对应于检测到的物体可能存在的点云区域的3D平截头体,然后仅对此“切片”执行搜索过程。点云。这显着缩小了边界框估计的搜索空间,降低了错误检测的可能性并大大加快了处理流水线,这对于自动驾驶应用至关重要。

其次,Qi等人不是在边界框搜索过程中执行典型的滑动窗口分类。设计一种新颖的基于PointNet的架构,可以直接执行实例分割(将点云分割成单个对象),并在一次通过中对整个3D平截头体进行边界框估计,使得它们的方法对于遮挡和稀疏性都快速且稳健。最终,作为这些改进的结果,这项工作在出版KITTI和SUN RGB-D 3D检测基准时的表现优于所有先前的方法。

一点想法

在过去的5年中,3D深度学习方法已经从使用派生(多视图)到3D数据的原始(点云)表示。在此过程中,我们已经从简单适应2D CNN的方法转变为3D数据(多视图CNN甚至VoxNet),再到手工制作3D(PointNet和其他点云方法)的方法,大大提高了任务的性能喜欢对象分类和语义分割。这些结果很有希望,因为它们证实了在3D中观察和表现世界确实有价值。

然而,这一领域的进步才刚刚开始。当前的工作不仅侧重于提高这些算法的准确性和性能,还侧重于确保稳健性和可扩展性。虽然目前的大部分研究都是由自主车辆应用推动的,但直接在点云上运行的新方法将在3D医学成像、虚拟现实和室内地图中发挥重要作用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2755

    浏览量

    106442
  • 自动驾驶
    +关注

    关注

    773

    文章

    13027

    浏览量

    163201
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119903

原文标题:自动驾驶技术之——3D感知环境的深度学习方法

文章出处:【微信号:IV_Technology,微信公众号:智车科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AI工程师 10 个深度学习方法

    学到了大量关于深度学习的相关知识。在这里,我想分享人工智能工程师 10 个用于解决机器学习问题的强大的深度学习方法。但是,我们首先需要定义什
    发表于 03-07 20:17

    3D TOF深度剖析

    这段时间以来,最热的话题莫过于iPhone X的Face ID,关于用它刷脸的段子更是满天飞。其实iPhone X 实现3D视觉刷脸是采用了深度机器视觉技术(亦称3D机器视觉)。由于iPhone X的推动,
    发表于 07-25 07:05

    最受欢迎的三种深度传感器

    。这种技术跟3D激光传感器原理基本类似,只不过3D激光传感器是逐点扫描,而TOF相机则是同时得到整幅图像的深度信息。  TOF技术采用主动光探测方式,与一般光照需求不一样的是,TOF照射单元的目的不是
    发表于 08-25 11:05

    基于深度学习3D图像处理的精密加工件外观缺陷检测系统

    的要求; 创新点深度学习应用于3D图像的分析处理。直接联通维图像数据
    发表于 03-08 13:59

    深度学习技术的开发与应用

    时间安排大纲具体内容实操案例天关键点1.强化学习的发展历程2.马尔可夫决策过程3.动态规划4.无模型预测学习5.无模型控制学习6.价值函数
    发表于 04-21 14:57

    使用结构光的3D扫描介绍

    随着很多全新技术的涌现,人们越来越需要用3D方法表示现实世界中的物体。特别是机器视觉和机器人技术,它们都得益于精确和自适应的3D捕捉功能。其它针对
    发表于 11-16 07:48

    一种融合节点先验信息的图表示学习方法

    基于深度学习提出了融合节点先验信息的图表示学习方法,该方法将节点特征作为先验知识。要求学习到的
    发表于 12-18 16:53 0次下载
    一种融合节点先验信息的图<b class='flag-5'>表示</b><b class='flag-5'>学习方法</b>

    模型驱动深度学习的标准流程与学习方法解析

    模型驱动的深度学习方法近年来,深度学习在人工智能领域一系列困难问题上取得了突破性成功应用。
    的头像 发表于 01-24 11:30 4644次阅读
    模型驱动<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的标准流程与<b class='flag-5'>学习方法</b>解析

    区块链数据集有怎样的机器学习方法

    区块链数据集提供了一个与加密货币资产行为相关的独特的数据宇宙,因此,为机器学习方法的应用提供了独特的机会。
    发表于 11-26 09:49 771次阅读

    深度学习三种学习模式介绍

    深度学习是一个广阔的领域,它围绕着一种形态由数百万甚至数十亿个变量决定并不断变化的算法——神经网络。似乎每隔一天就有大量的新方法和新技术被提出来。不过,总的来说,现代深度
    的头像 发表于 10-23 14:59 1.2w次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>的<b class='flag-5'>三种</b><b class='flag-5'>学习</b>模式介绍

    一种基于块对角化表示的多视角字典对学习方法

    字典学习作为一种高效的特征学习技术被广泛应用于多视角分类中。现有的多视角字典学习方法大多只利用多视角数据的部分信息,且只学习一种类型的字典。
    发表于 04-20 14:04 1次下载

    基于变分自编码器的网络表示学习方法

    ,将这些信息融入到网络表示学习过程中,有助于提升下游任务的性能。但是针对不同的应用场景,结构和属性信息并不总是线性相关,而且它们都是高度非线性的数据。提岀一种基于变分自编码器的网络表示
    发表于 05-12 14:50 27次下载

    面向异质信息的网络表示学习方法综述

    面向异质信息的网络表示学习方法综述
    发表于 06-09 14:12 13次下载

    使用深度学习方法对音乐流派进行分类

    电子发烧友网站提供《使用深度学习方法对音乐流派进行分类.zip》资料免费下载
    发表于 02-08 10:02 1次下载
    使用<b class='flag-5'>深度</b><b class='flag-5'>学习方法</b>对音乐流派进行分类

    联合学习在传统机器学习方法中的应用

    联合学习在传统机器学习方法中的应用
    的头像 发表于 07-05 16:30 536次阅读
    联合<b class='flag-5'>学习</b>在传统机器<b class='flag-5'>学习方法</b>中的应用