2

我需要定义一个失配函数来描述两组曲线的拟合情况。曲线被记录为点阵列。谁有想法或给我一些提示?

两组曲线如下所示,它们可能非常不同,有时它们是相同的。如果第一个的所有部分都位于第二个,我会说配件是完美的。它们具有相同的 x 轴和 y 轴。

第一个是真实世界的数据,第二个是来自转发的合成数据,我需要定义一个失配/拟合函数,我最小化或最大化以执行反演。确实,第二个不是它原来的格式,合成数据是一个二维数组,每个 (x, y) 都有一个值,然后我选择最大值并得到这些点,如下所示。 

附录

我有一组真实数据,格式如下:

xy


1.1 1.2 

3.1 2.3

...

我绘制它然后得到一些曲线作为第一个图。 

这些是数据,如果我想进行反演,我将进行正向模拟以获取合成数据以与数据进行比较。我得到的合成是这样的格式:

x y 值


  1.    1. 3.4

  2.    2. 1.2

  3.    3. 5.6

  4.    4. 1.2

...

  1.    1. -1.3

  2.    2. 6.7

...

第二个数字是我选择最大值的结果。当然,最好使用未加工的合成材料。

反演需要一个失配/拟合函数,我不知道如何定义它。如果它们只是组成一条曲线的一些点并与另一条曲线进行比较,我可以进行插值并计算欧几里得距离。但是,它们现在是一组曲线,很难定义。

第一组曲线 第二组曲线

4

1 回答 1

0

在我的脑海中,我会使用某种迭代最近点 (ICP)的结果来表征两个点云之间的距离(距离将是,非正式地,将为您提供最佳转换的大小配件)。基本上,您假设红点和蓝点在同一平面上。然后,

1-您将每个蓝点与其最近的红点相关联。

2-找到最小化每个蓝点与其相关红点之间的距离总和的平移/旋转(这是简单的最小化,您可以通过简单的 Levenberg-Marquardt 来做到这一点,尽管它看起来有点矫枉过正,Gauss-Newton 应该这样做它)。也就是说,你将解决

argmin_{R,T} sum_i{norm2(b_i-R*r_i+T)}

(b_i,r_i)在步骤 1 中获得的一对蓝色/红色匹配。R是 2d 旋转矩阵,并且T=[t_x t_y]'是 2d 平移。

3- 迭代这些步骤 1 和 2 直到收敛。

这为您提供了一个向量 in R^3,其形式为

transformation=[angle translation_x translation_y]

现在,您可以norm(transformation)粗略地衡量两条曲线相互拟合的程度。您可能应该小心地将估计的角度固定在一个区间内,[0,pi]尽管如此。

于 2017-07-16T17:42:22.117 回答