As mentioned previously, OpenCV v2.4 comes with various pretrained XML detectors that you can use for different purposes. The following table lists some of the most popular XML files:
Type of cascade classifier | XML filename |
Face detector (default) | haarcascade_frontalface_default.xml |
Face detector (fast Haar) | haarcascade_frontalface_alt2.xml |
Face detector (fast LBP) | lbpcascade_frontalface.xml |
Profile (side-looking) face detector | haarcascade_profileface.xml |
Eye detector (separate for left and right) | haarcascade_lefteye_2splits.xml |
Mouth detector | haarcascade_mcs_mouth.xml |
Nose detector | haarcascade_mcs_nose.xml |
Whole person detector | haarcascade_fullbody.xml |
Haar-based detectors are stored in the data/haarcascades folder and LBP-based detectors are stored in the datal/bpcascades folder of the OpenCV root folder, such as C:\\opencv\\data\\lbpcascades.
For our face recognition project, we want to detect frontal faces, so let's use the LBP face detector because it is the fastest and doesn't have patent licensing issues. Note that the pretrained LBP face detector that comes with OpenCV v2.x is not tuned as well as the pretrained Haar face detectors, so if you want more reliable face detection then you may want to train your own LBP face detector or use a Haar face detector.