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. ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

初识智慧城市

文章目录 智慧家居 智慧社区 智慧交通 智慧医疗 智慧教育 智慧旅游 智慧农业 智慧安防 智慧家居 利用智能语音、智能交互等技术,实现用户对家居系统各设备的远程操控和能控制如开关窗帘(窗户)、操控家用电器和照明系统、打扫卫生等操作。利用计算机视觉等技术,对被照看…

【LangChain】与文档聊天:将OpenAI与LangChain集成的终极指南

欢迎来到人工智能的迷人世界,在那里,人与机器之间的通信越来越模糊。在这篇博客文章中,我们将探索人工智能驱动交互的一个令人兴奋的新前沿:与您的文本文档聊天!借助OpenAI模型和创新的LangChain框架的强大组合&#x…

如何让python在手机上运行,python程序在手机上运行

大家好,给大家分享一下python怎么在手机上运行爱心代码,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 1. 写在前面的话 天天都在PC端运行Python代码的我,今天突然灵光一现,想着是不是能够在移动端运行P…

大语言模型(LLM)框架及微调 (Fine Tuning)

大语言模型(LLM) 技术作为人工智能领域的一项重要创 新在今年引起了广泛的关注。 LLM 是利用深度学习和大数据训练的人工智能系统,专门 设计来理解、生成和回应自然语言。这些模型通过分析大量 的文本数据来学习语言的结构和用法,…

音频、视频插座

音频、视频插座 常用电子元器件类型 DC电源插座 文章目录 音频、视频插座前言一、音频、视频插座二、DC电源插座1. 镀铜锡DC插座2. 镀镍DC插座总结前言 音频和视频插座在设计上具有特定的接口类型和标准,以确保兼容性和信号传输的质量。在选择插座时,需要根据设备的接口类…

Linux内核并发与同步机制解读(arm64)上

关键词 原子操作、自旋锁、信号量、mutex、读写锁、percpu-rwsem 概述 从浅到深,逐步分析各种同步机制的功能。 1、原子操作 解决“读-修改-回写”的完整性,一般用于静态全局变量的保护,静态全局变量的操作过程. 例如,我们写一…

网络交换机端口管理会面临的问题

交换机端口管理是跟踪网络交换机及其端口连接详细信息的过程,在大型网络中,交换机端口管理过程通常使用自动化交换机端口管理工具执行。 通过网络交换机端口提供的完全控制和可见性使交换机端口管理工具在管理网络时必不可少,在网络中部署交…

javaWeb学生信息管理系统2

一、学生信息管理系统SIMS 一款基于纯Servlet技术开发的学生信息管理系统(SIMS),在设计中没有采用SpringMVC和Spring Boot等框架。系统完全依赖于Servlet来处理HTTP请求和管理学生信息,实现了信息的有效存储、检索和更新&#xf…

Python三级 每周练习题32

如果你感觉有收获,欢迎给我微信扫打赏码 ———— 以激励我输出更多优质内容 练习一: 作业1 (1)用 python 新建一个文件名为jscj.csv 文件,将上述的数据写入表格 (2)计算输出每个班的平均分(结果保留两位小数) 答案: with open(cjm.csv,w,encodingu…

基于Java图书借阅管理系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

AI又进化了,AI 写代码工具

今年 AI 的发展可谓一日千里,相信不少同学应该都用过 AI 来帮助自己提高开发效率吧? 比如让 AI 根据注释生成代码、解释整段代码、提供技术问题的答疑、修改 Bug、生成单元测试等等。 在 12 月 28 日刚刚结束的 WAVE SUMMIT 深度学习开发者大会上&…

Postgresql源码(119)PL/pgSQL中ExprContext的生命周期

前言 在PL/pgSQL语言中,执行任何SQL都需要通过SPI调用SQL层解析执行,例如在SQL层执行表达式的入口: static bool exec_eval_simple_expr(PLpgSQL_execstate *estate,PLpgSQL_expr *expr,Datum *result,bool *isNull,Oid *rettype,int32 *re…

C练习——判断三角形并求面积

题目:从健盘任意输入三角形的三边长为a,b,c,编程判断a,b,c的值能否构成一个三角形,若能构成三角形,则计算并输出三角形的面积,否则提示不能构成三角形。 已知构成三角形的条件是:任意两边之和大于第三边。 解析&#…

nodejs+vue+微信小程序+python+PHP的冷链物流配送系统-计算机毕业设计推荐

对于冷链物流信息调度系统所牵扯的管理及数据保存都是非常多的,例如管理员;首页、用户管理(管理员、客户、业务员、配送员)客户管理(货物信息、客户运输单、车辆信息、调度安排)这给管理者的工作带来了巨大…

Java多线程<三>常见的多线程设计模式

多线程的设计模式 两阶段线程终止 park方法 interrupted() 会让他失效。 使用volatile关键字进行改写 单例模式 双锁检测 保护性暂停 实现1: package threadBase.model;/*** author: Zekun Fu* date: 2022/5/29 19:01* Description:* 保护性暂停,* …

PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装

PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装 1、环境2、安装包下载3、安装3.1 、解压3.2、配置3.3、编译安装3.4 、启动与关闭 4、安装 uuid-ossp 、plpython2u插件5、参考 1、环境 centos 7 、 postgresql 10.19 2、安装包下载 postgres 源码安装包 3、安…

万界星空科技车间生产管理系统解决方案

车间管理系统解决方案:   (一)车间生产计划管理解决方案   车间管理系统解决方案对于一般的生产计划,需完成编制、审批、下达、执行、完工等操作,车间管理系统解决方案立足于减少中间环节浪费,节约成本&#xff0c…

提升效率:使用注解实现精简而高效的Spring开发

IOC/DI注解开发 1.0 环境准备1.1 注解开发定义bean步骤1:删除原XML配置步骤2:Dao上添加注解步骤3:配置Spring的注解包扫描步骤4:运行程序步骤5:Service上添加注解步骤6:运行程序知识点1:Component等 1.2 纯注解开发模式1.2.1 思路分析1.2.2 实现步骤步骤1:创建配置类…

Redis为何如此快速?

1. 引言 Redis(Remote Dictionary Server)是一个高性能的键值对存储数据库。它以其出色的性能和灵活的数据结构而闻名,今天就来谈谈redis为什么会这么快。 1.1 Redis是单线程吗? Redis 的单线程主要是指 Redis 的网络 IO 和键值对…

发掘企业知识宝藏,开启专属知识付费新时代

明理信息科技saas知识服务平台 随着互联网的快速发展,人们越来越重视知识的获取和价值的挖掘。在这个信息爆炸的时代,知识付费已经成为了一种新的商业模式,为知识的传播和价值的转化提供了更加高效和便捷的途径。本文将探讨知识付费的发展背…