当前位置: 首页 > 科技观察

基于人工智能技术快速构建3D模型

时间:2023-03-15 09:01:20 科技观察

译者|朱显忠审校|孙淑娟图1:生成封面的3D模型可能非常耗时或需要大量参考图像。解决这个问题的一种方法是借助神经辐射场(NeRF),这是一种用于生成图像的人工智能方法。NERF的主要思想是为您拍摄的物体或场景拍摄一小组2D图像,然后使用这些2D图像高效地构建3D表示。这是通过学习现有图像之间的转换来实现的。现在,这种跳跃(也称为“插值”)技术可以帮助您从物体的新视角创建图像!听起来不错,对吧?借助一小组图像,您可以制作3D模型!这比标准摄影测量法效果更好,标准摄影测量法需要一个巨大的图像库来生成一些图片(您需要从各个角度拍摄)。然而,NVIDIA最初确实承诺NeRF会很快;然而,直到最近才出现这种情况。以前,NeRF往往需要很长时间才能学习如何将一组图像转换为3D模型。但今天,情况已不再如此。最近,NVIDIA公司开发了一种实时NeRF软件,它利用GPU硬件运行必要的复杂计算。这种方法将创建模型所需的时间从几天缩短到几秒钟!NVIDIA对instant-ngp软件的可用性和速度做出了许多激动人心的声明。此外,他们提供的结果和示例令人印象深刻:图2:NeRF图像显示-NVIDIA有一个很酷的机器人实验室我发现很难不对这个演示印象深刻-它看起来很棒!所以,我想看看将其转移到我自己的图像并生成我自己的NeRF模型会有多容易。所以,我决定自己安装和使用这个软件。在这篇文章中,我将描述我的实验经验并详细介绍我制作的模型!主线任务分工那我们该怎么办呢?大致阶段性的任务划分如下:首先,我们需要引用一些镜头。让我们去录制一些我们想要3D的视频吧!然后我们开始拍摄场景并将捕获的视频转换为多个静止图像。我们将上面获取的连续图像数据传递给instant-ngp。然后,训练人工智能理解我们生成的图像之间的空间。这其实和制作3D模型是一样的。最后,我们想制作一个视频来展示我们的创作!在NVIDIA开发的软件中,我们会画一条路径,让摄像头带着我们绕着我们做的模型走一圈,然后渲染视频。我不会深入探讨这一切是如何工作的,但我会提供许多我认为有用的资源的链接。所以,现在,我将专注于我制作的视频,以及我在制作过程中偶然发现的一些花絮。使用NVIDIA的InstantNeRF软件开始我的实验并不容易安装。虽然该软件的说明很清楚,但我觉得在涉及个人需要的特定软件版本时,说明的必填部分并没有提供太多余地。在我看来,使用CUDA11.7或VS2022似乎是不可能的,但我认为是切换回CUDA11.6版本和VS2019最终促成了安装成功。其中,我得到了很多错误,如“CUDA_ARCHITECTURESisemptyfortarget”等。这是因为CUDA对VisualStudio不友好。因此,我真诚地建议有兴趣的读者参考Github上的视频和存储库资源,以进一步帮助您顺利完成所有设置!除此之外,该过程进展顺利。官方还提供了一个Python脚本来帮助指导将捕获的视频转换为图像,然后将其转换为模型和视频的步骤。实验1:乐高汽车起初,我试图在我的办公室里对一辆小型乐高汽车进行NeRFify。我觉得我的摄影技术很差,因为我根本无法创建任何有意义的图像。只是一个奇怪的3D印迹。算了,我们来看一个NVIDIA提供的例子。注意图中摄像头的位置:图3:NVIDIA提供的挖掘机默认NeRF模型的“摄像头”位置训练效果良好的准备设置之一是将“摄像头”放置在场景中如上所述。这些摄像头是软件认为您在拍摄视频时所面对的角度。这应该是一个不错的圈子。当然,我的第一辆乐高车根本不是这样的,它是一个被压扁的半圆。实验2:稍微大一点的乐高汽车为了从第一个实验中学习,我找到了一张完全可以步行的桌子和一辆更大的乐高汽车。我试着确保我拍的时间也比以前长。最后,我从各个角度拍摄了一个1分钟的流畅视频。我训练模型的总时间不到30秒。在以720p渲染4小时后,这是我制作的视频:图4:我的第二个NeRF模型-乐高机械组汽车!试验3:植物结果证明上面的试验2好一点,至少在技术上是这样。不过,还有一股诡异的迷雾,当然不是超级麻烦。在我的下一个实验中,我还尝试从更远的后面拍摄(我假设雾是由于AI对那里的东西“感到困惑”造成的)。在训练几分钟之前,我试图更好地控制aabc_scale参数(衡量场景的大小)。渲染最后,视频效果如下图:图5:我用客厅桌子上的植物制作的NeRF模型,效果更佳!令人印象深刻的是,钩针编织的花盆、木头上的凹槽和树叶的复杂性呈现得如此准确。看看相机在树叶上做的俯冲动作!实验四:现在,我们的实验越来越好了!但是,我想要一个户外视频。我在公寓外拍摄了不到2分钟的视频并开始处理它。这对于渲染/训练来说尤其笨重。我的猜测是我的aabc_scale值相当高(8),所以渲染“光线”必须传播得更远(即,我想要渲染的东西的数量更多)。因此,我不得不切换到480p并将渲染FPS从30降低到10。事实证明,设置参数的选择确实会影响渲染时间。经过8小时的渲染,我完成了以下内容:图6:我在公寓外使用的NeRF模型然而,我认为第三次试用仍然是我最喜欢的。我觉得我可以让四试好一点。然而,当渲染时间变得非常长时,可能很难迭代构建并尝试不同的渲染和训练设置。现在甚至很难设置渲染的相机角度,这导致我的程序变得非常慢。尽管如此,它确实是一个非常惊人的输出,因为只使用了一两分钟的视频数据。终于,终于有了一个细节逼真的3D模型!优点和缺点我认为最令人印象深刻的是,在1-2分钟的拍摄中,完全没有接受过摄影测量培训的人(我)可以创建一个可行的3D模型。该过程确实需要一些技术诀窍,但是一旦您设置好所有内容,它就很容易使用。使用Python脚本将视频转换为图像效果很好。完成此操作后,AI的输入应该会顺利进行。然而,虽然在这方面很难指责Nvidia,但我觉得我应该提出来:这需要一个非常强大的GPU。我的笔记本电脑中有一台T500,这项任务确实将它推向了绝对极限。训练时间确实比标榜的5秒长很多,而且程序在尝试以1080p渲染时会崩溃(我选择在135*74左右动态渲染)。现在,这仍然是一个巨大的改进,因为以前的NeRF模型实验需要几天时间。我不认为每个人都会为这样的项目拥有3090p设备,因此值得简要说明。动力不足的PC使该程序难以使用,尤其是当我试图“飞行”相机以便更轻松地设置以渲染视频时。尽管如此,该过程的结果仍然令人印象深刻。此外,我遇到的另一个问题是无法找到渲染文件render.py(您可能猜到了,它对于渲染视频至关重要)。非常奇怪的是,它不在官方可用的开源存储库中,尽管在大多数广告文章和其他文档中都被大量提及。所以只好从链接https://github.com/bycloudai/instant-ngp-Windows中挖出这个宝贝。最后,我还希望能够将上面的3D模型转换成.obj文件。或许现在,这已经成为可能。图7:一只狐狸的动画gif-这不是我制作的,它是由Nvidia制作的。效果很好,对吧?总结和下一步思路上面的实验过程让我想起了OpenAI开发的DALL-E,也是一种可以生成图像的人工智能技术。今天,这种技术变得非常流行,部分原因是它很容易获得。此外,DALL-E向人们展示了一个非常酷的例子,说明AI模型可以做什么,以及它们的局限性。现在它甚至成为了一种流行文化现象(或者至少它在我的推特上有很多特色)——人们制作自己奇怪的DALL-E照片并互相分享。我可以想象这种技术会发生这样的事情:一个允许任何人上传视频并创建可以与朋友共享的3D模型的网站的病毒式传播潜力是巨大的。最终有人肯定会实现它!就个人而言,我期待在这方面有更多的实验结果。我希望能够生成超现实模型,然后将它们转储到AR/VR中。基于这些技术,您甚至可以主持网络会议——那不是很有趣吗?因为您只需使用手机上的摄像头就可以做到这一点,而且如今大多数人的手机中已经配备了这种硬件。总的来说,我印象深刻。能够在手机上录制1分钟的视频并将其转换为您可以逐步完成的模型真是太棒了。它运行良好,尽管渲染需要一段时间并且安装有点困难。经过几次试验,我得到了非常酷的输出!我期待更多的实验!参考资料NVIDIAGitNVIDIA博客补充Git译者朱宪忠介绍,社区编辑,专家博主,讲师,潍坊某高校计算机教师,自由编程资深人士。早期专注于各种微软技术(编译成三本与ASP.NETAJX和Cocos2d-X相关的技术书籍)。/ESP32/RaspberryPi等物联网开发技术和Scala+Hadoop+Spark+Flink等大数据开发技术。原标题:用AI生成3D模型,快!,作者:AndrewBlance