iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0
自我挑戰組

深入淺出做中學Unity(重新挑戰)系列 第 4

演算法 - 動態時間校正 (Dynamic Time Warping)

  • 分享至 

  • xImage
  •  

這是一個為了在實體機器上面互動而做的演算法,簡單來說是透過幾個理論去推演出來的
•兩個N維空間的向量,它們之間的距離可以定義為兩點之間的直線距離,稱為歐基里得距離(Euclidean Distance)

https://ithelp.ithome.com.tw/upload/images/20200917/20130055obGiWoaoyM.png

•假設有兩個3維空間的向量,分別為x(4 , 7)與y(7 , 11),則此兩向量之間的距離為:

https://ithelp.ithome.com.tw/upload/images/20200917/20130055KiAFtKmQx0.png

•若兩個向量的長度不同,那它們之間的距離,可利用動態時間校正來解決
•假設有兩個向量t(t1,t2,…,tN)與r(r1,r2,…,rM),它們各別的長度為N與M,則DTW 的目標是要找出一條最短路徑,使得兩向量的距離最小

https://ithelp.ithome.com.tw/upload/images/20200917/20130055fxweknRgAL.png

路徑必須滿足下列條件:
•端點關係:頭對頭、尾對尾
•局部關係:假設某一點D(i , j)為最佳路徑上的點,其前一點路徑只有三種可能 : D(i-1 , j)、D(i-1 , j-1)和D(i , j-1)

https://ithelp.ithome.com.tw/upload/images/20200917/20130055Wy83y83BIV.png

最後是DTW演算法的步驟 :
•定義D(i , j)為ti與rj之間的距離值
•利用遞迴找出向量t與r之間的最小累積距離值A(N,M),其遞迴關係如下所示:

https://ithelp.ithome.com.tw/upload/images/20200917/20130055ixQmIgZY9H.png
其中D(i , j)為ti與rj之間(i , j)的距離值 , A(i , j)為原點(1 , 1)到(i , j)的最小累積距離值 。


上一篇
Unity3D -Animation動畫系統簡介
下一篇
Unity - 組合粒子效果
系列文
深入淺出做中學Unity(重新挑戰)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言