法向量估计

法向量估计

  • 1. 求解点P法向量的原理
  • 2. 法向量估计的证明
  • 3. 为什么求点P的法向量,需要使用以P为中心的邻域内的点?
  • 4. 法向量估计的应用和思考
  • 5. 权重法向量估计

1. 求解点P法向量的原理

已知有一组点 P = ( p 1 , p 2 , p 3 , . . . , p n ) , p i ∈ R 3 P = (p_1,p_2,p_3,...,p_n),p_i \in R_3 P=(p1,p2,p3,...,pn),piR3,求点 p 3 p_3 p3的法向量的通用步骤:

  • 确定邻域:首先需要确定点 P 的邻域,即在点云中与点 P 相邻的点的集合。通常情况下,可以通过设置一个固定的半径或者固定数量的最近邻来定义邻域。
  • 计算局部表面拟合:对于确定的邻域内的点,可以使用拟合曲面的方法来估计局部表面形状。常用的拟合方法包括最小二乘拟合、主成分分析(PCA)拟合等。这些方法可以得到一个与邻域内点最适合的平面、曲线或曲面。
  • 计算法向量:通过拟合得到的局部表面形状,可以计算点 P 的法向量。对于平面拟合,法向量即为拟合平面的法向量;对于曲面拟合,可以通过对曲面方程求导得到法向量。
  • 后处理:在计算法向量后,可以进行一些后处理操作,比如法向量的平滑化、去噪等,以提高法向量的质量和稳定性。

这里给出使用PCA求解的步骤和代码

  • 确定领域,得到邻域内的所有点
  • 求邻域内点组成的矩阵 M ∈ R n × 3 M \in R_{n \times 3} MRn×3的协方差矩阵的奇异值分解
  • 求左奇异值矩阵的特征向量,最小的特征值对应的特征向量即为所求
    normals = []radius = 0.05leaf_size = 5  tree = KDTree(points,leaf_size)near_point_idx = tree.query_radius(points,radius)#每一点的邻居点索引,包含自身点for i in range(points.shape[0]):point_near = points[near_point_idx[i]] #某一点的邻居点,v = PCA(point_near)normal = v[:,2]normals.append(normal)normals = np.asarray(normals)

2. 法向量估计的证明

为什么最小特征值对应的特征向量即为法向量方向
在这里插入图片描述

3. 为什么求点P的法向量,需要使用以P为中心的邻域内的点?

假设点P为这组点的中心,只要求所有点到点P的切平面的距离的L2范数最小,就说明这个切平面最接近这簇点的表面形状
在这里插入图片描述
在这里插入图片描述

4. 法向量估计的应用和思考

  • 应用
    分割,聚类,平面检测
  • 思考半径选择太大,会受到不相关部分影响,导致法向量平滑;半径过小会容易受到噪声影响;半径不仅可以使用欧式空间邻域,同样可以使用其他尺度的邻域,包括反射率邻域,颜色邻域等;也可以根据周围点对点P的影响程度,在求法向量的时候为每个点加上权重

5. 权重法向量估计

在这里插入图片描述
也就是求 X ˉ W X ˉ T \bar{X} W \bar{X}^{T} XˉWXˉT的最小特征向量, X ˉ \bar{X} Xˉ是一组输入向量的去中心化向量。

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

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

相关文章

小问题/小技巧/小知识汇总(记录贴)

目录 第一章、小问题①使用了Lombok的Data注解,但是getter方法失效,报错空指针异常③什么是字典项查询④workbench 导出包错误:could not get mysql version⑤一个自定义导包后出现的小问题⑥使用org.json将xml转json的时候出错⑦报错MySQLSy…

基于微信小程序的实验室预约系统的设计与开发

个人介绍 hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的…

leetcode 热题 100(部分)C/C++

leetcode 热题 100 双指针 盛最多水的容器 【mid】【双指针】 思路: 好久没写代码sb了,加上之前写的双指针并不多,以及有点思维定势了。我对双指针比较刻板的印象一直是两层for循环i,j,初始时i,j都位于左界附近&…

GIS水文分析计算流向学习

1 初步操作 流向,即水文表面水的流向; 水文分析的很多功能需要基于流向栅格; 在 SuperMap 中,对中心栅格的8个邻域栅格进行编码; 每一个中心栅格的水流方向都由这八个值中的某一个值来确定; 我还没弄懂水…

深入理解计算机系统 家庭作业 2.83

要读懂题目挺难的 A. 假设我们要求的无穷串是x0.yyyyyyy... Y(0.y<<ky) (由YB2Uk(y)得到,B2Uk是一个截断成k位的函数) x0.yyyyy...(这是我们假设的) 于是有 Yx y.yyyyyy... Yx y.yyyyyy... x<<k Yx-x xY(-1) B. a.Y5 k3 ,x5/7 b.Y6 k4 ,x6/152/5 c…

基于单片机的盆栽自动浇花系统

**单片机设计介绍&#xff0c;基于单片机的盆栽自动浇花系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的盆栽自动浇花系统设计概要主要涵盖了通过单片机技术实现盆栽植物的自动化、智能化浇水管理。下面将从系统…

51之LCD1602与模块化编程

LCD1602&#xff0c;即我们开发板上附赠的那个液晶显示屏&#xff0c;我们通常可以使用这个液晶显示屏用来做调试工具&#xff0c;我们使用一下江科大提供的关于这个LCD1602的代码&#xff0c;用来为我们提供了类似C语言标准库里面的printf函数的用法&#xff0c;只是这个更加复…

深澜计费管理系统 任意文件读取漏洞复现

0x01 产品简介 深澜计费管理系统是是一套完善的领先的具有复杂生物型特征的弹性认证计费系统。系统主要由 AAA 认证计费平台、系统运营维护管理平台、用户及策略管理平台、用户自助服务平台、智能客户端模块、消息推送模块、数据统计模块组成。目前在全球为超过 2500 家客户提…

openEuler 22.03 SP3 安装图像桌面 UKUI

UKUI 是麒麟软件团队历经多年打造的一款 Linux 桌面&#xff0c;主要基于 GTK 和 QT 开发。与其他 UI 界面相比&#xff0c;UKUI 更加注重易用性和敏捷度&#xff0c;各元件相依性小&#xff0c;可以不依赖其他套件而独自运行&#xff0c;给用户带来亲切和高效的使用体验。 UK…

【Qt】文件

目录 一、输入输出设备类 二、文件读写类 三、文件和目录信息类 文件操作是应用程序必不可少的部分。Qt作为一个通用开发库&#xff0c;提供了跨平台的文件操作能力。Qt提供了很多关于文件的类&#xff0c;通过这些类能够对文件系统进行操作&#xff0c;如文件读写、文件信息…

基于lora技术对Gemma(2B)大模型的微调实践

一、概述 本文主要基于Lora技术&#xff0c;在Google colab上用A100对Gemma 2B大模型进行了指令微调&#xff0c;第一次指令微调是采用databricks-dolly-15k 作为数据集&#xff0c;取得了不错的微调效果&#xff0c;能准确用英文回答问题&#xff0c;但databricks-dolly-15k …

无库存,无货源,怎么做视频号小店?

大家好&#xff0c;我是电商糖果 有朋友跟糖果说&#xff0c;这视频号小店非常火&#xff0c;自己想趁着这次的风口开店赚钱。 自己无库存&#xff0c;也无货源&#xff0c;能开店卖货不&#xff1f; 糖果告诉他&#xff0c;能卖货&#xff0c;而且还可以让他不到一个月时间…