Proofs and Study Technique

Briefing Learning and Proof

Exercise

Review.

Consider the material covered in the sessions 21-22 October.

Do you know,

  1. how to calculate 3D co-ordinates of an object point \(p\), given image points \(x_1\) and \(x_2\) in two separate camera frames? What do you require to do so?
  2. recover the relative pose of two cameras, given matching image points in the two frames? How many such image points do you require?
  3. If the answer is no to either 1 or 2,
    • what knowledge do you have to build on?
    • what do you need to find out?
  4. Based on the answers above, you may need either to
    • continue with the exercises from last week,
    • ask for help,
    • or continue with the exercises below.

Skew-symmetric Matrix (Ma 2004:Ex 5.3)

Given a vector \(T\in \mathbb{R}^3\) with unit length, i.e. \(||T|| = 1\), show that:

  1. The identity holds: \(\hat T^T\hat T = \hat T\hat T^T = I - TT^T\) (note that the superscript \(^T\) stands for matrix transpose).
  2. Explain the effect of multiplying a vector \(u\in \mathbb{R}^3\) by the matrix \(P = I - TT^T\). Show that \(P^n = P\) for any integer \(n\).
  3. Show that \(\hat T^T\hat T\hat T = \hat T\hat T^T\hat T = \hat T\) Explain geometrically why this is true.
  4. How do the above statements need to be changed if the vector \(T\) is not of unit length?

Part 1.

Consider the vector \(T=[a,b,c]^T\).

  1. Write down the matrix \(\hat T\) in terms of \(a,b,c\).
  2. Calculate \(\hat T^T\hat T\).
  3. Calculate \(\hat T\hat T^T\) and compare to the above (2).
  4. Calculate \(TT^T\) and compare to the above (3).
  5. Does the identity hold?

Part 2.

  1. Use Part 1 to rewrite \(P\) in terms of \(\hat T\) and \(\hat T^T\).
  2. Rewrite \(Pu\) in terms of cross products.
    • You may have to think separately about what \(\hat T^Tu\) means in terms of cross products. We know that \(\hat Tu=T\times u\).
  3. Draw the vectors \(T\), \(u\), and \(Pu\) in a diagram. Which angles are straight and which need not be?
  4. Consider the vectors \(PPu\), \(PPPu\), and so on, in your diagram. What happens when you keep multiplying by \(P\).
  5. You can also spell out all the elements of \(P\), and calculate \(P^2\).

Reflect (this is not part of the textbook problem, but a very instructive question to reflect upon) Why can we say that \(P=P^n\) for any \(n\) but not that \(P^{n-1}=I\)? What does the first multiplication by \(P\) do in the figure that is different from the next one?

Part 3.

You can solve this in the same way as Part 2. The only difference is that the first matrix you multiply with is \(\hat T\), rather than \(P\). Review you figure and see if Part 3 makes sense.

Part 4

If \(T\) has non-unit length and write \(T=cT'\) where \(c\in\mathbb{R}^3\) and \(T'\) has unit length. What happens with the constant \(c\) if you insert \(cT'\) for \(T\) in the arguments from Part 1-3?

Exercise 5.7 (Ma 2004:160)

(see the textbook for the problem text)

If you spot a solution straight away, you can try that straight away. If you do, you are clearly more confident in linear algebra than expected at this level.

The rest of us should start to play around with the matrix \(E\). What can we do with the matrix \(E\) using core techniques in the syllabus?

  1. You can do a Singular Value Decomposition at least.
    • You can use numpy.linalg.svd in python.
    • You just have to choose a value for \(a\) to do the decomposition numerically.
    • Try a few values, e.g. \(a=1,2,10\).
  2. Knowing the decomposition, you can calculate \((T,R)\) using textbook techniques. Do this for a few values of \(a\). You can still use python for this.
  3. What do \(T\) and \(R\) look like geometrically?
  4. Compare the decompositions for the different values of \(a\).
    • can you guess on a decomposition for general \(a\)?
    • test that your guess is correct by multiplying the components \(U\Sigma V^T\) and compare the result to \(E\).

(It is possible to do the test multiplication (3) using software like Maple (commercial) or sage (open source), but this is out of our scope, and matrix multiplication can be done by hand.)