1

我正在使用动态时间扭曲来查找与模板轨迹不匹配的轨迹段。

模板轨迹:

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

测试轨迹:

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

使用动态时间扭曲,我发现以下不匹配的点(标有星号)

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

现在我想扩大错误我所做的是,我将错误(不匹配)点的 x 和 y 坐标乘以因子 x=x*1.2; y=y*1.2;

这给了我这样一个变形的轨迹:

         *
       *    *

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

但我想要一个平滑的轨迹,其中所有的点都改变了,错误扩大了。像这样的东西:

         *
       *    *
     .        .

   .             . 
  .                .
 .                  .
.                    .    .
                        . 

我怎样才能做到这一点 ?

PS:我真的想不出一个简单的方法来描述我遇到的问题。我正在使用 C++,如果无论如何在解释您的解决方案。

4

1 回答 1

1

将 A(t) 定义为时间 = t 时的位移矢量。每个点的位移向量就是它的位置向量 (x,y) 减去前一个位置向量。

放大这些向量以获得缩放的误差向量,然后通过将向量相加来从一个点移动到另一个点。这不仅会改变错误的范围(y 轴),还会改变域(x 轴),因此看起来很平滑。

有什么用?

于 2013-04-18T15:39:11.640 回答