NNNNNathan
slam博主,不定期更新感知相关博文。
展开
-
『Open3D』安装与点云格式通识
介绍了open3d的安装和当前适用与存储点云信息的文件格式,并详细介绍了pcd与ply两种格式。原创 2023-02-05 14:23:29 · 4070 阅读 · 0 评论 -
『OPEN3D』1.1 点云处理 python篇
介绍了open3d中对点云的基层操作内容原创 2023-02-08 13:47:15 · 11185 阅读 · 5 评论 -
点云处理指南介绍
指南目录,Open3D与PCL内容介绍原创 2023-02-02 15:51:52 · 11745 阅读 · 0 评论 -
『Open3D』1.10 Tensor数据处理
open3d中实现了自身的数据类型,用于open3d中内部算法的数值计算,但基础使用上与numpy类似。原创 2024-01-19 22:17:05 · 246 阅读 · 0 评论 -
『OPEN3D』1.12 RGBD三维重建
下面先来跑通重建代码,然后对代码进行解释, 这里以TUM的rgbd_dataset_freiburg3_long_office_household数据集为例,使用前600帧图像进行重建,重建结果如下:本专栏地址:本文章地址:『OPEN3D』1.12 RGBD三维重建-CSDN博客。原创 2024-01-01 10:33:44 · 1311 阅读 · 2 评论 -
『OPEN3D』1.7 点云拟合问题
本专栏地址:https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482原创 2023-12-24 13:49:58 · 484 阅读 · 0 评论 -
『OPEN3D』1.9 Ray Casting
ray casting 极大的简化了3D物体或场景到图片的渲染。在假设光线不会二次或多次反射的情况下,从相机的focal point为中心点每个像素根据设定的FOV计算得到每个像素上对应的光线方向,并从该方向射出所有光线,如若光线与场景中的物体相交,则记录下来,并选取距离与相机最短的物体作为该光线的结果映射会图像上。结合上面的内容,可以根据光线与物体相交得到的深度信息来创建物体的点云信息,在虚拟的环境中可以使用根据虚拟的相机位姿信息通过raycasting来获取当前位姿下相机看到物体的深度图。原创 2023-04-19 16:23:10 · 1308 阅读 · 1 评论 -
『OPEN3D』1.8.3 多份点云配准
多份点云配准是将多份点云数据在全局空间中对齐的过程。通常,输入是一组数据(例如点云或RGBD图像){Pi}。输出是一组刚性变换{Ti},使得经过变换的点云在全局空间中对齐。此处使用前面介绍的global icp、color icp与位姿图来对这多份点云进行拼接。原创 2023-12-14 21:18:10 · 175 阅读 · 2 评论 -
『OPEN3D』1.8.1 ICP配准-点到点、点到面、color-icp、robust-icp
但存在一个严重的问题:如果出于误匹配等原因,某个误差项给的数据是错误的,那么它的梯度也很大,意味着调整与它相关的变量会使目标函数下降更多。所以,算法将试图优先向这个误差大的outlier项进行调整,使其他正确的匹配向满足该项的无理要求,导致算法会抹平其他正确边的影响, 使优化算法专注于调整一个错误的值。于是就有了核函数的存在。具体的方式是,把原先误差的二范数度量 替换成一个增长没有那么快的函数,同时保证自己的光滑'性质(不然无法求导)。使用color icp的结果, 两份点云的颜色信息可以良好的配准。原创 2023-11-30 21:57:16 · 373 阅读 · 1 评论 -
『OPEN3D』1.8.2 全局ICP配准
前文提到的多种icp方式均需要初始的变换函数作为配准过程的初始值,并在该初始值上进行迭代优化得到结果;那么global icp为前面这些精配准的icp提供了初始变换函数。global icp需要对点云提取几何关键点与描述子特征信息,并通过其匹配方式找到两份点云数据中对应的点。类似于图像的关键点匹配。这里使用FPFH特征作为示例,FPFH特征使用33维度的描述子向量来描述一个关键点局部的几何信息;然后使用匹配的方式对两组点云中的关键点与描述子进行距离匹配与RANSAC来得到对应的点对。原创 2023-12-09 17:59:20 · 408 阅读 · 0 评论 -
『OPEN3D』1.8 点云的配准理论
点云的配准是将不同的3D点云对齐成一个完成的点云模型;配准的目标是找到两帧点云之间的相对旋转(rotation)与平移(translation),使得两份点云中有重叠的区域能够完好拼接。点云配准示例图(来自PCL)上图为初始的5份点云数据,需要将着几份点云数据拼接成如下图中完整的模型点云动态配准示例常见的点云配准方式主要包含ICP配准以及NDT配准以及他们的配准,当然还包括神经网络的点云配准方式。原创 2023-11-26 17:04:13 · 1579 阅读 · 0 评论 -
『OPEN3D』1.6 Voxelization体素化
介绍open3d中voxelGrid的使用,从点云、mesh中创建voxelGrid以及voxelgird的包含测试和Voxel carving原创 2023-03-18 16:22:07 · 2527 阅读 · 6 评论 -
『OPEN3D』1.5.5 Open3D中的K-dTree和OcTree
文章介绍了点云处理中常用的octree和kdtree以及其在open3d中的使用方式原创 2023-03-18 13:03:13 · 953 阅读 · 0 评论 -
『OPEN3D』1.5.4 动手实现点云八叉树(OctoTree)最近邻
在四叉树中,一个节点有四个子节点,而八叉树则有八个。如果对应到物理空间中,可以把一个矩形按中心切成四等分,或者把一个三维立方体按中心切成八等分。原创 2023-12-19 22:02:41 · 563 阅读 · 0 评论 -
『OPEN3D』1.5.3 动手实现点云KD树最近邻
一个简单的创建K-D树示例,假设只有如下四个点(0,0,0)、(1,0,0)、(0,1,0)、(1,1,0)。(如隐式 K-d 树 、最小-最大 K-d 树 、松弛 K-d 树等)原创 2023-12-18 22:21:16 · 953 阅读 · 0 评论 -
『OPEN3D』1.5.2 动手实现点云栅格/体素最近邻
当处理点云数据时,另外一种常见的方法是在空间位置层面对其进行索引。这意味着将点云空间划分为离散的单元,然后将点云分配到相应的单元中。这样做的好处是可以根据查询点的位置快速定位相应的单元,从而加速最近邻搜索。根据索引的方式,我们可以使用或方法。二维栅格方法将点云空间划分为规则的网格单元(pillar),每个单元代表一个固定大小的区域。点云数据被分配到相应的单元中,从而形成一个栅格结构。原创 2023-12-16 12:36:29 · 1026 阅读 · 1 评论 -
『OPEN3D』1.5.1 动手实现点云暴力最近邻
本专栏地址:https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482 暴力最近邻法 (Brute-force Nearest Neighbour Search,BF 搜索) 是最简单直观的最近邻计算方法,没有复杂的数据结构。搜索一个点原创 2023-12-16 10:09:43 · 861 阅读 · 0 评论 -
『OPEN3D』1.5 点云最近邻问题
本专栏地址:最近邻问题是点云处理中最基本的问题之一。它涉及确定在一个包含n个点的点云中,哪个点是离给定点最近的点,或者在给定距离范围内有哪些点;最近邻问题描述起来非常简单:在一个含 n 个点的点云= {, . . . ,} 中,获取离某个点最近的点是哪一个?再或者说离最近的 k 个点是哪些?或者与距离小于某个固定范围R的点有哪些?前者称为 k 近邻查找(kNN),后者称为范围查找(range search)。原创 2023-12-16 10:06:24 · 844 阅读 · 0 评论 -
『OPEN3D』1.4 点云表面重建
主要介绍了open3d中三种点云表面重建算法在open3d中的使用,分别为Alpha shapes、Ball pivoting、Poisson surface reconstruction。原创 2023-03-04 14:14:34 · 2787 阅读 · 3 评论 -
『OPEN3D』1.3 RGB-D image与点云拼接 python篇
本文介绍了Open3d中的RGBD数据类型,并使用tum数据集为例介绍了RGBD转点云信息和知道位姿后的点云的拼接操作原创 2023-02-25 21:23:29 · 1765 阅读 · 0 评论 -
『OPEN3D』1.2 mesh处理 python篇
介绍open3d对mesh的基本处理操作原创 2023-02-16 21:10:20 · 3733 阅读 · 0 评论