Py学习  »  机器学习算法

3D深度学习简介

小白学视觉 • 2 年前 • 213 次点击  

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

在过去的几年里,像微软Kinect或Asus Xtion传感器这样,既能提供彩色图像又能提供密集深度图像的新型相机系统变得唾手可得。人们对此类系统的期望很高,它们将推动机器人技术和视觉与增强现实领域中基于3D感知的新应用。


三维深度学习方法已经从使用三维数据的派生表示转变为直接使用原始数据。在方法方面,将二维卷积神经网络应用于三维数据已转化为专门为三维场景设计的方法,这大大提高了对象分类和语义分割等任务的性能。


本文将重点介绍最近的三维对象分类和语义分割。我们将首先回顾一些获取和表示三维数据的常用方法的背景,接下来,介绍三种不同的基本三维数据表示方法。最后,我们将介绍未来有希望的新研究方向,并从我们的角度总结该领域的未来方向。


三维表示


获取三维数据后,需要将其表示为一种形式,作为正在构建的处理流的输入。

以下是常见的四种表述:

(a) 点云;(b) 体素网格;(c) 三角网格;(d) 多视图表示


1、点云是三维空间中点的集合;每个点由某个(x、y、z)位置确定,我们还可以为其指定其他属性(如RGB颜色)。

2、体素网格是从点云发展而来的,体素类似于三维空间中的像素。

3、多边形网格由一组具有公共顶点的凸多边形曲面组成,这些曲面可以近似于几何曲面。

4、多视图表示是从不同模拟视角获得的渲染二维多边形网格图像的集合。


多视图表示是将深度学习模型应用于三维场景的最简单方法。该问题已转化为二维问题,但它仍允许在一定程度上对三维几何结构进行推理。这一思想的早期应用基于[1]一种简单但非常有效的网络体系结构,它可以从三维对象的多个二维视图中学习特征描述符。在预先训练好的VGG网络中逐个输入图像,以提取显著特征,组合这些结果向量,并将这些信息传递给剩余的卷积层以进行进一步的特征学习。

固定数量的二维视图仍然只是底层三维结构的不完美近似。由于从二维图像获得的特征信息有限,语义分割等任务,尤其是在跨越更复杂的对象和场景时,变得更具挑战性,这些缺点促使人们研究直接使用三维数据进行学习的方法。


通过体素网格学习可以解决多视图表示的主要缺点。体素网格缩小了2D和3D之间的差距。它们是图像最接近的三维表示,这使得二维DL概念很容易应用于三维场景。


Maturana和Scherer于2015年提出的VoxNet[2]是第一个在具有给定体素网格的对象分类任务上实现优异性能的VoxNet,VoxNet使用概率占用网格,其中每个体素包含体素在空间中被占用的概率。这样做的一个优点是,它允许网络区分已知为自由的体素和占用率未知的体素。

该体系结构由两个卷积层和一个池层组成,两个完全连接的层用于计算输出类别得分向量。VoxNet代表着迈向真正3D学习的一大步,但体素网格仍有一些缺点。首先,与点云相比,它们失去了分辨率。因为如果表示复杂结构的不同点非常接近,它们将绑定在同一个体素中。同时,与稀疏环境中的点云相比,体素网格可能会导致不必要的高内存使用率,这是因为它们主动消耗内存来表示空闲和未知空间,而点云只包含已知点。


考虑到使用基于体素的方法的问题,最近的工作集中在直接对原始点云数据进行操作的架构上。Qi等人于2016年提出的PointNet是处理这种不规则3D数据的最早方法。当我们在点云中给定N个点时,网络需要学习一个独特的特征,该特征相对于这些N个输入点的完整排列是恒定的,因为这些输入为神经网络提供了点的顺序,而不影响基础几何结构。此外,网络应对点云旋转、平移和其他变换具有鲁棒性,缩放操作不应影响预测结果。


为了解决学习点云几何变换不变表示的问题,PointNet使用了一个称为T-Net的小型网络,该网络将仿射变换应用于输入点云。这个概念类似于空间变换网络,但要简单得多,因为不需要定义新类型的层。T-Net是一个可学习的参数组合,这些参数使PointNet能够将输入点云转换为固定和标准化的空间,从而确保整个网络对即使是最细微的变化也具有鲁棒性。

整个PointNet体系结构继承了最基本的方法、T-Net和多层,它们为点云创建特征表示。然而,除了对象分类之外,PointNet还支持对象和场景的语义分割。


结论


在过去的 5 年中,3D 深度学习方法已经从使用 3D 数据的派生表示转变为使用原始数据。在这个过程中,我们采用的方法已经从简单的卷积神经网络应用于3D数据转变为专门为3D场景设计的方法,极大地提高了对象分类和语义分割等任务的性能。


在过去的5年中,三维深度学习方法已经从使用三维数据的派生表示法转变为使用原始数据。在这个过程中,我们采用的方法已经从简单的应用于三维数据的卷积神经网络转变为专门为三维场景设计的方法,这大大提高了对象分类和语义分割等任务的性能。


参考


[1] Multi-view Convolutional Neural Networks for 3D Shape Recognition

[2] VoxNet: A 3D Convolutional Neural Network for Real-Time Object Recognition (2015)

[3] PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation


好消息,小白学视觉团队的知识星球开通啦,为了感谢大家的支持与厚爱,团队决定将价值149元的知识星球现时免费加入。各位小伙伴们要抓住机会哦!


下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/120335
 
213 次点击