3维重建 人工智能(3维重建 人工智能教程)

日期: 浏览:3

大家好,今天来为大家解答3维重建 人工智能这个问题的一些问题点,包括3维重建 人工智能教程也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

本文目录

  1. 量子计算+人工智能,在未来会碰出怎样的火花?
  2. 人工智能的最大技术工具集
  3. 3D深度学习是人工智能的未来趋势吗,你怎么看?
  4. 人工智能的发展前景?

量子计算+人工智能,在未来会碰出怎样的火花?

颠覆现有人工智能模式,许多现在受计算复杂度影响的基础理论能更得到更好应用,正如深度神经网络得到计算能力的支撑一样,未来符号主义与连接主义在量子计算上的结合值得期待,有望催生新一代强智能技术。

人工智能的最大技术工具集

它是计算网络工具包(ComputationalNetworkToolkit)的缩写,CNTK是一个微软的开源人工智能工具。不论是在单个CPU、单个GPU、多个GPU或是拥有多个GPU的多台机器上它都有优异的表现。

微软主要用它做语音识别的研究,但是它在机器翻译、图像识别、图像字幕、文本处理、语言理解和语言建模方面都有着良好的应用。

3D深度学习是人工智能的未来趋势吗,你怎么看?

在过去的5年中,3D深度学习方法已经从使用三维数据的派生表示(二维投影)转变为直接使用原始数据(点云)。而在方法上也从将二维卷积神经网络应用到三维数据上转变为专门为三维场景设计的方法,这大大提高了物体分类和语义分割等任务的性能。这些结果非常有前景,它们证明了通过三维技术观察和表示这个世界是有价值的。然而,这个领域才刚刚步入发展的快车道。

想象一下,如果你正在建造一辆自动驾驶汽车,它需要了解周围的环境。为了安全行驶,你的汽车该如何感知行人、骑车的人以及周围其它的车辆呢?你可能会想到用一个摄像头来满足这些需求,但实际上,这种做法似乎效果并不好:你面对的是一个三维的环境,相机拍摄会使你把它「压缩」成二维的图像,但最后你需要将二维图像恢复成真正关心的三维图像(比如你前方的行人或车辆与你的距离)。在相机将周围的三维场景压缩成二维图像的过程中,你会丢掉很多最重要的信息。试图恢复这些信息是很困难的,即使我们使用最先进的算法也很容易出错。

相反,用三维数据来增强对世界的二维视图是非常好的做法。与其试着从一张二维图像中估计你和行人或其它车辆的距离,你不如通过传感器直接对这些物体进行定位。但是,这样做又会使感知的工作变得十分困难。如何在三维数据中识别人、骑车者和汽车这样的目标呢?传统的像卷积神经网络(CNN)这样的深度学习技术,能够使在二维图像中识别这些目标变得简单而直接,但是它们也需要进行一些调整从而适应在三维环境下的工作。幸运的是,三维感知问题在过去的几年中已经被人们广泛研究,我们在本文中的任务就是对这项工作进行一个简要的概述。

具体来说,我们将关注最近的三维目标分类和语义分割的深度学习技术。我们将首先回顾一些获取和表示三维数据的常用方法的背景。接着,我们将介绍三种不同的表示三维数据的基本深度学习方法,最后,我们将介绍未来有前景的新研究方向,并且从我们的视角总结该领域未来的走向。

我们如何获取并表示三维数据?

显然,我们需要能够直接在三维空间进行操作的计算机视觉方法,但是这向我们提出了三个明确的挑战:感知、表示和理解三维数据。

感知

获取三维数据的过程是复杂的。虽然二维摄像头既便宜又随处可见,但是三维感知通常需要专用的硬件设备。

Stereovision需要使用多个摄像头,测量感知目标的位置变化,从而计算深度信息。(来源:爱丁堡大学)

1:立体视觉系统Stero需要在相对于待测物体特定的一些位置固定两个或多个摄像头,并且利用这样设定的结构获取不同场景下的图像,匹配相应的像素点,计算每个像素点对应的位置在不同的图像间的差异,从而计算出该像素点在三维空间中的位置。人类大致上就是像这样感知这个世界的。我们的眼睛会捕捉到两个独立的对于关于我们眼前世界的「图像」,接着大脑会从左眼和右眼的视角来看某个物体的位置有何不同,从而确定其三维位置。Stero涉及到的硬件系统十分简单,这正是它吸引人的地方,它仅仅需要两个或多个普通的摄像头。然而,这种方法在对准确率和运行速度有要求的应用程序中表现并不好,这是因为使用视觉细节来匹配不同的摄像头得到的图像之间对应的像素点不仅具有很高的计算复杂度,而且在缺乏纹理特征或视觉重复的环境中也很容易出错。

RGB-D摄像头输出一个四通道图像,该图像包含颜色信息和每个像素的深度(来源:九州大学)

2:RGB-D涉及到对一种特殊摄像头的使用,这种摄像头除了颜色信息(「RGB」),还可以获取深度信息(「D」)。具体而言,它能够获取通过普通的二维摄像头得到的彩色图像,而且还能告诉你这些图像中像素点的某些子集代表的物体离摄像头有多远。在系统内部,RGB-D传感器要么通过「结构光」技术工作,要么通过「飞行时间法」(TOF)工作。「结构光」技术能够将红外线图案投射到一个场景上,并且感知这种图案是如何在几何表面上变形的;「飞行时间法」会观察其发出的红外线返回摄像头所需要的时间。举例来说,微软的Kinect以及IphoneX的FaceID传感器都是RGB-D摄像头。由于这些传感器在尺寸相对较小、成本较低的同时,也能在对视觉匹配错误具有免疫性的同时很快地运行,所以RGB-D是一种很好的感知手段。然而,RGB-D摄像头的深度输出常常有许多的「孔洞」,这是由于遮挡(前景中的物体遮挡住了其后方物体的投影),模式感知失败以及感知范围的问题(在离摄像头更远的地方,投影和感知会变得很困难)。

激光雷达(LiDAR)使用多个激光束(同心圆模式)直接感知环境的集合结构(Giphy)。

3:激光雷达会向物体发出快速激光脉冲,测量它们返回传感器所需要的时间,这类似于我们在上面描述的「飞行时间法」,但是激光雷达的感知范围更远,能够捕获更多像点,并且抗其它光源干扰的能力更强。目前,大多数的三维激光雷达传感器都会发出一些(多达64个)垂直排列的光束,会在传感器周围的各个方向上快速旋转。出于对准确性、感知范围以及鲁棒性的要求,目前大多数的自动驾驶汽车都会采用这种系统。但是激光雷达传感器存在的问题是,它们通常都很大很重并且极其昂贵(大多数自动驾驶汽车使用的64束传感器需要花费7.5万美元)!因此,许多公司目前正在尝试开发更加廉价的「固态激光雷达」系统,它无需旋转就可以在三维场景下进行感知。

三维表示

一旦你获取了三维数据,你就需要以一种形式来表示它,这种形式将作为你正在构建的处理流程的输入。以下是四种你应该已经知道的表示方式:

三维数据的不同表示方式。(a)点云(来源:加州理工学院);(b)体素网格(来源:印度理工学院);(c)三角网格(来源:华盛顿大学);(d)多视角表示(来源:斯坦福大学)。

a.点云即三维空间中点的集合;每一点都是由某个(xyz)位置决定的,我们同时可以为其指定其它的属性(如RGB颜色)。它们是激光雷达数据被获取时的原始形式,立体视觉系统和RGB-D数据(包含标有每个像素点深度值的图像)通常在进行进一步处理之前会被转换成点云。

b.体素网格是从点云发展而来的。「体素(Voxel)」就好比三维空间中的像素点,我们可以把体素网格看作量化的、大小固定的点云。然而,点云在空间中的任何地方能够以浮点像素坐标的形式涵盖无数个点;体素网格则是一种三维网格,其中的每个单元(或称「体素」)都有固定的大小和离散的坐标。

c.多边形网格由一组带公共顶点的凸多边形表面组成,可近似一个几何表面。我们可以将点云看作是从基础的连续集合表面采样得到的三维点集;多边形网格则希望通过一种易于渲染的方式来表示这些基础表面。尽管多边形网格最初是为计算机图形学设计的,但它对于三维视觉也十分有用。我们可以通过几种不同的方法从点云中得到多边形网格,其中包括Kazhdan等人于2006年提出的「泊松表面重建法」。

d.多视图表示是从不同的模拟视角(「虚拟摄像头」)获取到的渲染后的多边形网格二维图像集合,从而通过一种简单的方式表现三维几何结构。简单地从多个摄像头(如立体视觉系统stereo)捕捉图像和构建多视图表示之间的区别在于,多视图实际上需要构建一个完整的3D模型,并从多个任意视点渲染它,以充分表达底层几何结构。与上面的其他三种表示不同,多视图表示通常只用于将3D数据转换为易于处理或可视化的格式。

理解

现在,你已经将你的三维数据转化成了易于理解的形式,你需要做的是真正构建一个计算机视觉处理流程来理解它。这里的问题在于,传统的在二维图像上性能良好的深度学习技术(如CNN)在处理三维数据时可能会很困难,具体情况取决于数据的表示。这使得传统的如目标检测或图像分割等任务变得具有挑战性。

通过多视图输入学习

使用三维数据的多视图表示是将二维深度学习技术应用到三维场景下的最简单的方式。这是一种将三维感知问题转化为二维感知问题的明智做法,但它仍然在某种程度上允许你对物体的三维几何结构进行推理。早期的利用这种思想的基于深度学习的工作是Su等人在2015年提出的multi-viewCNN。

这是一种简单却十分有效的网络架构,它可以从三维物体的多个二维视图中学到特征描述符。实现这种方法与对目标分类任务使用单个二维图像相比,提高了模型的性能。这种方法通过将一张张图像输入在ImageNet上预训练好的VGG网络,从而提取出显著的特征、将这些结果向量组合在一起,并且将这些信息传递给其余的卷积层进行进一步的特征学习得以实现。

multi-viewCNN架构(来源:multi-viewCNN)

然而,multi-view图像表示仍然有很多的局限性。主要的问题是你并没有真正在三维环境下学习,固定数量的二维视图仍然只是一个对于底层的三维结构的不完美的近似。因此,像语义分割这样的任务,特别是在跨越更复杂的物体和场景时,就会因为从二维图像中获得的特征信息有限而变得具有挑战性。此外,这种可视化三维数据对于像自动驾驶和虚拟现实这样计算开销非常大的任务来说是不可扩展的。请记住,生成多视图表示需要渲染一个完整的三维模型并且模拟一些任意的视点。多视图学习仍然有许多缺陷,这些缺陷促使人们研究直接利用三维数据进行学习的方法。

通过体积式表示学习

通过体素网格进行学习可以解决多视图表示的主要缺点。体素网格缩小了二维和三维之间的差距,它们是最接近图像的三维表示形式,这使得二维深度学习的概念(比如卷积操作)能够容易地应用于三维情景。

Maturana和Scherer在2015年提出的VoxNet(2015)是最早在给定体素网格输入的情况下在物体分类任务上取得优异表现的深度学习方法。VoxNet使用的是概率占用网格,其中的每个体素都包含了该体素在空间中被占用的概率。这样做的一个好处就是,它允许网络区分已知是自由的体素(例如,激光雷达光束经过的体素)和占用情况未知的体素(例如,激光雷达击中位置后方的体素)。

VoxNet架构(来源:VoxNet)

VoxNet的架构本身非常简单,它由两个卷积层、一个最大池化层和两个用于计算输出的类别得分向量的全连接层组成。这个网络比最先进的图像分类网络要浅得多,参数也少得多,但是它是从上百种可能的卷积神经网络架构中挑选出来的。由于体素网格与图像十分相似,它们实际上使用的带步长的卷积和池化运算都是从二维像素的工作方式进行调整迁移到三维体素上来的。卷积算子使用的是d×d×d×c的卷积核而不是二维卷积神经网络中使用的d×d×c,池化运算考虑的是不重叠的三维体素块而不是二维像素块。

VoxNet存在的一个问题是,该架构本质上并没有旋转不变性,尽管作者合理地假设传感器保持直立,使体素网格的z轴和重力方向保持一致,但是并没有假设物体会绕着z轴旋转:一个物体从背后看仍然对应相同的物体,即使在体素网格中的几何形状与我们所学的卷积核有很大的不同。为了解决这个问题,他们使用了一个简单的数据增强策略。在训练中,他们多次对每个体素网格进行旋转,并且在所得到的副本上进行训练;接着在测试时,他们将最后的全连接层在输入的不同方向上得到的输出进行池化。他们指出,这种方法比Su等人使用的多视图CNN在「视图池化」步骤中所做的对中间卷积层输出进行池化的方法能更快收敛。通过这种方式,VoxNet通过在输入的体素网格的不同旋转方向上共享相同的学到的卷积核权值来学习这种旋转不变性。

VoxNet代表着我们向真正的三维学习迈进了一大步,但是体素网格仍然具有一些缺点。首先,与点云相比,它们丢失了分辨率。因为如果代表复杂结构的不同点距离很近,它们会被被绑定在同一个体素中。与此同时,与稀疏环境中的点云相比,体素网格可能导致不必要的高内存使用率。这是因为它们主动消耗内存来表示自由和未知的空间,而点云只包含已知点。

通过点云学习

PointNet

考虑到这些使用基于体素的方法存在的问题,近期的工作将重点放在了直接在原始点云数据上进行操作的架构上。最值得人们注意的是Qi等人于2016年提出的PointNet是最早的处理这种不规则三维数据的方法。然而,正如作者所指出的,点云仅仅是一组通过xyz坐标表示位置的点。更具体地说,当我们给定点云中的N个点,网络需要学到相对于这N个输入点的全排列不变的唯一特征,因为这些输入给神经网络的点的顺序并不会影响底层的几何形状。此外,网络应该对点云的旋转、平移等转换有很强的鲁棒性,而放缩操作也不应该影响预测结果。

为了保证对于不同的输入顺序的不变性,PointNet背后的解决方案的关键思路是使用一个简单的对称函数,该函数为任意顺序排列的输入生成一致的输出(加法和乘法就属于这类函数)。在这种直觉的引导下,PointNet背后的基本架构(称PointNetVanilla)可以定义为:

其中f是将输入点转换为k维向量的转换函数(用于物体分类)。该函数f可以近似表示为另一个存在的对称函数g。在方程中,h是一个多层感知机(MLP),它将单个输入点(以及它们相应的特征,如xyz位置、颜色、表面法线等)映射到更高维度的潜在空间。最大池化操作则会作为对称函数g起作用,它将学到的特征聚合为点云的全局描述符。这个单一特征向量会被传递给另一个输出物体预测结果的多层感知机γ。

为了应对学习对于点云的几何变换具有不变性的表示方式的挑战,PointNet使用了一个称为T-Net的小型网络,它将仿射变换应用于输入点云。这个概念类似于Jaderberg等人于2016年提出的空间变换网络(https://arxiv.org/pdf/1506.02025.pdf),但是比它要简单得多,因为在这里不需要定义新的类型的层。T-Net由可学习的参数组成,这些参数使PointNet能够将输入点云变换为一个固定的、规范的空间,从而确保整个网络对于即使是最细微的变化都具有很强的鲁棒性。

PointNet的架构(来源:PointNet)

整体的PointNet架构继承了最基本的方法和T-Net以及多层感知机层,它们为点云创建特征表示。然而,除了物体分类之外,PointNet还支持对物体和场景进行语义分割。为了实现这一点,该架构将来自最大池化对称函数的全局特征和将输入数据传递给一些多层感知机后学到的点特征相结合。通过将这两个向量连接起来,每个点都知道它的全局语义和局部特征,这使网络能够学习额外的、有助于分割的更有意义的特征。

使用PointNet得到的室内场景的语义分割结果(来源:PointNet)

PointNet++

尽管PointNet取得了令人满意的结果,其最主要的缺点是该架构不能获取点附近的底层局部结构,这一思想类似于使用CNN从图像中不断增大的感受野中提取特征,为了解决这个问题,Qi等人于2017年开发了PointNet++。

它是一个从PointNet派生出来的架构,但是也能从点云的局部区域中学习到特征。这种方法的基本结构是一个有层次的特征学习层,它包含三个关键步骤:(1)为局部区域采样一些点作为质心,(2)根据到质心的距离对这些局部区域中的相邻点进行分组,(3)使用一个mini-PointNet对这些区域进行特征编码。

这些步骤将被不断重复,从而在点云中不同大小的点组中学习特征。这样做可以使网络更好地理解整个点云的局部点集中的底层关系,最终有助于提升泛化性能。这项工作的结果表明,PointNet++相对于包括PointNet在内的现有方法的性能有显著提升,并且在三维点云分析基准测试(ModelNet40和ShapeNet)中取得了目前最好的模型性能。

有前景的新研究领域

GraphCNNs

目前关于处理三维数据的深度学习架构的研究主要关注点云表示,而最近许多的工作扩展了从PointNet/PointNet++发展而来的思想,从其它领域获得灵感,进一步提高了模型性能。举例而言,Wang等人于2018年提出的动态图卷积神经网络(https://arxiv.org/pdf/1801.07829.pdf),使用了基于图形的深度学习方法来改进点云中的特征提取工作。其思想是,PointNet和PointNet++不能捕获各个点之间的几何关系,因为这些方法需要对不同的输入顺序的排列组合保持不变性。然而,通过将一个点和它周围最近的邻居作为一个有向图来考虑,Wang等人构建了EdgeConv算子,它能够生成数据中各点独特的特征。如果你有兴趣学习更多关于图结构上的机器学习的知识,可以参阅这篇概述:https://thegradient.pub/structure-learning/

SPLATNet

SPLATNet架构(来源:SPLATNet)

另一方面,一些研究不同于PointNet/PointNet++中提出的经典特征提取方法,选择设计一种新的点云处理方法。Su等人于2018年提出的SPLATNet架构是点云研究领域这个新的研究热点的很好例子。SPLATNet的作者设计了一个新的架构和卷积算子,它可以对点云直接进行操作。这篇论文背后的关键思想是将「感受野」的概念转换为了不规则点云,这使得空间信息即使在稀疏区域(PointNet/PointNet++的一个主要缺陷)中也可以保持。特别吸引人的一点是,SPLATNet可以将从多视图图像中提取的特征投影到三维空间中,将二维数据与原始点云以一种端到端的可学习的架构进行融合。SPLATNet通过使用这种二维-三维联合学习取得了目前最好的语义分割模型性能。

基于截椎体的PointNet

利用二维边界框估计生成的三维截椎体可视化结果(来源:FrustumPointNets)

基于同时使用二维数据和三维数据的思路,Qi等人的FrustrumPointNet于2017年提出了一种将RGB图像和点云融合从而提高在大型三维场景中定位物体的新方法。传统的解决该任务的方法是通过直接在整个点云上的滑动窗口上执行分类来确定物体可能的三维边界框,这样做的计算开销非常大,并且很难进行实时预测。Qi等人的工作有两个主要的贡献。首先,他们建议首先使用标准的卷积神经网络在二维图像上进行物体检测,提取出一个与待检测的物体可能从属点云区域相对应的三维边界框,然后在点云的这个「切片」上进行搜索。这大大缩小了边界框估计的搜索空间,减少了检测错误的可能性,在很大程度上简化了处理流程,这对自动驾驶应用十分关键。其次,Qi等人设计了一种新颖的基于PointNet的架构,它可以直接对实例进行分割(将点云分割为一个个独立的物体),并一次性地在整个三维边界框中进行边界框估计,而不是在边界框搜索过程中执行经典的滑动窗口分类工作。这使得他们的方法对遮挡和稀疏等情况即迅速又鲁棒。最终,由于这些改进,这项工作发布时,它在KITTI以及SUNRGB-D检测等对比基准上比之前所有的方法都取得了更好的性能。

结语

在过去的5年中,3D深度学习方法已经从使用三维数据的派生表示(多视图表示)转变为使用原始数据(点云)。在这个过程中,我们采用的方法已经从简单地将二维卷积神经网络应用到三维数据上(多视图卷积神经网络、体素网络VoxNet)转变为专门为三维场景设计的方法(PointNet以及其它基于点云的方法),这大大提高了物体分类和语义分割等任务的性能。这些结果非常有前景,因为它们证明了通过三维技术观察和表示这个世界是有价值的。然而,这个领域才刚刚步入发展的快车道。当前的工作不仅要着眼于提高这些算法的准确率和性能,还要确保鲁棒性和可扩展性。尽管目前大多数研究是由无人驾驶应用驱动的,但直接在点云上运行的新方法在三维医学影像、虚拟现实和室内地图中也将发挥重要的作用。

人工智能的发展前景?

一个来自时代弄潮儿的观察:应该是第三次工业革命~信息时代的延续与深化。信息时代第一阶段,是电脑的普及,一切数字化,几乎人类所有活动都需要计算机的辅助来完成,极大的提高了人类自身的效率;信息时代的第二个阶段是互联网,就是电脑普及后的继续深化,互联网化,向所有行业渗透,用互联网来改造一切行业,包括生产环节的前后端连接,从供给到需求端。包括资源要素的共享,互通有无。极大的提供了社会运行的效率;信息时代的第三个阶段应该是智能时代。基于物联网与大数据的支撑,以及通讯技术的进步,在互联网基础上,逐渐发展到物联网。物联网是万物相连,不单单是电脑的相互连接,是各种智能化的物理终端连接。连接靠的是互联网,尤其是无线通讯技术的支撑,大数据的快速传递不再是问题。大数据哪里来就是基于前面大量互联网化的积累,以及物联网后的本身不断自我积累;智能是什么?就是大数据加上算法!

关于3维重建 人工智能和3维重建 人工智能教程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

推荐阅读
人工智能领域提升 人工智能三个研究领域
人工智能医疗领域哪个学校 人工智能什么学校比较好
人工智能医学领域实验?医学实验设计
人工智能专业领域认知论文?人工智能导论论文3000字
人工智能最先进领域,当前人工智能重点聚焦()大领域
人工智能最有前途的领域(人工智能在哪个领域应用最多)
人工智能医学领域ppt(人工智能ppt课件免费)
人工智能相关领域知识图(人工智能的发展)
3维重建 人工智能(3维重建 人工智能教程)文档下载: PDF DOC TXT