今年以来以chatgpt为代表的大模型的惊艳表现彻底点燃了AICG这个领域的。各类gpt,各种AI作图产品如雨后春笋般出现。每个成功产品的背后都是一个个精妙的算法,本篇文章给大家详细介绍下如何使用一个手机拍摄若干张同一场景的照片,然后合成新视角,生成视频的流程与代码。本文使用的技术是NeRF(Neural Radiance Fields),它是2020年以来出现的一种基于深度学习的3D重建方法,它通过学习场景的光线传输和辐射传递,能够生成高质量的场景渲染图像和3D模型。关于它的原理与文献,我在最后有一个参考列表供大家学习。本文主要从代码使用以及环境搭建的新角度介绍它。
环境搭建
environment.yml修改
本文使用的硬件环境是 GPU RTX3090,操作系统是windows 10.采用的软件是开源的NeRF实现(https://github.com/cjw531/nerf_tf2)。由于RTX 3090需要CUDA 11.0及以上版本的支持,TensorFlow-gpu 需要2.4.0以及以上的支持,所以我们没有选择官方的https://github.com/bmild/nerf,因为bmild这个的环境使用的tensorflow-gpu==1.15,版本太久了。跑起来会有下面的问题https://github.com/bmild/nerf/issues/174#issue-1553410900,我在这个tt中也回复指出了需要升级到2.8。但是即便是使用https://github.com/cjw531/nerf_tf2,它的环境也是有点问题。首先由于它连接的国外的conda的channel,所以速度很慢。其次它的环境使用的是tensorflow==2.8没有指明tensorflow-gpu的版本。针对这两个问题。我们对environment.yml进行了修改。
启动conda环境
打开cmd,然后输入下面的命令。
将nerf_tf2加入到jupyter中,这样使用jupyter能很方便的查看系统的运行结果。
至此conda环境以及jupyter准备就绪。