当前位置:网站首页>点云库pcl从入门到精通 第十章
点云库pcl从入门到精通 第十章
2022-06-23 08:05:00 【海边拾贝的羊】
https://robotica.unileon.es/index.php?title=PCL/OpenNI_tutorial_4:3D_object_recognition(descriptors)
上述PCL/OpenNI tutorial官方网页,关于这一章的各个特征点的解释写的非常好
第一节 特征描述与提取的概念及相关算法
3D形状内容描述子
比较简单,看书即可~
旋转图像
The Spin Image (SI) is the oldest descriptor we are going to see here. It has been around since 1997, but it still sees some use for certain applications. It was originally designed to describe surfaces made by vertices, edges and polygons, but it has been since adapted for point clouds. The descriptor is unlike all others in that the output resembles an image that can be compared with another with the usual means.
自旋图像(SI)是我们将在这里看到的最古老的描述子。它自1997年就出现了,但在某些应用中仍有一些用途。它最初设计用于描述由顶点、边和多边形构成的曲面,但后来被改编用于点云。这个描述子不同于所有其他描述子,因为这种算法形成的描述子输出类似于一个图像,可以用通常的方法与另一个图像进行比较。
The support structure used is a cylinder, centered at the point, with a given radius and height, and aligned with the normal. This cylinder is divided radially and vertically into volumes. For each one, the number of neighbors lying inside is added up, eventually producing a descriptor. Weighting and interpolation are used to improve the result. The final descriptor can be seen as a grayscale image where dark areas correspond to volumes with higher point density.
使用的支撑结构是一个圆柱体,以点为中心,具有给定的半径和高度,并与法线对齐。这个圆柱体在径向和垂直方向上被分成若干体积。对于每一个,将内部邻居的数量相加,最终生成一个描述符。使用加权和插值来改进结果。最后的描述符可以看作是灰度图像,其中暗区域对应于具有较高点密度的体积
高清大图链接:
https://robotica.unileon.es/index.php?title=File:Spin_images.png
这个例子一出其实书上内容很容易理解了,需要特别注意,右边的三幅图像这个不是投影!不是投影!不是投影!,一看这样很容易就把这个错误理解成了在切平面上的投影,其实是两个概念!!!投影的话β其实已经没有了,但是这个坐标轴上是有β的!!!右边spin-image标签的图像其实就是旋转图像描述子了(Spin Image descriptor )
第二节 点云特征描述与提取入门级实例
pcl中描述三维特征相关基础
这一小节书里写的真抽象
首先我们要明确,我们在调用点云进行相应的计算时,有三个函数可供我们选择,分别是setInputCloud(),setIndice(),和setSearchSurface(),分别代表输入的点云集合,点云的索引和点云的搜索平面.因为setInputCloud()是必须的,我们每次都必须输入一个点云集合,所以对待确定的输入进行组合就变成了四种,如下图所示
首先我们给定两个点云集合,P和Q,两个集合中的点分别用p1,p2…pn以及q1,q2…qm表示
依次对上述四种情况进行讨论
- 情况1,索引和搜索平面都不给定
这是最常见的情况,大部分时候都是只给定一个点云集合,假设给定集合P,首先pcl会给P创建一组索引,这个索引包含P中的所有点,然后依次对索引中的点进行近邻搜索,依次搜索p1邻域,然后p2邻域…直到对P中的所有点都完成邻域搜索 - 情况2,只给定索引,不给定搜索平面
这种情况也很常见,比如我们假设给定的索引是集合P中所有点中编号(索引)为奇数的点,p(2k+1),那么索引为偶数的点就不会被执行近邻搜索的操作. - 情况3,只给定搜索平面,不给定索引
我们假设给定的搜索平面是Q,setInputCloud()输入的是P
这种情况其实就相当于,情况2中集合P的所有点的索引都被给定了,但是是在Q上进行搜索的,不是P了 - 情况4,给定搜索平面也给定索引
假设给定搜索平面是Q,输入P,给定的索引是P中的编号为奇数的点
与情况2是类似的,无非就是把情况2中对P本身的近邻搜索更换成了Q,搜索的索引还是P中编号为奇数的点
采用这四种方法的根本目的是为了节省计算,我们当然可以对吧点云的所有点都执行近邻点搜索计算,但是,在很多时候我们感兴趣的点往往只是点云中的一部分,举个例子,还是两个点集P和Q,P是从Q中筛选出来的关键点,这时候我们就可以对应情况3,把P设置为setinputcloud,Q设置为搜索平面,这样其实就相当于是对一个点云集合中的关键点执行了近邻点搜索的计算,在对关键点进行的后续计算中,大大节省了计算量.
边栏推荐
- Set接口和Set子实现类
- 自组织映射神经网络(SOM)
- Capturing packets to find repeated acks and a large number of TCP retransmissions in TCP sessions -- sack (selective acknowledgement) technology
- GTEST death test
- 7-调色板-CALayer和触摸
- 配置ASMX无法访问
- @What is the difference between controller and @restcontroller?
- MFC Radio Button分组
- Vulnhub | DC: 3 |【实战】
- Go language basic conditional statement if
猜你喜欢
![[try to hack] IP address](/img/ab/ed91f3094ac913a0d79448a2d19015.png)
[try to hack] IP address

PHP file contains -ctf

【论文笔记】Catching Both Gray and Black Swans: Open-set Supervised Anomaly Detection*

vtk.js鼠标左键滑动改变窗位和窗宽

QT irregular shape antialiasing

Check the file through the port

Use of tensorboard

Vulnhub | DC: 4 |【實戰】

看了5本书,我总结出财富自由的这些理论

vtk. JS left mouse button sliding to change window level and window width
随机推荐
Fillet the tabbar with the flutter
Ers function display of SAP mm
力扣(LeetCode)173. 二叉搜索树迭代器(2022.06.22)
Markdown learning
INT 104_ LEC 06
渲染效果图哪家好?2022最新实测(四)
走好数据中台最后一公里,为什么说数据服务API是数据中台的标配?
Quickly create a consumer cluster
开源软件、自由软件、Copyleft、CC都是啥,傻傻分不清楚?
MFC Radio Button分组
Crawler frame
odoo项目 发送信息到微信公众号或企业微信的做法
Ignore overlength parameter violation
ThreadPoolExecutor线程池实现原理与源码解析
Socket programming (multithreading)
Easygbs cannot play video streams in webrtc format. What is the reason?
Regular expression use cases
Does huangrong really exist?
How to start Jupiter notebook in CONDA virtual environment
Markdown学习