测试不同的pointclouds方法'注册并尝试对结果进行不同的评估。
其中一项评估是尝试找到两个点云之间的重叠区域,并计算每个点云云点与其他重叠点云点的最大最小距离。
到目前为止,我已经天真地使用了以下步骤(假设有两台PC):
min(pc1X)
,min(pc1Y)
。 。 。 pc1[x<xmax & x>xmin & y<...]
(pc1_pnts x pc2_pnts)
。使用scipy.spatial.distance.cdist
`这适用于小云,但是当重叠区域变大时,会出现内存不足错误,这必须在某些时候使用上述步骤发生,尤其是在第4步。
因此,我正在寻找改进上述步骤的选项,以便在更大的云上运行它们,我相信这里最关键的瓶颈是成本矩阵可能会变得巨大的第4步。
我希望有关改进前三个步骤的提示,但着重于第4步,如何更有效地计算每个重叠点的最大最小距离?
编辑:使用sklearn.neighbours.NearestNeighbors
我设法将第4步的运行时间平均缩短了10倍以上,并且还运行在更大的云上!
我们欢迎任何改进上述任何步骤的提示或提示。