首页 > 编程语言 >分别使用SAD匹配,NCC匹配,SSD匹配三种算法提取双目图像的深度信息

分别使用SAD匹配,NCC匹配,SSD匹配三种算法提取双目图像的深度信息

时间:2023-05-01 23:55:16浏览次数:44  
标签:dispRange end win SAD 算法 0.0 匹配 NCC

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

 

2.算法涉及理论知识概要

       深度学习的蓬勃发展得益于大规模有标注的数据驱动,有监督学习(supervised learning)推动深度模型向着性能越来越高的方向发展。但是,大量的标注数据往往需要付出巨大的人力成本,越来越多的研究开始关注如何在不获取数据标签的条件下提升模型的性能,也就是自监督学习(self-supervised learning)/无监督学习(unsupervised learning)。

 

       对于立体匹配(stereo matching),或者双目深度估计,像LiDAR这样的设备是极其笨重且昂贵的,它所能收集的只是稀疏的深度信息,而我们需要的是密集的深度图(dense depth map);而基于结构光的设备往往只能在室内场景下进行深度信息标注,在室外场景下难以达到较高的标注质量。因此,自监督学习在立体匹配中得到越来越多的关注。本文主要梳理了近年来自监督学习在深度立体匹配中的应用方法,希望和大家一起探讨学习。

 

        常用的基于区域的局部匹配准则主要有图像序列中对应像素差的绝对值(SAD, Sum of Absolute Differences),图像序列中对应像素差的平方和(SSD, Sum of Squared Differences),图像的相关性(NCC, Normalized Cross Correlation)等.

 

     绝对误差和算法(Sum of Absolute Differences,简称SAD算法)。实际上,SAD算法与MAD算法思想几乎是完全一致,只是其相似度测量公式有一点改动(计算的是子图与模板图的L1距离),这里不再赘述。

 

 

 

3.MATLAB核心程序

 

win=(windowSize-1)/2;
%NCC
for(i=1+win:1:wL-win)
    for(j=1+win:1:hL-win-dispMax)
        preNCC = 0.0;
        OptimalDisp = dispMin;
        for(dispRange=dispMin:1:dispMax)
            curNCC=0.0; NCCNumerator=0.0; NCCDenominator=0.0; NCCDenominatorRightWindow=0.0; NCCDenominatorLeftWindow=0.0;
            for(x=-win:1:win)
                for(y=-win:1:win)
                   NCCNumerator=NCCNumerator+(imR(i+x,j+y)*imL(i+x,j+y+dispRange));
                   NCCDenominatorRightWindow=NCCDenominatorRightWindow+(imR(i+x,j+y)*imR(i+x,j+y));
                   NCCDenominatorLeftWindow=NCCDenominatorLeftWindow+(imL(i+x,j+y+dispRange)*imL(i+x,j+y+dispRange));
                end
            end
            NCCDenominator=sqrt(NCCDenominatorRightWindow*NCCDenominatorLeftWindow);
            curNCC=NCCNumerator/NCCDenominator;
            if (preNCC < curNCC)
                preNCC = curNCC;
                OptimalDisp = dispRange;
            end
        end
        dispMap_NCC(i,j) = OptimalDisp;
    end
end

 

  

 

标签:dispRange,end,win,SAD,算法,0.0,匹配,NCC
From: https://www.cnblogs.com/51matlab/p/17367215.html

相关文章

  • 括号匹配序列计数问题
    题意一个长度为\(n\)且符合规范的括号序列,其有些位置已经确定了,有些位置尚未确定,求这样的括号序列一共有多少个。要求复杂度为\(O(n^3)\)分析由题意可知,我们可以这样定义括号匹配序列:空序列是括号匹配序列。如果S是括号匹配序列,那么\((S)\)也是括号匹配序列。如果......
  • 输入阻抗、输出阻抗和阻抗匹配
    来自《实用电子元器件与电路基础》输入阻抗$Z_{in}$$Z_{in}$是从电路或设备输入端“看”进去的阻抗,可以借此算出流入设备输入端的电流大小复杂电路包含电容、电感等电抗元件,使得输入阻抗是频率的函数→在特定频率,输入阻抗允许小电流流入;在其他频率,对电流呈现很高的阻抗故<1k......
  • 接口OSPF network-type不匹配导致主备倒换后远程无法访问路由器
    #新人福利#问题描述某省广域网口字型组网架构,IGP路由协议采用OSPF协议,业务正常时,远程可以通过主平面上联链路访问主平面路由器,当主平面上联链路故障时,远程应该可以通过备平面与主平面的横连链路访问主设备路由器。某次市广域主备倒换测试时,主平面路由器上联口down后,发现R10远程无法......
  • Problem J: 括号匹配问题
    ProblemDescription在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用......
  • Rust -- 模式与匹配
    1.模式用来匹配类型中的结构(数据的形状),结合模式和match表达式提供程序控制流的支配权模式组成内容字面量解构的数组、枚举、结构体、元祖变量通配符占位符流程:匹配值-->是否拥有正确的数据-->运行特定的代码2.使用模式的位置match分支:由match关键字、......
  • poj 2584 T-Shirt Gumbo 二分匹配
    T-ShirtGumboTimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 2935 Accepted: 1376DescriptionBoudreauxandThibodeauxarestudentvolunteersforthisyear'sACMSouthCentralRegion'sprogrammingcontest.Oneoftheirdutiesis......
  • 基于ICP配准算法的三维点云数据的匹配仿真
    1.算法仿真效果matlab2022a仿真结果如下:       2.算法涉及理论知识概要       ICP算法能够使不同的坐标下的点云数据合并到同一个坐标系统中,首先是找到一个可用的变换,配准操作实际是要找到从坐标系1到坐标系2的一个刚性变换。ICP算法本质上是基于最小......
  • PCRE库某种情况下如果匹配慢
    如果被匹配的内容超过几十兆字节,pcre2_match()中的倒数第三个参数选用:0 ,就会很慢,如果匹配次数多,就会非常慢。我用一个20兆的文件,匹配90000多个电话号,一天时间都没有匹配结束。但是这个参数如果用了  PCRE2_NO_UTF_CHECK  ,秒完......
  • Rust语言 学习17 模式匹配
    一、模式基本概念二、模式可辩驳性三、模式语法......
  • bat脚本动态匹配adb devices返回的设备ID
    在windows环境下新建一个bat脚本,填入以下内容@echooffechosendcommand:adbdevicesadbdevicesfor/f%%iin('adbdevices')do(sets=%%i)echocurrentdeviceis%s%pause打印结果如下:sendcommand:adbdevicesListofdevicesattachedAE6PWS49NFMB798H......