What is the difference between standard SIFT descriptor and upright SIFT descriptor? I am conducting a research on the topic of mobile location recognition and recently I have reached the issue of extracting discriminative features. I've read that for upright images is strongly suggested using upright keypoints since they are more discriminative. My problem is that I don't understand clearly what is exactly an upright SIFT descriptor, the reference I found coining the term is:

Handling Urban Location Recognition as a 2D Homothetic Problem

Concretely in the reference they say the following:


  ... for images in which gravity direction information exist we project
  the gravity direction onto the facade and align the keypoints with
  this direction (upright SIFT) ...


My only clue is an implementation of this upright SIFT descriptor as part of an academic project from a course of Digital Image Processing at Stanford

Thank you very much, I would appreciate any insight.
SIFT algorithm detects keypoints, assigns orientation to them and then constructs a descriptor of that keypoint using the assigned orientation as a reference frame. Upright SIFT descriptor does the same thing, but forces orientation to be the vector (0, 1). So it's very simple: upright descriptor simply assumes that the orientation of the features doesn't change over_time/between_images and therefore just uses the unit vector directed upwards to construct the frame of reference.