I have been experimenting with face detection in OpenCV (Open Source Computer Vision Library), and found that one could use Haar cascades to detect faces as there are several of them provided with OpenCV. However, I have noticed that there are also several LBP cascades. After doing some research, I found that LBP stands for Local Binary Patterns, and it can also be used for face detection, according to the OpenCV Face Detection Documentation.
What I would like to know is, which works better? Which one performs faster, and which one is more accurate? It seems that LBP performs faster, but I’m not 100% sure about that either. Thanks.
LBP is faster (a few times faster) but less accurate. (10-20% less than Haar).
If you want to detect faces on an embedded system, LBP is the default choice, because it does its calculations in integers.
Haar uses floats for processing, which have poorer support on embedded and mobile processors; as a result, the performance penalty is significant – big enough to make its usage on mobile phones impractical.