当前位置: 首页 > news >正文

PatchMatchNet笔记

PatchMatchNet笔记

    • 1 概述
    • 2 PatchmatchNet网络结构图
      • 2.1 多尺度特征提取
      • 2.2 基于学习的补丁匹配
    • 3 性能评价

PatchmatchNet: Learned Multi-View Patchmatch Stereo:基于学习的多视角补丁匹配立体算法

1 概述

特点
  高速,低内存,可以处理更高分辨率的图像,它的效率比所有现有的性能最好的模型都要高得多: 比最先进的方法至少快2.5倍,内存使用量减少一倍。
  首次在端到端可训练架构中引入了迭代的多尺度Patchmatch,并用一种新颖的、可学习的自适应传播和每次迭代的评估方案改进了传统Patchmatch核心算法。

主要贡献
  基于学习的方法比传统的方法有优势,但是受限于内存和运行时间,于是将补丁匹配的想法引入到端到端可训练的深度学习中,用可学习的自适应模块增强了补丁匹配的传统传播和代价评估步骤,减少了内存消耗和运行时间。

2 PatchmatchNet网络结构图

  补丁匹配网络的结构:多尺度特征提取器、基于学习的补丁匹配和细化。补丁匹配应用于多个阶段的多次迭代,以从粗到细的方式预测深度映射。细化使用输入来指导最终深度贴图的上采样。在阶段k上,深度图的分辨率为W/ 2 k× H/2 k,输入图像的大小为W×H。
在这里插入图片描述

2.1 多尺度特征提取

  给定N张大小为W×H的输入图像,使用I0和I1,…,In分别表示参考图像和源图像。
特征是在多个分辨率下分层提取的(像特征金字塔结构),可以粗到细的方式推进深度地图估计。
在这里插入图片描述

2.2 基于学习的补丁匹配

补丁匹配包括以下三个主要步骤:
1.初始化:生成随机的深度假设。
2.传播:向邻域传播假设。
3.评价:计算所有假设的匹配代价,并选择最佳解。

在这里插入图片描述

2.2.1 初始化与局部扰动

  基于预定义的深度范围[dmin,dmax],在反深度范围内对每像素的Df深度假设进行采样,对应于图像空间中的均匀采样。
  对于第k阶段的后续迭代,通过在归一化的反深度范围Rk中均匀地生成每像素的Nk假设来执行局部扰动,并在更精细的阶段中逐渐减少Rk。
为了定义Rk的中心,利用了前一次迭代的估计,从一个较粗的阶段上采样。这提供了一组更多样化的假设。围绕之前的估计进行采样,可以在局部细化结果并纠正错误的估计。

2.2.2 自适应传播

  在参考特征图F0上应用二维CNN,学习每个像素p的额外二维偏移量,并通过双线性插值得到深度假设Dp §如下:

D p ( p ) = D ( p + o i + Δ o i ( p ) ) i = 1 K p D_{p}(p)={D(p+o_{i}+\Delta o_{i}(p))}_{i=1}^{K_{p}} Dp(p)=D(p+oi+Δoi(p))i=1Kp

其中,D是来自前一次迭代的深度映射,可能来自一个较粗的阶段经过向上采样获得。

在这里插入图片描述

2.2.3 自适应评价和可微分的翘曲

  自适应评估模块执行以下步骤:可微扭曲、匹配代价计算、自适应空间代价聚合和深度回归。

  在平面扫描立体之后,大多数基于学习的MVS方法在采样深度假设下建立前端到平行平面,并将源图像的特征图扭曲成参考图。
p i , j = K i ⋅ ( R 0 , i ⋅ ( K 0 − 1 ⋅ p ⋅ d j ) + t 0 , i p_{i,j}=K_{i}·(R_{0,i}·(K_{0}^{-1}·p·d_{j})+t_{0,i} pi,j=Ki(R0,i(K01pdj)+t0,i
通过可微双线性插值,我们得到了视图i的扭曲源特征图和第j组(每像素不同的)深度假设,Fi(pi,j)。

3 性能评价

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

http://www.lryc.cn/news/233918.html

相关文章:

  • 实时人眼追踪、内置3D引擎,联想ThinkVision裸眼3D显示器创新四大应用场景
  • SELinux零知识学习十四、SELinux策略语言之客体类别和许可(8)
  • Unity——URP相机详解
  • CRUD-SQL
  • 【C语言 | 数组】C语言数组详解(经典,超详细)
  • 第三十三节——组合式API生命周期
  • 【Linux】Alibaba Cloud Linux 3 安装 PHP8.1
  • 【容器化】Kubernetes(k8s)
  • stm32 HSUSB
  • C# String.Trim 方法
  • <Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 4》(8)
  • RT-Thread STM32F407 PWM
  • idea中把spring boot项目打成jar包
  • levelDB之基础数据结构-Slice
  • 上位机模块之通用重写相机类
  • 机器人导航+OPENCV透视变换示例代码
  • KofamScan-KEGG官方推荐的使用系同源和隐马尔可夫模型进行KO注释
  • 代码随想录算法训练营第五十五天丨 动态规划part16
  • 【Linux】kernel与应用消息队列的一种设计
  • 我们常说的网络资产,具体是如何定义的?
  • WPF中可冻结对象
  • 【人工智能实验】A*算法求解8数码问题 golang
  • Kafka学习笔记(二)
  • Typora for Mac:打造全新文本编辑体验
  • TikTok与媒体素养:如何辨别虚假信息?
  • Spring Boot 中使用 ResourceLoader 加载资源的完整示例
  • 1688往微信小程序自营商城铺货商品采集API接口
  • QStatusBar开发详解
  • 后端接口性能优化分析-程序结构优化
  • 【SpringBoot3+Vue3】三【实战篇】-后端(优化)