MINE: Towards Continuous Depth MPI with NeRF for Novel View Synthesis

news2024/10/2 1:22:29

MINE: Towards Continuous Depth MPI with NeRF for Novel View Synthesis:利用NeRF实现新视图合成的连续深度MPI
摘要:在论文中,提出了MINE,通过从单个图像进行密集3D重建来执行新的视图合成和深度估计。通过引入神经辐射场(NeRF)对多平面图像(MPI)进行连续深度概括。给定单个图像作为输入,MINE在相机视锥中的任意深度,预测出一个四通道的图像预测 (RGB和体积密度),这种预测实际上是对输入图片的视锥的三维重建,以及对被遮挡内容的填充。然后,可以使用可微分渲染将重建和修复的相机视锥体渲染为新的RGB或深度视图。

MPI(多平面图像)是新视角合成任务中非常重要的一个方法分支,它是一个由同一场景的其他图像视图监督的深度网络,用于将RGB图像提升为RGB和alpha值的多个平面,每个平面表达场景在某个深度中的内容。
在计算机图形学中,一个RGB颜色模型的真彩图形,用由红、绿、蓝三个色彩信息通道合成的,每个通道用了8位色彩深度,共计24位,包含了所有彩色信息。为实现图形的透明效果,采取在图形文件的处理与存储中附加上另一个8位信息的方法,这个附加的代表图形中各个像素点透明度的通道信息就被叫做Alpha通道。MPI中每一层代表一个深度值,像素固定在该深度,利用α通道编码可见性。
在平面上执行单应性变换和积分来渲染新视图,对于新视角生成简要由下图给出,
在这里插入图片描述
MPI无法有效地表示连续的三维空间,是离散固定的,其深度分辨率受离散平面数量的限制,因此MPIs无法转换为其他3D表示,如网格、点云等。
神经辐射场(NeRF),以使用多层感知器(MLP)从图像中恢复3D信息。MLP将3D位置和2D观看方向作为输入,以预测该查询位置处的RGB和体积占用密度。尽管NeRF产生了高质量的3D结构和新颖的视图,但必须对每个场景进行训练,即一个MLP仅代表一个场景,泛化性差。
基于两者的优缺点,论文提出了将MPI推广到类似于NeRF的连续3D表示的MINE。输入图像首先被馈送到编码器网络以获得图像特征。然后解码器网络接收这些图像特征和任意深度作为输入,以产生平行于输入相机的4通道(即RGB和体积密度值)平面,由于平面深度是任意的,因此MINE可以在全3D空间中有效地重建相机平截头体。方法预测任意给定深度的RGB-σ图像平面,从而允许场景的连续/密集3D重建。

1、3D表示

1.1 平面神经辐射场

从相机坐标系到图像坐标系,属于透视投影,
坐标系总结:https://blog.csdn.net/MengYa_Dream/article/details/120233806
在这里插入图片描述

利用透视几何体来表示相机平截头体,图像平面上的像素坐标为[x,y]T ∈R²,针孔相机的内参为K∈R3×3 ,在相机视锥中的3D点坐标为[x,y,z]T,z是该点相对相机原点的深度,所以下图是像素坐标转换为相机坐标的公式,得到的是相机坐标在这里插入图片描述
在具有不同深度值z∈[zn,zf]的相机视锥体内对任意数量的平面进行采样,每个平面由该平面上每个点 [ x , y ] T∈ R 2 的RGB值 cz : [ x , y ]T→ R3 和体积密度 σz : [ x , y ] T →R+ 组成。
体积密度的定义与NeRF中的相同,表示射线在某点处终止于无穷小粒子的微分概率。深度范围内的相机视锥体是连续重建的,因为在任意位置的RGB和σ值是通过在深度z处对平面进行采样并查询cz和σz得到的,论文中称为平面神经辐射场,因为使用的是平面而不是射线来表示相机视锥体。

1.2 体渲染

c和σ是连续的二维函数,表示截头体中的每个可能位置。在实践中,在两个方面离散平面辐射场
1、视椎体由N个平面组成{czi ,σ zi∣i=1,⋅⋅⋅,N}
2、每个平面 ( czi , σzi )简化为深度为zi的4通道图像平面
离散化只是为了方便渲染。离散化表示仍然能够在任何3D位置获取RGBσ值,a)每个平面可以位于任意深度zi∈[zn,zf],b)每个4通道平面上的子像素采样微不足道。

pipeline在这里插入图片描述
体渲染公式与NeRF相同
在这里插入图片描述
以上公式由NeRF中对点的积分,I 变成了从近平面到远平面的的累计透射率的映射,Ti(x,y)表示光线从(x,x,z1)行进到(x,y,zi)而不撞击任何物体的概率。另外δzi由以下公式表示,是平面 i + 1 到 i 的距离在这里插入图片描述
渲染输入图像需要{(czi,σzi,zi)|i=1,··,N}的集合。(czi,σzi)是网络的输出,它将Isrc和di=1/zi作为输入。在透视几何中对视差{di=1/zi}进行采样,进而实现在空间中[zn,zf]中进行分层抽样。[dn,df]被划分为N个均匀间隔的箱,并且从每个箱均匀地抽取样本,即
在这里插入图片描述
采样策略确保我们的网络在训练期间暴露于截头体中的每个深度值,从而学习连续(czi,σzi)。输入图像的深度图也可以与渲染的类似方式体现,
在这里插入图片描述
新视角生成
如果需要生成新视角,那么相机需要先进行旋转平移到达新的世界坐标中,新视角生成有三步
1、应用单应性变形W(.)以建立源像素坐标[xs,ys]>和目标像素坐标[xt,yt]>之间的对应关系。这里的单应性变换公式与MVSNet中的类似,公式如下
在这里插入图片描述
n是平行平面(czi,σzi)相对于源相机的法向量,在这里插入图片描述

2、体积渲染依赖于每个位置的密度σ,以及沿射线的每个点之间的距离。计算在这里插入图片描述
假设一条从目标相机原来开始,并在像素坐标[xt,yt]T 处与目标图像相交的光线,该光线在相对于源相机的像素坐标Wzi(xt,yt)处与(czi,σzi)平面相交,类似的,光线在源相机像素坐标Wzi+1(xt,yt)处与(czi+1,σzi+1)平面相交。δzi(xt,yt)表示两个交点之间的欧几里得距离
3、将c, σ, δ替换为 c’, σ’, δ’,应用渲染公式,可得到一个新的视图。

2、网络以及训练设计

离散化的平面辐射场需要一组深度样本{zi|i=1,··,N}和4通道图像{(czi,σzi)|i=1、··,N}。根据等式对深度样本{zi}或视差样本{di=1/zi}进行随机采样。
编码器-解码器结构
4通道图像{(czi,σzi)}是来自网络的预测,该网络将单个图像和{zi}作为输入。编码器将图像作为输入并生成一系列特征图,使用Resnet-50作为编码器。解码器将特征图和单个视差值di=1/zi作为输入,并生成4通道图像(czi,σzi)。在训练和推理中,编码器对每个图像(或每一小批图像)只运行一次,而解码器运行N次以生成平面的离散集合{(czi,σzi)|i=1,···,N}。

差异编码
直接将di送到解码器中会产生较差的性能,利用NeRF中的方法,将位置编码R→RL在这里插入图片描述

3、RGB视频监控

使用多视图图像或RGB视频训练网络,在训练过程中,将一个输入图像Isrc输入到网络中,然后根据新视图相机旋转 R和缩放校准的相机平移 t’ 渲染到 (Itgt,Ztgt)核心监督是通过将“Itgt”与地面真相目标图像Itgt进行比较

3.1规模校准

深度尺度在尺度因子s∈R+之前是模糊的,因为系统的输入是单个图像。相机视锥重建的范围[zn,zf]被预定义为超参数,将其设置为zn=1,zf=1000。不缩放3D表示,而是在训练和推理时将相机平移t缩放为t’.
为了解决比例因子s,在来自运动恢复结构(SfM)的稀疏3D点和系统的合成深度图之间执行比例校准。
对每个视频使用COLMAP运行SfM,以获得每个图像的稀疏点集Ps={(xj,yj,zj)}。这里的坐标遵循相同的透视几何,即[xj,yj]>是图像上的像素坐标,而zj是对应的3D点的深度。源图像输入网络中,并使用公式渲染预测深度图后,通过以下公式估计比例在这里插入图片描述
校准平移由t’=t·s给出

3.2 损失函数

损失函数中有四个项:RGB L1损失LL1、RGB SSIM损失Lssim、边缘感知视差图平滑度损失Lsmooth和可选稀疏视差损失Ld在这里插入图片描述
前面都是加权各自损失项的超参数
RGB L1 and SSIM loss.在这里插入图片描述
鼓励合成的目标图像与真值 Itgt匹配。两个图像都是大小为 H × W 的3通道RGB图像。

Edge-aware disparity map smoothness loss
对合成的视差图施加一个边缘感知的平滑损失,以惩罚原始图像平滑位置上的视差的剧烈变化,并正确对齐视差图和原始图像中的边缘在这里插入图片描述
其中∂x 和 ∂y 是图像梯度D*是是均值归一化视差

Sparse disparity loss
在采用 SfM 对输入图像/视频进行预处理以解决尺度模糊的情况下,利用稀疏视差损失来促进深度/视差预测。这是可选的,特别是在KITTI等尺度固定为s = 1的数据集中,不需要SfM,稀疏视差损失也不适用。遵循对数视差样式,需要缩放视差图,因为平移 t 是用 s 校准的。平移和深度应该一起校准。

https://baijiahao.baidu.com/s?id=1713128720220339281&wfr=spider&for=pc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/397841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

05-Oracle中的对象(视图,索引,同义词,系列)

本章主要内容: 1.视图管理:视图新增,修改,删除; 2.索引管理:索引目的,创建,修改,删除; 3.同义词管理:同义词的作用,创建&#xff0…

如何通过websoket实现即时通讯+断线重连?

本篇博客只是一个demo,具体应用还要结合项目实际情况,以下是目录结构: 1.首先通过express搭建一个本地服务器 npm install express 2.在serve.js中自定义测试数据 const express require(express); const app express(); const http req…

详细stm32驱动SDRAM的注意事项以及在keil中的使用

SDRAM的主要参数: 容量:SDRAM的容量是指其可以存储的数据量,通常以兆字节(MB)或千兆字节(GB)为单位。 时钟频率:SDRAM的时钟频率指的是其内部时钟的速度,通常以兆赫&…

94. 二叉树的中序遍历

94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 (左根右)。 首先我们需要了解什么是二叉树的中序遍历:按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历…

MQTT协议-订阅主题和订阅确认

MQTT协议-订阅主题和订阅确认 SUBSCRIBE——订阅主题 订阅是客户端向服务端订阅 订阅报文 订阅报文与CONNECT报文类似,都是由固定报头可变报头有效载荷组成 固定报头比较简单,也是由两个字节组成,第一个字节为82,第二个字节是…

像素密度提升33%,Quest Pro动态注视点渲染原理详解

在Connect 2022上,Meta发布了Quest Pro,并首次在VR中引入动态注视点渲染(ETFR)功能,这是一种新型图形优化技术,特点是以用户注视点为中心,动态调节VR屏幕的清晰度(注视点中心最清晰、…

Oracle VM VirtualBox6.1.36导入ova虚拟机文件报错,代码: E_INVALIDARG (0x80070057)

问题 运维人员去客户现场部署应用服务,客户是windows server 服务器(客户不想买新机器),我们程序是在linux系统里运行(其实windows也可以,主要是为了保持各地环境一致方便更新和排查问题)我们使…

吐血整理学习方法,2年多功能测试成功进阶自动化测试,月薪23k+......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试进阶方向 测试进…

[Gin]框架底层实现理解(三)

1.engine.Run(port string) 这个就是gin框架的启动语句,看看就好了,下面我们解析一下那个engine.Handler() listenandserve 用于启动http包进行监听,获取链接conn // ListenAndServe listens on the TCP network address addr and then ca…

【SOP 】配电网故障重构方法研究【IEEE33节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Java中wait和sleep区别

文章目录1. Java中wait和sleep区别2. wait和sleep所属方法的不同3. wait的Demo3.1 没有synchronized同步代码块异常3.2 wait使用Demo4. sleep的Demo1. Java中wait和sleep区别 sleep属于Thread类中的static方法;wait属于Object类的方法sleep时线程状态进入TIMED_WAI…

java 如何实现在线日志

如何采集springboot日志至web页面查看 实现方案 基于Filter方式,在日志输出至控制台前,LoggerFitler 拦截日志通过websocket推送至前台页面 实现逻辑: LoggerFilter采集日志添加至LoggerQueue队列, LoggerConsumer 从LoggerQueue中采集推送至前台页面 #mermaid-s…

LearnOpenGL-光照-3.材质

本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject 文章目录材质例子1代码相关光照太强了例子2例子3: 不同的光源颜色材质 引出材质 如果我们想要在OpenGL中模拟…

TTS | 语音合成常见数据集及数据格式详情

linkLJSpeech网址 : The LJ Speech Dataset (keithito.com)数据集描述:数据集大小:2.6GB这是一个公共领域的语音数据集,由 13,100 个简短的音频剪辑组成 一位演讲者阅读 7 本非小说类书籍的段落。为每个剪辑提供转录。…

删除的文件怎么恢复?恢复方法在这里(支持Win和Mac)

案例:文件永久删除还能找回来吗?关于Win和Mac系统的恢复方法 “前几天我在清理电脑垃圾,不小心误删了重要的文件。有没有什么比较全面的方法,可以帮助我恢复删除的文件啊?在线急等回复!” 随着电脑使用的…

Golang 中 Slice的分析与使用(含源码)

文章目录1、slice结构体2、slice初始化3、append操作4、slice截取5、slice深拷贝6、值传递还是引用传递参考文献众所周知,在golang中,slice(切片)是我们最常使用到的一种数据结构,是一种可变长度的数组,本篇…

三维人脸实践:基于Face3D的渲染、生成与重构 <二>

face3d: Python tools for processing 3D face git code: https://github.com/yfeng95/face3d paper list: PaperWithCode 3DMM方法,基于平均人脸模型,可广泛用于基于关键点的人脸生成、位姿检测以及渲染等,能够快速实现人脸建模与渲染。推…

MySQL基础篇3

第一章 多表关系实战 1.1 实战1:省和市 方案1:多张表,一对多 方案2:一张表,自关联一对多 id1 name‘北京’ p_id null; id2 name‘昌平’ p_id1 id3 name‘大兴’ p_id1 id3 name‘上海’ p_idnull id4 name‘浦东’…

中国人工智能企业中集飞瞳全球港航人工智能领军者,箱况残缺检测视频流动态感知智能闸口,自动化港口码头数字化智慧港航中国人工智能企业

中国人工智能企业中集飞瞳全球港航人工智能领军者,箱况残缺检测视频流动态感知超级智能闸口,自动化港口码头数字化智慧港航。CIMCAI已完成全球250万人工智能集装箱箱况检验,完成全球上亿集装箱信息,先进产品在全球各港区及集装箱枢…

CNStack 多集群服务:基于 OCM 打造完善的集群管理能力

作者:学靖 概述 随着 Kubernetes 在企业业务中的应用和发展,单集群内的管理能力已经趋于完善,越来越多的客户期望在多云、多集群场景部署其业务,因此需要提供相应的多云、多集群管理能力。 CNStack 多集群服务是 CNStack 面向多…