三维测量与建模笔记 - 7.3 表面建模概念和方法

基本概念

        当我们通过3D扫描设备对物体进行扫描后,会得到三维点云,通过表面建模,我们会重建出物体的3D模型。如果想得到完整的物体的3D模型,需要对物体进行多个角度的扫描并通过拼接算法重建。经过处理得到的3D模型,在很多场景中都有大量应用,下图是一些典型的应用。

几何处理管线

        最低层级的处理如上图所示,这个阶段主要针对输入数据做处理,可以类比2D图像处理中的滤波降噪等过程。 

        中层级处理主要是对模型进行各种优化,比如由于初始得到的模型mesh数量过多,需要进行模型简化以便实时应用处理等。

        最高层级的处理主要是针对具体的3D对象,主要包括模型的变形和修改编辑,提取形状结构,进行动画模拟等。

网格模型

        和网格模型很类似的概念是图,可以参考数据结构中的Graph结构,它表达了顶点和边之间的关系。Mesh的数据结构中,常用的结构式三角形Mesh,它以三角形为一个面。在内存中,Mesh表示为三角形和顶点的集合。上图例子中,三角形面f1是由顶点2,3,1组成,对应顶点的位置在VERTICES中可以查到,三角形面f1的顶点顺序不同,所代表的三角形面是不同的,比如同样是这三个点,但是顶点顺序不同,可能对应的三角形面的正反面(法向量朝向)是不同的。 

        表面建模中,很多时候都是针对流形进行处理,比如找到局部法向量等操作。关于流形的说明,可以参考以下链接(翻译不太准确,但有较为直观的例子):

【Manifolds】#1流形是一个与 R^d 局部同胚的拓扑空间a topological space which is locally homeomorp_哔哩哔哩_bilibili

        上图是一个显式和隐式建模的对比, 可以看到,当某些位置(图中红框标记)得到的点云不均匀或者有大量点丢失的情况时,使用显式建模效果并不好,而隐式建模能够避免这些问题。

 显式建模

        显式建模不会对数据点进行裁切操作,具体点的连接规则有很多种。这种方法不考虑法向量,如果点云较为稀疏,则得到的结果也较为稀疏。另外,对于处理靠的很近但很薄的两个表面,显式建模可能会得到错误的结果。

        Voronoi图是连接Delaunay三角形中相邻的三角形对应的外接圆圆心之后形成的图。Voronoi图将平面或者空间划分成了较为均匀的小平面或空间。

        下图是一个实际案例,地形表面重建。 

隐式建模

        显式建模相当于将离散点直接连接,隐式建模相当于是拟合出一个隐函数的方程,用这个函数表达物体表面。

         如何找到这个函数f(x),可以看下图:

        (a)点云S,里面有n个点。(b)我们认为点云是对等值面的一个采样,因此可以找到一个f的值域空间分布(前面提到的标量场),图中的红色表示在空间外,黑色表示在零等值面上,绿色表示负距离 (c) 要找到一个函数簇,它近似估计了零等值面。

        基函数可以自行选择,比如上图中r的三次方,选定基函数后,实际我们想要得到的就是权重参数w。

        如上图,黑色曲线上的点(蓝,红,绿,紫,橙)表示观测到的点(c_i),我们认为这些观测到的点就是物体表面的点。设计一个基函数\varphi(比如r的三次方),以及权重参数\omega _i(观测量有多少个就有多少个权重参数),得到标量函数F(x)。有了多个观测点的时候,就能得到多个线性方程组。解出权重后,可以通过F(x)找出零等值面的点。

         关于径向基函数插值的更详细的说明,可以自行百度或参考下面的文章:

RBF插值详解文章浏览阅读5.8k次,点赞5次,收藏46次。对于rbf插值中,一般控制点数量越多越密集,插值精度也就越高,但是随之而来的插值矩阵Φ\PhiΦ增大,计算量增大,模型训练(权值系数计算)效率变低,正所谓“No Free Lunch”。其次,不同的基函数在同样的数据上插值的表现也有所差异,因此需要选择最优的基函数进行插值计算。_径向基函数插值https://blog.csdn.net/qq_39784672/article/details/127656592

         总结隐式建模的过程如下:

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

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

相关文章

共模电感的工作原理

共模电感也称为共模扼流线圈,是一种抑制共模干扰的器件,它是由两个尺寸相同,匝数相同的线圈对称地绕制在同一个铁氧体环形磁芯上,形成的一个四端器件。当共模电流流过共模电感时,磁芯上的两个线圈产生的磁通相互叠加&a…

汉塔科技-上网行为管理系统 ping.php 远程命令执行漏洞复现

0x01 产品简介 汉塔科技是一家专注于网络应用软件开发的公司,在网络安全、网络协议分析以及网络数据流控制等领域拥有丰富的经验和雄厚的技术实力。其上网行为管理系统是应用识别丰富、网络安全防护强大的专业设备之一,汉塔科技上网行为管理系统是一款功能强大、应用识别丰富…

图书管理系统5,制作第十天

1. 在Java中,BigDecimal 类提供了多种方法可以用来将其转换为 String 类型。以下是几种常见的方法: 使用 toString() 方法: 这是将 BigDecimal 转换为 String 的最直接的方法。 Java 深色版本 BigDecimal bd new BigDecimal("123.456&…

机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差

注:本文为 “keyence 视觉沙龙中机器视觉检测基础知识” 文章合辑。 机器视觉检测基础知识(一)颜色篇 视觉检测硬件构成的基本部分包括:处理器、相机、镜头、光源。 其中,和光源相关的最重要的两个参数就是光源颜色和…

Linux shell脚本用于常见图片png、jpg、jpeg、webp、tiff格式批量转PDF文件

Linux Debian12基于ImageMagick图像处理工具编写shell脚本用于常见图片png、jpg、jpeg、webp、tiff格式批量转PDF文件,”多个图片分开生成多个PDF文件“或者“多个图片合并生成一个PDF文件” 在Linux系统中,使用ImageMagick可以图片格式转换&#xff0c…

批量提取zotero的论文构建知识库做问答的大模型(可选)——含转存PDF-分割统计PDF等

文章目录 提取zotero的PDF上传到AI平台保留文件名代码分成20个PDF视频讲解 提取zotero的PDF 右键查看目录 发现目录为 C:\Users\89735\Zotero\storage 写代码: 扫描路径‘C:\Users\89735\Zotero\storage’下面的所有PDF文件,全部复制一份汇总到"C:\Users\89735\Downl…

解决:websocket 1002 connection rejected 426upgrade required

这是问题是websocket客户端访问websocket服务端时候报的错,并非代码错误,需要配置一下k8s的路由策略 新增两行

Flutter组件————Container

Container Container 是 Flutter 中最常用的布局组件之一 参数 参数名称类型描述alignmentAlignmentGeometry定义子组件在其内部的对齐方式,默认为 null,即不改变子组件的位置。paddingEdgeInsetsGeometry内边距,用于在子组件周围添加空间…

ElasticSearch - 深入解析 Elasticsearch Composite Aggregation 的分页与去重机制

文章目录 Pre概述什么是 composite aggregation?基本结构after 参数的作用问题背景:传统分页的重复问题after 的设计理念响应示例 after 如何确保数据不重复核心机制Example步骤 1: 创建测试数据创建索引插入测试数据 步骤 2: 查询第一页结果查询第一页返…

MySQL 8.0:explain analyze 分析 SQL 执行过程

介绍 MySQL 8.0.16 引入一个实验特性:explain formattree ,树状的输出执行过程,以及预估成本和预估返 回行数。在 MySQL 8.0.18 又引入了 EXPLAIN ANALYZE,在 formattree 基础上,使用时,会执行 SQL &#…

【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567

本文涉及知识点 打开打包代码的方法兼述单元测试 C动态规划 C图论 LeetCode3243. 新增道路查询后的最短距离 I 给你一个整数 n 和一个二维整数数组 queries。 有 n 个城市,编号从 0 到 n - 1。初始时,每个城市 i 都有一条单向道路通往城市 i 1&#…

120页PPT讲解ChatGPT如何与财务数字化转型的业财融合

此方案主要聚焦于利用ChatGPT技术与数字化转型推动业财融合,实现企业的价值最大化。首先,通过ChatGPT技术,企业可以构建生成式对话机器人,自动回答常见问题,减轻人工客服的压力,提高响应速度。这种机器人具…

旋转框目标检测自定义数据集训练测试流程

文章目录 前言一、数据集制作二、模型训练2.1 划分训练集验证集:2.2 配置yaml文件:2.3 训练 前言 旋转框目标检测(Rotated bounding box object detection)是计算机视觉领域的一项技术,它用于检测图像中具有任意方向的目标。与传统的水平矩形…

【QSS样式表 - ⑥】:QPushButton控件样式

文章目录 QPushBUtton控件样式QSS示例 QPushBUtton控件样式 常用子控件 常用伪状态 QSS示例 代码: QPushButton {background-color: #99B5D1;color: white;font-weigth: bold;border-radius: 20px; }QPushButton:hover {background-color: red; }QPushButton:p…

C# Random 随机数 全面解析

总目录 前言 一、Random 是什么? 1. 简介 表示伪随机数生成器,这是一种能够产生满足某些随机性统计要求的数字序列的算法。 public class Random继承:Object → Random 2. 构造函数 3. 属性 4. 方法 二、Random 的使用 1. Next() 或 Nex…

Linux网络——UDP的运用

Linux网络——UDP的运用 文章目录 Linux网络——UDP的运用一、引入二、服务端实现2.1 创建socket套接字2.2 绑定bind2.3 启动服务器2.4 IP的绑定的细节2.5 读取数据recvfrom 三、用户端实现3.1 绑定问题3.2 发送数据sendto 四、代码五、UDP实现网络聊天室(简易版&am…

IDEA使用Alt + Enter快捷键自动接受返回值一直有final修饰的问题处理

在使用IDEA的过程中,使用快捷键Alt Enter在接收返回值时,可以快速完成参数接收,但前面一直会出现接收参数前面有final修饰的情况,效果如下所示: 看着真烦人呢,我们会发现在接受到返回值是上方有个 Declare…

【小白51单片机专用教程】protues仿真AT89C51入门

课程特点 无需开发板0基础教学软件硬件双修辅助入门 本课程面对纯小白,因此会对各个新出现的知识点在实例基础上进行详细讲解,有相关知识的可以直接跳过。课程涉及protues基本操作、原理图设计、数电模电、kell使用、C语言基本内容,所有涉及…

软件设计与体系结构

1.简要说明什么是软件体系结构,软件体系结构模型,为什么要建立软件体系结构模型? 答:软件体系结构指一个软件系统在高层次上的结构化组织方式,包括系统的组成部分和各个部分之间的关系,以及它们与环境之间的…

位置式PID-控制步进电机-位置环-stm32

基本原理 1、软件设计 本闭环控制例程是在步进电机编码器测速例程的基础上编写的,这里只讲解核心的部分代码,有些变量的设置,头文件的包含等并没有涉及到,完整的代码请参考本章配套的工程。 我们创建了4个文件:bsp_pid.c和bsp_pid.h文件用来存放PID控制器相关程序,bsp_s…