2、K-Planes

运行配置

主页:https://sarafridov.github.io/K-Planes/

代码:https://github.com/sarafridov/K-Planes

预训练权重:https://drive.google.com/drive/folders/1zs_folzaCdv88y065wc6365uSRfsqITH

Neural_3D_Video_Dataset:https://github.com/facebookresearch/Neural_3D_Video/releases/tag/v1.0

环境搭建

pip install -r requirements.txt

tinycudann 安装参考:https://blog.csdn.net/weixin_50973728/article/details/127537380

scikit-image直接使用pip安装

pip install scikit-image

代码运行

PYTHONPATH='.' python plenoxels/main.py --config-path path/to/config.py

例子

PYTHONPATH='.' python plenoxels/main.py --config-path configs/final/NeRF/nerf_hybrid.py

概念

在这里插入图片描述

  • 将4D动态体积分解为六个平面,三个用于空间,三个用于时空变化。为了获得一个4D点 q = (x, y,
    z,t)的值,首先将这个点投影到每个平面上
  • 做多尺度双线性插值。
  • 将插值值相乘,然后在 S 尺度上连接。
  • 这些特征可以用一个小的MLP或显式线性解码器解码。
  • 遵循标准的体积渲染公式来预测射线的颜色和密度
  • 在空间和时间上进行简单正则化,使重构损失最小化,对模型进行优化。

该文章主要融合了平面分解、mipNeRF,mipNeRF360,Neural 3D Video Synthesis from Multi-view Video,将场景约束在aabb内,将4D场景分解为 静态三维动态三维特征场景,利用mipNeRF的位置编码蒸馏采样思想得到空间的采样点,对该点在6个平面上分别做双线性插值,将插值后特征相乘相加得到该点的最终特征向量,此外,还借鉴了Instant-ngp的多分辨率思想,每个平面都有不同的分辨率大小,将不同分辨率大小的特征向量拼接,最终送入小MLP线性解码器MLP与球谐函数混合的解码器进行解码,得到颜色和密度,通过体渲染公式得到最终颜色值。

代码

优秀UP主代码讲解:https://www.bilibili.com/video/BV1Do4y1i7n6/?spm_id_from=333.337.search-card.all.click

main

 # 判断模型类型
if "keyframes" in config:
    # 视频
    model_type = "video"
elif "appearance_embedding_dim" in config:
    # 旅游景点
    model_type = "phototourism"
else:
    # 静态
    model_type = "static"

猜你喜欢

转载自blog.csdn.net/weixin_50973728/article/details/129889240
今日推荐