Human Recognition in Unconstrained Environments: Using Computer Vision, Pattern Recognition and Machine Learning methods for Biometrics