人工智能 — 点云模型

目录

  • 一、点云模型
    • 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° 之间。

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

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

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

相关文章

涵盖5大领域的机器学习工具介绍

随着数据的产生及其使用量的不断增加,对机器学习模型的需求也在成倍增加。由于ML系统包含了算法和丰富的ML库,它有助于分析数据和做出决策。难怪机器学习的知名度越来越高,因为ML应用几乎主导了现代世界的每一个方面。随着企业对这项技术的探…

Mockito单元测试Mockito对Service层的测试案例

前言 以下是关于Mockito的API使用文档 官网:http://mockito.org/ 官网英文API文档:https://javadoc.io/static/org.mockito/mockito-core/5.10.0/help-doc.html#index 非官方中文API文档:https://gitee.com/wnboy/mockito-doc-zh#mockito-%E…

软件运维维保方案-套用文档

软件运维维保方案 项目情况 1.1 项目背景 简述项目的来源、目的和重要性。 说明项目的规模、预算和预期目标。 1.2 项目现状 分析当前系统/软件的运行状态、存在的问题和潜在风险。 提供最近一次的维护报告或相关统计数据。服务简述 2.1 服务内容 明确运维服务的具体内容&…

JSON(javaScript Object Notation,Js对象标记)—我耀学IT

Json是一种轻量级的数据交换格式,目前使用非常广泛,是一种轻量级的数据交换格式。易于人阅读和编写,可以在多种语言之间进行数据交换 。同时也易于机器解析和生成 1.1json的值: 值可以是对象、数组、数字、字符串或者三个字面值(false、nul…

【数据分析之Numpy基础003】数组形状大变身!轻松掌握改变数组形状的技巧

处理数组的一项重要工作就是改变数组的维度,包括提高数组的维度和降低数组的维度,还包括数组的转置、拼接、分隔等。 Numpy为大家提供了大量的API可以很轻松的完成这些数组的操作。 1、改变数组的维度 如上篇文章使用到的reshape方法,将一维…

各国的通胀是多少?央行又使用那些指标?昂首资本1分钟分享

各国的通胀是多少?央行又使用哪些指标?今天昂首资本1分钟快速分享 在美国和欧盟,作为一个中期通胀目标,使用了一个目标指标,通常是为长达两年的前景计算的。在美国和欧盟,中期通胀目标是2%。在俄罗斯&…

【NCom】:通过高温气相合成调节Pt-CeO2相互作用以提高晶格氧的还原性

摘要:在这项工作中,我们比较了通过两种方法制备的 Pt 单原子催化剂(SAC)的 CO 氧化性能:(1)传统的湿化学合成(强静电吸附strong electrostatic adsorption–SEA)&#xf…

Mybatis总结--传参

MyBatis 传递参数:从 java 代码中把参数传递到 mapper.xml 文件 六、一个简单参数: Dao 接口中方法的参数只有一个简单类型( java 基本类型和 String ), 占位符 #{ 任意字符 } ,和方法的参数名无关…

电脑msvcp100.dll丢失了怎么办?msvcp100.dll丢失的5种解决方法

当计算机系统中无法找到msvcp100.dll文件,或者遭遇msvcp100.dll丢失的情况时,可能会引发一系列运行问题和功能障碍。msvcp100.dll是Microsoft Visual C Redistributable Package的一部分,这是一个至关重要的动态链接库文件,对于许…

如何利用EXCEL批量插入图片

目录 1.excel打开目标表格; 2.点开视图-宏-录制宏,可以改宏的名字或者选择默认; 3.然后点开视图-宏-查看宏 4.点编辑进去 5.修改代码: (1)打开之后会显示有一堆代码 (2)将这个…

【C++进阶】STL容器--list底层剖析(迭代器封装)

目录 前言 list的结构与框架 list迭代器 list的插入和删除 insert erase list析构函数和拷贝构造 析构函数 拷贝构造 赋值重载 迭代器拷贝构造、析构函数实现问题 const迭代器 思考 总结 前言 前边我们了解了list的一些使用及其注意事项,今天我们进一步深入…

132 Linux 系统编程9 ,IO操作,lseek 函数,truncate函数,查看文件的表示形式

一 lseek 函数 函数说明:此函数用于文件偏移 Linux中可使用系统函数lseek来修改文件偏移量(读写位置) 每个打开的文件都记录着当前读写位置,打开文件时读写位置是0,表示文件开头,通常读写多少个字节就会将读写位置往后移多少个字…

PixPin:一键搞定截图、长截图、贴图、GIF

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是PixPin?①PixPin②核心功…

C语言每日一题(61)盛最多水的容器

题目链接 力扣 11 盛最多水的容器 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水…

flet 读取本地音频文件的信息,歌名,歌手,歌曲长度,封面

请先安装 pip install flet, tinytag 组件 tinytag 是用来读取音频文件的信息的 测试用最好找一个有封面的音频的文件, 我是windows电脑,打开预览模式,选中文件时候能够右边显示图片, 如下,我电脑上某个音频文件的封面 import flet as ft from tinytag import TinyTag import…

全方位了解CRM系统:功能、种类和费用详细解说

尽管CRM已经横空出世20余年,但在国内普及率依旧不足20%。很多企业管理者、业务负责人对CRM是什么?CRM的作用、类型和价格等概念一头雾水。希望通过这篇文章深入浅出的讲解让大家对CRM管理软件从陌生到熟知。 一、CRM是什么? 什么是CRM&…

nginx高级配置详解

目录 一、网页的状态页 1、状态页的基本配置 2、搭配验证模块使用 3、结合白名单使用 二、nginx 第三方模块 1、echo模块 1.1 编译安装echo模块 1.2 配置echo模块 三、nginx变量 1、内置变量 2、自定义变量 四、自定义图标 五、自定义访问日志 1、自定义日志格式…

Informer:高效长序列时间序列预测模型(更新中)

文章行文思路: 目录 一、背景:1.时间序列介绍:2.LSTF介绍:3.Transformer与Informer的关系: 二、Transformer:1.Transformer简介:2.Transformer整体架构:3.模型输入:3.1第…

SSRF靶场实战

SSRF(curl) SSRF(file_get_content)

源代码管理——码云Gitee

目录 Git安装 Gitee配置SSH 源代码管理常规操作 1.idea配置git 2.常规操作 Git安装 安装Git是进行源代码管理的基本步骤之一。以下是在本地安装Git的通用步骤,适用于Windows系统: 下载Git安装程序: 访问Git官网的下载页面:Git官网下载地…