当前位置: 首页 > news >正文

UI演示双视图立体匹配与重建

相关文章:

  • PyQt5和Qt designer的详细安装教程:https://blog.csdn.net/qq_43811536/article/details/135185233?spm=1001.2014.3001.5501
  • Qt designer界面和所有组件功能的详细介绍:https://blog.csdn.net/qq_43811536/article/details/135186862?spm=1001.2014.3001.5501
  • Qt designer设计UI实例:双视图立体匹配与重建的可视化UI:https://blog.csdn.net/qq_43811536/article/details/135198820?spm=1001.2014.3001.5501
  • 基于PyQt5自定义UI的详细教程:https://blog.csdn.net/qq_43811536/article/details/135284469?spm=1001.2014.3001.5501

目录

  • 1. 实例:双视图立体匹配与重建的可视化UI
  • 2. 实现描述
    • 2.1 算法简介
    • 2.2 用户界面
    • 2.3 功能流程
  • 3. 实验结果
    • 3.1 运行结果展示
    • 3.2 算法性能对比
  • 4. 源代码
  • 5. 附录


1. 实例:双视图立体匹配与重建的可视化UI

  • 输入:一对左右眼视图的图像。
  • 任务:对输入的一对带相机参数的左右眼图像数据,实现SAD、NCC 两种局部的立体匹配方法进行重建。
  • 输出
    • 基本的交互界面供用户选择立体匹配算法以及输入的图片。
    • 将每种立体匹配方法所用的时间以及图片大小信息显示出来。
    • 可视化重建的结果,如点云,深度图,视差图等,可以使用Meshlab 软件
      或者Open3D 进行可视化

2. 实现描述

2.1 算法简介

本项目旨在通过双视图立体匹配技术实现三维场景重建。输入为一对左右眼视图的图像,输出为三维重建的深度图可视化结果。本报告通过实现 WTA(Winner-Take-All)和 SGM(Semi-Global Matching)匹配算法,结合 SAD(Sum of Absolute Differences)、SSD(Sum of Squared Differences)和 NCC(Normalized Cross-Correlation)三种成本函数,提供了一个用于立体图像匹配和深度图重建的较为完整的解决方案。

  • 匹配算法:

    • WTA:一种简单但有效的匹配策略,选择具有最低成本的匹配作为最终结果。
    • SGM:一种更复杂的方法,通过考虑图像中的邻近像素来优化匹配过程。
  • 成本计算:

    • SAD:计算两个窗口中对应像素差的绝对值之和。
    • SSD:计算两个窗口中对应像素差的平方和。
    • NCC:衡量两个窗口的相似性。

2.2 用户界面

基于上一小节具体的算法实现,本报告使用Qt Designer 设计了一个可供用户交互的界面,详情参考Qt designer设计UI实例:双视图立体匹配与重建的可视化UI。界面包含图片选择(Picture)、匹配算法选择(Matching algorithm)、成本函数选择(Matching cost)、运行按钮(Run)、图片显示窗口(Picture visualization)、结果显示窗口(Results display)和输出信息窗口(Output information)。然后使用 PyQt5 实现界面的初始化和槽函数自定义,详情参考基于PyQt5自定义UI的详细教程。

2.3 功能流程

  • 用户选择双视图:本报告提供了5对双视图,分别为“Adirondack”、“cones”、“bow-ling”、“artroom1”和“chess1” 1,其中前两对双视图提供深度图的ground truth(灰度图)以及masked image(用于排除遮挡区域的掩码图),最后两对提供左右视图的彩色深度图的ground truth但缺少masked image,中间的“bowling”仅有左右视图。在用户选择好图片之后,被选择的图片会实时绘制在Picture visualization窗口中,根据可视化结果用户可以决定是否更改图片选择。
  • 选择匹配参数:我们的界面相对简陋,目前只提供两种匹配算法WTA和SGM,以及三种成本SAD、SSD和NCC。有关算法的细节比如max_disparity(要考虑的最大差距)、filter_radius(滤波器半径)以及accx_threshold(计算重建精度Acc时的阈值差)等参数未提供接口,默认使用实验过程确定好的参数。
  • 运行:用户点击“RUN”按钮开始匹配和重建过程。这部分可能需要等候一段时间。
  • 结果显示:在Results display窗口输出深度图,同时Output information窗口显示运行日志、用时、图片大小和重建精度(如果存在ground truth)等信息。所有结果都保存在“./results”中。

3. 实验结果

3.1 运行结果展示

以图片“Adirondack”为例,下图展示了该图片在使用SGM和NCC算法时的重建结果以及运行过程中的用户界面。其中运行时长为21.565s,重建精度为0.929。

在这里插入图片描述

3.2 算法性能对比

我们以双视图“Adirondack”和“cones”为例,分别对两种匹配算法和三种成本算法进行重建性能和用时对比。“bowling”的重建结果见附录图。

下面两幅图分别呈现两个双视图在不同匹配和成本算法下的深度图结果,两个表格分别罗列重建性能和用时的量化结果。

  • 在两个不同的场景下,全局匹配算法SGM的性能都是要显著优于WTA的,但由于算法的复杂性相应的用时也会成倍增长。这主要是因为SGM通过考虑像素间的连续性和平滑性,减少了匹配错误,同时它的算法结构使其对图像噪声和纹理不均匀区域更具鲁棒性,在处理复杂场景(如遮挡、重复纹理等)时表现更优。但SGM 的计算复杂度高于 WTA,因此在计算资源受限的环境中可能不太适用。
  • 成本算法NCC相比其他两种成本性能提升显著。这主要是以为NCC对光照变化和图像强度缩放具有较好的鲁棒性。它通过归一化操作减少了这些因素的影响。在光照变化显著的环境下,NCC 往往能提供比 SAD 和 SSD 更准确的匹配结果,比如“Adirondack_SGM_NCC”性能最优。但NCC 的计算相对复杂,可能不适合对实时性要求较高的应用。而SSD 对差异较大的像素施加更强的惩罚,有助于准确匹配高对比度的特征,比如“cones_SGM_SSD”性能最优。

图1

图1

请添加图片描述

图2

在这里插入图片描述


4. 源代码

源代码可以从GitHub链接获取:https://github.com/Jurio0304/Two-view_Stereo_Matching_and_Reconstruction

创作不易,参考的话球球给个star…


5. 附录

请添加图片描述


创作不易,麻烦点点赞和关注咯!

  1. Scharstein D, Hirschmüller H, Kitajima Y, et al. High-Resolution Stereo Datasets with Subpixel-Accurate Ground Truth. In: Pattern Recognition. Ed. by Jiang X, Hornegger
    J, and Koch R. Cham: Springer International Publishing, 2014:31–42. ↩︎

相关文章:

UI演示双视图立体匹配与重建

相关文章: PyQt5和Qt designer的详细安装教程:https://blog.csdn.net/qq_43811536/article/details/135185233?spm1001.2014.3001.5501Qt designer界面和所有组件功能的详细介绍:https://blog.csdn.net/qq_43811536/article/details/1351868…...

添加一个编辑的小功能(PHP的Laravel)

一个编辑的按钮可以弹出会话框修改断更天数 前台 加一个编辑按钮的样式,他的名字是固定好的 之前有人封装过直接用就好,但是一定放在class里面,不要放在id里面 看见不认识的方法一定要去看里面封装的是什么 之前就是没有看,所以…...

YOLOv8改进 | 主干篇 | ConvNeXtV2全卷积掩码自编码器网络

一、本文介绍 本文给大家带来的改进机制是ConvNeXtV2网络,ConvNeXt V2是一种新型的卷积神经网络架构,它融合了自监督学习技术和架构改进,特别是加入了全卷积掩码自编码器框架和全局响应归一化(GRN)层。我将其替换YOLOv8的特征提取网络,用于提取更有用的特征。经过我的实…...

elasticsearch7.17.9两节点集群改为单节点

需求 将数据从node-23-1节点中迁移到node-83-1节点。但是现在node-83-1并没有加入到集群中,因此首先将node-83-1加入到node-23-1的集群 解决方案 使用ES版本为7.17.9,最开始设置集群为一个节点,node-23-1的配置如下 cluster.name: my-app…...

二叉树的层序遍历,力扣

目录 题目地址: 题目: 我们直接看题解吧: 解题方法: 方法分析: 解题分析: 解题思路: 代码实现: 代码补充说明: 题目地址: 102. 二叉树的层序遍历 - 力扣&…...

构建Dockerfile报错/bin/sh: 1: cd: can‘t cd to /xxx/yyy问题记录

目录 关键的命令行 排查分析 原因 附:Dockerfile构建时打印命令输出的办法 关键的命令行 WORKDIR /app COPY record . RUN cd record && xxx 执行到RUN时报了错: /bin/sh: 1: cd: cant cd to /app/record 并且宿主机当前目录也准备好了re…...

Vue常用的修饰符详解(有哪些,怎么用)

文章目录 一、修饰符是什么二、修饰符的作用1.表单修饰符lazytrimnumber 2.事件修饰符stoppreventselfoncecapturepassivenative 3.鼠标按钮修饰符4.键盘修饰符5.v-bind修饰符asyncpropscamel 三、应用场景参考文献 一、修饰符是什么 在程序世界里,修饰符是用于限定…...

Linux C/C++ 获取CPUID

实现方式: INTEL CC 格式 AT^T CC 格式 GCC/C库 __cpuid 宏 大致讲义: AT^T 格式汇编很反人类,GCC可以改编译器选项为INTEL内嵌汇编,但一般在GCC还是按照默认的AT^T汇编来拽写把,不想用也可以让AI工具把INTEL内嵌…...

2023年“中银杯”安徽省网络安全B模块(部分解析)

前言 以下是2023年中银杯安徽省网络安全B模块题目,镜像可以私聊我 B模块安全事件响应/网络安全数据取证/应用安全(400 分) B-1:CMS网站渗透测试 任务环境说明: √服务器场景:Server2206(关…...

194.【2023年华为OD机试真题(C卷)】单行道汽车通行时间(迭代计算—JavaPythonC++JS实现)

请到本专栏顶置查阅最新的华为OD机试宝典 点击跳转到本专栏-算法之翼:华为OD机试 🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握! 文章目录 【2023年华为OD机试真题(C卷)】单行道汽车通行时间(…...

第二证券机构策略:股指预计维持蓄势震荡格局 关注煤炭、电力等板块

第二证券以为,技能面看,在元旦节前资金抄底推进指数收回2900整数关口,并向着3000点渠道压力前进。沪指在底部均线位支撑摆放较强,调整空间估计不大,在3000点渠道下方调整就是再次优化低吸的时机。操作上,在…...

Go 泛型之泛型约束

Go 泛型之泛型约束 文章目录 Go 泛型之泛型约束一、引入二、最宽松的约束:any三、支持比较操作的内置约束:comparable四、自定义约束五、类型集合(type set)六、简化版的约束形式七、约束的类型推断八、小结 一、引入 虽然泛型是…...

【数据仓库与联机分析处理】数据仓库

目录 一、数据仓库的概念 二、数据仓库与操作性数据库的区别 三、发展前期 四、数据仓库的系统结构 五、建模划分 六、主要案例 一、数据仓库的概念 目前很难给数据仓库(Data Warehouse)一个严格的定义,不准确地说,数据仓库…...

机器学习:贝叶斯估计在新闻分类任务中的应用

文章摘要 随着互联网的普及和发展,大量的新闻信息涌入我们的生活。然而,这些新闻信息的质量参差不齐,有些甚至包含虚假或误导性的内容。因此,对新闻进行有效的分类和筛选,以便用户能够快速获取真实、有价值的信息&…...

[C#]基于deskew算法实现图像文本倾斜校正

【算法介绍】 让我们开始讨论Deskeweing算法的一般概念。我们的主要目标是将旋转的图像分成文本块,并确定它们的角度。为了让您详细了解我将使用的方法: 照常-将图像转换为灰度。应用轻微的模糊以减少图像中的噪点。现在,我们的目标是找到带…...

Qt通过pos()获取坐标信息

背景:这是一个QWidget窗体,里面是各种布局的组合,一层套一层。 我希望得到绿色部分的坐标信息(x,y) QPoint get_pos(QWidget* w, QWidget* parent) {if ((QWidget*)w->parent() parent) {return w->pos();}else {QPoint pos(w->po…...

【Webpack】资源输入输出 - 配置资源出口

所有与出口相关的配置都集中在 output对象里 output对象里可以包含数十个配置项,这里介绍几个常用的 filename 顾名思义,filename的作用是控制输出资源的文件名,其形式为字符串,如: module.exports {entry: ./src/a…...

【XR806开发板试用】XR806串口驱动CM32M对小厨宝的控制实验

一.说明 非常感谢基于安谋科技STAR-MC1的全志XR806 Wi-FiBLE开源鸿蒙开发板试用活动,并获得开发板试用。 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持OpenHarmony minisystem和FreeRTOS,具有集成度高、…...

中介者模式-Mediator Pattern-1

如果在一个系统中对象之间的联系呈现为网状结构, 对象之间存在大量的多对多联系,将导致系统非常复杂。 这些对象既会影响别的对象,也会被别的对象所影响。 这些对象称为同事对象,它们之间通过彼此的相互作用实现系统的行为。 在网…...

ASP.NET Core基础之图片文件(一)-WebApi图片文件上传到文件夹

阅读本文你的收获: 了解WebApi项目保存上传图片的三种方式学习在WebApi项目中如何上传图片到指定文件夹中 在ASP.NET Core基础之图片文件(一)-WebApi访问静态图片文章中,学习了如何获取WebApi中的静态图片,本文继续分享如何上传图片。 那么…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

深度学习水论文:mamba+图像增强

🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...