Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COMP338 - Computer Vision - Assignment 1

o This assignment is worth 15% of the total mark for COMP338

o Students will do the assignment individually.

Submission Instructions

o Send all solutions as a single PDF document containing your answers, results, and discussion of the results. Attach the source code for the programming problems as separate files.

o Each student will make a single submission to the Canvas system.

The deadline for this assignment 16/11/2023, 5:00pm

o Penalties for late submission apply in accordance with departmental policy as set

out in the student handbook, which can be found at

http://intranet.csc.liv.ac.uk/student/msc-handbook.pdf

and the University Code of Practice on Assessment, found at

https://www.liverpool.ac.uk/media/livacuk/tqsd/code-of-practice-on-                     

assessment/code_of_practice_on_assessment.pdf

Task 1. (50 marks) 2D Convolution for Image Filtering

OpenCV provides a function cv.filter2D() to convolve a kernel with an image (See Lab 03 - Image Manipulation and Lecture 5.). Given a kernel (or a filter) with any size, do the following:

1.   (25 marks) Reimplement the 2D convolution without using the built-in cv.filter2D() function.

2.   (10 marks) Test and visualize your implementation results.

3.   (15 marks) Discuss the difference between your implementation, your results compared with the OpenCV implementation.

Note:

-    You can look at the cv.filter2D() code to understand how OpenCV implements this  function. However, it is mandatory that you reimplement the function based on your understanding.

Task 2. (50 marks) Feature Extraction

In Lecture 11 and Lab 04 - SIFT & Feature Matching, we have discussed the SIFT feature. In practice, there are several other feature extraction methods such as SURF or ORB. In this    task, we will do extra reading, implementation, and compare SIFT vs. SURF vs. ORB.

Papers to read:

-    Bay et al., SURF: Speeded Up Robust Features, ECCV 2006

-    Rublee et al., ORB: An efficient alternative to SIFT or SURF, ICCV 2011.

Good tutorials:

-   https://docs.opencv.org/4.x/df/dd2/tutorial_py_surf_intro.html

-   https://docs.opencv.org/4.x/d1/d89/tutorial_py_orb.html

1.   (20 marks) Read the SURF and ORB papers and tutorials, summarize your understanding. Compare the differences between SIFT vs. SURF vs. ORB.

2.   (10 marks) Given two images (victoria.jpg and victoria2.jpg - both available on

Canvas), call OpenCV functions to extract the SURF and ORB keypoints. You can use the built-in functions from OpenCV. Visualize the detected keypoints.

3.   (20 marks) Given two images (victoria.jpg and victoria2.jpg), extract the descriptors   using SIFT, SURF and ORB. Perform keypoint matching using Brute-Force Matcher. From the results,which method do you think perform the best? Justify your answer.