I’m studying the LBP algorithm and generate another question. In the paper Face Detection and Verification using Local Binary Patterns, Yann RODRIGUEZ (which is the phd thesis paper), On page 74 (Section 4.3.3 The Proposed LBP/MAP Face Verification System), the author mentioned that
The cropped faces are then processed with the LBP operator (N = 59 labels)
and
For BANCA experiments, the generic model was trained with the additional set of images, referred to as world data (independent of the subjects in the client database).
My questions are:
1. Why the number of labels is 59?
2. how to train the world data?
Has anyone read this article before?
OpenCV already has Local Binary Patterns Cascades for Face Detection, which you can find in the
datafolder coming with your OpenCV installation. So there’s no need to train one yourself, at least for face detection. See:This is similar to what Rodgriguez used in his PhD thesis. The number 59 mentioned in the paper is due to the number of Uniform Local Binary Patterns, see Scholarpedia for a thorough introduction:
The available LBP cascade should be noticable faster, than the available Haar Cascades, but has a slightly lower True Positive Rate (no citation here, only based on my experiences). This could also be due to the training set.
You use them just like the other available cascades, here is an example for the OpenCV Python bindings:
And here is a source code snippet where you also see how to use the CascadeClassifier in OpenCV:
You asked about Local Binary Patterns for Face Detection, this is what the mentioned PhD thesis is about. Face Recognition with Local Binary Patterns is somewhat similar, but you build spatially enhanced histograms from the Local Binary Patterns to encode spatial information for face recognition. I suggest you read the Local Binary Patterns part of my guide to face recognition: