If that's the case (I think it is but correct me if I'm wrong) wouldn't it make more sense to compute the Eigen-representation of each training face first, then average those Eigen face representations as opposed to the cropped faces themselves?
1. Faces are simply averaged for "Yes" and "No" training swipes.
2. Each one of these two "average" faces are mapped to an Eigen space (where the Eigen vectors are computed from the training sets? or were they preprocessed with some other dataset?).
3. For every new face, the bot maps that face to the same Eigen space and makes a Yes/No decision based on whichever model vector it's closest to (either the "Yes" vector or the "No" vector).
...right?