A COMPARISON AND EVALUATION OF MOTION INDEXING ...
A COMPARISON AND EVALUATION OF MOTION INDEXING ...
A COMPARISON AND EVALUATION OF MOTION INDEXING ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
4.1 Scaling and Thresholding the DTW Score<br />
Dynamic time warping tries to find the best matching occurrence of the query<br />
in a given sequence. If both the query sequence and the sequence to be searched are<br />
synchronized, there is a frame by frame match. However, if the given sequence is<br />
performed faster or slower than the query, the query is shrunk or enlarged to match<br />
the other sequence. This is very common in motion sequencing as humans rarely have<br />
movements at a uniform pace. Hence, a minor warp is always expected.<br />
In cases where the actions being compared differ greatly, the cost of matching<br />
future consecutive frames in the sequences may be very high, compared to keeping<br />
one sequence frozen and warping large lengths along the other. This results in long<br />
horizontal or vertical paths in the matching cost matrix. To ensure these matches are<br />
rejected, we can associate a penalty for following non-diagonal steps.<br />
In our implementation, we keep count of the number of non-diagonal steps made<br />
in the matching path. We later increase the cost obtained by an amount proportional<br />
to these counts. These also depend on the actual length of the match. We use<br />
regression to determine the proportionality constants and dependence on length. We<br />
obtain these values for all the motion files in the database, and store them in a matrix<br />
A = [C1 | C2 | C3 | C4 | C5], where C1 is a column with DTW score, C2 is a column<br />
with warp along sequence 1, C3 is a column with warp along sequence 2, C4 is a<br />
column with length of DTW match, and C5 is a column with a constant 1.<br />
For a correct DTW match, we expect the score to be around a value Y + , and<br />
for an incorrect match, we expect it to be around a value Y − . We create a column<br />
vector B, where ith row is Y + if the query matches the ith sequence, else ith row is<br />
Y − . In our case, we chose Y + = 0 and Y − = 100. We use MATLAB’s regression<br />
42