生成3D模型可能需要很长时间,也可能需要大量的参考图像。 解决这个问题的一种方法是生成图像的AI方法——神经辐射场( NeRF )。 NeRF会可以用一批你为物体和场景拍摄的2D图像有效地构建3D显示。 这是通过学习现有图像之间的转换来完成的。 此跳转(或插值)会生成对象的新视点的图像!
很好,对吧? 可以根据组图像制作3D模型! 这比标准的照片测量更好。 标准的摄影测量需要庞大的图像库来生成东西(需要每个角度的镜头)。 但是,我们一开始就承诺NeRF的速度很快,但直到最近都不是。 以前,NeRFs花了很长时间学习如何将你的一组图像转换成3d时间。
这已经不是这种情况了。 Nvidia立即发布了NeRF软件。 该软件利用GPU硬件执行必要的复杂计算。 这是制作模型所需的东西。时间从几天缩短到了几秒。 NVIDIA就instant-ngp软件的可用性和速度发表了许多激动人心的声明。 他们提供的结果和例子令人印象深刻:
很难不被这个感动——太棒了! 我想看看把它移动到自己的图像中生成自己的NeRF模型有多么简单。 所以我决定自己安装和使用这个软件。 本文详细介绍了尝试的过程和建立的模型。 让我们开始吧。
1、处理流水线要做什么?
我们有必要参考视频。 记录下你想3D化的东西吧!
我们把参考视频转换成静止图像。 这个过程试图理解我们视频的角度。
我们把那个交给instant-ngp。 然后,这将训练了解我们生成的图像之间空间的AI。 这实际上和制作3D模型是一样的。
最后,制作视频! NVIDIA创建的软件通过相机围绕模型绘制路径来渲染视频。
我不会详细说明这一切是如何工作的(但是请提问! 那么,我会提供很多我认为有用的资源的链接。 相反,我将集中于我制作的视频和我偶然发现的一小部分旅程。
2、我的尝试说实话,我发现很难安装。 虽然解释得很清楚,但是如果涉及到需要的特定软件版本,我认为隐含的回旋余地很小。 虽然我似乎不可能使用CUDA 11.7或VS2023,但我认为切换到11.6和VS2023有助于继续安装过程。
我遇到了很多错误。 例如,CUDA_ARCHITECTURES对于目标为空。 这是因为CUDA不想和Visual Studio很好地合作。 我真的推荐这个视频和这个repo。 非常有助于整个环境的构建!
除此之外,这一进程正在顺利运行。 提供的Python脚本将拍摄的视频转换为图像,并指导您执行下一步将视频转换为模型和视频。
3、第一次尝试:乐高汽车最初试图在办公室对小型乐高汽车进行NeRF-ify。 我觉得我的摄影技术有点欠缺。 因为你不能创造有意义的东西。 只是奇怪的3D污点。 为什么呢? 现在,让我们看看NVIDIA提供给我们的一个例子。 注意摄像机的位置:
可以正确训练的场景设定的特征之一是如上所述放置“照相机”。 这些摄像头以为软件是你拍摄视频时面临的角度。 我觉得这是个很好的社团。 我的第一辆乐高车不是那样的,是压扁的半圆形。
4、第二次尝试:更大的乐高车为了从第一次尝试中吸取教训,我在它周围找到了一张可以行走的桌子,找到了更大的乐高车。 我也在试图确保拍摄时间也比以前长了。 最后,我从各个角度获得了一分钟的流畅击球。 我使用少于30秒的视频训练模式。 在720p上渲染了4个小时后,这是我制作的视频:
5、第三次尝试:植物最好第二次尝试。 至少那个在技术上是有效的。 但是有奇怪的雾,而且不太尖锐。 关于下一次的尝试,我试着从更远的地方拍摄。 (假设雾是因为AI对那里的东西感到“困惑”。 ) aabc_scale )进行了更多的控制,并对其进行了几分钟的训练。 渲染后,视频将如下所示:
好多了! 这里令人难以置信的印象是,如何准确地渲染钩针编织的植木鉴、木槽和复杂的叶子。 看着照相机通过树叶的小俯冲!
第六、四次尝试越来越好! 但是,我想要外面的——。 试一下吧。
在公寓外拍摄了不到两分钟的场景,开始处理。 这对渲染/训练特别重要。 据我推测,由于aabc_scale的值非常高(8),因此要渲染“光”就必须离得很远(也就是说,想要渲染的东西的数量很多)。 必须切换到480p,将渲染fps从30降低到10。 这表示您选择的设置将影响渲染时间。 经过8个小时的渲染,我得到了这个:
我认为第三次尝试的结果最好,但我认为可以把第四次尝试做得好一点。 但是,如果很长,例如渲染时间,则很难重叠版本并尝试不同的渲染和训练设置。 现在,为了渲染而设定摄像机的角度也很困难,程序对我来说太慢了。
尽管如此,从短短一两分钟的视频中,我们获得了细节丰富、生动的3D模型。 这是多么惊人的输出啊。
7、利弊给我印象最深的是,给定1-2分钟的快照,完全没有受过摄影测量训练的人(我)就可以制作出可行的3D模型。 虽然需要一些技术诀窍,但是安装好所有的东西之后,就会变得顺利和容易使用。 将视频转换为图像非常有效,并且可以由Python脚本执行。 这些完成后,将其输入AI就可以顺利进行了。
但是,为此很难谴责NVIDIA,但我认为应该提出建议。 这需要非常强大的GPU。 我的笔记本电脑里有T500,它达到了绝对的极限。 训练时间确实比宣传的5秒长,在1080尝试渲染的时候程序会崩溃。 (我在135*74附近动态渲染。 即使是现在,与花了几天的NeRF的实施相比,这仍然是一个很大的改善。 我不认为每个人都能在这样的项目上使用3090,所以值得简单提及。 低性能会使程序难以使用,特别是在尝试设置“跳过”摄影机渲染的视频时。 但是,过程的输出很难让人印象深刻。
我面临的另一个问题是找到render.py (你可能已经知道了,这对渲染视频很重要)。 非常奇怪的是,代码仓库中没有,尽管大多数广告文章和其他文档中提到得很多。 我必须从这里把它挖出来。
最后,我也希望能把它们提取为. obj——。 那个可能变得可能了吗?
8、结束语这让我想到了图像生成人工智能DALL-E。 这非常流行。 部分原因是它很容易进入。 它为人们提供了一个非常酷的例子,说明了AI模型能做什么,以及它们的局限性。 它进入了流行文化(或者至少在我的推特上占有重要地位),人们制作了自己奇怪的DALL-E图片,并分享了它们。 可以想象用这个技术也会发生同样的事情。 任何人都可以上传视频,制作可以和朋友共享的3D模型的网站感染病毒的可能性很大。 最终有人要做到这一点几乎是不可避免的。
我个人期待着更多地实验这个。 我想生成超现实的模型,转储到AR/VR上。 你可以在那个空间主办会议——那不是很有趣吗? 因为只需要手机摄像头,所以执行此操作所需的大部分硬件已经在用户手中。
总的来说,我印象深刻。 能够用手机拍摄一分钟的视频,并将其转换成可以逐步完成的模型,真是太棒了。 是的,渲染需要段落。时间,然后安装有点困难,但是很有效。 经过几次尝试,我已经得到了很酷的输出! 我期待着更多地尝试!
原文链接: http://www.bi mant.com/blog/generate-3d-model-using-ai /