Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

PCA Update Implementation - Discussion

Hello All.

This is a paper on merging and splitting eigenspaces. This is very useful if you have multiple datasets that you would like to join together. There is also a very nice opportunity to split eigen spaces, which could be useful to create a classifier that contains say.... face data. We could split the subsets of the eigenspace that only correspond to say certain states of the face, such as emotions or eye movements.

Anyway, the linear algebra is quite a challenge for me.

It is a 3 stage process, but each stage is quite involved. Outlined in section 3.1, preceeding sections outline the theory of the eigenfacerecognizer() method similar to that used in OpenCV.

The data you start with is the eigenvectors and means for the two models. By adding another dimension, you can calculate the rotation between the two models. From this rotation, as full set of eigenvectors, which includes the variation in both sets.

Here is an outline of the 3 steps provided in the paper, with characters changed to suit the format of this text input. The paper does break down the steps in the following section.

Step 1

Construct an orthonormal basis set, T, that spans both eigenspace models and meanX - meanY. This basis differs from the required eigenvectors, W, by a rotation, R, so that:

W = T R

Step2 Use T to derive a new eigenproblem. The solution of this problem provides the eigenvalues, S, needed for the merged eigenmodel. The eigenvectors, R, comprise the linear transform that rotates the basis set T.

Step 3 Compute the eigenvectors, W, as above and discard any eigenvectors and eigenvalues using the chosen criteria (as discussed above) to yield W and S

Anyone got an ideas here of what's going on? Any further clues as to how we could implement this using the matrix multiplication methods available in OpenCV?