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

2024-01-05 22:52

本文主要是介绍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演示双视图立体匹配与重建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574410

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

Golang GUI入门——andlabs ui

官方不提供gui标准库,只好寻求第三方库。 https://github.com/google/gxui 这个gui库是谷歌内部人员提供的,并不是谷歌官方出品,现在停止维护,只好作罢。 第三方gui库 找了好多,也比较了好多,最终决定使用的是还是 https://github.com/andlabs/ui 相信golang gui还会发展的更好,期待更优秀的gui库 由于andlabs

Collection的所有的方法演示

import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class TestCollection {/*** @param args* Collection的所有的方法演示* 此程序没有使用泛型,所以可以添加任意类型* 以后如果写到泛型会补充这一方面的内容*/public s

类和对象的定义和调用演示(C++)

我习惯把类的定义放在头文件中 Student.h #define _CRT_SECURE_NO_WARNINGS#include <string>using namespace std;class student{public:char m_name[25];int m_age;int m_score;char* get_name(){return m_name;}int set_name

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

架构全景视图

文章目录 一、战略规划二、业务架构Business Architecture2.1业务架构定义2.2 业务架构组成2.3 TOGAF2.3.1 Archimate建模(重要) 三、数据架构Data Architecture3.1 数据架构定义3.2 数据架构组成 四、应用架构Application Architecture4.1 应用架构定义4.2 应用架构组成 五、技术架构Technol

2409wtl,切换视图

原文 介绍 我从一个基于SDI(单文档接口)WTL向导的应用开始,添加了一些从控件继承的窗口和一些对话框窗口(表单视图),然后才发现我必须,使SDI框架动态加载和卸载子窗口. 本文演示了两个可用来完成的技术:在SDI应用中的视图间动态切换.这是我使用的两个. 技术 1技术:第一个方法涉及按需析构和重建视图实例.这更简单,且在不介意析构和重建窗口对象时效果很好. 2:按需创建视图,然后用

移动UI:分类列表页、筛选页的设计揭秘。

移动UI的列表页设计需要考虑用户体验和界面美观性,以下是一些建议的设计要点: 1. 列表项的展示: 列表页应该清晰地展示各个列表项,包括标题、副标题、缩略图等内容,以便用户快速浏览和识别。可以使用卡片式布局或者简洁的列表布局。 2. 搜索和筛选: 如果列表项较多,应该提供搜索和筛选功能,方便用户查找感兴趣的内容。搜索框和筛选条件可以放置在页面顶部或者底部,以便用户方便操作。