半遮挡检测算法 Detecting Binocular Half-Occlusions
【1. 背景】:
本文分析【Detecting Binocular Half-Occlusions:Empirical Comparisons of Five Approaches】Geoffrey Egnal和Richard P. Wildes于2002年发表在IEEE Transactions on Pattern Analysis and Machine Intelligence上,这是1篇中科院1区的论文,值得学习。论文主要研究了双目视觉系统中的半遮挡(half-occlusions)检测问题,文章提及了五种检测半遮挡的方法,并进行了定量和定性的比较分析。
【V: leaf3d】
【2. 研究内容】:
文章提及的5种方法分别为:
-
Bimodalities in Disparity (BMD)
BMD 方法基于视差图像的双峰特性。在半遮挡边界附近的点会匹配到遮挡面和被遮挡面,导致局部视差直方图呈现双峰分布。通过检测这种双峰特性,可以识别半遮挡边界
-
Match Goodness Jumps (MGJ)
MGJ 方法假设匹配质量低的点可能是半遮挡点。当匹配算法处理来自两个图像的同一表面时,匹配质量通常较高;而在半遮挡区域,匹配质量会显著下降。MGJ 通过检测匹配质量的突变来识别半遮挡 -
Left-Right Checking Failures (LRC)
LRC 方法基于左右视图的视差图像应互为相反数(除了在半遮挡区域)。如果左右视图的视差图像在某些点上不满足这种关系,则这些点可能是半遮挡点 -
Ordering Constraint (ORD)
ORD 方法基于排序约束。如果两个点在左视图中按某种顺序匹配,但在右视图中匹配顺序改变,则这些点可能是半遮挡点 -
Occlusion Constraint (OCC)
OCC 方法基于遮挡约束。该方法假设视差图中的不连续性对应于半遮挡区域。通过检测视差图中的不连续性,可以识别半遮挡区域
其中,他们的区别和联系在于:
BMD 和 MGJ 是边界检测方法,主要用于检测半遮挡的起始和结束位置。
LRC、ORD 和 OCC 是区域检测方法,用于标记整个半遮挡区域
【方法1:BMD】
BMD 方法的核心思想是:水平视差图像中与半遮挡边界对应的点在其邻域中将具有由被遮挡区域和遮挡表面产生的视差值。在这些区域,视差的直方图应该是双峰的(见下图,局部视差直方图 disparity in window在选定的邻域内,统计每个像素的视差值,并构建视差直方图。直方图的横轴表示视差值,纵轴表示该视差值出现的频率, 第一个峰对应于遮挡面的视差值; 第二个峰对应于被遮挡面的视差值。在非遮挡区域,视差值连续、接近的,因此局部视差直方图是单峰的)。选择峰值比测试来确定是否存在双峰,峰比是第二高峰与最高峰的比值。如果峰值大小相似,表示双峰,则峰值比更接近1,BMD可以表示为


因此,如果某个像素的邻域被检测为双峰分布,则该像素被认为是半遮挡边界的一部分。对于每个像素重复上述过程,最终生成一个标记半遮挡边界的图像。
优点:BMD 方法能够检测到所有遮挡边界,包括与视差方向垂直的不连续性。它是一种基于局部统计的方法,对匹配算法的依赖较小。局限性:对参数(如邻域大小和阈值)非常敏感,需要根据具体场景进行调整。在视差变化剧烈或噪声较多的区域,容易产生误报。
【方法2:MGJ】
MGJ方法的核心思想是利用匹配算法生成的匹配质量图像(match goodness image)来检测半遮挡点。在双目视觉中,匹配质量通常反映了像素之间匹配的可靠性。MGJ 方法假设在半遮挡区域,匹配质量会显著下降,因为这些区域无法找到正确的匹配点。如下图以右视图为基准的匹配统计,计算某一点领域的匹配质量突变程度,设定阈值来判断是否为半遮挡点。


优点:
1. 简单高效。MGJ 方法基于匹配质量图像的直接分析,计算复杂度较低
2. 独立性强:MGJ 方法不依赖于视差图像的具体内容,而是基于匹配质量的变化,因此对匹配算法的依赖较小。
局限性:
1. 对噪声敏感:在匹配质量图像中,噪声可能会导致误报,尤其是在低纹理或高对比度区域。
2. 依赖匹配算法:MGJ 方法的性能依赖于匹配算法生成的匹配质量图像的质量。如果匹配质量图像存在误差,MGJ 方法的性能也会受到影响。
3. 可能漏检:在某些情况下,半遮挡区域的匹配质量可能不会显著下降,导致漏检。
【方法3:LRC】
LRC方法的核心思想是利用左右视图的视差图像之间的关系来检测半遮挡点。具体来说,LRC 方法假设左视图和右视图的视差图像在非遮挡区域应该是互为相反数,而在半遮挡区域,这种对称性会被破坏。如图所示Disparity中左基准视差图和右基准视差图中,非遮挡区域对应点的视差是视差值相近,但符号相反的值。但是在遮挡区域不满足该关系。左右视察一致性描述的是左基准点匹配到右图中的点后,右图中的点再返回来仍然能够找到左图的同一点,按照如下定义阈值来判断


优点:简单高效:LRC 方法基于视差图像的直接分析,计算复杂度较低;对称性检测:通过检测左右视图的对称性破坏,能够有效地识别半遮挡点;适用性强:适用于多种双目匹配算法生成的视差图像。
局限性:
对噪声敏感:在视差图像中,噪声可能会导致误报,尤其是在低纹理或高对比度区域。依赖视差图像质量:LRC 方法的性能依赖于视差图像的质量。如果视差图像存在误差,LRC 方法的性能也会受到影响。可能漏检:在某些情况下,半遮挡区域的对称性破坏可能不明显,导致漏检。
【方法4:ORD】
核心思想是利用双目图像中匹配点的几何顺序关系来检测半遮挡点。在双目视觉中,如果两个点在左视图中按某种顺序排列,那么在右视图中它们的匹配点也应该保持相同的顺序。如果顺序被破坏,则可能表明存在半遮挡。

该方法容易理解,通过基准图像上点的左右关系和匹配点的左右关系来判断。但是,半遮挡区域可能不会明显违反排序约束,导致漏检。
【方法5:OCC】
OCC 方法的核心思想是:在双目视觉中,视差图的不连续性通常对应于场景中的遮挡边界。

该方法随着而来的问题是,物体的不连续也会带来视差的跳变,跳变处有可能对应着遮挡的区域,但如何准确分界是一个问题。
相关文章:
半遮挡检测算法 Detecting Binocular Half-Occlusions
【1. 背景】: 本文分析【Detecting Binocular Half-Occlusions:Empirical Comparisons of Five Approaches】Geoffrey Egnal和Richard P. Wildes于2002年发表在IEEE Transactions on Pattern Analysis and Machine Intelligence上,这是1篇中…...
PHP培训机构教务管理系统小程序
🔑 培训机构教务管理系统——智慧教育,高效管理新典范 🚀 这款教务管理系统,是基于前沿的ThinkPHP框架与Uniapp技术深度融合,匠心打造的培训机构管理神器。它犹如一把开启高效运营与精细管理的金钥匙,专为…...
《LeetCode 763. 划分字母区间 | 高效分割字符串》
内容: 问题描述: 给定一个字符串 S,将字符串分割成若干个子串,使得每个子串中的字符都不重复,并且返回每个子串的长度。 解题思路: 找到每个字符最后一次出现的位置:我们首先遍历一遍字符串&a…...
无人机不等同轴旋翼架构设计应用探究
“结果显示,对于不等组合,用户应将较小的螺旋桨置于上游以提高能效,但若追求最大推力,则两个相等的螺旋桨更为理想。” 在近期的研究《不等同轴旋翼性能特性探究》中,Max Miles和Stephen D. Prior博士深入探讨了不同螺…...
什么是 大语言模型中Kernel优化
什么是 大语言模型中Kernel优化 目录 什么是 大语言模型中Kernel优化Kernel优化操作系统内核优化深度学习计算内核优化手工优化原理举例Flash Attention,Faster TransformerKernel优化 大语言模型存在访存密集操作(如注意力机制、LayerNorm等),这些操作使得GPU计算性能无法…...
DeepSeek与ChatGPT:AI语言模型的全面对决
DeepSeek与ChatGPT:AI语言模型的全面对决 引言:AI 语言模型的时代浪潮一、认识 DeepSeek 与 ChatGPT(一)DeepSeek:国产新星的崛起(二)ChatGPT:AI 界的开拓者 二、DeepSeek 与 ChatGP…...
CTFHub技能树-密码口令wp
目录 引言弱口令默认口令 引言 仅开放如下关卡 弱口令 通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。 打开环境,是如下界面,尝试一些弱口令密码无果 利用burpsuite抓包,然后爆…...
Deepseek R1模型本地化部署与API实战指南:释放企业级AI生产力
摘要 本文深入解析Deepseek R1开源大模型的本地化部署流程与API集成方案,涵盖从硬件选型、Docker环境搭建到模型微调及RESTful接口封装的完整企业级解决方案。通过电商评论分析和智能客服搭建等案例,展示如何将前沿AI技术转化为实际生产力。教程支持Lin…...
MISP从入门到实战:威胁情报共享平台搭建与使用详解
MISP从入门到实战:威胁情报共享平台搭建与使用详解 目录 MISP核心作用与价值MISP安装与部署 2.1 Docker快速部署2.2 手动安装(Ubuntu) MISP基础使用教程 3.1 创建事件与属性3.2 数据共享与同步3.3 威胁情报分析实战 MISP高级功能 4.1 Galaxy…...
【NLP251】BertTokenizer 的全部 API 及 使用案例
BertTokenizer 是 Hugging Face 的 transformers 库中用于处理 BERT 模型输入的分词器类。它基于 WordPiece 分词算法,能够将文本分割成词汇单元(tokens),并将其转换为 BERT 模型可以理解的格式。BertTokenizer 是 BERT 模型的核心…...
【MySQL常见疑难杂症】常见文件及其所存储的信息
1、MySQL配置文件的读取顺序 (非Win)/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/mysql/etc/my.cnf、~/.my.cnf 可以通过命令查看MySQL读取配置文件的顺序 [roothadoop01 ~]# mysql --help |grep /etc/my.cnf /etc/my.cnf /etc/mysql/my.c…...
InnoDB如何解决幻读?深入解析MySQL的并发控制机制
--- ## 一、什么是幻读(Phantom Read)? **幻读**是数据库事务隔离性中的一个典型问题,具体表现为: 在同一个事务中,多次执行相同的范围查询(Range Query)时,**后一次…...
栈的深度解析:从基础实现到高级算法应用——C++实现与实战指南
一、栈的核心算法与应用场景 栈的先进后出特性使其在以下算法中表现优异: 括号匹配:校验表达式合法性。表达式求值:中缀转后缀,逆波兰表达式求值。深度优先搜索(DFS):模拟递归调用。单调栈&am…...
IDEA集成DeepSeek
引言 随着数据量的爆炸式增长,传统搜索技术已无法满足用户对精准、高效搜索的需求。 DeepSeek作为新一代智能搜索技术,凭借其强大的语义理解与深度学习能力,正在改变搜索领域的游戏规则。 对于 Java 开发者而言,将 DeepSeek 集成…...
Oracle Trace文件突然增长很多的原因分析及解决办法
Oracle Trace文件突然增长很多可能是由多种原因引起的,例如SQL语句的长时间跟踪、错误的跟踪设置、大量的错误和警告信息等。 一、以下是一些解决Trace文件增长过快的方法: 1.清理旧的Trace文件 可以通过以下命令删除超过一定天数的Trace文件,例如删除3天前的Trace文件: …...
leetcode:627. 变更性别(SQL解法)
难度:简单 SQL Schema > Pandas Schema > Salary 表: ----------------------- | Column Name | Type | ----------------------- | id | int | | name | varchar | | sex | ENUM | | salary | int …...
SQLMesh系列教程-3:SQLMesh模型属性详解
SQLMesh 的 MODEL 提供了丰富的属性,用于定义模型的行为、存储、调度、依赖关系等。通过合理配置这些属性,可以构建高效、可维护的数据管道。在 SQLMesh 中,MODEL 是定义数据模型的核心结构,初学SQLMesh,定义模型看到属…...
Java 中的 HashSet 和 HashMap 有什么区别?
一、核心概念与用途 特性HashSetHashMap接口实现实现 Set 接口(存储唯一元素)实现 Map 接口(存储键值对)数据存储存储单个对象(元素唯一)存储键值对(键唯一,值可重复)典…...
Kubernetes-master 组件
以下是Kubernetes Master Machine的组件。 etcd 它存储集群中每个节点可以使用的配置信息。它是一个高可用性键值存储,可以在多个节点之间分布。只有Kubernetes API服务器可以访问它,因为它可能具有一些敏感信息。这是一个分布式键值存储,所…...
【Leetcode 952】按公因数计算最大组件大小
题干 给定一个由不同正整数的组成的非空数组 nums ,考虑下面的图: 有 nums.length 个节点,按从 nums[0] 到 nums[nums.length - 1] 标记;只有当 nums[i] 和 nums[j] 共用一个大于 1 的公因数时,nums[i] 和 nums[j]之…...
js考核第三题
题三:随机点名 要求: 分为上下两个部分,上方为显示区域,下方为控制区域。显示区域显示五十位群成员的学号和姓名,控制区域由开始和结束两个按钮 组成。点击开始按钮,显示区域里的内容开始滚动,…...
【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)— 4.6 RNN与LSTM的变体与发展趋势】
引言:时间序列的魔法钥匙 在时间的长河中,信息如同涓涓细流,绵延不绝。而如何在这无尽的数据流中捕捉、理解和预测,正是循环神经网络(RNN)及其变体长短时记忆网络(LSTM)所擅长的。今天,我们就来一场深度探索,揭开RNN与LSTM的神秘面纱,看看它们如何在时间序列的海洋…...
简单几个步骤完成 Oracle 到金仓数据库(KingbaseES)的迁移目标
作为国产数据库的领军选手,金仓数据库(KingbaseES)凭借其成熟的技术架构和广泛的市场覆盖,在国内众多领域中扮演着至关重要的角色。无论是国家电网、金融行业,还是铁路、医疗等关键领域,金仓数据库都以其卓…...
Java和JavaScript当中的json对象和json字符串分别讲解
Java和JavaScript当中的json对象和json字符串分别讲解 一、Java当中的json对象和json字符串 在 Java 中,JSON 对象和 JSON 字符串有不同的表示和操作方式。 1. JSON 对象: 如果你使用的是 org.json 库,创建 JSON 对象的代码如下࿱…...
【第11章:生成式AI与创意应用—11.2 音频与音乐生成的探索与实践】
凌晨三点的录音棚里,制作人小林对着空荡荡的混音台抓狂——广告方临时要求将电子舞曲改编成巴洛克风格,还要保留"赛博朋克"元素。当他在AI音乐平台输入"维瓦尔弟遇见霓虹灯"的瞬间,一段融合羽管键琴与合成器的奇妙旋律喷涌而出,这场人与机器的音乐狂想…...
八、SPI读写XT25数据
8.1 SPI 简介 SPI(Serial Peripheral Interface,串行外设接口)是一种同步串行通信协议,广泛用于嵌入式系统中连接微控制器与外围设备,如传感器、存储器、显示屏等。 主要特点 1. 全双工通信:支持同时发送…...
Visionpro 齿轮测量
效果展示 一、题目要求 求出最大值,最小值,平均值 二、分析 1.首先要进行模板匹配 2.划清匹配范围 3.匹配小三角的模板匹配 4.卡尺 5.用找圆工具 工具 1.CogPMAlignTool 2.CogCaliperTool 3.CogFindCircleTool 4.CogFixtureTool 三、模板匹…...
Ubuntu20.04部署stable-diffusion-webui环境小记
Ubuntu20.04部署stable-diffusion-webui环境小记 文章目录 前言后视镜视角查看安装文档聊聊我踩的那些坑python3.11的安装执行sudo apt update报错显卡驱动内存优化网络问题无法打开系统设置和网络设置查询GPU使用情况 总结 Stable Diffusion web UI A web interface for Stabl…...
索引以及索引底层数据结构
一、什么是索引? 索引(index)是数据库高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B树),这些数据结构以某种方式指向真在…...
开业盛典活动策划方案拆解
道叔来给大家详细剖析咱们方案库里刚收录的这份《蜀大侠火锅店武侠风开业盛典活动策划方案》了,保证让你看完直呼过瘾,收获满满! 一、主题创意:武侠风,直击人心 首先,咱们得夸一下这活动的主题——“XXX‘…...
