3D重建算法综述

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

重磅干货,第一时间送达

三维重建算法广泛应用于手机等移动设备中,常见的算法有SfM,REMODE和SVO等。

  • 2.2 双目/多目视觉

双目视觉主要利用左右相机得到的两幅校正图像找到左右图片的匹配点,然后根据几何原理恢复出环境的三维信息。但该方法难点在于左右相机图片的匹配,匹配地不精确都会影响最后算法成像的效果。多目视觉采用三个或三个以上摄像机来提高匹配的精度,缺点也很明显,需要消耗更多的时间,实时性也更差。

74a8afcd99200b7d5eb1b7e8d6e9b54f.png

这两种方法理论上都可较精确恢复深度信息,但实际上受拍摄条件的影响,其精度往往无法得到保证。常见的有SGM和SGBM算法等,其中自动驾驶数据集KITTI中,排名前五十的算法几乎有一半都是对SGM的改进。

3 基于消费级RGB-D相机

相机可以基于主动式、被动式不同原理,优点在于基于这些设备的算法更具备实用性。

近年来,也有不少研究直接基于消费级的RGB-D相机进行三维重建,如在微软的Kinect V1、V2产品上,取得了不错的效果。最早,由帝国理工大学的Newcombe等人于2011年提出的Kinect Fusion开启了RGB相机实时三维重建的序幕。此后有 Dynamic Fusion和Bundle Fusion等算法。

这些方法它们各自有着各自的优点和缺点,同样有各自所适用的应用范围。以上为想要入门基于深度学习进行三维重建领域的同学简要介绍了这些方法,如需要深入了解,请仔细阅读相关文献,SfM和多视图几何等经典算法作为入门三维重建领域的基础永远都不会过时。 

基于深度学习的三维重建算法

我们将基于深度学习的三维重建算法简要地分为三部分,更详细的文献综述将会在后续的公众号的系列文章中做介绍:

  • 在传统三维重建算法中引入深度学习方法进行改进

  • 深度学习重建算法和传统三维重建算法进行融合,优势互补

  • 模仿动物视觉,直接利用深度学习算法进行三维重建


1 在传统三维重建算法中引入深度学习方法进行改进

因为CNN在图像的特征匹配上有着巨大优势,所以这方面的研究有很多,比如:

  • DeepVO

其基于深度递归卷积神经网络(RCNN)直接从一系列原始RGB图像(视频)中推断出姿态,而不采用传统视觉里程计中的任何模块,改进了三维重建中的视觉里程计这一环。

  • BA-Net

其将 SfM 算法中的一环集束调整(Bundle Adjustment, BA)优化算法作为神经网络的一层,以便训练出更好的基函数生成网络,从而简化重建中的后端优化过程。

• Code SLAM,如之前所提,其通过神经网络提取出若干个基函数来表示场景的深度,这些基函数可以简化传统几何方法的优化问题。

2. 深度学习重建算法和传统三维重建算法进行融合,优势互补

CNN-SLAM13将CNN预测的致密深度图和单目SLAM的结果进行融合,在单目SLAM接近失败的图像位置如低纹理区域,其融合方案给予更多权重于深度方案,提高了重建的效果。

3. 模仿动物视觉,直接利用深度学习算法进行三维重建

我们知道,三维重建领域主要的数据格式有四种:

  • 深度图(depth map)

2D图片,每个像素记录从视点到物体的距离,以灰度图表示,越近越黑;

  • 体素(voxel)

体积像素概念,类似于2D之于像素定义;

  • 点云(point cloud)

每个点逗含有三维坐标,乃至色彩、反射强度信息;

  • 网格(mesh)

即多边形网格,容易计算。

因而,依据处理的数据形式不同我们将研究简要分为三部分:1)基于体素;2)基于点云;3)基于网格。而基于深度图的三维重建算法暂时还没有,因为它更多的是用来在2D图像中可视化具体的三维信息而非处理数据。

(1)基于体素

体素,作为最简单的形式,通过将2D卷积扩展到3D进行最简单的三维重建:

  • Depth Map Prediction from a Single Image using a Multi-Scale Deep Network, 2014 

该方法是用深度学习做三维重建的开山之作,基于体素形式,其直接用单张图像使用神经网络直接恢复深度图方法,将网络分为全局粗估计和局部精估计,并用一个尺度不变的损失函数进行回归。

  • 3D-R2N2: A unified approach for single and multi-view 3d object reconstruction, 2016

Christopher等人基于体素形式提出的3D-R2N2模型使用Encoder-3DLSTM-Decoder的网络结构建立2D图形到3D体素模型的映射,完成了基于体素的单视图/多视图三维重建(多视图的输入会被当做一个序列输入到LSTM中,并输出多个结果)。

但这种基于体素的方法存在一个问题,提升精度即需要提升分辨率,而分辨率的增加将大幅增加计算耗时(3D卷积,立次方的计算量)。

(2)基于点云

相较而言,点云是一种更为简单,统一的结构,更容易学习,并且点云在几何变换和变形时更容易操作,因为其连接性不需要更新。但需要注意的是,点云中的点缺少连接性,因而会缺乏物体表面信息,而直观的感受就是重建后的表面不平整。

  • A Point Set Generation Network for 3D Object Reconstruction From a Single Image, 2017

该方法是用点云做三维重建的开山之作,最大贡献在于解决了训练点云网络时候的损失问题,因为相同的几何形状可能在相同的近似程度上可以用不同的点云表示,如何用恰当的损失函数来进行衡量一直是基于深度学习用点云进行三维重建方法的难题。

  • Point-Based Multi-View Stereo Network, 2019

该方法通过对场景的点云进行处理,融合三维深度和二维纹理信息,提高了点云的重建精度。

(3)基于网格

我们知道之前的方法的缺点:

  • 基于体素,计算量大,并且分辨率和精度难平衡

  • 基于点云,点云的点之间缺少连接性,重建后物体表面不光滑

相较而言,网格的表示方法具有轻量、形状细节丰富的特点,重要是相邻点之间有连接关系。因而研究者基于网格来做三维重建。我们知道,网格是由顶点,边,面来描述3D物体的,这正好对应于图卷积神经网络的M=(V,E,F)所对应。

  • Pixel2Mesh

用三角网格来做单张RGB图像的三维重建,相应的算法流程如下:

Step1:对于任意的输入图像都初始化一个椭球体作为初始三维形状。

Step2:将网络分为两部分:

一部分用全卷积神经网络来提取输入图像的特征

另一部分用图卷积网络来表示三维网格结构,

Step3:对三维网格不断进行变形,最终输出物体的形状。

模型通过四种损失函数来约束形状,取得了很好的效果。贡献在于用端到端的神经网络实现了从单张彩色图直接生成用网格表示的物体三维信息。

总结

传统的三维重建算法可以分为:

55abbba23aee79132c870b58dddebf8a.png

这些方法各自有各自优点和使用范围,简要概括一下:

2b23b16a9bfe1086373c9b4438503c5a.png

而基于深度学习的三维重建算法研究主要有三种:

1. 在传统三维重建算法中引入深度学习方法进行改进;

2. 深度学习重建算法和传统三维重建算法进行融合,优势互补;

3. 模仿动物视觉,直接利用深度学习算法进行三维重建,包括基于体素、基于点云和基于网格。

 
 

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

3589ea5d56be6a1858773236b01c7ea3.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

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


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


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


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着人工智能和计算机视觉技术的不断发展,3D人脸重建已成为一个热门研究领域。3D人脸重建是指利用计算机技术将2D图像或视频转化为3D人脸模型,从而实现对人脸的三维建模和分析。本文综述了国内外关于3D人脸重建的研究现状。 国外研究现状: 1. 基于多视角的3D人脸重建方法:该方法利用多个视角的图像来重建人脸的3D模型。该方法需要使用多个相机,通常在不同的位置和角度拍摄人脸图像。然后,通过将这些图像进行匹配和融合,可以得到一个更准确的3D人脸模型。 2. 基于结构光的3D人脸重建方法:该方法利用结构光投影器和摄像机来获取人脸表面形状的深度信息。结构光投影器通过投射一系列光纹,从而使得人脸表面形成一系列明暗条纹。摄像机则用于捕获这些条纹,并使用计算机算法将其转化为人脸的3D模型。 3. 基于深度学习的3D人脸重建方法:该方法利用深度学习模型来预测人脸的3D模型。该方法通常需要大量的训练数据和计算资源,但能够在处理大规模数据时取得较好的效果。 国内研究现状: 1. 基于结构光的3D人脸重建方法:该方法在国内得到了广泛的应用,主要利用结构光投影器和摄像机来获取人脸表面形状的深度信息。该方法具有成本低、操作简单等优点。 2. 基于多视角的3D人脸重建方法:该方法在国内的应用较少,但在一些研究机构和企业中也得到了一定的关注。该方法需要使用多个相机,对人脸进行多角度拍摄,并通过图像匹配和融合来得到3D人脸模型。 3. 基于深度学习的3D人脸重建方法:该方法在国内研究较为活跃,主要应用于人脸识别、虚拟现实等领域。该方法通常需要大量的训练数据和计算资源,但能够在处理大规模数据时取得较好的效果。 综上所述,国外的研究方法相对较为成熟,国内的研究主要集中在基于结构光的3D人脸重建方法和基于深度学习的方法。随着技术的不断发展和应用场景的不断拓展,3D人脸重建技术将会得到更广泛的应用和发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值