2017-07-15 166 views
2

我需要定義一個失配函數來描述兩組曲線的擬合情況。曲線被記錄爲點陣列。誰有想法或給我一些提示?如何評估一組曲線如何適合其他曲線?

曲線的兩組是像下面,它們可以是非常不同的或有時它們是相同的。如果第一個部件的所有部件位於第二個部件上,我會說該配件是完美的。它們具有相同的x軸和y軸。

首先是真實世界中的數據,二是合成的那個來自轉發,我需要定義我最小化或最大化來執行反轉的錯配/擬合函數。事實上,第二個不是它的原始格式,合成數據是一個每個(x,y)都有一個值的二維數組,然後我選擇最大值並得到這些點如下。

附錄

我有一組真實世界的數據,其具有這樣的格式:

X Y


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.3

  • 2. 6.7

  • ...

    第二個數字是我選擇最大值的結果。當然,最好使用原始合成材料。

    的反轉需要一個失配/配件的功能,我不知道如何界定它。如果他們只是構成一條曲線的某些點並與另一條曲線進行比較,則可以進行插值並計算歐幾里德距離。但是,它們現在是一組曲線,很難定義它。

    the first group of curves the second group of curves

    +0

    什麼是你打算使用這種算法?如果這是真實世界的數據,那麼它代表什麼?爲什麼你想匹配這種類型的不同曲線? – cdo256

    +0

    @ cdo256一個是現實世界的數據,另一種是人工合成的,我需要定義,我最小化或最大化執行inverison功能。 Indead,它們都是二維數據集,我選擇最大值並得到上面的兩條曲線。 – Aristotle0

    回答

    0

    關閉我的頭頂,我會用某種Iterative Closest Point (ICP)結果來表徵兩個點雲之間的距離(距離將是非正式的大小這種轉變將會給你最好的裝備)。基本上,你認爲紅色和藍色的點在同一個平面上。然後,

    1-你每個藍點最接近的紅點關聯。

    2-找到最小化每個藍色點與其相關紅色點之間距離總和的轉換/旋轉(這是簡單的最小化,您可以通過簡單的Levenberg-Marquardt來實現,雖然看起來有點矯枉過正,高斯 - 牛頓應該這樣做)。也就是說,你將被解決

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

    (b_i,r_i)一對夫婦在步驟1中得到R藍色/紅色比賽是二維旋轉矩陣,T=[t_x t_y]'是2D轉換。

    3-迭代throught這些步驟1和2直到收斂。

    這給你一個載體,R^3,這是形式

    transformation=[angle translation_x translation_y]

    的現在,你可以使用norm(transformation)作爲一個粗略的措施爲兩條曲線如何彼此配合。儘管如此,你應該小心修復像[0,pi]這樣的間隔的估計角度。

    +0

    感謝您的想法。我讀了一些關於ICP的文章,有一個問題:如果紅點雲與藍點雲非常不同,那麼轉換(R,T)的含義是什麼?它的規範非常大嗎? ICP是否僅適用於具有相似輪廓或形狀的那些?轉發產生的藍色形狀可能與紅色不相似。 – Aristotle0

    +0

    是啊......我承認,這是一個壞主意(感謝您編輯您的問題,現在問題對我來說更加清晰)。如果兩點集合太不相同,那麼我認爲ICP不會收斂,所以這可能是一個巨大差異的指標。 – Ash

    +0

    我看到它的方式,你需要或者有某種描述的,對兩套比較,或者你需要計算從一組轉換到另一個,但在一個很好......更復雜的方式比我的ICP理念。至於描述符,對我來說似乎遙不可及(除非你可能訓練convNet),所以我認爲第二種方法可能是更安全的選擇。 – Ash