Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Running Clandmark webcam example #67

Open
sarmadm opened this issue Sep 29, 2016 · 15 comments
Open

Running Clandmark webcam example #67

sarmadm opened this issue Sep 29, 2016 · 15 comments
Labels

Comments

@sarmadm
Copy link

sarmadm commented Sep 29, 2016

Hi

I installed clandmark on Ubuntu , now I want to run the facial landmark detection using web cam .

What is the procedure to run the code ?

Thanks for help

@uricamic
Copy link
Owner

Hi,

you should decide which model is appropriate for you. The options are 8 landmarks, suitable for near-frontal faces for face alignment; up to 21 landmarks multi-view faces (up to profiles), also mainly for face alignment; 68 landmarks near-frontal, suitable for some other tasks.

Code snippets for these are available on the project webpage.

There is also a code example using opencv, which is taking frames from a webcam, detecting faces (opencv haarcascade) and then running the clandmark detector.

@sarmadm
Copy link
Author

sarmadm commented Sep 29, 2016

Hi,
I want to use 68 landmarks , but I don't know how to compile it and get it run

@uricamic
Copy link
Owner

Hi,

have you compiled clandmark library already? If yes, you can just turn on BUILD_CPP_EXAMPLES option in CMake, which will compile the enclosed examples.

I will add the tutorial on external examples soon.

@sarmadm
Copy link
Author

sarmadm commented Sep 29, 2016

Hi

Yes , I have compiled the clandmark library, Now I just want to run the facial landmark detection

using my web cam , What should I do ?

Thanks for help

@sarmadm
Copy link
Author

sarmadm commented Sep 29, 2016

I have used
tofi@tofi:~/clandmark/build/examples$ ./video_input
and this message is displayed

Usage: video_input <path_to_haarcasade> <flandmark_model.xml> { cam | vid } [ filename | cam_id ] [ output_filename ]

what are the parameters of video_input ? I'm I on the right way to run the clandmark using my webcam ?

@uricamic
Copy link
Owner

Hi,

the parameters are listed there and quite self-explanatory.

  1. either "cam" or "vid", which determines whether the input from webcamera or a videofile will be used.
  2. Depending on the previous parameter either the camera id, or the path to a video file is expected here.
  3. optional argument, if specified the output will be saved under a specified filename.

Please, note that video_input.cpp is using the old style of computing features, so the only compatible model is the flandmark_model.xml. If you want to use the new models (including the 68 landmarks CDPM and FDPM), you need to modify the code as is shown in static_input.cpp.

@sarmadm
Copy link
Author

sarmadm commented Sep 30, 2016

I'm using these parameters but it is not working , could you please show me where I'm wrong ?

tofi@tofi:~/clandmark/build/examples$ ./video_input haarcascade_frontalface_alt.xml flandmark_model.xml { cam } [ output | 0 ] [ output_file ]

Couldn't load the haar cascade. Exiting...
0: command not found

@uricamic
Copy link
Owner

Instead of haarcascade_frontalface_alt.xml, use the path to a folder containing this file and end the path by "/" (so for example if the haarcascade_frontalface_alt.xml is in the current folder, use "./".

don't use brackets for the last few arguments. It should look like this (if the haarcascade_frontalface_alt.xml is in the current folder):

./video_input ./ cam 0 output_file.avi

@ghost
Copy link

ghost commented Mar 13, 2017

I have a similar problem: I compiled the static_input in the Release mode and have the static_input.exe in the Build\examples\Release folder. This folder also has the haarcascade_frontalface_alt.xml and flandmark_model.xml as well as the face.jpg that comes with the download. I am trying to execute but it is not accepting the inputs and keeps saying Usage: static_input <flandmark_model.xml> <input_imag> [<output_image>]
I am on a Windows 7 machine
Here is what I enter:
~\Build\example\Release>static_input flandmark_model.xml face.jpg outputface.jpg
Don't understand what I am doing wrong?
Help is appreciated.
Thanks

@uricamic
Copy link
Owner

Hi @PVNathan,

it seems there is a wrong usage printout in the static_input.cpp. The correct usage is as follows:
Usage: static_input <path_to_haarcascade> <flandmark_model.xml> <input_image> [<output_image>]
That is, you should just add the path to the folder (ending by a slash) containing the haarcascade_frontalface_alt.xml as the fisrt argument, the rest should be just fine:
~\Build\example\Release>static_input .\ flandmark_model.xml face.jpg outputface.jpg

@ghost
Copy link

ghost commented Mar 15, 2017

Hey
thanks, it works! I tested the video_input with webcam and its a nice model. Thanks for sharing it as open source. I do have a question about cases where I tilt my head at an angle or when one side is more in the picture than the other, basically when its not absolutely frontal anymore. Clandmark stops detecting at those locations. I have some idea that this is because of how it was trained. Is that true? How can I train a detector to get most of the faces i.e. should I retrain with all kinds of faces (frontal, profile etc.) or should i have separate models where if the frontal model doesn't find a face we apply a profile model? Is that a doable thing with clandmark? Thanks really appreciate your response.

@uricamic
Copy link
Owner

Hi @PVNathan,

actually that's because that example is using only the frontal face detector, as is available in OpenCV. We were learning the full yaw range (i.e. negative profiles to profiles) using a commercial face detector, which was detecting faces in this full range.

It is possible to use OpenCV profile cascades and combine two face detectors to provide an input for the CLandmark library. However, I did not find time to implement this yet.

@ghost
Copy link

ghost commented Mar 15, 2017

Got it. Thanks.

@sarmadm
Copy link
Author

sarmadm commented Mar 15, 2017

Could you please share the video_input with webcam command . I did it like this but it is not working where is my error ?

tofi@tofi:~/clandmark/build/examples$ ./video_input .\ flandmark_model.xml cam 0
DEBUG
Couldn't load the haar cascade. Exiting...

@uricamic
Copy link
Owner

Hi @sarmadm,

seems like the Haarcascade (haarcscade_frontalface_alt.xml, to be more precise) was not found in the specified folder .\. Please check that you have it there.

I am also not sure if the combined slashes in path will work. Maybe you should try rather this call:
tofi@tofi:~/clandmark/build/examples$ ./video_input ./ flandmark_model.xml cam 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants