主要的深度学习系列算法有DBN, ConvNets, RNN等,基本上经典的深度学习算法都用过。

详细请看唐路路(研究方向 深度学习 3D重建)在专栏 机器学习&深度学习--学术水准的理解 总结的文章 深度学习在3D重建上的应用

近年来Deep Learning在计算机视觉上的应用主要在2D image 的detection,segmentation,classification等方面,感觉已经快无孔不入了。但是DL在3D scene上的研究相对还较少,比如3D reconstruction or 3D modeling。因此,今天我想浅谈下image-based 3D reconstruction.

具体来讲,image-based的3D重构算法可以描述为当给定某个物体或场景的一组照片时, 在一些假设条件下,比如物体材料、观测视角和光照环境等,通过估计一个最相似的3D shape来解释这组照片。 一个完整的3D重构流程通常包含以下几个步骤:

1)收集场景图片(Collect images);

2)计算每张图的相机参数(Camera parameters for each image);

3)通过图组来重构场景的 3D shape(几何模型)以及其对应的相机参数;

(Reconstruct the 3D geometry of the scene and corresponding camera parameters.)

4)有选择的重构场景的材料等(Optionally texture the reconstructed scene.)。图1. 常见的3D重构表达方式

(Image source:Multi-View Stereo: A Tutorial, by Yasutaka Furukawa from Washington

University)

其中最核心的工作是第三步:3D shape的重构算法。常规的3D shape representation有以下四种:深度图(depth)、点云(point cloud)、体素(voxel)、网格(mesh).

近年来,基于Deep learning 的3D reconstruction 也逐渐火热起来, 例如David EigenNIPS2014上的文章 “Depth Map Prediction from a Single Image using a Multi-Scale Deep Network”,以及Fayao Liu 在CVPR2015上的文章“Deep Convolutional Neural Fields for Depth Estimation from a Single Image”。两篇文章都是利用CNN网络结构学习预测 a single image与其对应的depth map 之间的关系。然而我个人觉得depth image 还不足以解释重构原始input的信息,它只能作为3D scene understanding的一个辅助信息。 因此,一些学者开始研究利用一组二维图来重构3D 点云图或voxel以及mesh图,这里就不详细展开了。

个人觉得基于deep learning 的3D 点云和mesh重构是较难以实施的,因为DL学习一个物体完整的架构需要大量数据支撑。然而传统3D模型是由 vertices 和 triangulation mesh 组成的,因此不一样的data size造成了training的困难。所以后续大家都用 voxelization(Voxel)的方法把所有CAD model转成binary voxel 模式(有值为1,空缺为0)这样保证了每个模型都是相同的大小。

早期的voxel-based 三维物体重建代表作有

后续又有CMU的paper “Learning a Predictable and Generative Vector Representation for Objects”,利用auto-encoder 学习3D Model 的 embedding, 然后通过 ConvNets学习一个 deterministic function 让其 rendered image infer 到学习到的 embedding 上。因为 auto -encoder是generative的,对于新的test image,模型就会infer 到相关的3D model embedding,再通过decoder生成其相应的 3D model。

同类型的工作还有Choy 在ECCV2016的一篇文章“3D-R2N2: A Unified Approach for Single and Multi-view 3D Object Reconstruction”。采用深度学习从2D图像到其对应的3D voxel模型的映射: 首先利用一个标准的CNN结构对原始input image 进行编码; 再利用一个标准 Deconvolution network 对其解码。 中间用Long Short-Term Memory(LSTM是RNN中的一种)进行过渡连接, LSTM 单元排列成3D网格结构, 每个单元接收一个feature vector from Encoder and Hidden states of neighbors by convolution,并将他们输送到Decoder中. 这样每个LSTM单元重构output voxel的一部分。 总之,通过这样的Encoder-3DLSTM-Decoder 的网络结构就建立了2D images -to -3D voxel model 的映射.图2. 3D-R2N2 网络模型架构

但是,由于3D voxel是三维的,它的resolution成指数增长,所以它的计算相对复杂,目前的工作主要采用32*32*3以下的分辨率以防止过多的占用内存。 但这使得最终重构的3D model分辨率并不高, 也可能catch不到一些常规的结构(比如对称性、直线、曲线等),离真实物体还有较大差距。在DL如此火热的今天,如何将其更好的应用到3D reconstruction(3D重构) 或3D modeling(3D建模)上确实值得我们进一步深入研究。例如考虑如何提高voxel model 的分辨率; 如何选择best view 和最少的 view来重构3D物体;如何利用mesh 或point cloud来直接重构3D物体等。但由于mesh 和point cloud是不规则的几何数据形式,因此直接使用CNN是不可行的。但是可以考虑将3D mesh data 转化为graphs形式,再对3D曲面上的2D参数进行卷积。具体方法有Spatial construction (Geodesic CNN)和Spectral construction (Spectral CNN)。基于point cloud的方法,可以参考大神Hao Su的CVPR2017文章“PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation”和“A Point Set Generation Network for 3D Object Reconstruction from a Single Image”。 但是基于mesh和point cloud的方法总的来讲数学东西多,而且细节恢复上效果欠佳。不过可以考虑结合voxel来提高重构精度。这里就不啰嗦了,有兴趣的留言交流。若有理解错误的也欢迎指正,谢谢!

三维重建 几何方法 深度学习_三维重建 3D reconstruction 有哪些实用算法?相关推荐

  1. 三维重建 几何方法 深度学习_三维重建算法综述|传统+深度学习方式

    作者:CJB Date:2020-2-21 来源:基于深度学习的三维重建算法综述 欢迎加入国内最大的3D视觉交流社区,1700+的领域从业者正在共同进步~ 00 前言 01 基于传统多视图几何的三维重 ...

  2. 三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...

    欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...

  3. 三维重建 几何方法 深度学习_基于深度学习的视觉三维重建研究总结

    三维重建意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶.虚拟现实.运动目标监测.行为分析.安防监控和重点人群监护等.现在每个人都在研究识别,但识别只是计算机视觉的一部分.真正意义上的计算机视 ...

  4. 三维重建 几何方法 深度学习_Occupancy Networks:基于学习函数空间的三维重建表示方法...

    作者:Longway 来源:公众号@3D视觉工坊 概述 随着深度神经网络的到来,基于学习的三维重建方法逐渐变得流行.但是和图像不同的是,在3D中没有规范的表示,既能高效地进行计算,又能有效地存储,同时 ...

  5. 三维重建 3D reconstruction 有哪些实用算法?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 三维重建 3D reconstruction 有哪些实用算法? https://www.zhihu.c ...

  6. 【三维重建】结合深度学习的三维重建/SLAM(一)

    经典的计算机视觉问题是3D重建. 基本上可以分成两种路径:一是多视角重建,二是运动重建.前者有一个经典的方法是多视角立体视觉(MVS,multiple view stereo),就是多帧的立体匹配,这 ...

  7. 基于几何学习图像的三维重建发展_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...

    欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...

  8. 三维图形几何变换算法实验_基于深度学习的三维重建算法综述

    点击上方"计算机视觉life",选择"星标" 快速获得最新干货 00 前言 目前,三维重建技术已在游戏.电影.测绘.定位.导航.自动驾驶.VR/AR.工业制造以 ...

  9. 最新综述:深度学习图像三维重建最新方法及未来趋势

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天分享的是:深度学习领域基于图像的三维物体重建最新方法及未来趋势 ...

最新文章

  1. Android屏幕像素密度适配详解
  2. 基于stm32f103zet6的DS1302学习
  3. 分享matlab程序之——滤波器篇(高通,低通)
  4. 表单验证失败提示方案(自用)
  5. matplotlib.pyplot 和opencv 的结合画图
  6. 无代码绘制基因表达箱线图
  7. LeetCode题解41.First Missing Positive
  8. LeetCode 166. 分数到小数
  9. js img转换base64
  10. 当才华还配不上野心,就静下来学习
  11. 几篇关于Cecil混淆程序集的文章
  12. PyTorch:卷积/padding/pooling api
  13. imu相机标定_【光电视界】多传感器融合标定方法汇总
  14. 网络操作系统第十、十一章习题
  15. 今日头条php笔试题,2017年今日头条笔试题目
  16. 实用技巧 teamviewer高清显示
  17. ion-infinite-scroll上拉加载 ion-refresher下拉刷新
  18. 红米pro位置服务器,数码产品:红米note8pro nfc感应区在哪 nfc位置
  19. 持续不定期更新:CFDC++之拟一维喷管流动的数值解(2)
  20. 在Linux(Ubuntu)下安装Arial、Times New Roman等字体

热门文章

  1. java cup_使用JFlex、JavaCUP
  2. 分析Ajax请求并抓取今日头条街拍美图
  3. 华为云桌面,开启云上高效办公之旅!
  4. 详解什么是尾递归(通俗易懂,示例讲解)
  5. 35-Figma-Figma自带切图工具使用
  6. 适合超级新手的万年历小程序
  7. CISP培训都学什么
  8. bugly热更新、多渠道集成及加固问题
  9. 裁片没有html格式,富怡CAD写裁片属性的时候写不出来布料种类 – 手机爱问
  10. 全球及中国反射全息光栅行业发展态势及前景动态预测报告*2022-2027