0

0

自己动手使用AI技术实现数字内容生产

WBOY

WBOY

发布时间:2023-06-15 19:03:11

|

1817人浏览过

|

来源于51CTO.COM

转载

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

自己动手使用ai技术实现数字内容生产

背景

今年以来以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进行了修改。

# To run: conda env create -f environment.ymlname: nerf_tf2channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- conda-forgedependencies:- python=3.7- pip- cudatoolkit=11.0- cudnn=8.0- numpy- matplotlib- imageio- imageio-ffmpeg- configargparse- ipywidgets- tqdm- pip:- tensorflow==2.8- tensorflow-gpu==2.8- protobuf==3.19.0- -i https://pypi.tuna.tsinghua.edu.cn/simple

启动conda环境

打开cmd,然后输入下面的命令。

conda env create -f environment.yml

将nerf_tf2加入到jupyter中,这样使用jupyter能很方便的查看系统的运行结果。

// 安装ipykernelconda install ipykernel
//是该conda环境在jupyter中显示python -m ipykernel install --user --name 环境名称 --python -m ipykernel install --user --name 环境名称 --display-name "jupyter中显示名称"display-name "jupyter中显示名称"
//切换到项目目录cd 到项目目录//激活conda环境activate nerf_tf2//在cmd启动jupyterjupyter notebook

至此conda环境以及jupyter准备就绪。

数据准备

  1. 下载并安装colmap,我的环境是windows(https://demuc.de/colmap/#download)
  2. 使用https://github.com/fyusion/llff提供的imgs2poses.py实现自己相机拍摄的图片的相机内外参数的获取,比如我们的拍摄了10张图片,它们放置的目录位置很讲究,D:/LanJing/AI/LLFF/data/images,也就是说一定要放在images子目录下面。而你传入的参数是python imgs2poses.py D:/LanJing/AI/LLFF/data。因为它的代码里面的images_path的写法是这个样子(https://github.com/Fyusion/LLFF/blob/master/llff/poses/colmap_wrapper.py#L28)

自己动手使用AI技术实现数字内容生产

手机拍摄的图片样例

feature_extractor_args = ['colmap', 'feature_extractor','--database_path', os.path.join(basedir, 'database.db'),'--image_path', os.path.join(basedir, 'images'),'--ImageReader.single_camera', '1',# '--SiftExtraction.use_gpu', '0',]

自己动手使用AI技术实现数字内容生产

python imgs2poses.py

运行完imgs2poses.py文件后,生成了sparse目录、colmap_out.txt、database.db、poses_bounds.npy,然后我们在nerf_tf2项目下创建新目录data/nerf_llff_data/ll,将上面的sparse目录以及poses_bounds.npy复制到这个目录下。最后我们再配置个新文件config_ll.txt。至此我们的数据准备工作完成了。

expname = ll_testbasedir = ./logsdatadir = ./data/nerf_llff_data/lldataset_type = llfffactor = 8llffhold = 8N_rand = 1024N_samples = 64N_importance = 64use_viewdirs = Trueraw_noise_std = 1e0

训练

将开源软件迁移到windows平台上。

由于此开源软件主要是支持mac和linux,它无法在windows运行,需要对load_llff.py的修改。

自己动手使用AI技术实现数字内容生产

load_llff代码迁移

运行300000次批量训练。

activate nerf_tf2python run_nerf.py --config config_ll.txt

测试

自己动手使用AI技术实现数字内容生产

render_demo的运行

效果

由于我们使用的输入图片有些少,只有10张,所以运行出来的效果不是很好,但是整体的流程是一样。tips:官方的代码里面使用的一半都是30,甚至100张图片。

我们的效果


自己动手使用AI技术实现数字内容生产

一个新视角的渲染

官方效果

自己动手使用AI技术实现数字内容生产

fern官方合成新视角效果

参考资料

https://zhuanlan.zhihu.com/p/554093703。

https://arxiv.org/pdf/2003.08934.pdf。

诚客在线考试平台管理系统
诚客在线考试平台管理系统

诚客在线考试是由南宁诚客网络科技有限公司开发的一款手机移动端的答题网站软件,它应用广泛适合各种学校、培训班、教育机构、公司企业、事业单位、各种社会团体、银行证券等用于学生学习刷题、员工内部培训,学员考核、员工对公司制度政策的学习……可使用的题型有:单选题、多选题、判断题支持文字,图片,音频,视频、数学公式。可以设置考试时间,答题时间,考试次数,是否需要补考,是否可以看到自己成绩。练习模式,支持学生

下载

https://zhuanlan.zhihu.com/p/593204605。

https://inst.eecs.berkeley.edu/~cs194-26/fa22/Lectures/nerf_lecture1.pdf。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang channel原理
Golang channel原理

本专题整合了Golang channel通信相关介绍,阅读专题下面的文章了解更多详细内容。

257

2025.11.14

golang channel相关教程
golang channel相关教程

本专题整合了golang处理channel相关教程,阅读专题下面的文章了解更多详细内容。

350

2025.11.17

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

3397

2026.01.21

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1379

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1159

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

827

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

460

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2361

2023.08.08

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

3

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 12.5万人学习

CSS3 教程
CSS3 教程

共18课时 | 6.4万人学习

Rust 教程
Rust 教程

共28课时 | 6.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号