【立体匹配论文阅读】Pyramid Stereo Matching Network

news2025/7/21 23:06:04

Authors: Jia-Ren Chang, Yong-Sheng Chen
Link: https://arxiv.org/abs/1803.08669
Years: 2018

Credit

请添加图片描述

Novelty and Question set up

本文提出之时,基于深度学习的立体匹配主流方式仍是patch-based孪生结构,这种方式缺乏上下文信息的获取能力,为了解决这个问题,作者提出了PSMnet,主要通过SPP和3D CNN模块来进行上下文信息的学习。其中SPP(空间金字塔池化)结构利用全局多尺度信息来捕获上下文,而3DCNN则是利用多个hourglass结构来实现更优化的cost volume正则。

本文主要贡献:
  • 提出一个端对端框架直接获得视差图,并且不需要任何后处理
  • 提出利用SPP来捕获图像上下文信息
  • 提出利用3D Conv的stacked hourglass来进一步获得上下文线索以实现更优的cost volume正则

Solutions and Details

  • 总体结构
    请添加图片描述

    整体网络结构分4个stage:

    1. CNN:用于提取图像特征,PSMNet在最末几个block采用了dilation来扩大感受野
      请添加图片描述
    2. SPP:用于聚合上下文信息
      请添加图片描述
    3. Cost Volume:构建左右图特征的匹配代价,采用特征concatenate策略
      请添加图片描述
    4. Regularization:采用3个hourglass对代价体进行正则化,每个hourglass block都会输出一个预测视差图,训练阶段会对三个视差图进行加权平均,而推理时只采用最后一层输出的视差图
      请添加图片描述
  • 视差回归

    沿用GC-Net的soft argmin策略,对所有视差level进行一个可差分的回归估计

    d ^ = ∑ d = 0 D m a x d × σ ( − c d ) \hat{d} = \sum_{d=0}^{D_{max}}d\times{\sigma{(-c_{d}})} d^=d=0Dmaxd×σ(cd)

  • 损失函数

    采用SmoothL1作为损失函数,对ground truth视差图和预测视差计算平均误差

    L ( d , d ^ ) = 1 N ∑ i = 1 N s m o o t h L 1 ( d i − d ^ i ) L(d,\hat{d})=\frac{1}{N}\sum_{i=1}^{N}smooth_{L1}(d_i-\hat{d}_i) L(d,d^)=N1i=1NsmoothL1(did^i)

Results

  • 在Sceneflow和KITTI-2012/2015上进行实验,最大视差设置为192,对于KITTI数据集,由于数据量太少,采用在Sceneflow上预训练的模型进行finetune请添加图片描述
  • 在KITTI和Sceneflow上进行消融实验,验证dliated conv、SPP、stacked hourglass对精度的影响,结果显示三者都用对精度提升帮助比较大;另外在KITTI上进行loss的权重选取对比,0.5\0.7\1.0的组合效果最佳请添加图片描述
  • 在KITTI2015上与其他SOTA的表现对比,除了前景区域,其余精度指标上表现都比其他SOTA要好请添加图片描述
  • 在Sceneflow数据集上与其他SOTA比较,EPE指标上明显好于其他模型,比GC-Net误差明显要低很多请添加图片描述
  • 在KITTI2012上与其他模型比较,所有指标均达到SOTA水平
    请添加图片描述

Thoughts

  • PSMNet采用SPP,不仅突破了模型对分辨率,也增强了立体匹配必需的上下文信息聚合的能力
  • 采用stacked hourglass增强了代价正则的效果,但因为用了3D卷积,这个stage算力要求非常高,并且stacked hourglass会产生大量的feature map缓存,内存开销也不小
  • PSMNet的创新点基本都在模型结构上,范式基本还是沿用GC-Net,其他方面没有太多亮点

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

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

相关文章

buuctf-web-[SUCTF 2018]MultiSQL1

打开界面,全部点击一遍,只有注册和登录功能可以使用注册一个账号,注册admin提示用户存在,可能有二次注入,注册admin自动加了一个字符,无法二次注入,点击其他功能点换浏览器重新登录后&#xff0…

java多线程(二一)并发协作生产者消费者设计模式

1.两个线程一个生产者一个消费者 需求情景 两个线程,一个负责生产,一个负责消费,生产者生产一个,消费者消费一个。 涉及问题 同步问题:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加…

如何查看并读懂昇腾平台的应用日志

当您完成训练/推理工程开发后,将工程放到昇腾平台运行,以调试工程是否正常,此时,可能会出现各种各样、五花八门的异常状况。当问题发生时,我们的第一反应是不是查看日志,看看哪里报错了。昇腾平台有哪些日志…

面向对象设计模式:结构型模式之装饰器模式

一、引入 咖啡馆订购系统 Initial 初始 4 种咖啡 House blend (混合咖啡)Dark Roast (深度烘培)Decaf (低咖啡因咖啡)Espresso (意式浓缩咖啡) 需求变更:客户可以加料(咖啡、牛奶、糖等) steamed milksoymochaWhip 使用继承&#xff1…

Vue2的基本内容(二)

目录 一、props配置 二、全局事件总线 1.作用 2.原理 3.使用 三、插槽 1.默认插槽 2.具名插槽 3.作用域插槽 四、Vuex 1.vuex是什么 2.vuex工作流程 3.vuex的API (1)state (2)state辅助函数mapState (…

Linux 练习六 (IPC 管道)

文章目录1 标准管道流2 无名管道(PIPE)3 命名管道(FIFO)3.1 创建删除管道文件3.2 打开和关闭FIFO文件3.3 管道案例:基于管道的客服端服务器程序使用环境:Ubuntu18.04 使用工具:VMWare workstati…

【C++】STL——string类的模拟实现

文章目录👉string类👈📕 概念📕 成员变量📕 构造函数、析构函数📕 size() 、getstr() 函数📕 拷贝构造📕 赋值重载📕 迭代器📕 运算符重载📕 尾插…

如何管控第三方软件,保护企业数据安全?

日前,密码管理供应商LastPass公布了关于其数据泄露事件的调查新进展。据其透露,这是一起“二次协同攻击”事件。LastPass在2022年8月、12月先后披露的两起违规事件,这两起事件的攻击链有关联。在此次攻击事件中,LastPass发现恶意黑…

王道计算机组成原理课代表 - 考研计算机 第五章 中央处理器 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 计算机组成 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “中央处理器” 章节知识点总结的十分全面,涵括了《计算机组成原理》课…

C++基础——C++相比C语言的新特性梳理总结(C++新特性、输入输出方式、命名空间namespace)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…

论文翻译 | Momentum Contrast for Unsupervised Visual Representation Learning(前三章)

前言: 上一次读恺明大神的文章还是两年前,被ResNet的设计折服得不行,两年过去了,我已经被卷死在沙滩上 Momentum Contrast for Unsupervised Visual Representation Learning 摘要 我们提出了针对无监督表征学习的方法MOCO,利用…

上门按摩预约APP源码-东郊到家源码(开发,PHP,平台搭建)

一、什么是上门按摩预约APP源码? 上门按摩预约APP源码是一款家政服务类型的APP,可以帮忙用户在家就能享受按摩的服务。APP源码分两端,一端是用户端,另外一端是技师端。采用的技术,前端是安卓IOS,后端是PHP&…

java_Day004

1.二维数组 二维数组的创建与初始化(java是支持规则数组和不规则数组的) 例:int[][] array {{1,2},{2,3}{3,4,5}}; 结构如下: 二维数组的遍历: 例子: Testpublic void test21(){int[][] array new int[…

C++学习记录——십이 vector

文章目录1、vector介绍和使用2、vector模拟实现insert和erase和迭代器失效补齐其他函数深浅拷贝难点思考1、vector介绍和使用 vector可以管理任意类型的数组&#xff0c;是一个表示可变大小数组的序列容器。 通过vector文档来看它的使用。 #include <iostream> #inclu…

集群、分布式的理解

一、单机模式小型系统相对简单&#xff0c;所有的业务全部写在一个项目中&#xff0c;部署服务到一台服务器上&#xff0c;所有的请求业务都由这台服务器处理&#xff0c;这就是单机模式。显然&#xff0c;当业务增长到一定程度的时候&#xff0c;服务器的硬件会无法满足业务需…

强化学习 | 课堂笔记 | 第三课 MP的便利性,随机逼近方法

一、回顾 一、值函数、贝尔曼方程、贝尔曼最优方程 二、最优值函数 三、ADP 3.1 VI 3.2 PI 四、ADP可以使用的条件 五、Q函数 六、解决问题的方案 &#xff08;指的是解决“四 ADP可以使用的条件”中的三个问题&#xff09; 二、期望的计算 一、Markov过程的便利性 1…

新搭建Gitlab代码仓代码如何导入

这里写目录标题一级目录1.本地代码如何导入新Gitlab2.怎么将旧Gitlab代码导入新Gitlab一级目录 1.本地代码如何导入新Gitlab 修改本地代码 .git 目录下面的config 文件&#xff0c;主要是url参数&#xff0c;将url指向新的Gitlab仓库地址 [core]repositoryformatversion 0f…

【1096. 花括号展开 II】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 如果你熟悉 Shell 编程&#xff0c;那么一定了解过花括号展开&#xff0c;它可以用来生成任意字符串。 花括号展开的表达式可以看作一个由 花括号、逗号 和 小写英文字母 组成的字符串&#xff0c;定…

E900V21C(S905L-armbian)安装armbian-Ubuntu(WiFi)

基本上是s905L芯片的刷机都是如此&#xff0c;包括Q7等 在网上寻找好多的教程关于e900v21c的刷机包和教程都少的可怜&#xff0c;唯一的就是这个&#xff1a;山东联通版创维E900V21C盒子刷入Armbiam并安装宝塔和Docker&#xff0c;但他是不能用WiFi和蓝牙的然后就是寻找s90l的…

C++基础了解-01-基础语法

基础语法 一、基础语法 C 程序可以定义为对象的集合&#xff0c;这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象&#xff0c;方法、即时变量。 对象 - 对象具有状态和行为。例如&#xff1a;一只狗的状态 - 颜色、名称、品种&#xff0c;行为 -…