激光雷达数据结构化?
4种用来组织数据的数据结构化方式,拥有不同的时间复杂度
![4种数据结构](https://i-blog.csdnimg.cn/blog_migrate/5e3cd6142438f0a987754c71cc976c05.png)
八叉树与kd树主要区别?
- 八叉树一般都用于三维空间,若二维空间,可以用四叉树,原理是一模一样的。八叉树,常用于离散化空间,数据划分存储,数据查找等。
- k-d树虽然是二叉树,却适用于k维的空间,而且在k邻域查找时,比较有优势。k-d也长用于数据划分存储,邻域查找等。
二者特性的比较:
- 八叉树算法的算法实现简单,但大数据量点云数据下,其使用比较困难的是最小粒度(叶节点)的确定,粒度较大时,有的节点数据量可能仍比较大,后续查询效率仍比较低,反之,粒度较小,八叉树的深度增加,需要的内存空间也比较大(每个非叶子节点需要八个指针),效率也降低。而等分的划分依据,使得在数据重心有偏斜的情况下,受划分深度限制,其效率不是太高。
- k-d在k邻域查找上比较有优势,但在大数据量的情况下,若划分粒度较小时,建树的开销也较大,但比八叉树灵活些。在小数据量的情况下,其搜索效率比较高,但在数据量增大的情况下,其效率会有一定的下降,一般是线性上升的规律。
- 也有将八叉树和k-d树结合起来的应用,应用八叉树进行大粒度的划分和查找,而后使用k-d树进行细分,效率会有一定的提升,但其搜索效率变化也与数据量的变化有一个线性关系。
- k-d树是一种平衡二叉树,在增删操作后,需要再次平衡其结构,耗费较大的资源,而八叉树不会有此烦恼。
- 八叉树均匀划分,空间浪费。kd树是基于已经有的点进行划分,是使用的最多的点云组织结构。对于搜索来说,kd树比八叉树的效率高
课程2.2节视频3留的作业(点云结构化)
应用kd树的方法实现以下点云数据的组织结构化
![22.05.06激光雷达作业](https://i-blog.csdnimg.cn/blog_migrate/676f8ed130e5ba6480f6a796165a6b19.jpeg)