4K 超高清 NeRF 重建算法

我要开发同款
匿名用户2024年07月31日
141阅读

技术信息

官网地址
https://github.com/HumanAIGC
开源地址
https://modelscope.cn/models/DAMOXR/cv_nerf-3d-reconstruction-4k-nerf_damo
授权协议
Apache License 2.0

作品详情

Cloe with HTTP

 git cloe https://www.modelscope.c/DAMOXR/cv_erf-3d-recostructio-4k-erf_damo.git

背景介绍

NeRF(Neural Radiace Fields)是一种最新的三维新视角合成技术。其核心利用物理体渲染(Volume rederig)方程结合各类隐式表征的方式,使模型根据三维物体或场景的二维多视角彩色图像即可完成高质量的三维重建。

模型概述

现有各类 NeRF 方法主要针对低分辨率场景(<=1K)设计,在更高分辨率的场景上就会出现渲染模糊,细节丢失,推理速度缓慢等问题。4K-NeRF 是针对以上问题设计的,在超高分辨率上可以取得相比现有方法明显的效果提升。

4K-NeRF 将 NeRF 结构改进为编码-解码器结构,采用显式表示的 NeRF 模型作为编码器,主要学习低分辨下的几何信息;而为了高效的恢复渲染高分辨细节,解码器则采用预训练的图像恢复卷积网络。同时采用基于邻域的光线采样方式结合基于图像感知的损失函数。

效果展示

以下分别是在 erfllffdataerf_sythetic 上 4K-NeRF 与 baselie 的渲染效果对比。

使用范围与方式

使用范围

当前支持两种数据类型,分别是erf-sythesiserfllffdata

  • erf-sythesis 数据集是人工合成的多视角数据,包含 8 个物体的 360 度多俯仰角环拍图像 下载及更多信息请参考NeRF三维重建数据集
  • erfllffdata 数据集是各种设备拍摄的真实场景数据,包含 8 个场景的小于 180 度多俯仰角拍摄图像 下载及更多信息请参考NeRF-LLFF真实场景数据集

目标场景

  • 希望重建后的渲染分辨率能满足超高清(4K)需求
  • 需要对单一静态物体进行三维重建
  • 需要对某一静态场景的小范围视角进行重建

运行环境

  • 模型只支持在 GPU 上运行,具体效率与 GPU 性能相关
  • GPU 显存要求大于等于 16 G

使用方式

模型推理

在 ModelScope 框架上,调用训练好的 4K-NeRF 模型即可通过简单的 pipelie 来推理(仅支持 GPU 运行)。

以 erfllffdata 的 fer 场景为例,在构建 pipelie 时需要指定 ecckptpath 和 decckptpath 分别为训练好的 ecoder 和 decoder 的模型路径。除此之外,pipelie 构建完成后需要输入 data_dic 来提供数据集相关的参数。具体示例可以参考以下代码,该代码可直接运行:

import os
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
from modelscope.msdatasets import MsDataset
# 
model_id = 'DAMOXR/cv_erf-3d-recostructio-4k-erf_damo'
data_dir = MsDataset.load(
    'DAMOXR/erf_llff_data',
    subset_ame='default',
    split='test',
    # dowload_mode=DowloadMode.FORCE_REDOWNLOAD
).cofig_kwargs['split_cofig']['test']
erf_llff = os.path.joi(data_dir, 'erf_llff_data')
scee = 'fer'
data_dir = os.path.joi(erf_llff, scee)
reder_dir = 'exp'
data_dic = dict(
    datadir=data_dir,
    dataset_type='llff',
    load_sr=1,
    factor=4,
    dc=True,
    white_bkgd=False)

reder_dir = 'exp'
### ow we use llff dataset, whe use erf-sythesis dataset, data_type should specify as 'bleder'
erf_reco_4k = pipelie(
    Tasks.erf_reco_4k,
    model=model_id,
    data_type='llff',
    )

erf_reco_4k(
    dict(data_cfg=data_dic, reder_dir=reder_dir))
### reder results will be saved i reder_dir

模型训练

训练代码和训练方式请参考 [github]

相关论文

4K-NeRF: High Fidelity Neural Radiace Fields at Ultra High Resolutios

Zhogshu Wag, Ligzhi Li, Zhe She, Li She, Liefeg Bo

Alibaba Group

[Project Webpage]

功能介绍

Clone with HTTP git clone https://www.modelscope.cn/DAMOXR/cv_nerf-3d-reconstruction-4k-nerf_damo.g

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论