另一种密集点过滤方案是基于视线的,即使用每个点的视线到其相关的相机并且也显示出极好的结果。 但是我还没有在 mve 的输出点云中看到这个信息。 是否会考虑并合并新方案?
PS:使用的信息越多,越有可能获得更好的结果~
参考:
https://github.com/cdcseacave/openMVS
Vu HH、Labatut P、Pons JP 等。 高精度和可见性一致的密集多视点立体[J]. 模式分析和机器智能,IEEE Transactions on,2012,34(5):889-901。
引用的工作使用与 MVE 完全不同的重建技术。 我知道这项工作。 视线信息主要用于表面优化,但MVE在流水线的任何阶段都不进行任何全局优化(当然BA除外)。 我怀疑这种技术是否或者可以集成到 MVE 中。 至少我不知道怎么做。
据我所知,这两种技术都包括四个阶段:
1 通过在每个视图中融合深度图生成密集点云
2 表面/网格重建(点云 -> 三角形面)
3 表面/网格优化(全局或局部)
4 纹理
两种技术的主要区别在于表面重建、mve 的 fssr、他们工作的面选择(delaunay triangulation + st cut)。 视线在他们的工作中不仅对表面优化起着重要的作用。 fssr 的结果趋于平滑,而基于人脸选择的方法可以保持锐利的边缘。
在我看来,线的视线应该在第一阶段之后可选地导出,然后可以开发新的表面重建阶段,最后做相同的纹理。
另一个困难是没有许可的 Delaunay四面体库。
http://doc.cgal.org/latest/Triangulation_3/index.html#Chapter_3D_Triangulations => GPL
http://wias-berlin.de/software/tetgen/ => AGPL
请注意,MVE 使用许可许可证。
cgal是openmvs用的,openmvs是在尝试实现人脸选择方案,但是他们的代码非常非常难看~
我永远不会说开源代码很丑,这对作者不太友好
将一些东西作为开源并让任何人都可以使用是一件好事。
PS:您应该注意,那里没有其他“视线”开源实现。
OpenMVS 以一种通用的方式(能够使用各种图形切割算法)实现德劳内四面体三角剖分的 grah 切割,并且具有和不具有弱表面可见性。
据我所知,这些方法之间的差异很大。
1)表面网格是从半稀疏点云构建的,而MVE(FSSR)是在超密集点上构建的
2) 实际的 MVS 是在网格本身上通过优化完成的,而在 MVE 中它是使用深度图完成的
正如 Pierre 所说,第一步需要在全局优化中进行四面体化。 四面体化本身是非常讨厌的,甚至不谈论包括确定连通性的优化。 在我看来,这些方法是如此不同,以至于我什至不想考虑与他们结婚。
好吧,即使是开源代码也可能很丑陋。 事实上,它是唯一可能很难看的代码,因为您看不到接近源代码的代码。 ;-)
是的,我的错,应该尊重开源。 只是因为我花了一些时间研究它,发现它有点难以理解和错误,没有MVE那么优雅,谢谢~
我一直在玩 Theia 和 OpenMVS。 @daleydeng我同意 OpenMVS 中有一些错误会完全阻止您的重建过程并需要调试。
我发现 OpenMVS 在跳过增密过程并直接重构稀疏输入然后对其进行细化时会产生非常好的模型。 我真的很想让 Refine 的 CUDA 实现工作,但是有一些我还没有能够花时间解决的链接问题。 这个过程非常快,因为稀疏云包含的点要少得多,并且通常会产生具有可容忍多边形数的最终网格。
运行 Densify+Reconstruct+Refine 需要更长的时间并产生非常大的网格。 然而,当填充稀疏没有覆盖的区域时,质量会更好。
纹理也非常好,我很欣赏 OpenMVS 提供了一个完整的包并且是开源的。
我现在对 MVE 很感兴趣,并期待学习更多。
最有用的评论
据我所知,这些方法之间的差异很大。
1)表面网格是从半稀疏点云构建的,而MVE(FSSR)是在超密集点上构建的
2) 实际的 MVS 是在网格本身上通过优化完成的,而在 MVE 中它是使用深度图完成的
正如 Pierre 所说,第一步需要在全局优化中进行四面体化。 四面体化本身是非常讨厌的,甚至不谈论包括确定连通性的优化。 在我看来,这些方法是如此不同,以至于我什至不想考虑与他们结婚。
好吧,即使是开源代码也可能很丑陋。 事实上,它是唯一可能很难看的代码,因为您看不到接近源代码的代码。 ;-)