Given there are 4 octaves(the 1st octave is the original image, the 2nd octave is half size of the original image, and so on.), does SIFT calculate the keypoint's orientation in the original image or the octave the keypoint extracted from?
For example, there is a keypoint found in the 3rd octave. Does SIFT calculate its orientation in the original image or in the 3rd octave (one fourth of the original image size)
Similar to 1st question, does SIFT calculate the keypoint descriptor in the original image or the octave the keypoint extracted from?
The orientation of a keypoint should be computed on the original image, smoothed accordingly to the scale of that keypoint. Luckily we already have the Gaussian pyramid at our disposal, so we can simply select the closest level of this pyramid and compute the orientation there. In other words, if you detect a keypoint in the 3rd octave, then you compute its orientation in the 3rd octave of the Gaussian pyramid.
And the same for descriptors.