0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文详解点云及三维图像处理技术

jt_rfid5 来源:csdn 2023-03-31 16:07 次阅读

点云概念

点云与三维图像的关系:三维图像是一种特殊的信息表达形式,其特征是表达的空间中三个维度的数据,表现形式包括:深度图(以灰度表达物体与相机的距离),几何模型(由CAD软件建立),点云模型(所有逆向工程设备都将物体采样成点云)。和二维图像相比,三维图像借助第三个维度的信息,可以实现天然的物体——背景解耦。点云数据是最为常见也是最基础的三维模型。点云模型往往由测量直接得到,每个点对应一个测量点,未经过其他处理手段,故包含了最大的信息量。这些信息隐藏在点云中需要以其他提取手段将其萃取出来,提取点云中信息的过程则为三维图像处理。

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

点云的获取设备:RGBD设备是获取点云的设备,比如PrimeSense公司的PrimeSensor、微软的Kinect、华硕的XTionPRO。

点云的内容:根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角方向,以及仪器的发射能量,激光波长有关。

根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。
结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。

点云的属性:空间分辨率、点位精度、表面法向量等。

点云存储格式:*.pts; *.asc ; *.dat;.stl ; [1].imw;.xyz;.las。LAS格式文件已成为LiDAR数据的工业标准格式,LAS文件按每条扫描线排列方式存放数据,包括激光点的三维坐标、多次回波信息、强度信息、扫描角度、分类信息、飞行航带信息、飞行姿态信息、项目信息、GPS信息、数据点颜色信息等。

1bf0d968-bbd9-11ed-bfe3-dac502259ad0.png

C–class(所属类)

F一flight(航线号)

T一time(GPS时间)

I一intensity(回波强度)

R一return(第几次回波)

N一number of return(回波次数)

A一scan angle(扫描角)

RGB一red green blue(RGB颜色值)

点云的数据类型:

(1)pcl::PointXYZ

PointXYZ 成员:float x,y,z;表示了xyz3D信息,可以通过points[i].data[0]或points[i].x访问点X的坐标值

(2)pcl::PointXYZI

PointXYZI成员:float x, y, z, intensity; 表示XYZ信息加上强度信息的类型。

(3)pcl::PointXYZRGB

PointXYZRGB 成员:float x,y,z,rgb; 表示XYZ信息加上RGB信息,RGB存储为一个float。

(4)pcl::PointXYZRGBA

PointXYZRGBA 成员:float x , y, z; uint32_t rgba; 表示XYZ信息加上RGBA信息,RGBA用32bit的int型存储的。

(5) PointXY 成员:float x,y;简单的二维x-y点结构

(6)Normal结构体:表示给定点所在样本曲面上的法线方向,以及对应曲率的测量值,用第四个元素来占位,兼容SSE和高效计算。

点云的处理

点云处理的三个层次:Marr将图像处理分为三个层次,低层次包括图像强化,滤波,关键点/边缘检测等基本操作。中层次包括连通域标记(label),图像分割等操作。高层次包括物体识别,场景分析等操作。工程中的任务往往需要用到多个层次的图像处理手段。

PCL官网对点云处理方法给出了较为明晰的层次划分,如图所示。

1c0d4418-bbd9-11ed-bfe3-dac502259ad0.jpg

此处的common指的是点云数据的类型,包括XYZ,XYZC,XYZN,XYZG等很多类型点云,归根结底,最重要的信息还是包含在pointpcl::xyz中。可以看出,低层次的点云处理主要包括滤波(filters),关键点(keypoints)/边缘检测。点云的中层次处理则是特征描述(feature),分割(segmention)与分类。高层次处理包括配准(registration),识别(recognition)。可见,点云在分割的难易程度上比图像处理更有优势,准确的分割也为识别打好了基础。

低层次处理方法:

①滤波方法:双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波。②关键点:ISS3D、Harris3D、NARF,SIFT3D

中层次处理方法:

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

②分割与分类:

分割:区域生长、Ransac线面提取、全局优化平面提取

K-Means、Normalize Cut(Context based)

3D Hough Transform(线、面提取)、连通分析

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

高层次处理方法:

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

精配准的目的是在粗配准的基础上让点云之间的空间位置差别最小化。应用最为广泛的精配准算法应该是ICP以及ICP的各种变种(稳健ICP、point to plane ICP、Point to line ICP、MBICP、GICP、NICP)。

粗配准是指在点云相对位姿完全未知的情况下对点云进行配准,可以为精配准提供良好的初始值。当前较为普遍的点云自动粗配准算法包括基于穷举搜索的配准算法和基于特征匹配的配准算法。

基于穷举搜索的配准算法:遍历整个变换空间以选取使误差函数最小化的变换关系或者列举出使最多点对满足的变换关系。如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、表面重建,人体重建,建筑物重建,树木重建。结构化重建:不是简单的构建一个Mesh网格,而是为场景进行分割,为场景结构赋予语义信息。场景结构有层次之分,在几何层次就是点线面。实时重建:重建植被或者农作物的4D(3D+时间)生长态势;人体姿势识别;表情识别;

④点云数据管理:点云压缩,点云索引(KD、Octree),点云LOD(金字塔),海量点云的渲染。

编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    26

    文章

    1226

    浏览量

    55831
  • 三维图像
    +关注

    关注

    2

    文章

    18

    浏览量

    9702
  • 深度学习
    +关注

    关注

    73

    文章

    5239

    浏览量

    119922

原文标题:【光电智造】点云及三维图像处理综述

文章出处:【微信号:今日光电,微信公众号:今日光电】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    比较好的三维图像绘制的函数有哪些啊

    比较好的三维图像绘制的函数有哪些啊
    发表于 09-30 09:08

    labview 三维图像显示不出来,求助~

    简单的三维图像显示,却显示不出来,新人,球帮助~
    发表于 04-08 20:33

    三维曲线导入到三维图形控件中

    三维线条图做了个同心圆曲线,怎么才能把它导入到三维图形控件中呢?如图
    发表于 10-27 13:49

    java中怎么调用matlab绘制三维图形?

    各位大侠,请问在java中怎么调用matlab绘制三维图形啊?求教具体步骤……
    发表于 11-18 17:14

    关于三维图的问题

    请问各位大神,如何在labview做的三维图中确定鼠标的坐标,也就是鼠标每次相应点的个坐标能显示出来。。。求各位大神帮帮忙。
    发表于 09-26 18:05

    三维图片控件的问题

    各位大神,请问该如何在三维图片控件里面画出扇形呢?跪谢,,,是用创建网格函数吗?
    发表于 10-22 20:32

    labview前面板网页发布后,浏览器为何无法显示三维图片控件的图像

    labview前面板网页发布后,浏览器无法显示三维图片控件的图像,而程序前面板中有图像显示,应该如何设置?
    发表于 04-18 22:13

    LabVIEW导入三维图加载不出来的原因

    程序没有报错,但是三维图加载不出来,在首次编程的时候三维图成功导入并且是可以加载的,如第张图所示,但是保存后再打开就加载不出三维图了,或是
    发表于 04-27 15:49

    三维快速建模技术三维扫描建模的应用

    的HANDYSCAN三维激光扫描仪采集它的三维信息,然后利用Vxelements软件对多站式
    发表于 08-07 11:14

    基于FPGA+DSP的三维图像信息处理系统设计

      三维图像信息处理直是图像视频处理领域的热点和难点,目前国内外成熟的三维信息
    发表于 06-24 06:11

    想问下如果知道个物体的三维集,labview有没有哪个部件,能够用给出的集绘制成三维图,类似3dmax的效果

    想问下如果知道个物体的三维集,labview有没有哪个部件,能够用给出的集绘制成三维图,类似3dmax的效果如题
    发表于 07-02 18:26

    如何设计三维图形加速系统?

    随着图形处理的巨额运算量,CPU变得不堪重负。此时,需要使用特定的硬件设备来为嵌入式CPU承担图形处理的任务。具有三维图形硬件加速能力的ARM+FPGA架构嵌入式图形系统就是其中种解
    发表于 10-18 07:47

    光线追踪如何实现实时三维图形?

    什么是光线追踪?光线追踪如何实现实时三维图形?
    发表于 02-26 07:03

    三维图像详解

    三维图像详解 引言 计算机显示器就是一个有两个真实维度(高和宽)的显示器。但当您看电影(如《玩具总动员2》)或玩游戏(如《古墓丽影》
    发表于 08-03 08:35 2445次阅读
    <b class='flag-5'>三维图像</b><b class='flag-5'>详解</b>

    使用深度学习进行三维图像处理

    的 DICOM 或 NIfTI 图像进行分析。还可以在显微镜检查中使用三维图像处理技术,以检测和分析组织标本或跟踪神经元。  除医学成像以外,还可以使用
    的头像 发表于 11-05 17:43 2949次阅读