论文阅读《DPS-Net: Deep Polarimetric Stereo Depth Estimation》

news2024/9/30 23:39:47

论文地址:https://openaccess.thecvf.com/content/ICCV2023/html/Tian_DPS-Net_Deep_Polarimetric_Stereo_Depth_Estimation_ICCV_2023_paper.html


概述

  立体匹配模型难以处理无纹理场景的匹配,现有的方法通常假设物体表面是光滑的,或者光照是受控的,这些条件在实际场景中很难满足,只适用于物体级别的重建或者特定的拍摄环境。此外,这些方法还难以处理偏振图像中表面法向的固有歧义性,例如方位角和天顶角的歧义性(指从偏振图像中恢复表面法向量时,由于不同的反射类型和非线性方程的影响,可能存在多个解,导致法向量的方位角和天顶角不唯一),这些歧义性需要依赖于预先计算的粗糙深度或者已知的反射类型来解决。
  针对这些问题,文中提出DPS-Net来基于先验几何知识与偏振立体知识用于估计两幅偏振立体图像的深度。通过构建RGB与偏振匹配代价体分别提取RGB与偏振域的匹配知识。针对立体匹配中的固有歧义问题,文中引入一种等深度代价体用于解决无纹理区域的匹配模糊性,该代价体是一种利用偏振信息和几何约束来消除方位角歧义的方法,它基于等深度轮廓与法向量方位角分量正交的性质,通过计算偏振图像中的偏振角和方位角之间的差异,构建一个统一的代价函数,同时考虑了漫反射和镜面反射的情况。此外,文中提出一种级联双GRU结构将极化的等深度约束和多域的视觉相似度融合起来,通过递归地回归和优化视差,处理了极化信息中固有的方位角和天顶角的歧义,用于迭代更新视差图与有效地融合多源的关联特征与等深度代价。在合成和真实数据集中的实验结果表明,该方法达到了SOTA水准。


背景知识

  偏振光图像是指用不同的偏振角度拍摄的一组图像,它们可以反映物体表面的法向信息,有助于纹理缺乏的场景的匹配。偏振光是指光波的振动方向只沿着一个平面的光,它可以通过一个偏振片来产生或筛选,偏振片是一种只允许特定方向的偏振光通过的光学器件,它可以通过旋转来改变偏振角度。光波是一种横波,即光波的振动方向和传播方向垂直。根据横波的性质,不同偏振角度的偏振光图像的亮度会有不同的变化,这种变化与物体表面的法向量有关。偏振光图像的亮度和偏振角之间的关系可以用一个余弦函数来表示:
I ( ϕ c ) = I max ⁡ cos ⁡ 2 ( ϕ c − ϕ ) + I min ⁡ sin ⁡ 2 ( ϕ c − ϕ ) , = I ˉ + ρ I ˉ cos ⁡ ( 2 ϕ c − 2 ϕ ) , (1) \begin{aligned} I\left(\phi_{c}\right)& =I_{\max}\cos^2\left(\phi_c-\phi\right)+I_{\min}\sin^2\left(\phi_c-\phi\right), \\ &=\bar{I}+\rho\bar{I}\cos\left(2\phi_c-2\phi\right), \end{aligned}\tag{1} I(ϕc)=Imaxcos2(ϕcϕ)+Iminsin2(ϕcϕ),=Iˉ+ρIˉcos(2ϕc2ϕ),(1)
其中 ϕ c ϕ_c ϕc是偏振角, ϕ ϕ ϕ是物体表面的偏振角, ρ ρ ρ是物体表面的偏振度, I I I是物体表面的亮度, I m i n , I m a x , I ˉ = ( I m i n + I m a x ) / 2 I_{min}, I_{max}, \bar{I} = (I_{min}+I_{max})/2 Imin,Imax,Iˉ=Imin+Imax/2 为物体表面的最小亮度,最高亮度与平均亮度。最大亮度和最小亮度是指在不同的偏振角度下,偏振光图像的亮度的最大值和最小值。平均亮度是指最大亮度和最小亮度的平均值,反映了物体表面的总体亮度。偏振角是指使偏振光图像达到最大亮度的偏振角度,它与物体表面的法向量有关,可以用于计算物体表面的法向角。偏振度是指最大亮度和最小亮度之间的相对差异,它反映了物体表面的偏振特性,可以用于判断物体表面的反射类型。这个方程可以用于从偏振光图像中计算出物体表面的偏振角和偏振度,进而推导出物体表面的法向量.
  当光线从空气射到物体表面时,会发生反射和折射,反射光会部分地偏振,即光波的振动方向只沿着一个平面。反射光的偏振程度和方向取决于物体表面的法向量和反射类型。反射类型分为漫反射和镜面反射,漫反射是指光线在物体表面的微小凹凸处发生多次反射,镜面反射是指光线在物体表面的平滑处发生一次反射。一般情况下,每个像素处的反射类型是由物体表面的材质和光照条件决定的。偏振度 ρ ρ ρ,偏振角 ϕ ϕ ϕ,天顶角 θ θ θ和方位角 φ φ φ是描述偏振光图像的几个重要参数。偏振度是指反射光的偏振程度,偏振角是指反射光的偏振方向,天顶角是指物体表面的法向量与视线方向的夹角,方位角是指物体表面的法向量在水平面上的投影与水平基准方向的夹角。根据物理原理,偏振度,偏振角,天顶角和方位角之间存在一定的关系,这些关系可以用数学方程来表示:
ρ d = ( η − 1 / η ) 2 sin ⁡ 2 θ 2 + 2 η 2 − ( η + 1 / η ) 2 sin ⁡ 2 θ + 4 cos ⁡ θ η 2 − sin ⁡ 2 θ ϕ d = φ   o r   ϕ d = φ + π , , (2) \begin{gathered}\rho_d=\frac{(\eta-1/\eta)^2\sin^2\theta}{\begin{aligned}2+2\eta^2-(\eta+1/\eta)^2\sin^2\theta+4\cos\theta\sqrt{\eta^2-\sin^2\theta}\\\phi_d=\varphi\mathrm{~or~}\phi_d=\varphi+\pi,\end{aligned}},\end{gathered}\tag{2} ρd=2+2η2(η+1/η)2sin2θ+4cosθη2sin2θ ϕd=φ or ϕd=φ+π,(η1/η)2sin2θ,(2)
其中 η \eta η 为表面材料的折射率,对镜面反射,有:
ρ s = 2 sin ⁡ 2 θ cos ⁡ θ η 2 − sin ⁡ 2 θ η 2 − sin ⁡ 2 θ − η 2 sin ⁡ 2 θ + 2 sin ⁡ 4 θ , ϕ s = φ ± π 2 . (3) \begin{gathered}\rho_s=\frac{2\sin^2\theta\cos\theta\sqrt{\eta^2-\sin^2\theta}}{\eta^2-\sin^2\theta-\eta^2\sin^2\theta+2\sin^4\theta},\\\phi_s=\varphi\pm\frac\pi2.\end{gathered}\tag{3} ρs=η2sin2θη2sin2θ+2sin4θ2sin2θcosθη2sin2θ ,ϕs=φ±2π.(3)
通过求解上述方程中的方位角和天顶角,可以估算出表面法线,而由于未知的反射类型和非线性方程,方位角和天顶角都存在多解,这也被称为方位角模糊性和天顶角模糊性。

模型架构

在这里插入图片描述
  如图1所示,整体模型可以划分为4个步骤:(1)分别从RGB与偏振立体图像提取特征。(2)分别使用RGB与偏振立体特征构建匹配代价体。(3)根据偏振信息约束计算等深。(4)将相关性代价体与等深代价送入GRU单元中不断迭代更新视差图。

Multi Domain Feature and Correlation Volume 多源特征与相关性代价体

特征提取:分别使用特征提取模块从RGB立体图像与偏振立体图像中提取维度为256的特征图。RGB图像特征在不同的光照条件下提供了更一致的上下文信息,而偏振图像特征可能受到噪声的干扰。RGB图像在不同的光照条件下提供了更一致的上下文信息,而极化图像可能受到噪声的干扰。因此,文中选择了RGB图像特征作为上下文特征的来源,以保证上下文信息的一致性。
相关性代价体:参考RAFT构建相关代价体,在纹理缺失和特征稀疏的情况下,利用偏振信息作为RGB信息的补充,从而提高立体匹配的效果:
I C i j k = ∑ h f i j h I ⋅ g i k h I , I C ∈ R H × W × W , P C i j k = ∑ h f i j h P ⋅ g i k h P , P C ∈ R H × W × W , (4) \begin{aligned}\mathbf{IC}_{ijk}&=\sum_h\mathbf{f}_{ijh}^I\cdot\mathbf{g}_{ikh}^I,\quad\mathbf{IC}\in\mathbb{R}^{H\times W\times W},\\\mathbf{PC}_{ijk}&=\sum_h\mathbf{f}_{ijh}^P\cdot\mathbf{g}_{ikh}^P,\quad\mathbf{PC}\in\mathbb{R}^{H\times W\times W},\end{aligned}\tag{4} ICijkPCijk=hfijhIgikhI,ICRH×W×W,=hfijhPgikhP,PCRH×W×W,(4)
其中, I C i j k \mathbf{IC}_{ijk} ICijk 表示RGB相关代价体, P C i j k \mathbf{PC}_{ijk} PCijk 为偏振相关代价体。分别对RGB代价体与偏振代价体下采样得到4层的代价体金字塔。

Iso-Depth Cost and Ambiguity Solver 等深代价与模糊匹配

法线的等深约束:等深度轮廓与轮廓上点的法向量的方位角分量正交。通过对深度求导并用视差代替深度可以得到方位角的近似表示: tan ⁡ ( φ ) = f y f x ( d  0 , − 1 − d  0 , 1 ) ( d  − 1 , 0 + d  1 , 0 ) ( d  − 1 , 0 − d  1 , 0 ) ( d  0 , − 1 + d  0 , 1 ) , (5) \tan(\varphi)=\frac{f_y}{f_x}\frac{(\text{d }_{0,-1}-\text{d }_{0,1})(\text{d }_{-1,0}+\text{d }_{1,0})}{(\text{d }_{-1,0}-\text{d }_{1,0})(\text{d }_{0,-1}+\text{d }_{0,1})},\tag{5} tan(φ)=fxfy(1,01,0)(0,1+0,1)(0,10,1)(1,0+1,0),(5)
其中 d i , j d_{i,j} di,j 为像素点 P ( u , v ) P(u,v) P(u,v)的邻域像素 P ( u + i , v + j ) P(u+i,v+j) P(u+i,v+j) f f f为焦距。

等深偏振代价:如上文所述,文中构建了一个统一的等深度代价,来显式地利用偏振的几何约束,并处理方位角φ和线偏振角 ϕ ϕ ϕ之间的 π − π- π歧义和 π / 2 − π/2- π/2歧义。文中提出的等深度代价 C ( φ ) C(φ) C(φ)通过最小化算子将镜面反射和漫反射下的方位角代价进行了整合。此外,反射类型的歧义 R ( φ ) R(φ) R(φ)可以由以下方式解决:
C s ( φ ) = [ s i n ( ϕ ) s i n ( φ ) + c o s ( ϕ ) c o s ( φ ) ] 2 , C d ( φ ) = [ s i n ( ϕ ) c o s ( φ ) − c o s ( ϕ ) s i n ( φ ) ] 2 , C ( φ ) = min ⁡ { C s ( φ ) , C d ( φ ) } , R ( φ ) = arg ⁡ min ⁡ { C s ( φ ) , C d ( φ ) } , (6) \begin{aligned} &\mathbf{C}_{s}(\varphi)=\left[sin\left(\phi\right)sin\left(\varphi\right)+cos\left(\phi\right)cos\left(\varphi\right)\right]^{2}, \\ &\begin{aligned}\mathbf{C}_d(\varphi)=\left[sin\left(\phi\right)cos\left(\varphi\right)-cos\left(\phi\right)sin\left(\varphi\right)\right]^2,\end{aligned} \\ &\mathbf{C}(\varphi)=\min\left\{\mathbf{C}_s(\varphi),\mathbf{C}_d(\varphi)\right\}, \\ &\begin{aligned}\mathbf{R}(\varphi)=\arg\min\left\{\mathbf{C}_s(\varphi),\mathbf{C}_d(\varphi)\right\},\end{aligned} \end{aligned}\tag{6} Cs(φ)=[sin(ϕ)sin(φ)+cos(ϕ)cos(φ)]2,Cd(φ)=[sin(ϕ)cos(φ)cos(ϕ)sin(φ)]2,C(φ)=min{Cs(φ),Cd(φ)},R(φ)=argmin{Cs(φ),Cd(φ)},(6)
其中, C d C_d Cd C s C_s Cs分别表示漫反射和镜面反射的代价。
虚拟视差和虚拟相关特征:为了抑制偏振噪声引起的代价扰动,并充分利用偏振提供的等深度约束,文中根据等深度代价计算虚拟视差,并生成相应的虚拟相关特征。虚拟视差和虚拟相关特征可以用于优化GRU中的视差细化,优化GRU是双GRU架构的一部分。为了区分不同的视差,文中将在更新块中不断更新的视差称为实际视差 d a d_a da,把根据等深度代价的梯度和迭代更新的步长 α α α计算的视差称为虚拟视差 d v d_v dv。虚拟视差的计算公式如下:

d v = d a − α ∇ d C ( φ , d ) . (7) d_v=d_a-\alpha\nabla_d\mathbf{C}(\varphi,d).\tag{7} dv=daαdC(φ,d).(7)

Hybrid GRU-based Update Operator 混合GRU更新单元

   文中使用混合GRU单元来挖掘多源信息并更新视差图。如图2所示:
在这里插入图片描述
   多源上下文信息与集合信息被送入到更新块中融合,并基于两个关联代价体金字塔提取多源相似性视觉特征 。最后,将真实与虚拟视觉相关特征送入双GRU单元循环优化视差结果。此外,虚拟视差和相关的虚拟相关特征是根据等深度代价生成的,用于间接地指导优化过程。
级联双GRU结构:文中作者提出级联的双GRU结构用于融合等深代价与视觉相似性。级联的双GRU架构由一个回归GRU和一个优化GRU组成。在回归GRU中,视差由实际视差的多域相关特征回归计算得到,这些特征利用了RGB和偏振图像的相似性,为后续的优化提供了一个初始预测。在优化GRU中,等深度代价直接作为输入并通过虚拟相关特征以一种间接的方式融入。优化GRU融合了几何约束,并进一步纠正了视差。
  文中基于虚拟相关特征来引入等深度代价,而不是直接用代价梯度计算的增量来更新视差,这样可以避免传统优化过程中的以下困难:(1)将与上下文信息耦合的匹配问题显式地转化为优化问题。(2)由于优化问题的严重非凸性带来的优化难问题。考虑到以上的难点,文中引入一个混合优化GRU避免模型在局部收敛与抑制偏振噪声的影响。此外,级联方案可以很好地平衡视觉相似性和几何约束。通过回归和优化的级联范式,在不同的迭代中逐渐细化视差。

多源输入:基于多域信息来构造GRU的输入。级联的双GRU架构中的两个GRU的输入不同。回归GRU的输入是实际视差的多域相关特征,利用了RGB和偏振图像的相似性,为后续的优化提供了一个初始预测。优化GRU的输入是虚拟视差的多域相关特征,利用了偏振图像中的等深度代价来指导视差优化。在将多域相关特征输入到GRU之前,使用两层卷积组成的编码器分别对多域输入进行处理。最后,将多域相关特征和其他编码特征拼接后输入GRU单元,如图2所示。
更新:GRU更新单元用来循环地更新视差和代价步长。该模块包括两个GRU(门控循环单元),分别是回归GRU和优化GRU。回归GRU和优化GRU都有一个隐藏状态,隐藏状态会根据编码后的混合输入不断地更新。通过不同的头网络,可以从隐藏状态中解码出视差增量和优化步长。最后基于新的增量来更新视差,并通过上采样操作来恢复全分辨率的视差图。


损失函数

L = ∑ i = 1 N γ N − i ∥ d g t − d i ∥ 1 . (8) \mathbf{L}=\sum_{i=1}^N\gamma^{N-i}\left\|d_{gt}-d_i\right\|_1.\tag{8} L=i=1NγNidgtdi1.(8)


实验结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
a
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Linux | 多线程

前言 本文主要介绍多线程基础知识,以及使用多线程技术进行并发编程;最后会介绍生产者消费者模型; 一、线程基本认识 1、什么是线程 如果你是科班出生,你肯定听过线程相关概念;但是你可能没有真正搞懂什么是线程&#…

西班牙语 Alt 代码表

西班牙语 Alt 代码表,请参考下图。 输入方法就是按住 Alt 键不松开,然后在小键盘上输入字符,松开 Alt 键,计算机就能输出上面的字符了。 西班牙语的字符没有法语和德语的多。 西班牙语 Alt 代码表 - 系统容器 - iSharkFly西班牙语…

SpringBoot之实体参数的详细解析

1.3 实体参数 在使用简单参数做为数据传递方式时,前端传递了多少个请求参数,后端controller方法中的形参就要书写多少个。如果请求参数比较多,通过上述的方式一个参数一个参数的接收,会比较繁琐。 此时,我们可以考虑…

MySQL主从复制与读写分离实验

实验一、MySQL主从服务器搭建 实验前准备 Master服务器:192.168.188.14 mysql5.7 Slave服务器1:192.168.188.15 mysql5.7 Slave服务器2:192.168.188.16 mysql5.7 关闭虚拟机防火墙 systemctl stop firewalld setenforce 0 主服务器准…

微搭低代码实现登录注册功能

目录 1 创建用户数据源2 实现登录逻辑3 搭建登录页面4 设置登录框5 实现登录的逻辑6 用户注册总结 原来产品在创建应用的时候可以创建模型应用,模型应用对应我们小程序的后端。最新的更新已经将模型应用的能力下线,那我们不得不自己实现一下后端的逻辑。…

【报错栏】(vue)Module not found: Error: Can‘t resolve ‘element-ui‘ in xxx

Module not found: Error: Cant resolve element-ui in xxx 报错原因是: 未安装 element-ui 依赖 解决: npm install element-ui 运行

智能优化算法应用:基于象群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于象群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于象群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.象群算法4.实验参数设定5.算法结果6.参考文献7.MA…

【SpringBoot】FreeMarker视图渲染

目录 一、FreeMarker 简介 1.1 什么是FreeMarker? 1.2 Freemarker模板组成部分 1.3 为什么要使用FreeMarker 二、Springboot集成FreeMarker 2.1 配置 2.2 数据类型 2.2.1 字符串 2.2.2 数值 2.2.3 布尔值 2.2.4 日期 2.3 常见指令 2.3.2 assign 2.3…

国产仿日立高速离心瓶250ml/500ml/1000ml日立通用离心杯

国产仿日立高速离心瓶250ml/500ml/1000ml日立离心机通用离心杯 250ml高速离心瓶 货号:ZY1136229 材质:PPCO 外径:61 mm 高度:130mm 500ml高速离心瓶 货号:ZY1136219 材质:PPCO 外径:73m…

大模型应用_FastGPT

1 功能 整体功能,想解决什么问题 官方说明:FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!个人体会…

【map】【动态规划】LeetCode2713:矩阵中严格递增的单元格数

本文涉及的基础知识点 二分查找算法合集 题目 给你一个下标从 1 开始、大小为 m x n 的整数矩阵 mat,你可以选择任一单元格作为 起始单元格 。 从起始单元格出发,你可以移动到 同一行或同一列 中的任何其他单元格,但前提是目标单元格的值 …

UML-认识6种箭头(画类图无烦恼)

文章目录 一、背景二、箭头详解2.1 泛化(Generalization)2.2 实现(Realize)2.3 依赖(Dependency)2.4 关联(Association)2.5 聚合(Aggregation)2.6 组合&#…

npm安装,idea中启动vue失败

node 设置配置之后,要查询时,会从.npmrc中读取路径 .npmrc自己创建的(默认情况下.npmrc会创建在C盘中) 我创建的在D:\studay-and-working\node16.14\node_modules\npm中 指定.npmrc文件,因为默认会访问C盘的.npmrc文件…

现代雷达车载应用——第2章 汽车雷达系统原理 2.4节 雷达波形和信号处理

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.4 雷达波形和信号处理 对于连续波雷达来说,波形决定了其基本信号处理流程以及一些关键功能。本节将以FMCW波形为例,讨论信号…

# 和 $ 的区别①

# 和 $ 都是为了获取变量的值 # 和 $ 区别 : 使用 # 查询 id 为 1 的内容 如果看不懂代码,就去看<<Mybatis 的操作(结合上文)续集>>,我这里为了简练一点就不多解释了 Select("select * from userInfo where id #{id}")UserInfo selectOne(Integer id…

2023版本QT学习记录 -1- 手写登录注册界面(信号与槽)

登录界面图片 登录界面设计 分别创建如下图的&#xff0c;一个文本框&#xff0c;两个输入框&#xff0c;两个按键 注册界面图片 注册界面设计 分别创建如下图的&#xff0c;一个文本框&#xff0c;两个输入框&#xff0c;两个按键 设计子框&#xff08;也就是注册页面&…

机器视觉系统选型-线光源分类及应用场景

标准线光源 从线性LED的发光面照射漫射光 玻璃划痕检测印刷字符检测手机屏幕检测PCB板检测 高亮线光源 从线性LED的发光面照射高亮度漫射光高速流水线检测表面印刷检测表面缺陷检测 集光型线光源 从线性LED的发光面照射直射光划痕缺陷检测印刷字符检测布料检测 同轴线光源 与相…

做数据分析为何要学统计学(2)——如何估计总体概率分布

我们可以通过手头掌握的样本来估计总体的概率分布。这个过程由以下步骤组成。 第一步&#xff0c;我们采用Seaborn软件的histplot函数建立核密度图&#xff08;一种概率密度图&#xff09;。 import numpy as np #输入样本数据 xnp.array([2.12906357, 0.72736725, 1.0515282…

Simple Water Caustic Pattern In Unity ShaderGpaph

shadertoy上有各种神奇的效果&#xff0c;以我的见识根本想象不到这些是怎么弄出来的。 不过不会做至少可以先会用。 这篇文章抓取一个shadertoy的示例以制作一个测试效果。 参考这篇shadertoy&#xff0c;使用自定义节点装填hlsl的noise代码 Shader - Shadertoy BETA 首先使…

使用FluentAvalonia组件库快速完成Avalonia前端开发

前言 工欲善其事必先利其器,前面我们花了几篇文章介绍了Avalonia框架以及如何在Avalonia框架下面使用PrismAvalonia完成MVV模式的开发。今天我们将介绍一款重磅级的Avalonia前端组件库,里面封装了我们开发中常用的组件,这样就不用我们自己再写组件了。专注业务功能开发,提…