Programming Homework

HWP6: Feature Matching

Goal: Learn to implement feature matching of several local feature descriptors

    • Understand two keypoint matching methods: template matching and feature descriptor matching.
    • Implement the OpenCV feature matching method for 5 keypoint descriptors: SIFT, SURF, ORB, BRISK, FREAK.


Program and test images

    • Search the sample code of "Chapter 9 Describing and Matching Interest Points" by yourself.
    • The tests images of the book chapter, Notre-Dame Cathedral, are provided for you to download: image1, image2.
    • Write programs that can read test images and run the two feature matching methods by OpenCV.
    • You have to test your program by your images. You should take photos of an object with different scales and viewpoints.

Web Report

    • Create a web page with descriptions, explanation and pictures for your programs.
    • Requirements of the report page:
      • For each program code, you have to write 4 parts: (1) goal of this code, (2) theory and principle of the code, (3) code segment explanation, and (4) result comparison or analysis.
      • Theory explanation
        • (1) template matching,
        • (2) knn matching,
        • (3) radius matching,
        • (4) cross check,
        • (5) ratio test.
      • Code explanation
        • You have to explain at least two important OpenCV methods: cv::matchTemplate function and cv::BFMatcher class. Note that the cv::BFMatcher class has three match functions: match(), knnMatch() and radiusMatch().
        • You have to explain the most important code segments in your program.
      • Experiments
        • Use the Notre-Dame images and your images to run your programs.
        • Change parameters of algorithm's functions to get different result images.
        • Compare and discuss the result images, and explain why the change of parameters can produce different results.
    • Submit your web address by Google Classroom.