关于open3d的 kdtree模块的 查询偶发性崩溃问题

主要问题还是open3d的 kdtree模块的 query相关的算法引起的。没来得及在github提issue也查不到相关issue,因为是偶发性崩溃。所以需要记录一下,防止后人踩坑。

初始化kdtree的方式如下。

sample_pcd_data = o3d.data.PCDPointCloud()
pcd = o3d.io.read_point_cloud(sample_pcd_data.path)
pcd.paint_uniform_color([0.5, 0.5, 0.5])

#
pcd_points = np.asarray(pcd.points)
pcd_tree = o3d.geometry.KDTreeFlann(pcd_points )

出现偶发性崩溃的是这类代码

 pcd_tree.search_radius_vector_3d(...)

 pcd_tree.search_radius_vector_xd(...)

 pcd_tree.search_hybrid_vector_3d(...)

 pcd_tree.search_hybrid_vector_xd(...)

点云数是1.7万,验证了不管是3d还是xd模式都会出现

大概手动刷了一下概率,大概是10分之一的样子。由于是python,底层是c++库,崩溃不抛出任何异常,python exe进程退出没有任何提示。

最后用scipy的kdtree进行代替,其中kdtree的 query_ball_point等同于search_radius_vector_xd。区别在于返回的是索引数组,其排序状态是无序的。需要注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值