-
应用上没有绝对的优劣,得看每个算法具体如何实现,比如甲写的octree比kdtree快,但是换成乙,kdtree就更快。从原理上,octree和kdtree也没有太大的差异,octree可以大致认为是“每三层切分组合在一起的kdtree”。所以,关键在于代码效率。
-
非常正确,这就是为什么叫approximate voxel grid downsample。
-
PCLKeypoints使用问题
——来自《三维点云处理- 第一期》·18浏览
请看源代码
-
SHOT相关问题
——来自《三维点云处理- 第一期》·21浏览
1. 不需要转换坐标,shot最后是出32个histogram。建立LRF,然后把空间划分成32个空间,每个空间出一个histogram。
2. 极坐标了解一下。极坐标下划分空间,跟笛卡尔坐标下根据xyz划分空间,并没有什么差别,反正都是三个坐标。
-
pointnet运行问题
——来自《三维点云处理- 第一期》·64浏览
这个信息并不一定代表显存/内存不足,这里你的理解什么是内存什么是显存,显存是给gpu用的,内存是给cpu用的。修改batchsize会降低显存占用,通常不能降低内存占用。这个错误本质上只是说你这个进程收到了sigkill信号,内存/显存访问越界等其他问题也会导致这种结果。所以,查资料的时候也要主要搞清楚到底什么是对的,背后是什么原因,不能有一个人是因为内存/显存不足引起sigkill就认为所有sigkill都是内存/显存不足
-
你是说kitti object detection里面的box吗?是三维的,但是box是水平的,也就是只有一个yaw heading,没有roll pitch。至于怎么实现,那就得靠自己了,这种box实现说不定找工作面试里面也会遇到。
-
@xinjin 你首先要知道大作业的目标是什么。既然大作业的目标是检测人,车,自行车,那为什么要给generic object标注bounding box呢
-
GMM EM推导过程理解
——来自《三维点云处理- 第一期》·82浏览
这是优化的步骤,固定一个变量优化另一个。固定了,那自然就是常数啦。
-
开源的octomap(或)有哪些可以讲的(不涉密的)改进吗?
——来自《三维点云处理- 第一期》·111浏览
octree和octomap不一样哦。
另外,每一个开源版本不一样,我就说一下这节课讲的内容有哪些可以改进的吧。
这节课里面的kdtree,octree,在构建的时候每一层都会储存所有点的index,这会导致内存分配和读写的额外开销,每一次内存操作也是耗时的,所以不只是空间问题。第二,每个leaf储存的点是乱序的,由于处理器缓存等原因,访问内存中连续的数据会比乱序访问快很多,乱序会导致查找的时候慢一点。另外,在kdtree的构建里面,课件里讲的每一层排序是很慢的,课件里也有提到一些改进办法。
-
开源的octomap(或)有哪些可以讲的(不涉密的)改进吗?
——来自《三维点云处理- 第一期》·111浏览
没有做过认真的评测,开源的我觉得nanoflann挺快的。
-
关于kdtree中切向轴轮换的问题
——来自《三维点云处理- 第一期》·50浏览
那个例子里面选轴不是轮流的,是按照最大分布方向选轴。
-
关于法向量的正负问题(外法线方向还是内法线方向)
——来自《三维点云处理- 第一期》·115浏览
好问题,确定法向量的方向本身是个课题。从几何的角度看,法向量并无正负之分,因为一个平面的法向量就是有两个朝向的,哪个都正确。但是在一些应用里面,比如可视化,那就有关系了。可以看看open3d的文档里面怎么说的:
The covariance analysis algorithm produces two opposite directions as normal candidates. Without knowing the global structure of the geometry, both can be correct. This is known as the normal orientation problem. Open3D tries to orient the normal to align with the original normal if it exists. Otherwise, Open3D does a random guess. Further orientation functions such asorient_normals_to_align_with_direction
andorient_normals_towards_camera_location
need to be called if the orientation is a concern. -
主成分
——来自《三维点云处理- 第一期》·143浏览
你说的没错。去掉z1成分是为了证明为什么第二第三大的特征向量对应了z2,z3.
-
关于hash conflict的问题
——来自《三维点云处理- 第一期》·139浏览
你的理解非常正确。这就是为什么这个算法叫approximate。这种处理hash confict的方法很快,但是会出现你提到的这种多了一些点的问题。
-
关于hash conflict的问题
——来自《三维点云处理- 第一期》·139浏览
@Isabill 是的,没错
-
关于KPCA的问题
——来自《三维点云处理- 第一期》·147浏览
1. 的确这个高维空间的principle axis不知道,但这个未知的axis是有物理意义的,只是我们在大部分情况下不关心它到底是什么,因为我们已经知道数据点在它上面的投影了。2. 可以subsample,会引起一些误差,具体的误差分析我也没有仔细推导过,通常还是做个实验来看看具体效果吧。
-
基于点云检测和分割的scale问题
——来自《三维点云处理- 第一期》·136浏览
这个很难说,因为影响的因素很多,首先大部分点云深度学习方法的运算量和输入点的数量是大致线性的,那如果输入点的数量足够小,什么显卡都能跑得过来。我就给个一个笼统的回答吧,1080ti级别的可以跑大部分的点云深度学习算法。另外一个要注意的是CPU,点云训练可能需要很多数据预处理,会很吃CPU的。比如RandLA-Net预处理的时候就要跑个knn。所以要注意看看到底CPU还是GPU是瓶颈。