Cross-Scale Cost Aggregation for Stereo Matching

摘要:

人类处理立体通信跨越多个尺度。然而,这种生物灵感就是忽略了最先进的成本汇总方法密集的立体声通信。在本文中,一个通用的提出跨规模成本汇总框架允许成本汇总中的多尺度互动。我们首先从统一优化中重新构建成本汇总透视和显示不同的成本汇总方法在相似性内核的选择上基本不同。然后,引入一个跨规模的正则化器进行优化并解决这个新的优化问题导致了提出框架。由于正则化术语是独立的的相似内核,各种成本聚合方法可以纳入拟议的总体框架。我们表明跨规模框架很重要因为它有效和高效地扩展了最先进的成本聚合方法并导致显着改善,在Middlebury,KITTI和新筑城进行评估数据集。

1.介绍:
    两个图像之间密集的对应关系是关键计算机视觉中的问题[12]。添加约束这两个图像是相同场景的立体声对密集的通信问题退化为立体声匹配问题[23]。一种立体匹配算法需要四个步骤:成本计算,成本聚合,视差计算和视差改进[23]。在成本计算中,3D成本量(也称为作为视差空间图像[23])通过计算生成在所有可能的水平视差,每个像素的匹配成本。在成本汇总中,成本被汇总,执行分布不均匀,超过支持区域每个像素。然后,计算每个像素的视差局部或全局优化方法,并通过变量进行细化成本汇总不同尺度的成本计算在后两步分别通过各种后处理方法完善。在这些步骤中,成本汇总的质量对立体声算法的成功有重要的影响。它是最先进的局部算法的关键因素[36,21,33,16]和一些主要的建筑模型全局算法[34,31]。 所以在这个文章,我们主要集中在成本汇总上。

大多数成本聚合方法可以看作是联合的过滤成本量[21]。其实呢,甚至很简单线性图像滤波器如框或高斯滤波器可以
用于成本聚合,但作为各向同性扩散滤波器,它们倾向于模糊深度边界[23]。因此,一个数字的边缘保留过滤器,
如双边过滤器[28]和
1引导图像滤波器[7]被引入成本聚合。Yoon和Kweon [36]采用双边过滤器成本聚合,产生了吸引人的差异图在Middlebury数据集[23]
但是,他们的方法是计算上昂贵,因为大的核大小(例如,35×35)通常用于高视差精度。解决双边的计算限制

过滤器,Rhemann等人[21]介绍了导向图像过滤成为成本聚合,其计算复杂度独立于内核大小。最近,杨[33]
提出了一种非本地成本汇总方法内核大小到整个图像。通过计算在图像图上的最小生成树(MST),可以非常快地执行非本地成本聚合。
Mei等[16]遵循非本地成本汇总思想并表明通过强制使用差距一致性分段树代替MST,更好的差距图可以比
[33]。

所有这些最先进的成本汇总方法为立体视觉做出了巨大贡献。 一个共同的财产这些方法的成本是在
最佳尺寸的输入立体图像。 然而,人类一般处理立体对应关系多尺度[17,15,14]。 根据[14]的信息
在粗略和细小的尺度上进行交互式处理人体立体视觉系统的对应搜索。因此,从这个生物灵感来看,成本是合理的
应该跨越多个尺度而不是最佳规模,如传统方法(图1)。

在本文中,一般的跨规模成本汇总框架被提出。第一,灵感来自于制定的图像滤波器[18],我们展示了各种成本

聚合方法可以均匀配制为加权最小二乘(WLS)优化问题。然后,从这里统一优化的观点,通过加广义
Tikhonov正则化器进入WLS优化目标,我们强化了成本之间的一致性相邻尺度,即尺度间的一致性。新的优化
规模正规化的目标是凸起的并且可以容易地和分析地解决。作为intrascale成本额的一致性仍然维持常规的成本聚合

方法,其中很多都可以被纳入我们的框架以产生更强大的成本体积和更好的差距图。图1显示
拟议框架的效果。切片的成本卷包括四种代表性的成本汇总方法非局部方法[33](NL),分段树
方法[16](ST),双边滤波法[36](BF)和引导过滤法[21](GF)可视化。我们用红点表示本地获胜者所产生的差异
(WTA)优化在每个成本和绿色点表示地面真相差距。可以发现更加强大的成本和更准确的差距通过采用跨规模的

成本汇总。广泛实验在Middlebury [23],KITTI [4]和New筑波[20]数据集也揭示了更好的差距图可以使用

交叉规模的成本聚合获得。综上所述,本文的贡献有三个方面:

•统一的WLS制定各种成本汇总方法从优化的角度。
•一种新颖有效的跨规模成本汇总框架。
•代表性成本汇总的定量评估三种数据集的方法。

本文的其余部分安排如下。 在第2节,我们总结相关工作。 WLS配方第3节给出了成本汇总
第4节描述了规模间正规化。然后我们详细介绍我们的框架在第5节的实现。最后提出实验结果和分析
第6节和结论性说明在第7节中作了说明。

2.相关工作

   最近的研究[9,29]给出了充分的比较分析各种成本汇总方法。 我们参考读者可以通过这些研究来了解不

同的成本聚合方法,我们将重点关注立体匹配涉及多尺度信息的方法,非常与我们的想法相关,但有很大的差异

  早期的立体视觉研究人员采用粗略 - 精细(CTF)立体匹配策略[15]。差距首先分配了粗略的分辨率,并且分辨率越差被用来减少搜索空间的计算更精细差距。这种CTF(分级)策略已经广泛应用用于全局立体声方法,如动态编程
[30],半全局匹配[25]和信念传播[3,34]为了加速融合避免意外的局部最小值。不仅全局的方法
而且本地方法采用CTF策略。不像全球立体声方法,采用的主要目的本地立体声方法的CTF策略是减​​少
搜索空间[35,11,10]或利用多尺度相关图像表示[26,27]。在那里时是本地CTF方法的一个例外。闵和索恩
[19]通过各向异性扩散模拟了成本汇总并有效地解决了所提出的变分模型多尺度方法他们的模式的动机是
降低与我们非常相似的成本,但是我们的方法执行成本量的规模间一致性通过正规化。

总的来说,大多数CTF方法都有类似的财产。他们明确或隐含地模拟差异演变在尺度空间[27]中的过程,即差异一致性跨越多个尺度 与以前的CTF方法不同,我们的方法模拟了规模空间中成本量的演变,即成本体积的一致性
秤。 从优化角度看,CTF方法缩小解决方案空间,而我们的方法没有改变解决方案空间,但增加了规模间的正则化
进入优化目标。 因此,结合多尺度在正规化之前是我们的方法的独创性。另外值得一提的是本地CTF
方法的效果不如最先进的成本汇总方法[10,11],而我们的方法可以表明,大大提高了成本汇总方法[21,33,16]。






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

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

相关文章

strchr与strstr函数

在C语言中 strchr 和 strstr函数都被包含在<string.h>头文件中&#xff0c;也就是要调用它们时要在程序前面包含<string.h>头文件&#xff0c;也就是写这个语句&#xff1a;#include<string.h> strchr函数原型&#xff1a;char * strchr(char * str, int ch)…

Python-OpenCV设置摄像头分辨率

最近玩OpenCV用到一个双目摄像头&#xff0c;需要调整分辨率为1280480&#xff0c;研究了一下官方API&#xff0c;找到了设置方法&#xff0c;记录一下&#xff0c;以防忘记 import cv2 cap cv2.VideoCapture(0) cap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,1280) ca…

C/C++中字符串与数字相互转换

数字转字符串&#xff1a; 用C的streanstream: #include <sstream> #Include <string> string num2str(double i) { stringstream ss; ss << i; return ss.str(); } 字符串转数字&#xff1a; int str2num(string s) { int num; stringstream ss(s); ss>&…

IplImage* cvmat* mat 释放

IplImage* c_left; cvReleaseImage(&c_left); cvmat* img1r; cvReleaseMat(&img1r); mat img2; img2.release();

C语言fread函数了解

fread()函数---- Reads data from a stream. #include<stdio.h> size_t fread( void *buffer, size_t size, size_t count,FILE *stream ); 从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回count.如果调用成功则实际读取size*count字节 buffer…

Chipscope信号无法找到的解决方案

&#xfeff;为了调试逻辑,现在很少再将FPGA中的信号引出,通过示波器或者逻辑分析仪来观察,更多的是在工程中生成stp或者cdc文件,通过signalTAP或者chipscope这两个工具来调试. 但我们发现,有时候在chipscope中很难找到你预期的信号,这往往是被综合器优化掉了,或者更改了信号名…

关于python 和C++使用cv画矩形并填充颜色同时填充文字

python: font cv2.FONT_HERSHEY_SIMPLEX # 使用默认字体 cv2.rectangle(im, (10, 10), (110, 110), (0, 0, 255), thickness2) # cv2.floodFill() cv2.rectangle(im, (113), int(110)), (int(300), int(135), …

C语言之strstr函数

FROM MSDN && 百科】 原型&#xff1a;char *strstr(const char *str1, const char *str2); #include<string.h> 找出str2字符串在str1字符串中第一次出现的位置&#xff08;不包括str2的串结束符&#xff09;。返回该位置的指针&#xff0c;如找不到&#xff0c…

C语言fwrite函数了解

fwrite()函数----write data to a stream 原型&#xff1a; size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); 注意&#xff1a;这个函数以二进制形式对文件进行操作&#xff0c;不局限于文本文件 demo: [cpp] view plaincopy #include <std…

Python-OpenCV 处理图像(一):基本操作 cv2

0x00. 图片读、写和显示操作 安装好 OpenCV 之后&#xff0c;首先尝试加载一张最简单的图片并显示出来&#xff0c;代码示例&#xff1a; 第一种方式使用cv2.cv的LoadImage、ShowImage和SaveImage函数 import cv2.cv as cv# 读图片 imagecv.LoadImage(img/image.png, cv.CV_LOA…

C语言fscanf函数了解

fscanf函数从一个流中执行格式化输入,fscanf遇到空格和换行时结束&#xff0c;注意空格时也结束。这与fgets有区别&#xff0c;fgets遇到空格不结束。 原型&#xff1a;int fscanf(FILE *stream, char *format,[argument...]); 返回值&#xff1a;返回实际被转换并赋值的输入项…

linux下gcc编译使用opencv的源文件时报错的处理:undefined reference to symbol '_ZNSsD1Ev@@GLIBCXX_3.4'

这阵子用OpenCV的sift做了一下匹配&#xff0c;在使用gcc编译时遇到这样的一个报错 /usr/bin/ld: /tmp/cceCEx1F.o: undefined reference to symbol _ZNSsD1EvGLIBCXX_3.4 //usr/lib/x86_64-linux-gnu/libstdc.so.6: error adding symbols: DSO missing from command linecoll…

C语言fgets函数了解

原型是&#xff1a;char *fgets(char *s, int n, FILE *stream); 从文件指针stream中读取n-1个字符&#xff0c;存到以s为起始地址的空间里&#xff0c;直到读完一行&#xff0c;如果成功则返回s的指针&#xff0c;否则返回NULL。 例如&#xff1a;一个文件是hello,world&…

PCL PCD文件读写

/* 时隔一年&#xff0c;又回来做双目视觉方向&#xff0c;需要重新启航&#xff0c;加油&#xff01;&#xff01;&#xff01; */ #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> int main() { //----------------…

判断两颗棵二叉树是否相等

int CompTree(TreeNode *tree1, TreeNode *tree2) { bool isTree1Null (tree1 NULL); bool isTree2Null (tree2 NULL); //其中一个为NULL,而另一个不为NULL,肯定不相等 if (isTree1Null ! isTree2Null) return 1; //两个都为NULL,一定相等 if (isTree1Null && isTr…

sdut 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历

第一次写BFS的题&#xff0c;从开始一脸懵逼到慢慢分析&#xff0c;期间没有看书没查博客&#xff0c;自己安静的做了四十分钟终于做出来了&#xff0c;满满的成就感&#xff0c;我很水&#xff0c;但是我很努力&#xff0c;Mr杰要努力&#xff01; #include<stdio.h> #i…

最简逆波兰模板

#include<iostream> #include<math.h> using namespace std; double exp() { char a[10]; scanf("%s",a);//注意scanf取入字符串遇到‘\0’停止 switch(a[0]){ case :return exp()exp(); case -:return exp()-exp(); case *:return exp()…

windows 静态IP设置

1.打开cmd&#xff0c;输入ipconfig 记录 IP address 子网掩码 网关 打开 wlan 属性 选中一个网络右键 “属性” 设置 ipv4&#xff0c;选择“使用下面的IP地址” 对应填写 ip地址 子网掩码 网关 tips&#xff1a;DNS建议和网关一样

算术表达式的前缀式、中缀式、后缀式相互转换

中缀表达式&#xff08;中缀记法&#xff09;中缀表达式是一种通用的算术或逻辑公式表示方法&#xff0c;操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易理解与分析中缀表达式&#xff0c;但对计算机来说中缀表达式却是很复杂的&…

sdut 二叉排序树

二叉排序树 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 二叉排序树的定义是&#xff1a;或者是一棵空树&#xff0c;或者是具有下列性质的二叉树&#xff1a; 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点…