Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Neural Rendering

神经渲染用神经网络替代图形渲染流水线的部分环节,以生成从照片中学习到的图像和 3D 场景。内容涵盖相关方法和代码。

神经渲染是指使用神经网络生成图像和视频,以替代或增强传统计算机图形流水线的部分环节,同时仍能控制场景属性,例如相机视角、光照、几何形状和外观。传统渲染利用光传输物理原理,根据手工构建的 3D 模型、材质和光源计算图像。神经渲染则从照片和视频中学习其中一些元素,或直接学习生成最终像素。作为一个领域,神经渲染将生成式机器学习与计算机图形学中的物理知识结合起来,通常会把可微渲染融入网络训练。神经渲染可用于生成真实地点的逼真 3D 捕捉、视频游戏中的 AI 升频和帧生成,以及机器人和自动驾驶汽车的仿真。

神经渲染的工作原理#

最具影响力的分支从普通照片中学习 3D 场景。场景表示可以是神经网络、学习得到的特征网格或一组 3D 基元。它通过可微渲染器,从训练照片的相机位置渲染成图像。由于渲染器的每一步都可以求导,渲染图像与真实照片之间的差异就能通过反向传播追溯到场景的每个参数。对多个视角重复这一过程,就能充分重建场景,并渲染出没有任何相机拍摄过的视角:

照片的相机姿态通常由 Structure from Motion 软件(例如 COLMAP)确定。该软件会在重叠照片之间匹配特征,从而还原每张照片的拍摄位置。

神经场景表示#

2020 年提出的神经辐射场(NeRF),将场景存储在多层感知机的权重中,该感知机把 3D 位置和观察方向映射为密度与颜色。要渲染一个像素,NeRF 会沿着穿过该像素的相机射线采样点,并通过体渲染混合这些点的颜色:每个样本的贡献取决于它的不透明度,以及前方样本之后仍能通过的光线量。下面的 PyTorch 代码训练一个微型场,让它重现沿一条射线观测到的一个像素:

import torch
from torch import nn

# A tiny neural field that maps a 3D point to a density and an RGB color
torch.manual_seed(0)
field = nn.Sequential(nn.Linear(3, 64), nn.ReLU(), nn.Linear(64, 4))
optimizer = torch.optim.Adam(field.parameters(), lr=0.01)

# 64 points along one camera ray, and the color a training photo shows for that pixel
depths = torch.linspace(2.0, 6.0, 64)
points = torch.stack([torch.zeros(64), torch.zeros(64), depths], dim=1)
observed = torch.tensor([0.9, 0.4, 0.1])

for step in range(200):
    density, color = field(points).split([1, 3], dim=1)
    # Volume rendering: each sample's opacity times the light that reaches it through the samples in front
    alpha = 1 - torch.exp(-nn.functional.softplus(density.squeeze(1)) * (depths[1] - depths[0]))
    transmittance = torch.cumprod(torch.cat([torch.ones(1), 1 - alpha[:-1]]), dim=0)
    pixel = (transmittance * alpha) @ torch.sigmoid(color)
    loss = ((pixel - observed) ** 2).sum()
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    if step in (0, 199):
        print(f"step {step}: rendered {pixel.detach().numpy().round(2)}, loss {loss.item():.4f}")

它会打印 step 0: rendered [0.71 0.37 0.56], loss 0.2496 和 step 199: rendered [0.9 0.4 0.1], loss 0.0000。未训练的网络会渲染出任意颜色,而通过渲染方程反向传播的梯度会调整网络权重,直到渲染像素与照片相符。真实的 NeRF 会对数十到数百张照片中的数百万条射线执行相同操作。

最初的 NeRF 在 NVIDIA V100 GPU 上需要为每个场景训练一到两天,每张渲染图像需要查询网络 1.5 亿到 2 亿次,即每帧约 30 秒。NVIDIA 的 Instant NGP 用学习得到的多分辨率哈希特征表取代了网络的大部分部分,将训练时间缩短到几秒或几分钟,并将 1920×1080 分辨率下的渲染时间缩短到几十毫秒。2023 年的高斯泼溅更进一步,用数百万个显式 3D 高斯表示场景,并通过光栅化实现实时渲染,无需在渲染时运行网络;由于优化方式相同,它通常也被归入神经渲染。

图像空间神经渲染#

第二个分支保留传统渲染器,并利用网络完善或扩展其输出。NVIDIA 的 DLSS 会以较低分辨率渲染游戏,再用Transformer 模型升频;在 GeForce RTX 50 系列 GPU 上,每渲染一帧游戏画面,最多可生成五帧。路径追踪渲染会使用学习型去噪器,根据每个像素的少量光照样本生成干净图像。其他模型则根据场景布局合成图像:NVIDIA 的 GauGAN 将由天空、水和树木组成的语义图转换为逼真的风景;神经头像系统则可以从新角度或新光照条件渲染人物面部。

  • 可微渲染:一种输出可以相对于其输入求导的渲染器。它让神经渲染能够从图像中学习;即使不使用任何神经网络也可以使用,例如将网格拟合到照片上。
  • 逆向渲染:从图像中还原几何形状、材质和光照,通常使用可微渲染,以便编辑结果并重新渲染。
  • 新视角合成:从未见过的视角生成图像的任务,NeRF 和高斯泼溅都可用于此任务;神经渲染则涵盖更广泛的技术。
  • 生成式 AI:文本到图像和视频生成模型根据提示创建内容,通常不会显式构建可从选定相机位置观察的场景。

实际应用#

  • 电影与虚拟制作:将拍摄地点重建为辐射场或高斯泼溅,并从新的相机路径进行渲染,用于视觉特效和预演。
  • 数字孪生与电子商务:通过手机拍摄房间、建筑和产品,将它们转换为 3D 视图,供客户和规划人员通过浏览器或 AR 头显探索。
  • 机器人与自动驾驶汽车:重建记录的行驶过程,并从偏移后的视角重新渲染,以生成用于测试感知系统的合成数据。拍摄期间移动的人和汽车会留下半透明伪影,因此流水线会将它们从训练照片中屏蔽掉;YOLO26 实例分割模型则能自动为每一帧生成这些掩码。Waymo 的 Block-NeRF 通过拼接一组分别训练的 NeRF,仅用 280 万张图像就重建了整个旧金山街区。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来