\section{Method}
\subsection{Selecting pictures from the database}
The FRGC dataset consist more then 50,000 pictures of more then 4000 different persons. Since it is not practical to analysis all pictures from the database.  The amount of pictures available per individual is not constant. Therefor only a section of the dataset will be analyzed.

Since it is interesting to know why some individuals have better recognizing performance then others there should be no different in the circumstance the picture is taken. Therefore, only pictures taken in a controlled light environment are taken form the dataset. 

To get a reliable estimating of the true-match rate there should be enough pictures per individual. A minimum of 20 pictures per individual is chosen. 

Test was performed with 31 individuals. From every individual are exact 20 pictures in the dataset. So in total are there 620 different pictures which will be analyzed.  

\subsection{Get the score matrix from Verilook}
Verilook is face recognition software. Verilook can compare two pictures from individuals and give matching score of these two pictures. These scores will be higher when there is a better match. 

All scores are saved in a score matrix. Because every picture is compared to every other picture in the selected dataset. This matrix has 620 columns and 620 rows. 

Comparing picture 1 to picture 2 gives the same result as comparing picture 2 to picture 1. Therefor only half of the matrix is filled in by Verilook. 

Furthermore, comparing a picture to exact the same picture will always give the maximum score.  Therefor this scores are not calculated by Verilook. 

When Verilook cannot calculate a matching score, a score of minus 1 is saved in the matrix. A real matching score is always positive. This way the minus 1 scores can easily be filter out in further analysis. 

Verilook is not a stable program, after a random amount of comparisons the Ncore.dll crashed. To work around this problem a watch dog program was written. This program gets the status of the Verilook process and when the process is not responding it will restart the process. After every comparison the calculated score together with the status variables is saved. When the process restart, it continues where it left off. 

\subsection{Get the ROC from every subject}
Calculation all the ROC\rq{}s will be done with the use of MATLAB. All the comparison scores are stored in a upper triangular matrix. First step is to sort all the comparison scores per subject and per picture. To store this information two structs where generated. The picture struct contains all genuine and imposter scores, the amount of failed matches for the picture is stored as \lq\lq{}noface\rq\rq{} The subject struct contains all genuine and imposter scores as well as all the picture scores of this particular subject, these picture scores contain the same information as the picture struct.

With the use of a loop the true and false match ratings are calculated for each subject. The loop tests for each threshold value between zero and the maximum matching score how many impostor and genuine scores there are. Both the impostor score $s>t$ and genuine score $s>t$ is divided by the total amount of impostor and genuine comparisons. The outcome of each threshold is stored in an array which is stored in the subject struct. To generate the overall ROC all these true and false match ratings are summed and divided by the total amount of subjects.

To test the system it is important to visualize all the scores and images. Therefor a MATLAB function is build which will generate \LaTeX script. This document combines per subject all pictures, ROC and scores. The overall scores per subject are represented in a table with the maximum, minimum, mean and standard deviation of the impostor and genuine scores. For further analysis the individual score per picture is added. This enables a human to test what differences in pictures reduce or increase the change on a correct match.