In the past I've done gender recognition using LDA. Implementation wise it was just like cut and dry facial recognition, I just trained a set of faces and classified them by male or female instead of a name or id. Given a large enough dataset is this approach a viable option?
If the above isn't a good approach (which I don't really think it is), what are some different approaches/methods to perform age estimations with OpenCV?
The face age estimation algorithm mainly uses mean absolute error (MAE) and cumulative score (CS) as the standard to measure the accuracy of age estimation [23].
Age and gender, two of the key facial attributes, play a very foundational role in social interactions, making age and gender estimation from a single face image an important task in intelligent applications, such as access control, human-computer interaction, law enforcement, marketing intelligence, and visual ...
Age estimation has many useful applications, such as age-based face classification, finding lost children, surveillance monitoring, and face recognition invariant to age progression. Among many factors affecting age estimation accuracy, gender and facial expression can have negative effects.
Age and gender classification is a dual-task of identifying the age and gender of a person from an image or video. ( Image credit: Multi-Expert Gender Classification on Age Group by Integrating Deep Neural Networks )
The work of G.D. Guo and his associates, to my mind, probably represents one of the most recent and focused investigation into this problem of automatic age classification. See here for a complete list of publications.
To answer your original question: from the 2010 survey paper "Age Synthesis and Estimation Via Faces: a Survey", a range of data driven techniques are presented as indeed viable from large annotated databases (p. 1968). As for the actual performance of the various algorithms for age estimation: reasonably impressive levels of classification, reported as the Mean Age Error and Cumulative Score metric, are possible (see table 1 on p. 1970) - with the usual caveats as to the choice of feature selection, model representation etc.
How you implement the currently best performing algorithm in OpenCV might prove tricky - but should be possible!
EDIT: One quick thing that occurs to me - in the absence of the currently favoured vogue for Biological Inspired Features, you could use OpenCV's support for the HoG descriptor (which is effectively biologically inspired).
See for example:
Extracting HoG Features using OpenCV
HOG features visualisation with OpenCV, HOGDescriptor in C++
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With