Question

I want to implement a face detection algorithm that does not take a lot of training time. I looked at the Viola-Jones method but the training time is too long. I read about LBP and how it is used in face detection. I want to implement in in C on a development board running on linux. It seems LBP is more suitable to use on microprocessors as it uses binary operations as opposed to the floating point operations used by viola-jones.

I want to avoid using openCV as I need to implement it using C on the development board. Are there any useful resources online explaining LBP well other than papers. It would be great if someone can explain LBP in a very simple way.

Was it helpful?

Solution

I refer you to my own answer to someone who wanted to do somewhat the same thing. That question covered both training the cascade and its actual running, and I gave a summary of the training process and a detailed explanation for the running of OpenCV's LBP cascade.

Face Detection Algorithms with minimal training time

OTHER TIPS

You have image patch. Than according to your mask you compare pairwise pixel intensities and save it in the descriptor.

For example, you compare intensities of the corner pixels and center - it is your mask. Descriptor = array 1x4, result of comparison. Up-left pixel is lighter than central, desc[0] = 1. Up-right is darker, desc[1] = 0. Down right is lighter, desc[2] = 1. Down left is lighter, desc[3] = 1. You have described patch with 4 bit LBP.

Real LBPs have intermediate normalization step, can use not intensity, but gradient, different masks, but basic principle is like this.

For information on LBP, you can refer to scholarpedia:

http://www.scholarpedia.org/article/Local_Binary_Patterns

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top