Ask Your Question
5

Facial feature detection

asked Jul 13 '12

AngelLeliel gravatar image

updated Jul 13 '12

Hi,

I can detect the human faces with OpenCV. I would like to detect the accurate locations of facial feature points like eyes and corners of the mouth. Is that possible with OpenCV or other free/open source libraries?

Preview: (hide)

7 answers

Sort by » oldest newest most voted
10

answered Jul 13 '12

Kirill Kornyakov gravatar image

updated Jul 13 '12

Haar cascades can be found here: http://code.opencv.org/projects/opencv/repository/show/trunk/opencv/data/haarcascades. Also check this tutorial: http://docs.opencv.org/doc/tutorials/objdetect/cascadeclassifier/cascadeclassifier.html#cascade-classifier. But if you're going to train your own, you should prefer LBP features, check this guide.

But you should understand that detector returns you only a rectangle, not exact positions of eye/mouth corners. For this you should use something like ASM or AAM. Here is a couple of implementations:

  1. http://code.google.com/p/asmlibrary/
  2. http://code.google.com/p/asmlib-opencv/
Preview: (hide)

Comments

Thanks, I will survey the ASM/AAM solution.

AngelLeliel gravatar imageAngelLeliel (Jul 13 '12)edit

i've the same problem but i'm using JAVA is there a possibility that i use AAM with JAVA ???thx

RossMine gravatar imageRossMine (May 29 '13)edit

did you get this working?? can you share any code?

super_man1993 gravatar imagesuper_man1993 (Nov 14 '15)edit
8

answered Oct 3 '12

lightalchemist gravatar image

The Flandmark Facial point detector (with code) can be found here: http://cmp.felk.cvut.cz/~uricamic/flandmark/

It will return you the four corner points of the eyes, corner of mouth, center of nose, and center of face. It does however require you to give it a bounding box of the face so you will probably have to use the Viola Jones face detector in OpenCV (or any other method) to locate the face first, which you are already doing.

I've compiled the code on Ubuntu and it works very well, provided the bounding box you give it is "just right". If it is too tightly cropped it might miss the feature points near the border of the image. For such cases, you can try to extend the border and specify the bounding box as the "inner" image (excluding border) and sometimes it works. On the other hand when the bounding box is too large it might converge to some nonsense points. But on the whole it works really well, even on rotated faces, faces with glasses, and those that are close to side profile.

Preview: (hide)

Comments

can you share code?

cooler333 gravatar imagecooler333 (Oct 27 '14)edit

the method can perform real-time @lightalchemist ?

Aj-611 gravatar imageAj-611 (Jan 27 '16)edit
2

answered Jan 8 '13

This paper shows how to detect the eyes.

Bolme, D.S. "Average of Synthetic Exact Filters", IEEE Conference on Computer Vision and Pattern Recognition, 2009. CVPR 2009. PDF and C source code

Preview: (hide)
1

answered Jul 13 '12

You can use HaarCascades for eyes, nose, mouth, ears, face, etc detection. And by that you can get the position of the facial features.

Preview: (hide)

Comments

how can i do this and having the corner points

RossMine gravatar imageRossMine (May 29 '13)edit

@jayrambhia is it real-time? how fast it is?

Aj-611 gravatar imageAj-611 (Jan 27 '16)edit
0

answered Aug 21 '13

abhi21 gravatar image

In my opinion you should try Shi and Tomasi corner-detector to detect mouth corners. I think OpenCV has the API for it. HaarCascades won't give you mouth corner points, it would only return you a rectangular region that has mouth. OR as pointed out by Kirill use can also use AAM/ASM to detect face features.

Preview: (hide)
0

answered Aug 28 '13

Sameer gravatar image

Hi, i have try demo for facial feature using http://www.milbo.users.sonic.net/stasm/ It good for points detection but now i did not know how to manipulate the points.

Preview: (hide)
0

answered May 20 '16

There's a nicetutorial here: http://www.learnopencv.com/facial-lan...

Preview: (hide)

Question Tools

3 followers

Stats

Asked: Jul 13 '12

Seen: 26,690 times

Last updated: Aug 28 '13