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。

在这里插入图片描述
这里还引入了法线不一致问题的解决方法,参考文章[HDD+92]

边界循环

边界相干性

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

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

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

循环提取

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】股票数据爬取与展示分析

数据爬取 一、爬取原理二、代码实践2.1 股票列表获取2.1.1 确定待爬取网页2.1.2 向网页发送请求获取页面响应2.1.3 文本转换成JSON2.1.4 将数据保存到csv文件中2.2 股票数据获取 三、结果分析 一、爬取原理 本文中主要使用的就是Python的request库,这个库基于HTTP请…

GPT打数模——电商品类货量预测及品类分仓规划

背景 电商企业在各区域的商品存储主要由多个仓库组成的仓群承担。其中存储的商品主要按照属性(品类、件型等)进行划分和打标,便于进行库存管理。图 1 是一个简化的示意图,商品品类各异,件数众多,必须将这些…

Task :prepareKotlinBuildScriptModel UP-TO-DATE,编译卡在这里不动或报错

这里写自定义目录标题 原因方案其他思路 原因 一般来说,当编译到这个task之后,后续是要进行一些资源的下载的,如果你卡在这边不动的话,很有可能就是你的IDE目前没有办法进行下载。 方案 开关一下IDE内部的代理,或者…

Jetpack架构组件_LiveData组件

1.LiveData初识 LiveData:ViewModel管理要展示的数据(VM层类似于原MVP中的P层),处理业务逻辑,比如调用服务器的登陆接口业务。通过LiveData观察者模式,只要数据的值发生了改变,就会自动通知VIEW层&#xf…

C#里使用最高性的网络通讯例子

由于接收网络数据会不完整的包, 并且产生各种问题,导致大家都是使用最低效的内存保存数据,比如List<byte>这样的结构。 具体内容可以参考下面的大牛的文章: System.IO.Pipelines: High performance IO in .NET - .NET Blog (https://devblogs.microsoft.com/dot…

【Spring】详解SpringMVC,一篇文章带你快速入门

目录 一、初始MVC 二、SpringMVC 三、Spring MVC的运用 ⭕RequestMapping ⭕传递参数 1、传递单个参数 2、传递多个参数 3、参数重命名 4、传递数组与集合 5、获取路径参数 6、传递JSON数据 7、上传文件 一、初始MVC MVC&#xff08;Model-View-Controller&#…

在不能联网的电脑上安装库(PyEMD为例)

1、查看PyEMD需要什么依赖 需要numpy、pathos、scipy、tqdm依赖&#xff0c;我电脑上有了numpy, scipy&#xff0c;以另外两个为例 2、查看依赖的依赖 查看依赖是否还要依赖 可以看到pathos还要这四个依赖&#xff0c;以此类推&#xff0c;看还要哪些依赖&#xff0c;直至req…

2024.9.27华为笔试题解

第一题绩效互评人员分配 二分图判断模板,可以去看其他博客学习一下 #include <bits/stdc++.h> using namespace std;vector<int> GoodRelationships[105]; int color[105]; // 记录每个节点的颜色,0表示未染色,1和2表示不同的组 bool is_bipartite = true; …

【C】用c写贪吃蛇

1.输入正确的账号密码及其用户名&#xff0c;登录成功进入贪吃蛇游戏界面&#xff0c; 2.随机生成蛇头★、食物▲的位置(x,y)&#xff0c;并使用□打印地图 3.使用w s a d按键&#xff0c;完成蛇头的上下左右移动 4.蛇头碰撞到食物后&#xff0c;吃下食物变成蛇身的一部分●…

Mac 使用脚本批量导入 Apple 歌曲

最近呢&#xff0c;买了一个 iPad&#xff0c;虽然家里笔记本台式都有&#xff0c;显示器都是 2个&#xff0c;比较方便看代码&#xff08;边打游戏边追剧&#xff09;。 但是在床上拿笔记本始终还是不方便&#xff0c;手机在家看还是小了点&#xff0c;自从有 iPad 之后&…

【Java】java 集合框架(详解)

&#x1f4c3;个人主页&#xff1a;island1314 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; 1. 概述 &#x1f680; &#x1f525; Java集合框架 提供了一系列用于存储和操作…

实现uniapp天地图边界范围覆盖

在uniapp中&#xff0c;难免会遇到使用地图展示的功能&#xff0c;但是百度谷歌这些收费的显然对于大部分开源节流的开发者是不愿意接受的&#xff0c;所以天地图则是最佳选择。 此篇文章&#xff0c;详细的实现地图展示功能&#xff0c;并且可以自定义容器宽高&#xff0c;还可…

java项目之电影评论网站(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的电影评论网站。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 电影评论网站的主要使用者管…

UE5 源码学习 初始化

跟着 https://www.cnblogs.com/timlly/p/13877623.html 学习 入口函数 UnrealEngine\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp WinMain 入口 int32 WINAPI WinMain(_In_ HINSTANCE hInInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ char* p…

8.three.js相机详解

8.three.js相机详解 1、 认识相机 在Threejs中相机的表示是THREE.Camera&#xff0c;它是相机的抽象基类&#xff0c;其子类有两种相机&#xff0c;分别是正投影相机THREE.OrthographicCamera和透视投影相机THREE.PerspectiveCamera&#xff1a; 正投影和透视投影的区别是&am…

R语言编程

一、R语言在机器学习中的优势 R语言是一种广泛用于统计分析和数据可视化的编程语言,在机器学习领域也有诸多优势。 丰富的包:R拥有大量专门用于机器学习的包。例如,caret包是一个功能强大的机器学习工具包,它提供了统一的接口来训练和评估多种机器学习模型,如线性回归、决…

Excel:vba实现生成随机数

Sub 生成随机数字()Dim randomNumber As IntegerDim minValue As IntegerDim maxValue As Integer 设置随机数的范围(假入班级里面有43个学生&#xff0c;学号是从1→43)minValue 1maxValue 43 生成随机数(在1到43之间生成随机数)randomNumber Application.WorksheetFunctio…

Vue学习笔记(六、跑马灯效果)

下面是一段跑马灯效果的代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>VueBaseCode</title><script src"./lib/vue.js"></script> </head><b…

Python的两种循环结构和break与continue

在所有的循环中应当避免死循环的出现。死循环&#xff1a;条件始终为真的循环称为死循环在循环语句中&#xff0c;表达式永远为真&#xff0c;致循环持续执行程序无法终止。在开发的时候&#xff0c;死循环带来的麻烦是最直观最大的。 一. while循环 while循环的框架&#xff…

【大数据学习 | Zookeeper】Zookeeper服务端与客户端的工作流程

1. Zookeeper服务端 ZooKeeper 服务端通常是以集群的形式部署&#xff0c;这样可以提供高可用性和容错能力。ZooKeeper 集群中的每个节点都保存着几乎相同的数据副本&#xff08;除了领导者选举相关的数据&#xff09;。集群中有一个节点被选为领导者&#xff08;Leader&#…