【深度学习初探】Day32 - 三维点云数据基础

【深度学习初探】Day32 - 三维点云数据基础


文章目录

  • 【深度学习初探】Day32 - 三维点云数据基础
    • 一、点云的定义
    • 二、点云的获取
    • 三、点云的属性
    • 四、点云的存储格式
      • 4.1 pts
      • 4.2 LAS
      • 4.3 PCD
      • 4.4 .xyz
      • 4.5 .pcap
    • 五、三维点云的表示方法
      • 5.1 二维投影
      • 5.2 三维体素
      • 5.3 原始点云
      • 5.4 图
    • 六、点云的算法库


        我们在做 3D 视觉的时候,处理的主要是点云,点云相较于图像有着不可替代的优势,也就是深度值,三维点云直接提供了三维空间的数据,而不需要像二维图像那样通过透视几何反推三维数据。

一、点云的定义

        点云是某个坐标系下的点的集合。这些点包含了丰富的信息,包括三维坐标 X,Y,Z、颜色、分类值、强度值、时间等等。点云在组成特点上分为两种,一种是有序点云,一种是无序点云。

  • 有序点云:一般由深度图还原的点云,有序点云按照图方阵一行一行从左上角到右下角排列,其中还会有一些无效点。有序点云按顺序排列,很容易找到它的相邻点信息,在某些处理下还是比较便利的,但是获取有序点云难度很大,在很多情况下是无法获取的。
  • 无序点云:无序点云更为常见和普遍,它就是点的集合,点的排列之间无任何顺序,点顺序交换后也不会有任何影响。

二、点云的获取

        见 Day31 。

三、点云的属性

        点云可以表达物体的空间轮廓和具体位置,它本身和视角无关,可以任意旋转,从任何角度和方向观察,不同的点云只要在同一个坐标系下,就可以直接融合。

四、点云的存储格式

        点云存储格式有很多,主要有:pts、LAS、PCD、.xyz 、.pcap 等。

4.1 pts

        pts 格式是最简便的点云格式,直接按 XYZ 顺序存储点云数据,可以是整型或者浮点型。内容就是 XYZ 三维坐标。

这里是引用

4.2 LAS

        LAS 格式是通过激光雷达(LiDAR)扫描得到的,它的格式也有一个统一的规定:

C:class(所属类),
F:flight(航线号),
T:time(GPS 时间),
I:intensity(回波强度),
R:return(第几次回波),
N:number of return(回波次数),
A:scan angle(扫描角),
RGB:red green blue(RGB 颜色值)。
在这里插入图片描述

4.3 PCD

         PCD格式是用于PCL库(一种现有的三维处理较成熟的库)的一种特殊的格式。是 PCL 库官方指定格式,典型的为点云量身定制的格式。优点是支持 n 维点类型扩展机制,能够更好地发挥 PCL 库的点云处理性能。文件格式有文本和二进制两种格式。

这里是引用

4.4 .xyz

         .xzy 相较于pts,多了三列数据,后面三个数字是点的法向量,数字间用空格分隔。

这里是引用

4.5 .pcap

         .pcap是一种通用的数据流格式,现在流行的 Velodyne 公司出品的激光雷达默认采集数据文件格式。它是一种二进制文件。

五、三维点云的表示方法

        点云的表示方法有很多,根据表示方法不同,处理方式也会不同。
         第一种较容易的处理方式是,将其投影为二维图像或转换为三维体素(Voxel),从而将无序的空间点转变为规则的数据排列。
         第二种是使用原始点作为表示,不做任何变换,可以最大限度保留所有原始信息。
         此外,点云还有一种表示,称为网格(Mesh),其可以被看作是构建了局部连接关系的点,即为图。将点云看作图数据,可以使用图领域新兴的图卷积(Graph Convolution)技术进行处理。

这里是引用

5.1 二维投影

        二维投影把点云变为了图像,让卷积神经网络(CNN)应用于点云数据成为可能。

5.2 三维体素

        三维体素其实是对点云的特征提取,将点云体素化(Voxelization),将其转换为空间上规则排布的栅格。然后把二维卷积神经网络拓展一个维度,让它可以处理三维数据,这样的神经网络我们称为三维卷积神经网络(3DCNN),而三维体素可以直接应用在这种表示上(因为其规则排布,可卷积)。

5.3 原始点云

        点云不做处理,直接展示,将点云可视化,可以把数据信息损失降到最低。

5.4 图

        三维点云数据可以看作图数据的一种,而图网络很多思想可以应用于点云处理。因此,图卷积(Graph Convolution Network, GCN)可以用来处理点云数据。GCN 又分支为基于谱的图卷积(Spectralbased GCN)和基于空间的图卷积(Spatial-based GCN)。

六、点云的算法库

        关于点云,现今已经有很多算法库支持处理点云,主流的三维算法库都可以处理。

  • PCL(Point Cloud Library):这个库就是专门处理点云的。可以在多平台部署,本身是一个大型跨平台开源C++ 编程库。它实现了大量点云相关的通用算法和高效数据结构,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等操作,非常方便移动端开发。
  • VCG 库(Visualization and Computer Graphics Library)是专门为处理三角网格而设计的,该库很大,且提供了许多先进的处理网格的功能,以及比较少的点云处理功能(不推荐)。
  • CGAL(Computational Geometry Algorithms Library),计算几何算法库,以 C++ 库的形式,提供方便、高效、可靠的几何算法,实现了很多处理点云及处理网格的算法。
  • Open3D 是一个可以支持 3D 数据处理软件快速开发的开源库。它最大的优点是支持 Python。它是从一开始就开发出来的,带有很少的、经过仔细考虑的依赖项。从源代码进行最小的编译,代码干净、样式一致。支持点云、网格、RGB-D等数据。

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

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

相关文章

Node.js创建一个简单的WebSocket接口,实现通信交互

Node.js创建一个简单的WebSocket接口,实现通信交互 一、为什么使用WebSocket? WebSocket,最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话&#xf…

IIS + Axios 跨域设置

1、服务器端设置IIS &#xff08;web.config) 即可&#xff0c;不需要对django settings.py做配置&#xff08;python manage.py runserver 才需要settings.py配置跨域&#xff0c;IIS在iis上配&#xff09; 网站根目录的web.config中加上这段&#xff1a; <httpProtocol&…

基于开源的JAVA mongodb jdbc 驱动 使用教程

基于开源的JAVA mongodb jdbc 驱动 使用教程介绍 介绍 本文介绍一款开源的基于JAVA的 Mongodb JDBC 驱动使用教程 开源地址 https://gitee.com/bgong/jdbc-mongodb-driver功能价值 与mybaits融合&#xff1a;复用mybatis的功能特性&#xff0c;如:缓存,if动态判断标签等特…

[Git]-{修改远程仓库地址}

详细步骤 1.查看仓库地址 git remote -v git remote -v origin http://10.1.128.48:12080/assr403t/bootloader (fetch) origin http://10.1.128.48:12080/assr403t/bootloader (push) 2. 修改为另一个仓库地址 git remote set-url origin <新地址> git remote set-…

亚马逊云科技 re:Invent 大会 - ElastiCache Serverless模式来袭

亚马逊云科技 re:Invent 大会 - ElastiCache Serverless模式来袭 本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道。 文章目录 亚马逊云…

GoLang 学习 (入门)

go run 1.go 执行命令 go build 1.go 打包为exe 快速 并且无依赖 在开始项目 需要 生成 go.mod go mod init mod 终端执行 go: creating new go.mod: module mod go: to add module requirements and sums:go mod tidy go的基本目录结构 src ------gocode ------------项…

日期问题(C语言蓝桥杯2017年题目G)

分析&#xff1a;我们输入的AA/BB/CC有三种情况&#xff0c;所以我们编写一个函数&#xff0c;来判断三个数字作为 年 月 日是否合法&#xff0c;合法就输出&#xff0c;不合法就终止&#xff0c;还要查重&#xff0c;如果有相同的时间&#xff0c;就不重复打印&#xff0c;…

如何看待「前端已死论」?

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

oracle 修改监听端口

oracle的监听是非常重要的一个功能组件&#xff0c;在Oracle数据库服务器中&#xff0c;通过一个叫“监听器”的组件接收来自客户端的连接请求。它是客户端和服务器端的中间组件。监听器&#xff08;LISTENER&#xff09;是位于服务器端的、独立运行的一个后台进程&#xff0c;…

微信小程序 实现上传图片前裁剪功能

前言 技术支持&#xff1a; wx-cropper 裁剪 总体思路是&#xff1a;安装完wx-cropper之后就它当成组件使用。在使用页面的地方引入组件就行。上传图片的逻辑不变&#xff0c;在 通过wx.chooseMedia() Api 拿到图片之后传递给子组件&#xff0c;子组件在拿到图片进行裁剪处理等…

路由器原理

目录 一.路由器 1.路由器的转发原理 2.路由器的工作原理 二.路由表 1.路由表的形成 2.路由表表头含义 直连&#xff1a; 非直连&#xff1a; 静态 静态路由的配置 负载均衡&#xff08;浮动路由&#xff09; 默认路由 动态 三.交换与路由对比 一.路由器 1.路由器…

快速多列查找匹配关键字

实例需求&#xff1a;根据第一列专业名称&#xff0c;在“专业分类指导目录”中&#xff0c;针对三个学历层次&#xff08;研究生、本科生、专科生&#xff09;分别查找对应专业类别&#xff0c;填写在对应位置&#xff0c;即截图中的黄色区域。 需要注意如下两点&#xff1a; …

OpenCV开发:编译安装opencv

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它为开发者提供了丰富的工具和函数&#xff0c;用于处理图像和视频数据&#xff0c;以及执行各种计算机视觉任务。 以下是 OpenCV 的一些主要特点和功能&#xff…

【Java】Spring Bean有几种配置方式?

定义 Spring Bcan 的3 种方式分别是:基于XML 的方式配置、基于注解扫播方式配置、基于元数据类的配置。 SpringBean是Spring中最基本的组成单元&#xff0c;Spring 官方文档对 Bean 的解释是这样的:In Spring, the objects that form the backbone of your application and tha…

华为HCIP认证H12-821题库上

1、2.OSPF核心知识 &#xff08;单选题&#xff09;下面关于0SPF的特殊区域&#xff0c;描述错误的是: A、Totally Stub Area允许ABR发布缺省的三类LSA,不接受五类LSA和细化三类LSA B、NSSA Area和Stub区域的不同在于该区域允许自治系统外部路由的引入&#xff0c;由ABR发布…

Linux完成mysql数据库的备份与恢复

背景&#xff1a; 在进行数据报表的测试过程中&#xff0c;为了让我们的测试数据更加真实&#xff0c;因此我们需要同步生产数据到测试环境。方式有很多种&#xff0c;我这里介绍的是通过Linux完成数据同步。 备份数据&#xff1a; 执行命令&#xff1a;mysqldump -uxxx -pxxx…

PyCharm连接远程服务器

要求&#xff1a;PyCharm专业版才支持远程服务 一、创建远程连接 先建立本地与远程服务器之间的SSH连接 1、配置连接 2、建立SSH连接&#xff0c;选择文件传输协议 SFTP 3、设置服务器名&#xff08;可以随意命名&#xff09; 4、配置 SSH连接 点击 172.18.1.202 配置…

字符串排序算法

题目描述&#xff1a; 题目描述 设计一个程序&#xff0c;实现对输入字符串数组按字符串长度进行排序功能。具体要求如下&#xff1a;编写函数void sortByLength(char *strArray[], int numStrings);&#xff0c;用于对输入的字符串数组 strArray 按字符串长度进行升序排序。在…

bugkuctf web随记wp

常规思路&#xff1a; 1&#xff0c;源码2&#xff0c;抓包3&#xff0c;御剑dirsearch扫后台检查是否有git文件未删除4&#xff0c;参数 本地管理员&#xff1a;1&#xff0c;cu看源码&#xff0c;sci看源码有一串东西2&#xff0c;base64解码后是test123猜测是密码3&#x…

数据处理架构

目录 Lambda架构 Kappa架构 Lambda架构 Lambda架构由Twitter的首席科学家Nathan Marz提出。这种架构试图平衡延迟、吞吐量、容错性和系统复杂性四个方面&#xff0c;以满足大数据和实时数据处理的需求。Lambda架构主要由三个层次组成&#xff1a; 批处理层&#xff08;Batch…