Detecting Holes in Point Set Surfaces 论文阅读

下载链接

Detecting Holes in Point Set Surfaces

摘要

在这里插入图片描述

  • 3D 数据采集过程(例如激光范围扫描)产生的重要物体模型通常包含由于遮挡、反射或透明度而产生的孔洞。本文的目标就是在点集表面上检测存在的孔洞。
  • 对于每个点,将多个标准组合成一个综合边界概率。
  • 最终的边界环提取步骤使用该概率并利用边界的附加相干特性来导出鲁棒且自动的孔检测算法。

先前工作

  • [GWM01]、[LP02]以及[CN04]应用本文所说的角度准则。角度标准考虑每个样本点 p 的一组相邻样本,并检查两个连续相邻样本之间的最大角度。
  • [GWM01]使用邻域形成的相关矩阵。该矩阵的特征向量和特征值定义了相关椭球。其形状以特征值的比率表示,用于识别角点、折痕和边界点,并给出折痕和边界方向的近似值。为了找到连续的折痕线,在点集上构建邻域图,并根据折痕概率对其边缘进行加权。然后收集具有高概率的边缘并构成特征模式。
  • 在[DG01]中,使用[ABE98]的采样要求检测欠采样区域。该采样条件基于每个样本 Voronoi 单元的所谓极点对中轴的近似。每个点到中轴的距离给出了局部特征尺寸。真实表面上的每一点都需要在由局部特征尺寸和因子 r 定义的球内至少有一个采样点。因此,[DG01]的方法无法识别表面平坦区域中的孔。

综述

  • 对于每个点 p ∈ P,计算边界概率 Π§,反映 p 位于表面采样中孔上或孔附近的概率(第 4 节)。
  • 此后,利用边界属性是一致的,即边界点具有也是边界的邻近邻居,并以最短成本路径方式构建包围孔的闭环(第 5 节)。
  • 本文的孔检测方案的结果和应用在几秒钟内给出。

边界概率

近邻收集

这里本文提出了一种简单的,不受密度影响的近邻方法,而不是简单的R近邻或者K近邻。
对于点p的近邻,首先包括它的k近邻,然后还包含k近邻包含p点的点。也就是说,你是我的近邻,则有我是你的近邻。
在这里插入图片描述
用这种策略能够避免单纯R近邻或者K近邻会受点集分布密度的影响。
在这里插入图片描述

角度标准

角度准则将 Np 中包含的所有相邻点投影到切平面上,并根据它们围绕中心样本的角度对它们进行排序,并计算两个连续投影相邻点之间的最大间隙 g。基本思想是边界点的 g 明显大于内部点的 g。
在这里插入图片描述
边界概率公式为
在这里插入图片描述
这里的 ∣ N p ∣ |N_p| Np个人理解是p点邻域点的数量

半盘标准

在 2D 图像处理中,边缘检测算法识别亮度与其相邻像素的平均亮度有很大偏差的像素。
这里就是用p点近邻的质心和p点的便宜距离作为标准判断p点是否为边界,在点集内部p与p点邻域质心偏移量应该很小,在边缘地区比较大。

在 2-流形上,表面内部点的邻域与圆盘同胚,因此可以预期点 p 本身与其近邻点的平均 μ p \mu_p μp 之间的差异很小,这与圆盘上的点相反边界。它们的邻域与半圆盘同胚(见图 4),因此 ∣ μ p ∣ |\mu_p| μp 将显着偏离 p。因此,为了得出边界概率,我们将 ∣ μ p ∣ |\mu_p| μp 与切平面中理想半圆盘的质心进行比较。

这里为了减少采样密度的影响,计算质心的公式中附加了一个高斯核。

形状标准

这一部分是根据邻域的协方差矩阵的特征值比例,确定某一个点的形状,作者对结果进行分析并总结了一般性规律,列出了网格。
在这里插入图片描述
后面根据表格给出了一个分类公式。
在这里插入图片描述

结合标准

每个标准都有自身的优点和缺点,作者经过分析,最后将三种标准结合起来判断。

为了利用标准的不同功能并提高边界概率计算的鲁棒性,我们将组合边界概率导出为加权和

在这里插入图片描述

法线估计

这里说是角度和平均标准都比较依赖点集的法线。提出用[HDD+92]论文中的方法,法线作为与 Np 的加权协方差矩阵的最小特征值相对应的特征向量给出。
本文还提出用计算角度准则期间收集的信息集成在一起。

有时,在锐利折痕处,拟合平面与表面垂直。为了检测这种情况,在估计法线后评估角度标准。如果边界概率 Π ∠ ( p ) \Pi_\angle(p) Π(p) 超过给定阈值,则估计法线将围绕由最大间隙两侧的两点定义的轴旋转 90 度,投影到切平面中。然后再次评估角度标准,这次使用旋转法线,如果边界概率显着降低(即超过 50%),则保留新法线。这有助于形成锐利的折痕,有时拟合平面垂直于表面,见图 9。

在这里插入图片描述

边界循环

边界相干性

除了使用上一节中描述的方案计算的边界概率之外,还利用边界点之间的一致性(也就是说边界点的近邻也可能是边界点)。这极大地提高了本文方法的稳健性。此外,还会发现围绕孔的连接点环。
边界环上的任何点在每一侧都至少有一个邻居也属于边界。使用简单的迭代分类步骤可以轻松地利用此属性。

  1. 首先,所有边界概率大于用户定义阈值的点都被声明为边界点。
  2. 然后,对于这些点中的每一个,找到在角度标准意义上形成最大间隙的两个邻居。当且仅当这两个相邻点也已被声明为边界点时,该点才保持分类为边界点。所有其他点都标记为内点。
  3. 重复此过程,直到不再有点改变其状态。注意,只有在上一次迭代中确实改变状态的点的邻居才需要在后续步骤中重新考虑,从而使分类非常有效。

分类后,使用一种基于 [GWM01] 中提出的算法构建的算法,基于邻近图 G 构造最小生成图 (MSG)。
使用 Kruskal 最小生成树算法的扩展。边的权重根据相邻点的边界概率和点邻域密度加权计算得到。

循环提取

有了 MSG,就可以使用广度优先搜索来提取边界循环,得到最终的结果。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# shader 生成程序纹理

1、程序纹理是什么 程序纹理(Procedural Textures)就是通过程序代码生成的纹理 2、程序纹理如何生成 一般生成程序纹理由两种方式: 通过C#脚本生成纹理后传递给Shader直接在Shader代码中自定义逻辑生成纹理 3、程序纹理的好处 程序纹理…

2.1 > Shell 是什么、如何更熟练的使用 Bash Shell

Shell 基础知识 Shell是计算机操作系统中的一个命令行解释器,由C语言编写,用于用户与操作系统之间进行交互。用户可以通过Shell输入命令,操作系统接收到这些命令后执行相应的操作。Shell一般还提供了编程语言的基本功能,允许用户…

梯度累积的隐藏陷阱:Transformer库中梯度累积机制的缺陷与修正

在本地环境下对大规模语言模型(LLMs)进行微调时,由于GPU显存限制,采用大批量训练通常难以实现。为解决此问题,一般普遍会采用梯度累积技术来模拟较大的批量规模。该方法不同于传统的每批次更新模型权重的方式&#xff…

MacOS RocketMQ安装

MacOS RocketMQ安装 文章目录 MacOS RocketMQ安装一、下载二、安装修改JVM参数启动关闭测试关闭测试测试收发消息运行自带的生产者测试类运行自带的消费者测试类参考博客:https://blog.csdn.net/zhiyikeji/article/details/140911649 一、下载 打开官网,…

A-【项目开发知识管理】Android AIDL跨进程通信

Android AIDL跨进程通信 文章目录 Android AIDL跨进程通信0.我为啥要写这篇文章1.AIDL是干啥的?1.1简述1.2官方话 2.在AndroidStudio中怎么干?2.1准备工作2.2在项目A中创建AIDL文件夹2.3在项目A中创建一个aidl文件2.4将项目A进行一次Rebuild操作2.5在项目…

visual studio设置修改文件字符集方法

该方法来自网文,特此记录备忘。 添加两个组件,分别是Force UTF-8,FileEncoding。 截图如下: 方法如下:vs中点击“扩展”->“管理扩展”,输入utf搜索,安装如下两个插件,然后重启vs&#xf…

【设计模式系列】观察者模式

一、什么是观察者模式 观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被称为发布-订阅模式&…

matplotlib库

1.概念 Matplotlib 库:是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy ndarray 数组来绘制 2D 图像,它使用简单、代码清晰易懂 Figure:指整个图形,您可以把它理解成一张画布&…

【含开题报告+文档+PPT+源码】基于vue框架的东升餐饮点餐管理平台的设计与实现

开题报告 在当前信息化社会背景下,餐饮行业正经历着由传统线下服务模式向线上线下深度融合的转变。随着移动互联网技术及大数据应用的飞速发展,用户对于餐饮服务平台的需求也日益多元化和个性化。他们期望能在一个集便捷、高效、个性化于一体的平台上完…

快速搭建SpringBoot3+Prometheus+Grafana

快速搭建SpringBoot3PrometheusGrafana 一、搭建SpringBoot项目 1.1 创建SpringBoot项目 1.2 修改pom文件配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://…

如何使用 Spring Cloud 实现客户端负载平衡

微服务系统通常运行每个服务的多个实例。这是实施弹性所必需的。因此&#xff0c;在这些实例之间分配负载非常重要。执行此操作的组件是负载均衡器。Spring 提供了一个 Spring Cloud Load Balancer 库。在本文中&#xff0c;您将学习如何使用它在 Spring Boot 项目中实现客户端…

SolarWinds Web Help Desk曝出严重漏洞,已遭攻击者利用

近日&#xff0c;CISA 在其 “已知漏洞”&#xff08;KEV&#xff09;目录中增加了三个漏洞&#xff0c;其中一个是 SolarWinds Web Help Desk (WHD) 中的关键硬编码凭据漏洞&#xff0c;供应商已于 2024 年 8 月底修复了该漏洞。 SolarWinds Web Help Desk 是一款 IT 服务台套…

影刀RPA实战番外:excel函数应用指南

Excel函数是用于执行特定计算、分析和数据处理任务的预定义公式。它们可处理数学计算、文本处理、逻辑判断、日期和时间运算、查找和引用数据等。例如&#xff0c;SUM函数可以计算一系列数字的总和&#xff0c;IF函数进行逻辑测试&#xff0c;VLOOKUP函数在表格中查找数据&…

HTML之表单设计

1、HTML表单 HTML表单是用于收集用户输入的信息&#xff0c;并将用户输入的内容信息传到后台服务器中。 表单是通过form标签实现。 特别注意&#xff1a;如果一些内容提交后&#xff0c;没有将内容提交给后台服务器&#xff0c;那么需要添加一个name属性&#xff0c;语法&am…

鼠标移入盒子,盒子跟随鼠标移动

demo效果&#xff1a; 鼠标移入盒子&#xff0c;按下鼠标,开启移动跟随移动模式,再次按下关闭移动模式 涉及主要属性 在元素上单击鼠标按钮时输出鼠标指针的坐标&#xff1a; var x event.pageX; // 获取水平坐标 var y event.pageY; // 获取垂直坐标元素offsetL…

JDK-23与JavaFX配置在IDEA中

一、安装 1.IDEA安装&#xff0c;可以查看CSDN 2.JDK,JavaFX安装&#xff0c;可以查看CSDN 二、配置JDK 打开IDEA&#xff0c;选择个项目&#xff0c;点击图中的设置按钮&#xff1a; 点击项目设置&#xff1a; 点击“”添加JDK&#xff0c;寻找相应的JDK目录就行 三、配置…

Python快速入门教程

目录 1. Python 简介 2. 环境准备 3. 第一个 Python 程序 4. 变量与数据类型 5. 基本操作与控制结构 6. 函数与模块 7. 实践项目 结语 Python 是一种非常友好的编程语言&#xff0c;特别适合初学者。它的语法简洁&#xff0c;容易上手&#xff0c;并且广泛应用于各种领…

机器视觉运动控制一体机在DELTA并联机械手视觉上下料应用

市场应用背景 DELTA并联机械手是由三个相同的支链所组成&#xff0c;每个支链包含一个转动关节和一个移动关节&#xff0c;具有结构紧凑、占地面积小、高速高灵活性等特点&#xff0c;可在有限的空间内进行高效的作业&#xff0c;广泛应用于柔性上下料、包装、分拣、装配等需要…

从docker中导出已经存在的容器

从docker中导出已经存在的容器,作用:创建一个容器可以给多台电脑的docker使用&#xff0c;不用重复安装环境。 操作步骤&#xff1a; (1)先运行要导出的容器&#xff0c;并在cmd终端使用docker ps 查看运行的详细信息&#xff0c;留意一下 COMMAND对应的值后面运行容器需要使用…

创建匿名管道

匿名管道&#xff1a; pipe()函数可用于创建一个管道&#xff0c;以实现进程间的通信。 头文件是#include<unistd.h>&#xff0c;参数是int类型的数组 fd[0]表示读端 fd[1]表示写端 如下代码使用pipe函数创建管道&#xff0c;并打印出来&#xff0c;最后关闭终端。 #…