Computer Vision Assignment - SIFT Feature Descriptor
Demo1: SIFT generation process
Run demo 1 to see a step-by-step visualisation of finding keypoints using the SIFT descriptor. Use the command: sift_demo1(IMG);
IMG is only optional, if missing, it uses the default image we have provided.
Demo2: Feature Point Matching
The second demo program shows feature point matching using the SIFT image feature descriptor: sift demo2(IMG1, IMG2);
The algorithm extracts SIFT descriptors in both images independently. The matches are found by comparing the Euclidean distance of the descriptors.
This is a simple feature matching implementation. If it fails to find a match in cases when you think it should, try relaxing the matching constraints by running: sift demo2(IMG1, IMG2, T);
Try different values for T (0 ≤ T ≤ 16); How does the choice of T affect the results?
Demo3: Customising SIFT parameters
The SIFT descriptor construction depends on the choice of 4 parameters: the number of octaves, the intervals in the Difference-of-Gaussian pyramid, the contrast threshold value, and the edge threshold value. To visualize, use:
sift demo3(IMG, <octave>, <interval>, . . .
<contrast_threshold>, <edge_threshold>);
Octave and interval
controls the number of different scales in which the key points are searched for.
Contrast threshold
defines how we reject key points falling on low contrast regions.
Edge threshold
defines how we reject key points falling on edges.
Load one of your favourite image or one of the images provided, and try different combinations of the parameters. How the choice of parameters affect the key points found by SIFT algorithm?
Decide on a set of parameters (explain/motivate your choice). Then load the following demo image: IMG = imread(<image_not_prepared>)
Run the SIFT algorithm on this image, using the same parameters you find above. (Don't close the result window yet.) Then incrementally rotate this image 4 times, each time with an angle of 45 degrees. For each of the rotated image, run SIFT algorithm using the same parameters. Repeat the experiment, but now use an angle of 90 degrees.
To rotate an image in Matlab, you need: rotated = imrotate(IMG, angle);
What do you observe? If you have time, repeat the experiment for different degree angles.
Note - The assignment in Matlab regarding SIFT Feature. The codes with algorithm already exist, just need you to follow the instructions and produce a pdf file reviewing the output by answering the above questions.
Attachment:- Assignment Files.rar