人工智能 — 点云模型

news2025/1/19 8:20:36

目录

  • 一、点云模型
    • 1、三维图像
    • 2、点云
      • 1、概念
      • 2、内容
    • 3、点云处理的三个层次
      • 1、低层次处理方法
      • 2、中层次处理方法
      • 3、高层次处理方法
  • 二、Spin image

一、点云模型

1、三维图像

三维图像是一种特殊的信息表达形式,其特征是表达的空间中三个维度的数据

和二维图像相比,三维图像借助第三个维度的信息,可以实现天然的物体和背景解耦。

对于视觉测量来说,物体的二维信息往往随射影方式而变化,但其三维特征对不同测量方式具有更好的统一性。

与相片不同,三维图像是对一类信息的统称,信息还需要有具体的表现形式,其表现形式包括:深度图(以灰度表达物体与相机的距离),几何模型(由 CAD 软件建立),点云模型(所有逆向工程设备都将物体采样成点云)。

2、点云

1、概念

点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,在获取物体表面每个采样点的空间坐标后,得到的是点的集合,称之为“点云”(Point Cloud)。

扫描资料以点的形式记录,每一个点包含有三维坐标,有些可能含有颜色信息(RGB)反射强度信息(Intensity)

点云数据是最为常见也是最基础的三维模型

2、内容

根据激光测量原理得到的点云:

包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角方向,以及仪器的发射能量,激光波长有关。

根据摄影测量原理得到的点云:

包括三维坐标(XYZ)和颜色信息(RGB)。

结合激光测量和摄影测量原理得到点云:

包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。

3、点云处理的三个层次

1、低层次处理方法

滤波方法:

双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波。

关键点:

ISS3D、Harris3D、NARF、SIFT3D。

2、中层次处理方法

特征描述:

法线和曲率的计算、特征值分析、SHOT、PFH、FPFH、3D Shape Context、Spin Image。

分割:

区域生长、Ransac 线面提取、全局优化平面提取、K-Means、Normalize Cut(Context based)、3D Hough Transform(线、面提取)、连通分析。

分类:

基于点的分类,基于分割的分类,基于深度学习的分类(PointNet,OctNet)。

3、高层次处理方法

配准:

点云配准分为粗配准(Coarse Registration)和精配准(Fine Registration)两个阶段。

精配准的目的是在粗配准的基础上让点云之间的空间位置差别最小化。

粗配准是指在点云相对位姿完全未知的情况下对点云进行配准,可以为精配准提供良好的初始值。

基于穷举搜索的配准算法: 遍历整个变换空间以选取使误差函数最小化的变换关系或者列举出使最多点对满足的变换关系。如 RANSAC 配准算法、四点一致集配准算法(4-Point Congruent Set, 4PCS)、Super4PCS 算法等。

基于特征匹配的配准算法: 通过被测物体本身所具备的形态特性构建点云间的匹配对应,然后采用相关算法对变换关系进行估计。如基于点 FPFH 特征的 SAC-IA、FGR 等算法、基于点 SHOT 特征的 AO 算法以及基于线特征的 ICL 等。

SLAM 图优化:

Ceres(Google的最小二乘优化库,很强大), g2o、LUM、ELCH、Toro、

SPA SLAM方法:

ICP、MBICP、IDC、likehood Field、NDT

三维重建:

泊松重建、 Delaunay triangulations、表面重建、人体重建、建筑物重建、树木重建。

实时重建:

重建植被或者农作物的4D(3D+时间)生长态势、人体姿势识别、表情识别。

点云数据管理:

点云压缩,点云索引(KD、Octree),点云 LOD(金字塔),海量点云的渲染。

二、Spin image

Spin image 是基于点云空间分布的最经典的特征描述方法

Spin image 的思想是将一定区域的点云分布转换成二维的 spin image,然后对场景和模型的 spin images 进行相似性度量。

生成 spin image 的步骤

1、定义一个 Oriented poin。

2、以 Oriented point 为轴生成一个圆柱坐标系。

在这里插入图片描述

P------三维网格某顶点 p 的切面

n-------p 点单位法向量

x-------p 附近的三维网格上的另一个顶点

α------x 点在 P 上投影与 p 的距离

β------x 点与 P 点的垂直距离

其中 p 和 n 定义为一个定向点(Oriented point)

3、定义 Spin image 的参数,Spin image 是一个具有一定大小(行数列数)、分辨率(二维网格大小)的 二维图像(或者说网格)。

4、将圆柱体内的三维坐标投影到二维 Spin image,这一过程可以理解为一个 Spin image 绕着法向量n旋 转360度,Spin image 扫到的三维空间的点会落到 Spin image 的网格中。

从三维空间投影到 spin-image 坐标:

在这里插入图片描述

5、根据 spin image 中的每个网格中落入的点不同,计算每个网格的强度 I,显示 spin image 时以每个网格(也就是像素)I 为依据。最直接的方法是直接计算每个网格中落入的点的个数,然而为了降低对位置的敏感度、降低噪音影响、增加稳定性,Johnson 论文中用双线性插值的方法将一个点分布到4个像素中。

在这里插入图片描述

当一个点落入网格(i,j)中时会被双线性插值分散到(i,j)、(i,j+1)、(i+1,j)、(i+1,j+1)四个网格中。

这样就获得了 spin image:

在这里插入图片描述

spin image 的三个关键参数

1、分辨率:即二维网格的也就是像素的实际尺寸,使用和三维网格相近的尺寸比较合适,因此通常是取三维网格所有边的平均值来作为 spin image 的每个网格尺寸,通常会把网格的长和宽定义成相等,即边长。边长的计算公式(e 为三维网格模型中的一条边,N 为三维网格模型中的边的总数。):
r = 1 N ∑ i = 1 N ∣ e i ∣ r=\frac{1}{N} \sum^{N}_{i=1}|e_i| r=N1i=1Nei
2、大小:即 spin image 的行数和列数,两者一般也相等。可以参考的大小 10x10 或 20x20 等。

3、support angle:即法向量夹角的大小限制。空间中顶点的法向量与创建圆柱坐标系所选点法向量之间的夹角。

在这里插入图片描述

可以看出,对角度限制以后,那些相当于切面的“凹点(大于90°)”被剔除,保留了主要信息,降低了后续的计算量。 一般角度限制范围为 60°~90° 之间。

记录学习过程,欢迎讨论交流,尊重原创,转载请注明出处~

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

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

相关文章

【Java程序员面试专栏 算法思维】三 高频面试算法题:搜索算法

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊搜索算法,以岛屿问题为切入点练习,所以放到一篇Blog中集中练习 题目关键字解题思路时间空间岛屿数量网格搜索分别向上下左右四个方向探索,遇到海…

【Oracle】玩转Oracle数据库(五):PL/SQL编程

前言 嗨,各位数据库达人!准备好迎接数据库编程的新挑战了吗?今天我们要探索的是Oracle数据库中的神秘魔法——PL/SQL编程!🔮💻 在这篇博文【Oracle】玩转Oracle数据库(五)&#xff1…

【数据结构和算法初阶(c语言)】数据结构前言,初识数据结构(给你一个选择学习数据结构和算法的理由)

1.何为数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的 数据元素的集合。本质来讲就是在内存中去管理数据方式比如我们的增删查改。在内存中管理数据的方式有很多种(比如数组结构、链式结构、树型结…

导图解文 从梦想到财富(43)只要会请客吃饭,你就能设计出好产品

系列文章说明: 本系列文章 主要是 使用 ​​​​​​​思维导图 对知乎 上一个知乎上的专题系列文章《从梦想到财富》的 一个解读。 1 文章链接 本章节 对应 《从梦想到财富》专栏的 文章链接为:只要会请客吃饭,你就能设计出好产品 2 导图…

CSS 的块级元素和行内元素

CSS 的块级元素和行内元素 常见的块级元素:h1 - h6,p,div, ul, ol, li等 常见的行内元素:a,strong,b,em,i,span等 块级元素的特点 独…

深入理解计算机系统——进程,虚拟内存,文件

文章目录 操作系统之进程线程虚拟内存文件 操作系统之进程 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。进程具有以下特征: 独立性。进程是独立运行的单位,具有自…

Camunda7.18流程引擎启动出现Table ‘camunda_platform_docker.ACT_GE_PROPERTY‘的解决方案

文章目录 1、问题描述2、原因分析3、解决方案3.1、方案一:降低mysql版本3.2、方案二:增加nullCatalogMeansCurrent参数(推荐) 4、总结 1、问题描述 需要在docker中,部署Camunda流程引擎。通过启动脚本camunda-platfor…

Linux系统添加新的网卡,并启用

在Rocky Linux系统中添加新的网卡并启用,一般涉及到以下步骤: 物理连接网卡: 首先确保你的虚拟机已经正确连接了新的网络适配器。 查看新添加的网卡: 在终端中输入以下命令来列出所有已识别的网络接口: ip link show …

1110. 删点成林

1110. 删点成林 关键要点 通过O(1)时间复杂度确认节点是否需要删除 Set to_deleteSet new HashSet<>(); Arrays.stream(to_delete).forEach(to_deleteSet::add); 使用深度优先搜索&#xff08;DFS&#xff09;遍历树 node.left dfs(node.left, s, ans); node.right …

C语言《数据结构与算法》安排教学计划课设

背景&#xff1a; 10、安排教学计划 (1) 问题描述。 学校每学期开设的课程是有先后顺序的&#xff0c;如计算机专业&#xff1a;开设《数据结构》课程之前&#xff0c;必须先开设《C语言程序设计》和《离散数学》课程&#xff0c;这种课程开设的先后顺序称为先行、后继课程关…

RabbitMQ服务启动失败

报错信息&#xff1a; 在服务中启动RabbitMQ服务显示&#xff1a; RabbitMQ 服务正在启动 . RabbitMQ 服务无法启动。 系统出错。 发生系统错误 1067。 进程意外终止 报错原因&#xff1a; 1.Erlang与RabbitMQ是否匹配 2.Erlang与RabbitMQ安装路径是否存在中文或空格 3.电…

定时任务处理-Spring Task

目录 1 前言 2 cron表达式 2.1 相关概念的介绍 2.2 举个例子(白雪警告) 2.3 使用网站自动生成 3 Spring Task的使用 3.1 导入依赖坐标 3.2 开启任务调度 3.3 自定义定时任务类 1 前言 当我们需要处理一些定时任务的时候就需要用到我们的Spring Task&#xff0c;接下来…

在vue3中使用及封装echarts

在vue3中使用及封装echarts 1.获取ECharts 从npm获取 npm install echarts2.在项目中引入ECharts&#xff08;父子组件无通信&#xff09; 导入echarts import * as echarts from echarts创建DOM结构 <template><div ref"myChart" style"width: …

数据库应用:Windows 部署 MySQL 8.0.36

目录 一、实验 1.环境 2.Windows 部署 MySQL 8.0.36 3.Windows配置环境变量 4.Navicat链接MySQL 二、问题 1.安装MySQL 报错 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机软件版本IP备注WindowsMySQL8.0.36localhost 2.Windows 部署 MySQL 8.0.…

m估计及其c++简单实现

文章目录 什么是m估计怎么求解m估计呢&#xff1f;Huber函数时的线性m估计 什么是m估计 自20世纪60年代稳健统计建立以来&#xff0c;在国内外众多学者的研究之下&#xff0c;诞生了一系列稳健统计重要理论和成果。其中最主要且广泛使用的稳健统计有以下三类&#xff1a; L-e…

深度学习系列60: 大模型文本理解和生成概述

参考网络课程&#xff1a;https://www.bilibili.com/video/BV1UG411p7zv/?p98&spm_id_frompageDriver&vd_source3eeaf9c562508b013fa950114d4b0990 1. 概述 包含理解和分类两大类问题&#xff0c;对应的就是BERT和GPT两大类模型&#xff1b;而交叉领域则对应T5 2.…

【深度学习:视频注释】如何为机器学习自动执行视频注释

【深度学习&#xff1a;视频注释】如何为机器学习自动执行视频注释 #1&#xff1a;多目标跟踪 &#xff08;MOT&#xff09; 以确保帧与帧之间的连续性#2&#xff1a;使用插值来填补空白#3: 使用微模型加速人工智能辅助视频注释#4: 自动目标分割提高目标分割质量 自动视频标记通…

Sora将创造多少算力需求?

1.1 Sora 训练与推理算力需求初步测算 Sora发布表现亮眼&#xff0c;TransformerDiffusion架构或成为文生视频大模型新范式。据Sora技术报告&#xff0c;类似于LLM将不同文本数据统一为token&#xff0c;Sora可将不同类型的视频和图像等视觉数据统一为patches&#xff0c;具体…

<script> 标签中的type

typetext/javascript typeapplication/javascript 前者是比较早的版本&#xff0c;已经废弃&#xff0c;但是浏览器大都还支持 后者是最新的规范&#xff0c;但是会有兼容性问题&#xff0c;不兼容ie6-10 typeapplication/json 比较特殊&#xff0c;不常用 简单示例 <!DOCTY…

设计模式学习笔记 - 面向对象 - 7.为什么要多用组合少用继承?如何决定该用组合还是继承?

前言 在面向对象编程中&#xff0c;有一条非常经典的设计原则&#xff1a;组合优于继承&#xff0c;多用组合少用继承。 为什么不推荐使用继承&#xff1f; 组合比继承有哪些优势&#xff1f; 如何判断该用组合还是继承&#xff1f; 为什么不推荐使用继承&#xff1f; 继承…