【译】PCL官网教程翻译(18):估计一组点的视点特征直方图(VFH)签名 - Estimating VFH signatures for a set of points

本文主要是介绍【译】PCL官网教程翻译(18):估计一组点的视点特征直方图(VFH)签名 - Estimating VFH signatures for a set of points,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

英文原文查看

估计一组点的视点特征直方图(VFH)签名

本文描述了视点特征直方图([VFH])描述符,这是一种针对聚类(如对象)识别和6DOF姿态估计问题的点簇表示方法。
下图展示了一个VFH识别和姿态估计的例子。给定一组火车数据(除最左边的点云外,最上面一行、最下面一行),学习一个模型,然后使用一个云(最左边的部分)查询/测试模型。匹配的结果按从最好到最差的顺序从左到右从左下角开始。有关更多信息,请参见使用VFH描述符和/或[VFH]的集群识别和6DOF位姿估计。
在这里插入图片描述

理论基础

视点特征直方图(或VFH)起源于FPFH描述符(参见快速点特征直方图(FPFH)描述符)。由于其速度快、识别能力强,我们决定利用FPFH的强识别结果,在保持尺度不变的同时增加视点方差。
我们对目标识别和姿态识别问题的贡献是将整个对象集群的FPFH扩展到估计值(如下图所示),并计算视点方向和每一点估计的法线之间的额外统计量。为此,我们采用了将视点方向直接混合到FPFH中相对法线角计算中的关键思想。
在这里插入图片描述
视点分量是通过收集视点方向与每个法线形成的角度的直方图来计算的。注意,我们不是指每个法线的视角,因为这不是尺度不变的,而是指中心点方向到每个法线的角度。第二个分量测量快速点特征直方图(FPFH)描述符中描述的相对平移、倾斜和偏航角,但现在测量的是中心点的视点方向和表面上的每个法线之间的角度。
在这里插入图片描述
因此,新组合的特征称为视点特征直方图(VFH)。下图展示了这个想法,新特性由两部分组成:
1/一个视点方向分量
2/由扩展的FPFH组成的表面形状分量。
在这里插入图片描述

估计VFH特性

视图特征直方图在PCL中作为pcl_features库的一部分实现。
默认的VFH实现为三个扩展的FPFH值中的每一个使用45个binning子分区,为每个点到质心的距离再加上45个binning子分区,为视点组件使用128个binning子分区,这样就得到了一个308字节的浮点值数组。它们存储在pcl::VFHSignature308点类型中。
PFH/FPFH描述符与VFH之间的主要区别在于,对于给定的点云数据集,只估计一个VFH描述符,而生成的PFH/FPFH数据的条目数与云中点的个数相同。
下面的代码片段将为输入数据集中的所有点估计一组VFH特性。

#include <pcl/point_types.h>
#include <pcl/features/vfh.h>{pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::Normal>::Ptr normals (new pcl::PointCloud<pcl::Normal> ());... read, pass in or create a point cloud with normals ...... (note: you can create a single PointCloud<PointNormal> if you want) ...// 创建VFH估计类,并将输入数据集+法线传递给它pcl::VFHEstimation<pcl::PointXYZ, pcl::Normal, pcl::VFHSignature308> vfh;vfh.setInputCloud (cloud);vfh.setInputNormals (normals);// 或者,如果cloud类型为PointNormal,则执行vfh.setInputNormals(cloud);// 创建一个空的kdtree表示,并将其传递给FPFH估计对象。// 它的内容将根据给定的输入数据集填充到对象中(因为没有其他搜索表面)。pcl::search::KdTree<pcl::PointXYZ>::Ptr tree (new pcl::search::KdTree<pcl::PointXYZ> ());vfh.setSearchMethod (tree);// 输出数据集pcl::PointCloud<pcl::VFHSignature308>::Ptr vfhs (new pcl::PointCloud<pcl::VFHSignature308> ());// 计算特征vfh.compute (*vfhs);// vfhs->points.size () 应该为 1
}

可视化VFH签名

libpcl_visualization包含一个特殊的PCLHistogramVisualization类,pcl_viewer也使用这个类自动将VFH描述符显示为浮点值的直方图。有关更多信息,请参见http://www.pointclouds.org/documentation/overview/visualiz.php。

注意
[VFH] (1, 2) http://www.willowgarage.com/sites/default/files/Rusu10IROS.pdf
@InProceedings{Rusu10IROS, author = {Radu Bogdan Rusu and Gary Bradski and Romain Thibaux and John Hsu}, title = {Fast 3D Recognition and Pose Using the Viewpoint Feature Histogram}, booktitle = {Proceedings of the 23rd IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, year = {2010}, address = {Taipei, Taiwan}, month = {October} }

这篇关于【译】PCL官网教程翻译(18):估计一组点的视点特征直方图(VFH)签名 - Estimating VFH signatures for a set of points的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy