delphifirst / FaceX

A high performance open source face landmarks detector, based on explicit shape regression algorithm.
Other
147 stars 96 forks source link

space for improvement #8

Closed mli closed 9 years ago

mli commented 9 years ago

hi yang,

many thanks for your codes, it is clean and works well.

but i tested on the new released casia-webface dataset, facex fails to generate meaningful landmarks on a large portion of images, mainly due to the failure of face detection. please see the figure below for an exmaple.

screenshot from 2015-04-28 22 28 38

i wonder if there is any improvement space by using larger dataset or better algorithm tuning? and can the provided model reproduce the accuracy reported by xudong's paper? besides, there are also several cnn-based works, do you have any comment?

many thanks, mu

delphifirst commented 9 years ago

Hi Mu,

It's interesting to meet you on github.

The code cannot work for profile faces, because the training data I currently used are mostly frontal faces. I believe it can work for profile faces if we get suitable training data. However, I don't think frontal faces and profile faces can be handled in just one model, since their landmarks are very different ( some landmarks in profile faces are missing because of occlusion). Maybe the right way is first determining whether the face is frontal or profile, and then using the corresponding model.

The provided model can reproduce the accuracy reported by xudong's paper.

For CNN-based works, I have only read "Deep Convolutional Network Cascade for Facial Point Detection" in CVPR 2013. It says their method is slightly more accurate and much slower than xudong's method. I think CNN-based methods are interesting and practical, but it seems that they just applied CNN to face alignment problem and didn't reveal anything new for face alignment problem. ( Maybe this is unfair since I just read one paper in CNN-based workds)

I believe "Joint Cascade Face Detection and Alignment" in ECCV 2014 is the right direction. I think face detection, pose estimation and face alignment must be combined somehow. But I have no idea how to achieve this.

futurely commented 9 years ago

There're a few implementations of "Joint Cascade Face Detection and Alignment". https://github.com/search?utf8=%E2%9C%93&q=%22Joint+Cascade+Face+Detection+and+Alignment%22

N1010N commented 9 years ago

Thank you for your code, unfortunately , Its crushed when it reach to multidetectscale function and said vector is out of range , I think its related to opencv 3.0 can I use opencv 2.4.11?

delphifirst commented 9 years ago

Do you mean detectMultiScale? This function is provided by OpenCV,

The code only use some basic parts of OpenCV. Therefore you can use almost any version of OpenCV.

N1010N commented 9 years ago

I just want to run the code fist I run in release mode after I press 1 error came that vector is out of range and so on, and then I switch to debug mode to understand where is the problem I understand its because of detectMultiscale (grayimage,faces) and refer to faces but its related to who develop opencv 3.0 (i read the bug here http://code.opencv.org/issues/3710#note-3). do you use opencv 3.0.0 windows version? I just downloaded from open cv site how mine has bugs but yours not ?! I tried opencv 2.4.11 but you know it can't open your model.xml which open by openCV 3.0

delphifirst commented 9 years ago

I use OpenCV 3.0.0 windows version.

The model.xml.gz file is version independent. It should work for almost any version of OpenCV.

N1010N commented 9 years ago

yes you are right I could run it with OpenCV 2.4.11 and its Okay. thank you

delphifirst commented 9 years ago

That's good.