点云
文章平均质量分 65
正在学习的浅语
这个作者很懒,什么都没留下…
展开
-
KDTree与grid_sub_sampling栅格采样
1.kdt.query利用KDTree.querry可以快速查询点的邻居索引,这样就能快速完成对点云的邻居搜索。from sklearn.neighbors import KDTreeimport numpy as npX = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])print(X.shape)kdt = KDTree(X, leaf_size=30, metric='euclidean')result =原创 2022-05-17 19:31:55 · 1041 阅读 · 0 评论 -
Pytorch已知一个tensor的索引,并对它进行重新排序
之前遇到了一个问题,我有一个tensor,它的形状是b c h w ,和与它一样长的一个索引 b c 1 1 。我们要根据这个索引对原始tensor进行重新排序。百度了一圈貌似没有直接解决的api,感觉只能用循环处理,因此我用循环写了一个函数来搞定这个问题。#第一个参数是原始要排序的tensor,和索引,返回排好序的结果。def sort_with_idx(source,idx): #根据索引对tensor进行排序 "source: b c h w , idx: b c 1 1"原创 2022-01-23 15:59:28 · 6607 阅读 · 3 评论 -
PointNet++分割预测结果可视化
目前网上对于PointNet++的预测结果可视化的资料比较少,一般都是直接可视化数据集。下面介绍一种我利用Matplotlib可视化预测的代码,希望能够对大家有所帮助。原理:简单阐述一下代码的原理,首先我们利用网络给出输入图像的预测结果,并存入为txt文件;然后利用Matplotlib读取txt文件,画出3d图像。预测效果由于3d图像无法直接显示,需要特定的软件才行,因此我们只能将它转换为2d图像报错,其结果如下准备材料1)网络模型。本代码是基于 pytorch版的PointNet++实现的,原创 2021-12-12 11:49:00 · 16601 阅读 · 65 评论 -
RuntimeError: expected scalar type Long but found Float
我在运行网络预测脚本的时候遇到这个问题RuntimeError: expected scalar type Long but found Float翻译过来就是:RuntimeError: 预期的标量类型 Long 但发现 Float这里非常坑,我把输入 网络的数据都加上.long() 转换为Long之后还是报这个错误。、、它好像报错报反了!!!!!几经周折,我终于发现,Pytorch的权重是float型的,所以要求输入数据也是float型的。标签是long型(整数),要求标签也是整数。所以原创 2021-12-08 17:07:13 · 6569 阅读 · 2 评论 -
PointNet++报错RuntimeError: shape ‘[1, 1, 3]‘ is invalid for input of size 6
如果在运行PoinNet++和一些需要FPS采样的代码时候遇到这个错误File “G:\QY\Pointnet_Pointnet2_pytorch-master\utils\pointnet2_utils.py”, line 84, in farthest_point_samplecentroid = centroid.view(B, 1, 3)RuntimeError: shape ‘[1, 1, 3]’ is invalid for input of size 6经过检查后发现就是这里出了问题原创 2021-12-03 11:01:35 · 11762 阅读 · 1 评论 -
S3DIS数据集学习笔记
S3DIS是一个大型的3d室内数据集,关于它的介绍网上很多了。它主要是由xyz+rgb+法向量 9个特征 和一个标签组成的,长度为10的向量。由于这个数据集比较大,不利于训练,PointNet++训练之前会将它进行预处理,划分为1mx1m的区域,然后再放入网络进行训练。下面是关于它的代码分析,这个数据集运行的前提是,你已经按照PointNet++的readme运行了collect_indor3d_data,将txt文件转换为了.npy文件class S3DISDataset(Dataset):原创 2021-11-29 11:09:50 · 13643 阅读 · 23 评论 -
PointNet++上采样(Feature Propagation)
PointNet++在处理分割任务的时候需要将下采样的点还原到与输入相同的点数,便于做每个点的预测。但是在论文中只给了一个简单的描述和公式,不是很好理解,因此在这里记录一下我的理解过程。1.FP模块的目的PointNet++会随着网络逐层降低采样的点数,这样来保证网络获得足够的全局信息,但是这样会导致无法完成分割任务,因为分割任务是一个端到端的,必须保证输出与输入点数相同。一种完成分割任务的方法就是不下采样点,始终将所有点放入网络进行计算。但这样需要消耗大量计算成本。另一种比较常用的方法就是进行插值了原创 2021-11-08 20:05:52 · 8326 阅读 · 8 评论 -
S3DIS数据集的几个bug
在处理S3DIS的txt文件时候会遇到几个bug.在Stanford3dDataset_v1.2这个版本中 的Area_5\office_19\ceiling_1,路径如下\S3DIS\Stanford3dDataset_v1.2\Area_5\office_19\Annotations\ceiling_1.txt会存在字符串,导致代码老是出错,经过查找发现在323474行,需要手动删除在Stanford3dDataset_v1.2_Aligned_Version这个版本中也会遇到bug具体位置原创 2021-11-05 14:34:49 · 5478 阅读 · 1 评论 -
Windows安装torch-points3d点云工具箱
torch-points3d是一个点云工具箱,里面集成了分割检查分类等一系列点云网络,我们需要使用的时候可以直接调用他们,就可以一键运行他们,非常方便。但是这个是在linux里面安装会比较方便,windows无法直接安装上去,需要一些安装经验才能安装上去。下面分步骤分享一下我的安装经验:1. VC2017安装这个库需要编译c语言的代码,所以要安装VC2017。有2019的需要卸载了装这个版本的。2.新建环境这个库需要安装许多库,如果在原来的环境进行的话会覆盖掉,所以最好新建一个环境。pytho原创 2021-10-22 16:05:08 · 7082 阅读 · 1 评论 -
Windos cuda cudnn10.1 10.0 10.2免费下载
cudnn cuda对应10.2版本链接:https://pan.baidu.com/s/1m7jOwBcgHSwlNI7dIIV4Iw提取码:ogo9cudnn cuda对应10.1版本链接:https://pan.baidu.com/s/1flDyUOFeazSajNKS47zqnQ提取码:3o2fcuda10.0链接:https://pan.baidu.com/s/1djNA1WVpmw_x_Y10pjWlSQ提取码:m1fzcuda10.2链接:https://pan.ba原创 2021-10-22 09:37:04 · 4352 阅读 · 0 评论 -
ShapeNet数据集及dataset代码分析
1数据集简介ShpaeNet是点云中一个比较常见的数据集,它能够完成部件分割任务,即部件知道这个点云数据大的分割,还要将它的小部件进行分割。它总共包括十六个大的类别,每个大的类别有可以分成若干个小类别(例如,飞机可以分成机翼,身体等小类别),总共有五十个小类别。下面可视化一下,经过采样和上色后它长什么样子:可以发现,它不仅将桌子和椅子进行了分割,还对它的桌子腿等小部件也分割为不同的颜色。2.数据集结构下载好数据集之后,数据集就是这样,其中,数字文件夹里面放的都是每个大类的点云数据。例如,第一个原创 2021-10-19 12:50:56 · 15634 阅读 · 14 评论 -
ModelNet10/40数据集的下载及dataset代码分析
ModelNet10/40是一个3d图像分类的一个数据集,简单记录一下如何下载这个数据集和打开显示这个图像。1.去它的官网下载你想要的数据集,然后解压。网址为:http://modelnet.cs.princeton.edu/2.解压完成后,你会发现是.off的文件,无法直接打开。3.这个时候需要下载一个软件,交meshlab,才能打开.off文件,像正常2d图像一样去显示出来。下载的网站为:https://www.meshlab.net/#download根据自己的电脑版本选择下载,然后安装原创 2021-09-10 15:57:38 · 28436 阅读 · 20 评论 -
RandLa-Net学习笔记
RandLa-Net开创了使用随机采样来处理点云的先河,并在大规模点云上取得了非常好的效果。然而,作者在论文中只讲述了如何搭建模型,并没有详细讲述如何进行数据预处理,如何进行随机采样,而这对点云处理也是十分重要的。因此,本文首先会从数据的角度出发,探析RanLa-Net数据预处理的方式,然后详细讲解RandLa-Net的模型结构,最后对其在S3DIS数据集上的处理过程进行分析。1. 引言作者在论文中开片就提出了PointNet++中对数据进行采样存在的缺陷:1.FPS仅适应小规模点云,对大规模点云采样原创 2021-10-11 10:52:04 · 9258 阅读 · 12 评论