Closed IvanKwokKC closed 3 years ago
@IvanKwokKC It's because the input data has been normalized. You may want to check out the official release of the code here.
I find the normalization function in the code:
def normalize(data):
shape = data.shape
data = np.reshape(data, (shape[0], -1))
data = data.astype('float32') / 255. # scaling
data = data - np.mean(data, axis=0) # normalizing
return np.reshape(data, shape)
I am not good in statistics. I think this is zero mean normalization.
data = data - np.mean(data, axis=0) # normalizing
Does it possible convert normalized data back to original one? I have no idea.
@IvanKwokKC I think you can just keep the original data.
I think the output is strange. The input has been normalized using a zero-mean function. However, the output always stay a small or negative number.
train_y and val_y is actually the xy offset from your mobile phones camera. According to this dataset, the offset ranges from 0~20 centimeters. You normalize the input data but your did not normalize the output of the network. The problem is not the normalization.
@Vampire-Vx Thank you for providing additional information. I wondered if the output has already been normalized by the original authors when releasing the dataset. The dataset I was using was a small sampling from the whole dataset. Please refer to #4 for more about this dataset. You may want to contact the original authors to get the raw output.
I expect both train_y and val_y are the 2D coordination of eye graze .
But the result is quite strange. Most of the coordination are very small or negative. That means most eye graze always point at the left top side. But the fact doesn't like that. Most of them are wrong.
Please concern the circle and the center of circle. The center is the predicted point of eye gaze.