《Stereo Matching by Training a Convolutional Neural Network to Compare Image Patches》-程序员宅基地

技术标签: 基于深度学习的深度估计  MC-CNN  

这篇文章是《Computing the Stereo Matching Cost with a Convolutional Neural Network》的扩展。

1. 研究问题

使用CNN来计算立体匹配代价。

2. 研究方法

MC-CNN通过使用卷积神经网络在小图像块上学习相似性度量来计算匹配代价。通过相似和不相似的图像块(Patches)构建二元分类数据集,以有监督的方式进行训练。为此提出了两种架构:一种针对速度进行调整,另一种针对精度进行调整。MC-CNN的输出用于初始化立体匹配代价,然后采用基于交叉的代价聚合,半全局匹配进行代价细化,最后采用左右一致性检测,亚像素增强,中值滤波和双边滤波进行视差细化。

2.1 Matching Cost

2.1.1 Constructing the Data Set

在这里插入图片描述

2.1.2 Network Architectures

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

2.1.3 Computing the Matching Cost

负号将相似性分数转换为匹配代价。
在这里插入图片描述

当网络训练完毕后,输入一对patches,输出即为两个patch的相似性分数。要遍历立体图像的所有像素的整个视差范围,会导致计算量很大,因此,文章也提出了减小计算量的方法:

  1. 孪生网络可以对每个像素只计算一次,避免遍历不同视差时的重复计算。
  2. 输入整幅图像对而不是patches,这样可以一次性的计算整个立体图像对的特征空间,而不用进行 W*H 前馈的patches特征的计算。注意:训练的时候还是采用patches输入,因为这样可以很方便的完成样本随机排序,控制每个批量中正例数量等于负例数量,以及控制每个批量中的patches可以来自不同的图像;但在推理时使用整幅图像输入,以加快计算速度。
  3. 将所有全连接层都改为1*1 的卷积层,这样就可以经过一次前馈,而完成整张图像的一个视差值的代价计算,遍历所有的视差值(可以通过将右图特征右移遍历其他的视差值)。因此,整个CNN计算代价的计算瓶颈就是视差搜索范围D。

2.2 Stereo Method

2.2.1 Cross-based Cost Aggregation

2.2.2 Semiglobal Matching

2.3 Computing the Disparity Image

以上这几部分可以查看《Computing the Stereo Matching Cost with a Convolutional Neural Network》

3. 实验结果

3.1 Results

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

3.2 Details of Learning

使用灰度图像作为输入,训练时输入patches,推理时输入整张图像。

在这里插入图片描述

3.3 Data Set Augmentation

在这里插入图片描述

3.4 Runtime

在这里插入图片描述

3.5 Matching Cost

在这里插入图片描述

3.6 Data Set Size

在这里插入图片描述

3.7 Hyperparameters

在这里插入图片描述

4. 结论

(1)准确架构在KITTI 2012, KITTI 2015, and Middlebury测试集上都获得当时的第一。
(2)快速架构比准确架构快90倍,但仅仅损失少量精度。
(3)CNN可应用于实时视差估计中的匹配代价计算。

这篇作为《Computing the Stereo Matching Cost with a Convolutional Neural Network》的扩展,其实是提出了一个快速架构,可以实现将近实时的视差估计的效果。

5. 局限性

有限的接受域和复杂的正则化函数。

6. 启发

相比于手工制作的特征,通过卷积和池化可以提取全局上下文,而不仅仅是局部特征。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42676511/article/details/121444558

智能推荐

Antd Table组件表头不对齐解决方案_antd table 表头错位-程序员宅基地

文章浏览阅读9.8k次,点赞3次,收藏7次。Antd Table组件表头不对齐解决方案背景:在使用Antd的table组件时,由于表头参数过多,于是设置了scroll属性,在其超出一定宽度后进行滚动但是在添加了该属性之后,经常会出现表头不对齐的问题:针对该问题Google 了一下解决方案,但大多不是很完善,为解决问题。现整理下完整的解决方案:1、对表格的每一行 【columns】设置width属性(留出一行进行宽度自适应);..._antd table 表头错位

javascript笔记:推荐使用“百度统计”并且拷贝百度统计的前端框架-程序员宅基地

文章浏览阅读100次。  本篇博文讲两件事情,一个是推荐在博客园经常写博客的童鞋们一个很棒的工具--“百度统计”,另一个是“拷贝百度统计”的页面框架。  首先讲第一个事情,我的博客里有不少文章都是讲“用户行为分析”的,虽然现在不做这个方向的项目,但是对它的兴趣不减,所以我今天在自己博客里部署了百度的用户行为分析系统“百度统计”的采集脚本,感受的确是很棒,使用了百度统计后我发现我更能和看过我博客的童鞋们进行互动了。..._nav-more__hover

eclipse CXF +Spring 开发 WebService_eclipse10.5开发cxf与spring整合调用webservice-程序员宅基地

文章浏览阅读1.7k次。Java WebService运行环境eclipseJDK 1.8Tomcat 7.0cxf 3.2.1CXF下载http://download.csdn.net/download/yioow/10147610(cxf 3.2.1) http://cxf.apache.org/download.html(官方)1.新建Dynamic Web..._eclipse10.5开发cxf与spring整合调用webservice

东北大学研究生:用强化学习玩Chrome里的恐龙小游戏-程序员宅基地

文章浏览阅读3.9k次,点赞6次,收藏23次。
 

 

 
 
 【人工智能头条导读】Chrome 浏览器里面有一个小彩蛋,当你没有网络时,打开任意的 URL 都..._恐龙游戏强化学习

树莓派安装OpenCV_树莓派numpy1.19.5对应的opencv-程序员宅基地

文章浏览阅读1.9k次。ImportError: numpy.core.multiarray failed to importmportError: libcblas.so.3: cannot open shared object file: No such file or directory_树莓派numpy1.19.5对应的opencv

Tomcat安装以及配置-程序员宅基地

文章浏览阅读296次。一:查看自己电脑操作系统位数在’我的电脑’点击右键打开属性,查找自己电脑的操作系统属性二:下载Tomcat官网:Tomcat下载点击自己需要的版本选择自己电脑操作系统对应的版本,Windows64位建议下载我中的第三个下载解压后得到对应的文件(笔者修改了文件名,大家可以根据需要修改)三:配置环境变量首先点击电脑属性,找到高级系统设置然后找到环境变量,并进入点击新建在变量名中填写:CATALINA_HOME(不要留空格),然后点击浏览目录,找到自己Tomcat的解压目录,

随便推点

Python3 压缩与解压缩(zlib / gzip / bz2 / lzma / zipfile / tarfile)_zlib解压 python3-程序员宅基地

文章浏览阅读6.8k次,点赞2次,收藏13次。Python3 压缩与解压缩(zlib / gzip / bz2 / lzma / zipfile / tarfile)文件的归档 (各种格式的压缩 / 解压缩)实际使用中仅需要使用shutil模块的压缩和解压函数就可以了, 如果想尝试其他功能, zipfile(暴力破解), tarfile(命令行)也是值得推荐的_zlib解压 python3

Tomcat环境变量配置_# tomcat environment-程序员宅基地

文章浏览阅读215次。计算机——属性——高级系统设置——环境变量——系统变量添加CATALINA_HOME变量,值就是Tomcat的根目录_# tomcat environment

增量和非增量的集成测试_非增量集成测试的关键模板是什么-程序员宅基地

文章浏览阅读299次。_非增量集成测试的关键模板是什么

HTML--BOM window对象(实例:放大镜)_html 里面 bom案例-程序员宅基地

文章浏览阅读3.9k次。目录简介:1、BOM结构2、window对象3、location对象4、history对象5、navigator对象6、screen对象BOM 定时器1、定时器方法放大镜简介:BOM即浏览器对象模型(Browser Object Model),它提供了页面与浏览器窗口进行交互的对象接口。BOM由一系列的相关对象组成,window作为BOM的顶层对象,所有其他全局对象都是window的子对象,甚至DOM也是其子对象之一。学会了window对象及其子对象的常用_html 里面 bom案例

python中popen的用法_python中的subprocess.Popen()使用-程序员宅基地

文章浏览阅读564次。从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。subprocess意在替代其他几个老的模块或者函数,比如:os.system os.spawn* os.popen* popen2.* commands.*一、subprocess.Popensubprocess模块定义了一个类: Popenclass..._python中popen的用法

Bootstrap 做网页需要布局,轮播图,缩略图,表格,表单等元素。_spicefood主页布局-程序员宅基地

文章浏览阅读1.1k次。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>响应._spicefood主页布局

推荐文章

热门文章

相关标签