3D点云
3D点云数据处理相关
RNG_uzi_
人生苦短,我用Python
展开
-
点云bin格式和pcd格式相互转化
使用python-pcl, 也就是python版本的pcl库(C++版本的这里暂时不做说明)参考python-pcl文件中的cluster_extraction.py文件中已经添加啦备注, 可作为参考.# -*- coding: utf-8 -*-# Euclidean Cluster Extraction# http://pointclouds.org/documentation/tutorials/cluster_extraction.php#cluster-extractionimport原创 2020-12-04 22:30:39 · 4888 阅读 · 10 评论 -
基于Python获取局部点云平面的上位机软件
软件测试平台:win7、python3.6、pyqt5、pyqtgraph需求:已有一帧完整点云,需要提取点云中的平面(比如提取点云文件中尺寸为10x1x3m的平面)。操作步骤:(1)点击Open按钮,选择格式为xxx.bin的点云文件。(2)在STRIDES文本框中输入移动的步长。(3)分别点击X_MAX、X_MIN、Y_MAX、Y_MIN、Z_MAX、Z_MIN等按钮进行范围选取。打开点云效果图平面提取效果图提取的平面计算公式:X_MIN-STRIDES < 提取平面 <原创 2020-10-24 20:54:20 · 625 阅读 · 2 评论 -
点云显示工具
(速腾聚创)附带的上位机软件进行显示,这些工业软件支持显示的格式挺多的,如果只是简单的显示,上述这些工具完全可以满足需要。点云,就需要用到一些程序模块。因为博主编程主要使用的是Python处理点云数据,所以这里总结了一些。现在只是介绍了点云显示的工具有哪些,后续会补全这些工具的用法。当然,如果我们自己编程处理点云数据,然后在程序中直接显示。除了上面描述的常用专业显示软件,我们也可以使用。用于显示3D点云的软件有很多,比如最常用的。当然,还有一些常用的专业显示工具,比如。系统话,其实也可以使用。原创 2020-10-07 17:59:59 · 6404 阅读 · 0 评论 -
SA-SSD训练过程出现nan
Pytorch训练过程出现nan使用SA-SSD算法,训练velodyne-16线点云数据,但是训练过程中损失值loss=nan,困扰良久…经过搜集资料发现Pytorch训练过程出现nan的情况为以下几种:1、学习率太大,但是样本数据集又很小。2、自定义的loss除以了一个很小的数字,小到接近0。3、数据不干净,数据本身就有nan,可以用numpy.isnan检查。4、target,即label是大于等于0的。从1到类别数目-1变化。既然找到了解决可能出现问题的地方,接下来就是逐个排查问题了。原创 2020-09-07 14:03:52 · 780 阅读 · 0 评论 -
pytorch中tensorboard数据显示
pytorch 利用tensorboard显示loss,acc曲线等运行环境:python3.6.9pytorch1.13.1cuda10.0cudnn7.5.1tensorboard显示运行PointRCNN算法进行training,得出events.out.tfevents.1592297776.hkd-Precision-7920-Tower打开终端输入:tensorboard --logdir path/to/tensorboard_logs/会有输出:TensorBoard原创 2020-06-17 17:09:30 · 1055 阅读 · 0 评论 -
PointRCNN 3D框点云和图像可视化
由于pointRCNN源码的训练和inference很详细,但是没有可视化的代码,本文介绍其3d框结果的可视化方法1. 跑通pointRCNNhttps://github.com/sshaoshuai/PointRCNNpointRCNN的运行本文就不赘述了。我是下载的作者训练好的模型,跑了一遍inference,因为生成的检测结果在下面可视化时会用到2. 将pointRCNN预测结果拷贝到KITTI数据集pointRCNN的结果存储在:(里面包含000001.txt等等,存的是3d框的预测结果转载 2020-06-03 12:11:22 · 3769 阅读 · 11 评论 -
pointnet训练文件train.py注释
pointnet训练文件train.py注释原文如下:原创 2019-02-15 17:50:23 · 2132 阅读 · 5 评论 -
3D点云数据显示
3D点云数据显示效果:代码:import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D#打开点云数据文件f=open('RawXYZ.xyz','r')point=f.read()f.close()#数据预处理l1=point.replace('\n',...原创 2019-06-02 15:31:58 · 4832 阅读 · 5 评论 -
Multi-View 3D Object Detection Network for Autonomous Driving(MV3D模型)
Multi-View 3D Object Detection Network for Autonomous Driving(MV3D模型)转载 2019-08-16 10:54:51 · 518 阅读 · 0 评论 -
python生成三维点云包围盒
matplotlib生成三维点云包围盒运行环境:win10、 python3.5.2、 matplotlib评价:消耗时间较长效果展示:运行上面包围盒消耗的时间:单位(秒/s)代码:from mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as pltimport numpy as npfrom iter...原创 2019-09-16 15:37:05 · 3259 阅读 · 0 评论 -
图像转化为深度图,深度图转化为图像,点云转化为深度图
图像转化为深度图,深度图转化为图像,点云转化为深度图原图像:深度图像:额外插图:将点云数据转化为深度图像(上面点云三维图,下面深度图)不是一一对应关系代码:from PIL import Imageimport numpy as np# import scipyimport matplotlib.pyplot as pltdef ImageToMatrix(filen...原创 2019-10-09 20:24:20 · 9132 阅读 · 10 评论 -
vispy 显示 kitti 点云数据
vispy 显示 kitti 点云数据转自(感谢前辈): https://zhuanlan.zhihu.com/p/74181054评价:vispy显示三维点云数据很流畅,但是显示的点好像有点失真的感觉。import numpy as npimport vispy.scenefrom vispy.scene import visualsimport sys# Make a canv...转载 2019-10-11 15:37:51 · 1634 阅读 · 1 评论 -
多目标跟踪方法 A Baseline for 3D Multi-Object Tracking
多目标跟踪方法 A Baseline for 3D Multi-Object Tracking(感谢前辈)转自:https://zhuanlan.zhihu.com/p/80993033本文对论文 A Baseline for 3D Multi-Object Tracking 的思路和代码做一个解读,这是伊利诺伊大学的一篇比较简单的多目标跟踪的方法论文。后续代码对原文的代码做了很大的改动,...转载 2019-10-11 16:53:14 · 2256 阅读 · 0 评论 -
python 处理点云数据并三维显示
python】处理点云数据并三维显示评价:matplotlib显示三维点云,对电脑性能要求较高,没有GPU的话,显示会有些卡顿。 如果只是显示点云查看效果,还是不错的选择。效果:代码:import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D#打开点云数据文件...转载 2019-10-20 21:12:26 · 8215 阅读 · 4 评论 -
Efficient Online Segmentation for Sparse 3D Laser Scans-- 在线的稀疏点云分割
在这篇文章中就提出了一种十分高效的分割方法。首先是将扫描到的点云移除平面处理,然后移除平面后一定范围内的点云数据分割成不同的对象。该论文的是集中解决了在很小的计算量的条件下,能够在大多数系统上做到高效的分割。避免了直接对3D点云的计算,并直接在2.5D 的深度图像上进行操作。此方案能够很好的解决处理稀疏的3D点云数据。...转载 2019-11-12 15:12:58 · 1072 阅读 · 0 评论 -
DBSCAN 对点云障碍物聚类
DBSCAN 对点云障碍物聚类(感谢前辈)转自:https://zhuanlan.zhihu.com/p/72121128点云数据去除地面后,地面上的点很自然的都成了障碍物,但是要进行目标分类,还需要把每个目标的一堆障碍物的点聚集到一起,然后才好进行后续的分析,因为每个点都是空间上离的很近的点,那么很自然的,就想到了可以使用基于密度的聚类 DBSCAN ;为了更好的适应我的需求,使用的是自...转载 2019-10-11 16:12:37 · 2891 阅读 · 0 评论 -
python-pcl可视化点云工具(windows和ubuntu18.04安装及测试)
python 可视化点云工具 python-pcl(感谢前辈)转自:https://zhuanlan.zhihu.com/p/72116675python-pcl 是我尝试过使用体验最好的点云数据可视化工具,它是c++上著名的pcl的python版本,虽然还有很多代码没有写完整,但是不妨碍它成为一个优秀的python 点云工具;GitHub页面:https://github.com/st...转载 2019-10-11 16:17:11 · 9621 阅读 · 23 评论 -
RANSAC 激光雷达地面检测 (2)
RANSAC 激光雷达地面检测 (2)上次文章写到了随机采样一致性方法找地面的两个缺点:一是会把墙壁当作地面,二是对于斜坡会漏掉,导致只检测了一部分的路面;文章链接:RANSAC 激光雷达地面检测 (1)这次我说下解决这两个问题的思路:1 第一个问题我们可以引入一个假设,假设雷达和地面是平行的,而这通常是成立的,那么在这个假设的基础上,可以推理出我们找的的平面和激光雷达的Z轴是垂直的,...转载 2019-10-11 16:23:26 · 1866 阅读 · 2 评论 -
提取 kitti 数据集中的障碍物点云数据
提取 kitti 数据集中的障碍物点云数据(感谢前辈)转自:https://zhuanlan.zhihu.com/p/71257574目前需要对点云障碍物进行初步的分类,所以要根据 kitti 标签的点云坐标,提取其在整帧点云中的某个障碍物数据,比如汽车,行人的点云数据;问题在于点云的标签居然是在图像坐标系中的,所以我们需要先把图像坐标转换为激光雷达坐标系,然后根据label中的长宽高获...转载 2019-10-11 16:27:52 · 1483 阅读 · 1 评论 -
RANSAC 激光雷达地面检测 (1)
RANSAC 激光雷达地面检测 (1)(感谢前辈)转自:https://zhuanlan.zhihu.com/p/71177362用随机抽样一致性方法做地面检测,主要思路就是不断的随机抽取三个点构建一个平面方程,如果这个平面包含了足够多的点,那么就认为它是地面;代码如下,比较高兴的一点是经过优化后,python的这个代码居然跑的比 c++ 这部分的代码还要快了,只要20ms 就能找到平面,...转载 2019-10-11 16:31:02 · 2652 阅读 · 0 评论 -
如何生成OBB(OrientedboundingBox)方向包围盒
如何生成OBB(OrientedboundingBox)方向包围盒转自:https://blog.csdn.net/qing101hua/article/details/53100112评价:文章中生成包围盒的思路是正确的,但是文章代码本文没有复现。一、包围盒简介:包围盒是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进...转载 2019-10-11 22:49:24 · 2051 阅读 · 0 评论 -
基于角度方法的地面检测
基于角度方法的地面检测(感谢前辈)转自:https://zhuanlan.zhihu.com/p/75659410方法来源是:Effificient Online Segmentation for Sparse 3D Laser Scans分割地面的三个假设:1 激光雷达和地面是平行的;2 地面曲率较小;3 最底下的一根射线的某些部分一定观察到了地面;分割地面的原理该方法是基于深...转载 2020-04-29 01:01:44 · 610 阅读 · 0 评论 -
NDT算法学习
https://blog.csdn.net/u013351270/article/details/69391135 http://ghx0x0.github.io/2014/12/30/NDT-match/ 一文读懂自动驾驶中常用的定位算法之NDT点云配准算法(1)——Paper Reading...转载 2019-10-30 14:22:07 · 667 阅读 · 0 评论 -
三维点云配准(传统ICP算法配准)
传统ICP算法配准前:传统ICP算法配准后:代码正在整理,整理好会贴出来。ICP算法原理:请参照:https://zhuanlan.zhihu.com/p/104735380原创 2020-03-12 00:53:08 · 2460 阅读 · 2 评论 -
PCA构建点云包围盒
评价:文章主要讲解PCA生成包围盒的原理,PCA计算点云的特征向量和特征值可以使用C++编程直接实现,也可以使用PCL点云库,或者使用Python的numpy函数实现。 注:本文着重讲解的是PCA的原理,代码可以在参考文章中找到。文章中很多公式在word编辑完成,并未在博客中再次编辑,望见谅。参考的文章:...转载 2019-10-21 09:20:32 · 1658 阅读 · 2 评论 -
RANSAC算法详解(附Python拟合曲线和平面)
RANSAC算法详解(附Python拟合曲线和平面)下文博主整理的很详细,请参考:https://lixin97.com/2019/04/10/RANSAC/原创 2019-10-21 10:53:08 · 3494 阅读 · 2 评论 -
【聚类】五种主要聚类算法
聚类是一种机器学习技术,它涉及到数据点的分组。给定一组数据点,我们可以使用聚类算法将每个数据点划分为一个特定的组。理论上,同一组中的数据点应该具有相似的属性和/或特征,而不同组中的数据点应该具有高度不同的属性和/或特征。聚类是一种无监督学习的方法,是许多领域中常用的统计数据分析技术。在数据科学中,我们可以使用聚类分析从我们的数据中获得一些有价值的见解。在这篇文章中,我们将研究5种流行的聚类算法以...转载 2019-11-15 09:57:16 · 3343 阅读 · 0 评论 -
两种三维点云密度聚类方法的研究与对比
基于密度的点云聚类算法可以识别三维点云物体,也可以对三维点云去噪处理。本文研究了两种基于密度的点云聚类方法,先简单介绍一下两种算法,后面会详细的介绍算法原理以及效果。第一种方法叫做密度减法聚类功能:能识别特定尺寸的点云簇集合,通过参数设置期望形状的大小。输入:一片点云输出:是几个聚类完成的点簇和聚类中心点类别不需要提前设定,最终聚成几类由初始参数决定。论文 3D Candidate ...转载 2019-11-16 09:43:42 · 2017 阅读 · 0 评论