Algorithm 三维点的叠加算法

Algorithm 三维点的叠加算法,algorithm,3d,geometry,computational-geometry,Algorithm,3d,Geometry,Computational Geometry,我需要将两组3D点叠加在一起;i、 e.找到旋转和平移矩阵,以最小化其坐标之间的RMSD(均方根偏差) 我目前使用,这对于我需要处理的许多情况都不是很有用。Kabsch要求两个数据集中的点数量相等,另外,它需要事先知道哪个点将与哪个点对齐。对于我的情况,点的数量会有所不同,只要RMSD最小化,我不关心最终对齐中哪个点对应哪个点 因此,该算法(可能)将在两个点集的子集之间找到1-1映射,这样在旋转和平移之后,RMSD最小化 我知道一些算法处理不同数量的点,但是它们都是基于蛋白质的,也就是说,它们试

我需要将两组3D点叠加在一起;i、 e.找到旋转和平移矩阵,以最小化其坐标之间的RMSD(均方根偏差)

我目前使用,这对于我需要处理的许多情况都不是很有用。Kabsch要求两个数据集中的点数量相等,另外,它需要事先知道哪个点将与哪个点对齐。对于我的情况,点的数量会有所不同,只要RMSD最小化,我不关心最终对齐中哪个点对应哪个点

因此,该算法(可能)将在两个点集的子集之间找到1-1映射,这样在旋转和平移之后,RMSD最小化

我知道一些算法处理不同数量的点,但是它们都是基于蛋白质的,也就是说,它们试图将主干对齐(一些连续段与另一个连续段对齐等),这对于在空间中浮动的点没有任何连接是没有用的。(好的,需要明确的是,有些点是连接的;但有些点没有任何连接,我不想在叠加过程中忽略。)

我发现的唯一算法是,在STRAP软件模块(开源)中找到的。我试过代码,但行为似乎不稳定;有时它能找到很好的对齐方式,有时它不能在简单的X平移后将一组少数点与自身对齐

有谁知道一种算法可以处理这样的限制?如果性能有问题,我最多得10^2到10^3分


老实说,要使用的目标函数不是很清楚。RMSD定义为对应点之间距离的RMS。如果我有两个50点和100点的集合,并且算法匹配集合中的1个或几个点,那么这几个点之间得到的RMSD将为零,而整体叠加可能不会太大。所有点对之间的RMSD不是更好的解决方案(我认为)

我能想到的唯一一件事是为集合Y中的每个点找到集合X中最近的点(因此将有精确的min(| X |,| Y |)匹配,例如,在这种情况下为50)并根据这些匹配计算RMSD。但距离计算和二部匹配部分的计算似乎过于复杂,无法以批处理方式调用。在这方面的任何帮助也会有所帮助


谢谢

你所说的看起来像是“云到云注册”任务。以和为例。您可以在开放源代码中使用数据,看看它是否适合您。

如果您知道哪些点对彼此对应,您可以使用(LLS)恢复转换矩阵

考虑LLS时,您通常希望在
A*x=b
中找到
x
的近似值。使用转置,您可以求解
a
而不是
x

  • 用“1”扩展每个源向量和目标向量,使它们看起来像
  • 扩展到多个向量:A·X=B
  • 转置:(A·X)T=BT
  • 简化:XT·AT=BT
  • 替换P=XT、Q=AT和R=BT。结果为:P·Q=R
  • 应用LLS:Q的公式≈ (PT·P)-1·PT·R
  • 替补后卫:在≈ (X·XT)-1·X·BT
  • 为A求解,并简化:A≈ B·XT·(X·XT)-1
  • (B·XT)和(X·XT)可以通过对单个向量对的外积求和来迭代计算

    • B·XT=∑毕希特
    • X·XT=∑席·席特<
    • A≈ (∑bi·xiT)·(∑席·席)- 1
    没有矩阵会大于4×4,因此该算法不会使用任何多余的内存


    结果不一定是仿射的,但可能很接近。通过进一步处理,可以使其仿射。

    通过叠加发现路线的最佳算法是Procrustes分析或Horn方法。请跟我来

    这是一个非常困难的问题。对于不同数量的点,完全有可能找到变换,使点较少的集成为另一个集的子集。此外,根据您的数据,可能会有许多这样的转换,那么您如何决定哪种转换是最好的呢?简单的方法是否合适,例如叠加每个集合的质心,然后找到使RMS最小化的最佳旋转??还是需要更高的精确度?@数学家1975:TBH,这个问题并不像听起来那么开放。点的数量通常是相似的,较大的集合最多可能有两倍的点,我的目标是找到“一个”(非最佳)叠加,以重叠的方式对齐一些>30-50%的点。如果存在一个完美的旋转(较小的集合是变换后的子集),这就是我要寻找的完美情况。否则,应减小尺寸,直到形成可接受的匹配。质心可能没问题,但想想:一个球体&一个半球。它们的质心在完美的排列中是不同的,没有清晰的迁移路径。这是本文的主题,但可能过于学术化,无法获得您需要的牵引力。您可能需要检查Metas上的一些相关迁移路径。联系了一个国防部,他认为这不适合那里。可能在或上获得更多牵引力,但我不确定。点集是任意的吗?或者它们是解算器可以利用的一些底层几何结构的样本?这些点来自蛋白质结构,因此有一个底层结构,但我认为这不是很容易利用的。