[SOLVED] COMP90086 Assignment 3 Fundamental Matrix Calculation

Programming resource
Digital learning resource
Category:
✓ Practical programming resource
✓ Suitable for guided study and reference
✓ Tutor guidance available when needed

Description

Rate this product

Introduction

In this project you will implement the calculation of a Fundamental matrix using your own

algorithms. You can use the keypoint detection and matching approach used in the week 8

Workshop, as well as code for drawing lines on images, but the implementation of the

Fundamental Matrix calculation must be your own work.

Coding tasks

Your tasks are:

  1. Find keypoints and correspondences between two images
  2. To implement the 8 point algorithm you will need to:
  3. Shift and scale the pixel coordinates
  4. Compute the design matrix from sets of (at least) 8 points
  5. Perform an SVD of the design matrix to find its null space (you can use a

library function for the SVD)

  1. Compose the draft fundamental matrix F
  2. Perform an SVD of the draft fundamental matrix, set the smallest singular

value to zero and reassemble so that F now has determinant = 0

  1. Calculate which correspondences are inliers and which are outliers using this
  2. You will need to allow for some error because the keypoint coordinates

won’t lie exactly on the epipolar line so you will need to allow for 1-2 pixels

error for a correct correspondence. Also remember to take into account any

scaling you applied at step a.

  1. Wrap steps b-f in a RANSAC loop that runs enough times that you have a

probability > 99% of finding 8 inliers and computing a good quality F.

  1. Re-estimate F using all the inliers.
  2. Compute F in terms of the original pixel coordinates (ie undo the effects of

step a).

  1. Randomly sample ten keypoint pairs from correspondences you have detected as inliers

to your best F estimate and display these on the images, together with their epipolar lines.If you make this a separate cell in your jupyter notebook, you can run the cell more than

once to see different random samplings.

Report

Your report should describe why you need each of these steps and any design choices you

have made along with numerical quantities, e.g. choice of error tolerance at step f, or the

calculation needed to determine the number of RANSAC iterations at step g.

You should also discuss whether there are images that work better than others in the dataset

and why.

Dataset

The dataset is the kusvod2 dataset. Image files are of the form <something>A.png and

<something>B.png for each image pair.

Using Library Code

You may use library code for everything except the implementation of the 8 point algorithm

which you must implement yourself. This means that you can use library implementations of

keypoint detection and correspondence (e.g. SIFT or FAST and BRIEF) as well as

implementations of SVD or other linear algebra operations

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.