如何创建 3D 建模应用程序?我需要什么资源?

How can i create a 3D modeling app? What resources i will required?

我想创建一个将 2d-images/video 转换为 3d 模型的应用程序。在研究它时,我发现了类似的应用程序,如 Trnio、Scann3D、Qlone 和其他一些应用程序(尽管其中很少有人提供糟糕的输出 3D 模型)。我还发现了一项由 Microsoft Research 推出的名为 mobileFusion 的技术,它显示了我希望我的应用程序具有相同的愿景,但这些应用程序并非如此。

创建 3D 建模应用程序是一项复杂的任务,要达到高标准需要大量学习。为了给您指明正确的方向,您很可能想要执行称为 Structure-from-Motion(SfM) or Simultaneous Localization and Mapping (SLAM) 的操作。

如果您想自己编程 OpenCV is a good place to start if you know C++ or Python. A typical pipeline involves; feature extraction and matching, camera pose estimation, triangulation and then optimised using a bundle adjustment. All pipelines for SfM and SLAM follow these general steps (with exceptions of course). All of these steps are possible is OpenCV although Googles Ceres Solver is an excellent open-source bundle adjustment. SfM generally goes onto dense matching which is where you get very dense point clouds which are good for creating meshes. A free open-source pipeline for this is OpenSfM. Another good source for tools is OpenMVG,它具有制作完整管道所需的所有工具。

SLAM 与 SfM 类似,但更注重实时应用,而不是绝对精度。这方面的应用更多地集中在机器人技术上,机器人想知道它相对于环境的位置,但它不太关心绝对精度。顶级 SLAM 算法是 ORB-SLAM and LSD-SLAM。两者都是开源的,您可以免费将其应用到您自己的软件中。

所以这真的取决于你想要什么...SfM 用于高精度,SLAM 用于实时。如果你想要一个好的 3D 模型,我建议使用现有的算法,因为它们非常好。

我认为最好的商业软件...Agisoft Photoscan。如果你能做出比这个好一半的东西,我会印象深刻。要回答您的问题,您需要哪些资源。在我看来,python/c++ 技能,google 的能力以及业余时间正确阅读摄影测量和 SfM。