OpenCV identify person with face detection - c++

I would like to identify people through face detection. I found that OpenCV implements a method to detect faces but nothing on how to recognize a specific person!
Do I have to make a learning system like SVM to be able to identify people or is there an out-of-box function for that?
Thanks,

Related

How to detect face in python open cv?

I am a newbie in python. I am working on a real time facial expression detection project. For the first module, my aim is to detect the face.
Is there any way to detect face without using any predefined classifiers(Haar Cascade)?
Is there any algorithm to implement the Haar cascade in my own way?
Ypu can use [Haar Cascades]:http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html
Hope this helps.

Open source computer vision

I am working on face recognition project and i am using opencv2.4.8. i am planning to implement face recognition using eigenface algorithm.
The thing is how to know the list of algorithm for face recognition that is present in opencv 2.4.8.
You can find this information in documentation
There is simple LBP based face recognition in OpenCV contrib. It should be better than PCA (eigenfaces) in terms of sensitivity to lighting conditions. I would recommend to start from this.
Have a look at OpenCV 3.0. The change list includes face recognition functionality - http://docs.opencv.org/3.0.0/dd/d65/classcv_1_1face_1_1FaceRecognizer.html#details
Also might be worth a look at another face recognition tool, openBR - http://openbiometrics.org/. You can control the keypoint detection stage too to avoid using algorithm which breach license issues.

Feature detection in profile face images

I am using opencv 2.4.2 and c++. I am trying to detect the eyes,nose and mouth of a profile face using haarcascade xml files.The eyes are most of the time detected correctly using haarcascade_mcs_righteye and haarcascade_mcs_lefteye. However,the nose and mouth xml are mostly failures with profile faces[as shown below]. I understand that those were made for frontal face,but is there any other "not-so-complicated" open source method which I can use to detect the tip of the nose and corner of mouth in profile images?Basically,I will need their coordinates,but first I will need to detect them. Anybody please?
Recently, Zhu and Ramanan CVPR 2012 had intoduced Face detection, pose estimation and landmark localization, this is by far the best I've seen, OpenCV Is Great By All means, but it's not state of the art for all applications out there nowadays.
I hope this helps

Detect and extract face from an image

I have been trying to do the following -
When a user uploads an Image in my web app, I'd like to detect his/her face in it and extract face (from forehead to chin and cheek to cheek) from it.
I tried OpenCV/C++ face detection using Haar Cascade but problem with it is that it gives a probability of where the face would be because of which either background of image comes inside the ROI or even the complete face doesn't come in the ROI.
I also want to detect eye inside the face and while using the above technique, the eye detection isn't that accurate.
I've read up on a new technique called Active Appearance Model (AAM). The blogs where I read up about this show that this is exactly what I want but I am lost on how to implement this.
My queries are -
Is using AAM a good idea for face detection and face feature detection.
Are there any other techniques for doing the same.
Any help on any of these is much appreciated.
Thanks !
As you noticed OpenCV's implementation of face detection is not state-of-the-art. It is a very good and robust implementation but you can do better.
Recently, Zhu and Ramanan (CVPR 2012) had intoduced Face detection, pose estimation and landmark localization in the wild which is considered to be one of the leading algorithms for face detection in recent years.
Their algorithm is capable of detecting faces both frontal and profile views AND identifying keypoints on the detected face such as eyes nose and mouth.
The authors were kind enough to publish their code along with learned models, it is a Matlab implementation but the main computations are done in C++, so it should not be too difficult to make a standalone C++ implementation of thier method.

Beyond Face Detection-OpenCV

I used the information provided in the OpenCV wiki to make a face detection program which identifies the presence of a face in the Camera feed. The source code that I used was provided in the link given below
http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html
Now I wanted to take it to another level so that it can actually identify the ears also. Thus I would want to place a mask on the users face which shows the presence of face and also the ears, something like
http://code.google.com/p/ehci/wiki/6dofhead
How to do this without using OpenGL, and using some kind of cascade classifier?
There HaarCascades available for ears, eyes, nose, mouth, etc. You can use them in the same way as you used Face cascades to detect faces. The cascades are provided with the source.
OpenCV-version/data/haarcascades
There is a facedetector example in the OpenCV distribution that shows how to detect the face and some other face features. All you have to do is to send the cascades names to the executable. The cascades are located in the openCV_install/data/cascades/
Here is the latest tutorial
and there is a bit older one, compatible with the older cascades.