实测!30秒即可生成工业级Mesh,媲美人工建模?

文摘   2024-08-23 20:02   江苏  
近年来,随着NeRF(神经辐射场)和Gaussian Splatting(高斯泼溅)等AI视觉重建技术的火热出圈,三维场景的数字孪生成本愈发降低,点云数据的获取手段也日益多样化且更加便捷。

然而,如何在点云的基础上自动构建出达到专业建模师水平的高精度网格模型,一直是行业痛点。 
MeshAnything ,正如其名,它能在短短30秒内,根据简单的指示,就像专业的建模工程师那样,生成各种高质量的人造网格模型。 

不论是视觉重建获取的稀疏点云、激光扫描的稠密点云,还是由AI从文本生成的模拟数据,MeshAnything都能轻松胜任。

目前,MeshAnything项目已经在GitHub揽星1.9k,此次更新的V2版本更是将最大可生成面树从800提升到了1600,建模效果如下图:

MeshAnything V2建模效果 图源:github



AI赋能Mesh重建,难点在哪?



尽管从点云直接重建网格颇为困难,但其实AI早就可以生成Mesh,只是与人工创建的网格相比,两者之间存在显著差异。

传统的生成方法,比如 Marching Cubes 和 Get3D,通常会产生高度密集的网格,其面片数量通常是人工网格的数百倍之多。这种高密度的网格几乎无法直接应用于游戏、电影等实际的 3D 工业领域。此外,由于这些自动生成的网格结构不符合人类直觉,导致 3D 建模师难以对其进行精细的后期加工

那么,这个问题能不能简单通过重新构建拓扑关系,采样面片来解决呢?答案是也不行。

若要保证视觉效果,只能小幅度的减少mesh数量,一旦增加采样率,模型的细节丢失严重,无法使用。模型重采样之后的效果如图所示

MeshAnything与其它方法对比 图源:github

由于上述问题的存在,3D工业界几乎只能依赖人工创建的网格作为3D表征。

即便3D研究领域能够产生极高精度的NeRF或3D高斯模型,但由于难以直接转换成高质量的Mesh,其应用范围会大受限制。 

在这样的背景下,MeshAnything应运而生,它生成的网格拥有的面片数量比以往方法少数百倍,这显著提高了存储渲染模拟的效率,同时达到了与先前方法相媲美的精度



什么是MeshAnything?



MeshAnything 是一种自回归的 Transformer 模型,它将每个三角面片视为一个 token,并将整个网格模型视为一系列的token序列。类似于大语言模型逐个 token 地生成文本,MeshAnything也能逐个面片地生成整个网格模型。  


此外,MeshAnything将点云作为condition输入,使得该方法可以与激光扫描、视觉重建、AI支持下的3D生成等多种数据获取手段结合。


尽管这些方法的3D表示形态不一,但都可以采样成点云,从而输入到MeshAnything中生成高精度的Mesh,真正将建模成果应用到实际的3D工业中。


并且这种设计方式可以显著降低训练难度,因为点云已经提供了详细的几何信息,MeshAnything不再需要学习复杂的三维形状,只要学习如何构建出符合输入点云形状的人造Mesh即可。

MeshAnything方法示意 图源:github



V2版本有何提升?



MeshAnything V2在V1的基础上显著提升了性能,主要贡献指标在于将最大可生成面数从800提升到了1600


该性能提升主要源于新提出的 Adjacent Mesh Tokenization (AMT) 算法。与之前的网格 tokenization 方法相比,AMT 平均只需使用一半数量的 tokens 即可表示同一个Mesh。


因为 Transformer 的计算复杂度为 O(n^2),使用一半数量的 tokens 可以减少四倍的注意力计算量


此外,AMT 产生的 token 序列更为紧凑且结构更优,这有助于 Transformer 更有效地学习。  

AMT算法 图源:github


上图清晰地展示了 AMT 的工作流程,它通过优先表示相邻的面片来实现每个面片仅用一个顶点表示。当没有未表示的相邻面片时,AMT 使用一个特殊 token “&” 来标记这种情况,并重新开始。


借助 AMT,版本 V2 在性能和效率方面显著超越了先前的方法,实现了高质量的人造网格生成。在训练数据方面,MeshAnything 利用了 ShapeNet 和 Objaverse 中的人造网格,并将其转换为 token 序列后采用交叉熵损失进行监督训练。


V1 和 V2 均采用了 350m参数的 Transformer 架构,并在100k的训练数据上就取得了上述成果,这表明该方法还具有很大的扩展潜力。

更多结果如下:

MeshAnything V2的更多建模结果 图源:github



实测结果



论文中模型的重建效果十分震撼,我们也是第一时间开测,配置好的测试页面如图所示,只要将点云数据拖到Input Mesh框中,点击Generate按钮,等待30秒,即可将点云数据转为高质量Mesh。并且支持obj、ply、Splat等多种格式。

MeshAnything V2测试页面 

高斯泼溅算法生成的点云数据和MeshAnything生成的网格模型如下。可以明显发现MeshAnything生成的网格模型质量较差,这可能与高斯泼溅重建的点云质量较低有一定关系,也意味着MeshAnything对点云的质量要求较高。

高斯泼溅生成的玩偶熊点云以及MeshAnything V2构建的网格模型


质量较低的点云不行,那就再来一份高质量、无噪点的点云,生成结果同样不尽如人意。尽管模型质量有一定提升,但还是构建出了较多的错误面片,距离预期中的工业化应用还有一定距离。

高质量闸机点云和MeshAnything V2构建的网格模型


尽管测试结果不尽如人意,但可以肯定的是,MeshAnything 正在朝着正确的方向前进,并且在不断得尝试与实践中正逐步接近其目标。


正如《黑神话:悟空》制作人冯骥所言:“踏上取经之路可能比抵达灵山更加重要”。



槿墨AI
产品服务

结合大模型通用知识及在交通、社会治理、安全生产、自然资源等行业领域的知识,深入业务场景,精确捕获用户意图,为用户提供智能问答、数据分析、报表生成、工作任务理解与执行等一系列服务

📞若您有相关需求,欢迎点击下方链接与我们沟通洽谈

🗨️也可以在公众号后台给我们留言


槿墨AI
开启探索人类未来命运的旅程,拥抱如槿似墨的无限可能。
 最新文章