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

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

1.算法仿真效果
matlab2022a仿真结果如下:
fb740eecf5a191228a7b35cca2f5cb8f_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
8b94ca4ea128951299cfdefc9f00a700_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
fb1ec5abcd76b441f4d9a07389c3e329_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
image.png

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距离),这里不再赘述。

c06a406e7cefb81495b9c9c651c0d424_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

%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
相关文章
|
2月前
|
机器学习/深度学习 算法 数据库
KNN和SVM实现对LFW人像图像数据集的分类应用
KNN和SVM实现对LFW人像图像数据集的分类应用
36 0
|
9天前
|
编解码 监控 算法
图像和视频处理中DSP算法的研究与发展
图像和视频处理中DSP算法的研究与发展
18 2
|
4天前
|
算法 数据安全/隐私保护 计算机视觉
基于DCT变换的彩色图像双重水印嵌入和提取算法matlab仿真
**算法摘要:** - 图形展示:展示灰度与彩色图像水印应用,主辅水印嵌入。 - 软件环境:MATLAB 2022a。 - 算法原理:双重水印,转换至YCbCr/YIQ,仅影响亮度;图像分割为M×N块,DCT变换后嵌入水印。 - 流程概览:两步水印嵌入,每步对应不同图示表示。 - 核心代码未提供。
|
5天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到&quot;result.txt&quot;以供MATLAB显示图像分割效果。
|
7天前
|
算法 数据安全/隐私保护 数据格式
基于混沌序列的图像加解密算法matlab仿真,并输出加解密之后的直方图
该内容是一个关于混沌系统理论及其在图像加解密算法中的应用摘要。介绍了使用matlab2022a运行的算法,重点阐述了混沌系统的特性,如确定性、非线性、初值敏感性等,并以Logistic映射为例展示混沌序列生成。图像加解密流程包括预处理、混沌序列生成、数据混淆和扩散,以及密钥管理。提供了部分核心程序,涉及混沌序列用于图像像素的混淆和扩散过程,通过位操作实现加密。
|
17天前
|
机器学习/深度学习 文字识别 算法
MATLAB图像倾斜校正算法实现:图像倾斜角检测及校正
MATLAB图像倾斜校正算法实现:图像倾斜角检测及校正
11 0
|
18天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
22 0
|
2月前
|
存储 算法 算法框架/工具
基于HSV色度空间的图像深度信息提取算法FPGA实现,包含testbench和MATLAB辅助验证程序
该文档介绍了在一个FPGA项目中使用HSV色彩模型提取图像深度信息的过程。通过将RGB图像转换为HSV,然后利用明度与深度的非线性映射估计深度。软件版本为Vivado 2019.2和MATLAB 2022a。算法在MATLAB中进行了对比测试,并在FPGA上实现了优化,包括流水线并行处理和查找表技术。提供的Verilog代码段展示了RGB到灰度的转换。实验结果和核心程序的图片未显示。
|
2月前
|
机器学习/深度学习 算法 计算机视觉
利用深度学习算法实现图像风格转换技术探究
本文将通过深入分析深度学习算法在图像处理领域的应用,探讨如何利用神经网络实现图像风格转换技术。通过研究不同风格迁移算法的原理和实现方式,揭示其在艺术创作、图像编辑等领域的潜在应用和挑战。
|
2月前
|
编解码 算法 计算机视觉
基于FPGA的图像最近邻插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像最近邻插值算法verilog实现,包括tb测试文件和MATLAB辅助验证