2012-10-18 67 views
1

我正在使用Dynamic Time Warping來查找與模板軌跡不匹配的軌跡段。如何使變形的軌跡平滑。

模板軌跡:

  . . . 
     .   . 
    .   . 
    .    . 
.     . . 
        . 

測試軌跡:

  . 
      . . 
     .  . 
     .   . 
    .   . 
    .    . 
.     . . 
        . 

使用動態時間規整,我發現不符合以下幾點(標有星號)

  * 
      * * 
     .  . 
     .   . 
    .   . 
    .    . 
.     . . 
        . 

現在我想擴大錯誤我所做的是, 我乘以x和d y錯誤(不匹配)點的座標系 x = x * 1.2; y = y * 1.2;

這給了我一個畸形的軌跡是這樣的:

  * 
     * * 

    .  . 
    .   . 
    .    . 
.     . 
.     . . 
         . 

,但我希望有一個平穩的軌跡,其中所有的點改變,並且錯誤擴大。像這樣:

  * 
     * * 
    .  . 

    .    . 
    .    . 
.     . 
.     . . 
         . 

我該怎麼做? PS:我真的無法想到一個簡單的方式來描述我遇到的問題。我使用C++,如果無論如何解釋你的解決方案。

回答

1

定義A(t)作爲時間= t處的位移矢量。然後每個點的位移矢量就是它的位置矢量(x,y)減去以前的位置矢量。

將這些向量縮放以獲得縮放後的誤差向量,然後通過將向量相加在一起來逐點移動。這不僅會改變誤差的範圍(y軸),還會改變域(x軸),所以它看起來很平滑。

有什麼用?