una-dinosauria/human-motion-prediction

Question about the zero velocity baseline

LittleFlyFish opened this issue · 4 comments

I Have read your paper, but I don't really understand the zero velocity baseline. It has few descriptions in the paper. I am not sure the mean "predict the first frame by velocity zero", it that means set the first frame of predicted motion clip the exactly same as the last frame in Input motion clip?

Hi @LittleFlyFish,

set the first frame of predicted motion clip the exactly same as the last frame in Input motion clip?

Correct. You can see the code to do that under https://github.com/una-dinosauria/human-motion-prediction/blob/master/src/baselines.py

Cheers,

Hi @LittleFlyFish,

set the first frame of predicted motion clip the exactly same as the last frame in Input motion clip?

Correct. You can see the code to do that under https://github.com/una-dinosauria/human-motion-prediction/blob/master/src/baselines.py

Cheers,

Ah, I understand now. Thank you very much !

@una-dinosauria
I need some clarification about the implementation.
I have read the code line by line and would like to understand the logic behind it.
As I understood from your code, each batch of data consists of 150 frames and these frames are divided as the following:
encoder inputs (frames 0 to 48)
decoder inputs (frames 49 to 148)
decoder outputs (frames 50 to 149)
There are 8 batches in total.
In running_average function, I don't understand why do you calculate the error by taking what is so-called (the last frame or avg)- which is the zeroth frame in decoder inputs - then subtracting it from all frames in decoder outputs.

ee = np.power( dec_out[i][:,idx_to_use] - avg[idx_to_use], 2 )

Usually, the error should be calculated between the ground truth and the prediction, but here there is no prediction we are taking the same test data that's already present.

Usually, the error should be calculated between the ground truth and the prediction, but here there is no prediction we are taking the same test data that's already present.

Yes, that's the point of the zero-velocity baselines -- they are learning-free. We simply take the motion seed and do simple manipulations to take them as predictions. This is the same information that, at test time, learning-based baselines need.