人工智能 — 点云模型

目录

  • 一、点云模型
    • 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.mzph.cn/news/702832.shtml

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

相关文章

荣耀手机如何开启地震预警功能

1、打开荣耀手机,进入“设置”,在搜素栏输入“地震”。 2、进入“安全-应急预警通知”功能栏。 3、开启“地震预警”。 4、查看“预警演示教程”。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e207e356bb634c11adf926c6a53e48cc.png…

Mysql学习之事务日志redolog深入剖析

Mysql 事务日志 redo log 事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现的呢? 事务的隔离性由锁机制实现。而事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。 REDO LOG 称为重做日志&…

OpenGL ES (OpenGL) Compute Shader 计算着色器是怎么用的?

OpenGL ES (OpenGL) Compute Shader 是怎么用的? Compute Shader 是 OpenGL ES(以及 OpenGL )中的一种 Shader 程序类型,用于在GPU上执行通用计算任务。与传统的顶点着色器和片段着色器不同,Compute Shader 被设计用于在 GPU 上执行各种通用计算任务,而不是仅仅处理图形…

挑战杯 基于情感分析的网络舆情热点分析系统

文章目录 0 前言1 课题背景2 数据处理3 文本情感分析3.1 情感分析-词库搭建3.2 文本情感分析实现3.3 建立情感倾向性分析模型 4 数据可视化工具4.1 django框架介绍4.2 ECharts 5 Django使用echarts进行可视化展示5.1 修改setting.py连接mysql数据库5.2 导入数据5.3 使用echarts…

供应链大数据:穿越经济迷雾的指南针

随着经济形势的变幻莫测,企业运营面临着前所未有的挑战。在这个充满不确定性的时代,供应链大数据如同一盏明亮的指南针,为企业提供精准的方向指引。下面,我们将深入探讨供应链大数据如何帮助企业洞察市场趋势、优化库存管理、降低…

2.deeplabv3+的主干网络(mobilenet网络)

deeplabv3的论文中用了resnet网络,在这里用轻量级网络mobilenet替换resnet,下面分别是两个网络的代码。 1.mobilenet网络 代码如下: import math import os import cv2 import numpy as np import torch import torch.nn as nn import tor…

基于YOLOv8深度学习+Pyqt5的电动车头盔佩戴检测系统

wx供重浩:创享日记 对话框发送:225头盔 获取完整源码源文件已标注的数据集(1463张)源码各文件说明配置跑通说明文档 若需要一对一远程操作在你电脑跑通,有偿89yuan 效果展示 基于YOLOv8深度学习PyQT5的电动车头盔佩戴检…

网络防御-内容安全

目录 内容安全IAE引擎DFI和DPI技术 --- 深度检测技术DPI --- 深度包检测技术DFI --- 深度流检测技术 入侵防御(IPS)入侵检测的方法异常检测误用检测 签名ID --- 签名的标识检测范围 内容安全 攻击可能只是一个点,防御需要全方面进行 IAE引擎 …

2 easy 27. 移除元素

双指针法 复杂度: //给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 // // 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 // // 元素的顺…

【大数据】Flink SQL 语法篇(四):Group 聚合

Flink SQL 语法篇(四):Group 聚合 1.基础概念2.窗口聚合和 Group 聚合3.SQL 语义4.Group 聚合支持 Grouping sets、Rollup、Cube 1.基础概念 Group 聚合定义(支持 Batch / Streaming 任务):Flink 也支持 G…

RCE (Remote ????? execution) --->CTF

看这个标题就知道今天的内容不简单!!!! 那么就来讲一下我们的RCE吧 目录 ​编辑 1. &? |? ||? &&? 2.PHP命令执行函数&& ||"" 1."" &…

6、进程、服务管理

一、进程管理 1.概述 进程是正在执行的程序或命令,每一个进程都独立运行,都有自己的地址空间,并占用一定的系统资源以后开发会遇见: 端口占用出现程序假死、卡死 2.查看系统运行进程 语法 ps 参数ps –a:显示当前终端下的所有…

智能SQL生成:后端技术与LLM的完美结合

文章目录 引言一、什么是大模型二、为什么选择LLM三、开发技术说明四、系统架构说明五、编码实战1. Maven2. 讯飞大模型配置类3. LLM相关的封装4. 编写LLM的service5. 编写controller6. 运行测试 六、总结 引言 本篇文章主要是关于实现一个类似Chat2DB的根据自然语言生成SQL的…

开源工具和框架

目录 开源工具和框架 一、 开源工具和框架 二、开源工具和框架在现代软件开发中的角色 1、基础设施建设: 2、开发效率提升: 3、代码质量保障: 4、技术创新: 三、广泛使用的开源项目分析 3.1、Linux 3.2、Git 3.3、Docke…

【Java程序设计】【C00313】基于Springboot的物业管理系统(有论文)

基于Springboot的物业管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的物业管理系统,本系统有管理员、物业、业主以及维修员四种角色权限; 管理员进入主页面,主要功能包…

mybatis总结传参三

十、(不推荐)多个参数-按位置传参 参数位置从 0 开始, 引用参数语法 #{ arg 位置 } , 第一个参数是 #{arg0}, 第二个是 #{arg1} 注意: mybatis-3.3 版本和之前的版本使用 #{0},#{1} 方式, 从 myba…

stream流-> 判定 + 过滤 + 收集

List<HotArticleVo> hotArticleVos hotArticleVoList .stream() .filter(x -> x.getChannelId().equals(wmChannel.getId())).collect(Collectors.toList()); 使用Java 8中的Stream API对一个名为hotArticleVoList的列表进行过滤操作&#xff0c;筛选出符合指定条件…

SQL进阶(三):Join 小技巧:提升数据的处理速度

复杂数据结构处理&#xff1a;Join 小技巧&#xff1a;提升数据的处理速度 本文是在原本sql闯关的基础上总结得来&#xff0c;加入了自己的理解以及疑问解答&#xff08;by GPT4&#xff09; 原活动链接 用到的数据&#xff1a;链接 提取码&#xff1a;l03e 目录 1. 课前小问…

stable-diffusion-webui+sadTalker开启GFPGAN as Face enhancer

接上一篇&#xff1a;在autodl搭建stable-diffusion-webuisadTalker-CSDN博客 要开启sadTalker gfpgan as face enhancer&#xff0c; 需要将 1. stable-diffusion-webui/extensions/SadTalker/gfpgan/weights 目录下的文件拷贝到 :~/autodl-tmp/models/GFPGAN/目录下 2.将G…

Spring Boot Profiles简单介绍

Spring Boot application.properties和application.yml文件的配置 阅读本文之前&#xff0c;请先阅读上面的配置文件介绍。 Spring Boot Profiles是一个用于区分不同环境下配置的强大功能。以下是如何在Spring Boot应用程序中使用Profiles的详细步骤和代码示例。 1. 创…