06.08.2013 Views

A COMPARISON AND EVALUATION OF MOTION INDEXING ...

A COMPARISON AND EVALUATION OF MOTION INDEXING ...

A COMPARISON AND EVALUATION OF MOTION INDEXING ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!