如何正确的入门三维重建?
共 2134字,需浏览 5分钟
·
2021-11-18 22:35
点击下方卡片,关注“新机器视觉”公众号
视觉/图像重磅干货,第一时间送达
链接:https://www.zhihu.com/question/53565660
编辑:深度学习与计算机视觉
声明:仅做学术分享,侵删
说一下情况,国内某普本大学学生,导师现在正在做水下三维重建的面上项目。现在希望学习三维重建的相关知识,但是不知道如何入门,而且关于此方面的资料也比较少。说下一我的几个困惑:需要什么软件或者工具?需要学习什么知识?学习的顺序应该是怎么样的?如果看论文的话有哪些难度小一点可以上手?作者:李济深
https://www.zhihu.com/question/53565660/answer/551917870一直在忙RVBUST相关的技术研发,这个问题关注了很久但一直没空回答。
三维重建思路其实非常简单:
假设你有一个深度相机,你拿着相机扫一个静态物体,相机每次可以给你点云和当前帧与上一帧的相对位姿,那么你把所有点云全部转换到同一个坐标系下面,然后生成mesh……这就是三维重建了。
但是现实往往比较骨感(devil in the details),三维重建的工作基本上就变成了以下几个方面:
- 数据源方面
- 深度相机没法给你相对位姿或者位姿不准?
- 点云质量和精度不够?
- 相机标定也不准?
- 是2D相机的话,还得通过SLAM等措施来提供三维点(一言难尽)
点云配准方面
- ……
Mesh生成处理方面
- 要快还是要质量高?
- 去噪,补洞,平滑,简化?
- 等等
后期效果方面
- 融合Color信息?
- Model based refine ?
- 等等
动态场景方面
- 动态场景模型更新等问题
这上面任意一个小点都可以花上很多时间,对编码能力要求也会比较高,对于初学者的建议是学习好多视几何基础,先利用仿真数据跑通上面说的主线流程,再结合具体的开源项目去理解算法,再结合实际传感器和问题去改善或者提出新的算法,在这个过程中要善用一些可视化工具比如Meshlab, cloudcompare, matplotlib.pyplot等,可以节约大量时间。
作者:知乎用户
https://www.zhihu.com/question/53565660/answer/2222313399UM(慕尼黑工业大学)放在Youtube上的教学视频,从矩阵知识复习到实现重建的全部流程都有介绍,非常适合入门。有基础后再看相关论文和代码。课程大纲如下:Chapter 1 - Mathematical Background: Linear AlgebraChapter 2 - Representing a Moving SceneChapter 3 - Perspective ProjectionChapter 4 - Estimating Point CorrespondenceChapter 5 - Reconstruction from Two Views: Linear AlgorithmsChapter 6 - Reconstruction from Multiple ViewsChapter 7 - Bundle Adjustment and Nonlinear OptimizationChapter 8 - Direct Approaches to Visual SLAMChapter 9 - Variational Methods: A Short IntroChapter 10 - Variational Multiview Reconstruction课程网页:Computer Vision II: Multiple View Geometry视频地址:https://www.youtube.com/playlist?list=PLTBdjV_4f-EJn6udZ34tht9EVIW7lbeo4
作者:深沉的小丸子
https://www.zhihu.com/question/53565660/answer/153117574没有接触过水下三维重建,简单说一下普通三维重建吧。
1、如果需要对三维重建进行深入研究并想有所创新的话,可以先补习一下基础知识,推荐《由 2 维影像建立 3 维模型》这本书,知识点很全,感觉三维重建算法的改进都是基于这些基础知识的。建议有一定的计算机图形学知识。
2、同时可以直接在GitHub上搜索项目相关demo,跑通以后看下结果,理论与实践结合嘛。3、论文建议先熟悉三维重建流程。可以先看下Kinectfusion、slam这种大而全的paper,不用看得太细,知道每步是要干嘛就可以,熟悉以后再精读,然后你想对哪部分进行改进就再google相应内容好了。
作者:TennyXu https://www.zhihu.com/question/53565660/answer/135598954数据源为二维彩色图像的话,可以利用sfm,这方面资料颇多,开源代码也成体系。如果是深度图像可以使用depth map fushion方法。
—版权声明—
仅用于学术分享,版权属于原作者。
若有侵权,请联系微信号:yiyang-sy 删除或修改!