Skip to main content

lbrandy.com » Blog Archive » How We Made Our Face Recognizer ...

Popularity Report

Total Popularity Score: 0

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Rank

Bookmark History

Saved by 5 people (-2 private), first by anonymouse user on 2008-10-27


Public Sticky notes

How We Made Our Face Recognizer 25x Faster

This is a war story from my real day job. I work at a start-up company in Pittsburgh that does face detection, tracking, and recognition software. This particular problem involved optimization of the face recognizer.

I’m going to try to simplify our face recognition algorithm as much as possible to get to the point I’m trying to make. If you are reading this to try to learn our algorithmic secrets, you’ll be sorely disappointed. What you’ll see here is in the first few chapters of a pattern recognition textbook.

Recently, we came out with a brand new version of our face recognizer. As is usually the case, once they are happy with the accuracy they hand it off to me to see if I can speed it up.

Highlighted by wizzylolly

tree based vector quantization

Highlighted by johnwprior

only look up a child node if you mean it

Highlighted by johnwprior

current node has all of the information necessary to choose which child to follow

Highlighted by johnwprior

improved the performance of the single threaded recognizer by a factor of 6

Highlighted by johnwprior

loop reordering requires a set of input faces to work properly

Highlighted by johnwprior

It would be natural for a programmer to decide that you need a compare(face1, face2) function. Unfortunately, however, implementing multiple comparisons by making multiple calls to a single compare() function leads to the misuse of cache.

Highlighted by johnwprior