三维重建 几何方法 深度学习_三维重建 3D reconstruction 有哪些实用算法?
主要的深度学习系列算法有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 有哪些实用算法?相关推荐
- 三维重建 几何方法 深度学习_三维重建算法综述|传统+深度学习方式
作者:CJB Date:2020-2-21 来源:基于深度学习的三维重建算法综述 欢迎加入国内最大的3D视觉交流社区,1700+的领域从业者正在共同进步~ 00 前言 01 基于传统多视图几何的三维重 ...
- 三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...
欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...
- 三维重建 几何方法 深度学习_基于深度学习的视觉三维重建研究总结
三维重建意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶.虚拟现实.运动目标监测.行为分析.安防监控和重点人群监护等.现在每个人都在研究识别,但识别只是计算机视觉的一部分.真正意义上的计算机视 ...
- 三维重建 几何方法 深度学习_Occupancy Networks:基于学习函数空间的三维重建表示方法...
作者:Longway 来源:公众号@3D视觉工坊 概述 随着深度神经网络的到来,基于学习的三维重建方法逐渐变得流行.但是和图像不同的是,在3D中没有规范的表示,既能高效地进行计算,又能有效地存储,同时 ...
- 三维重建 3D reconstruction 有哪些实用算法?
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 三维重建 3D reconstruction 有哪些实用算法? https://www.zhihu.c ...
- 【三维重建】结合深度学习的三维重建/SLAM(一)
经典的计算机视觉问题是3D重建. 基本上可以分成两种路径:一是多视角重建,二是运动重建.前者有一个经典的方法是多视角立体视觉(MVS,multiple view stereo),就是多帧的立体匹配,这 ...
- 基于几何学习图像的三维重建发展_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...
欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...
- 三维图形几何变换算法实验_基于深度学习的三维重建算法综述
点击上方"计算机视觉life",选择"星标" 快速获得最新干货 00 前言 目前,三维重建技术已在游戏.电影.测绘.定位.导航.自动驾驶.VR/AR.工业制造以 ...
- 最新综述:深度学习图像三维重建最新方法及未来趋势
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天分享的是:深度学习领域基于图像的三维物体重建最新方法及未来趋势 ...
最新文章
- Android屏幕像素密度适配详解
- 基于stm32f103zet6的DS1302学习
- 分享matlab程序之——滤波器篇(高通,低通)
- 表单验证失败提示方案(自用)
- matplotlib.pyplot 和opencv 的结合画图
- 无代码绘制基因表达箱线图
- LeetCode题解41.First Missing Positive
- LeetCode 166. 分数到小数
- js img转换base64
- 当才华还配不上野心,就静下来学习
- 几篇关于Cecil混淆程序集的文章
- PyTorch:卷积/padding/pooling api
- imu相机标定_【光电视界】多传感器融合标定方法汇总
- 网络操作系统第十、十一章习题
- 今日头条php笔试题,2017年今日头条笔试题目
- 实用技巧 teamviewer高清显示
- ion-infinite-scroll上拉加载 ion-refresher下拉刷新
- 红米pro位置服务器,数码产品:红米note8pro nfc感应区在哪 nfc位置
- 持续不定期更新:CFDC++之拟一维喷管流动的数值解(2)
- 在Linux(Ubuntu)下安装Arial、Times New Roman等字体