iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0
自我挑戰組

深入淺出做中學Unity系列 第 4

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

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

•假設有兩個3維空間的向量,分別為x(4 , 7)與y(7 , 11),則此兩向量之間的距離為:
https://ithelp.ithome.com.tw/upload/images/20200904/20130055590kVaGagU.png

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

路徑必須滿足下列條件:
•端點關係:頭對頭、尾對尾
•局部關係:假設某一點D(i , j)為最佳路徑上的點,其前一點路徑只有三種可能 : D(i-1 , j)、D(i-1 , j-1)和D(i , j-1)https://ithelp.ithome.com.tw/upload/images/20200904/20130055mfQKzvGTaa.png

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

其中D(i , j)為ti與rj之間(i , j)的距離值 , A(i , j)為原點(1 , 1)到(i , j)的最小累積距離值 。


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

尚未有邦友留言

立即登入留言