clandmark icon indicating copy to clipboard operation
clandmark copied to clipboard

Running Clandmark webcam example

Open sarmadm opened this issue 7 years ago • 15 comments

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

sarmadm avatar Sep 29 '16 10:09 sarmadm

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.

uricamic avatar Sep 29 '16 12:09 uricamic

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

sarmadm avatar Sep 29 '16 17:09 sarmadm

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.

uricamic avatar Sep 29 '16 17:09 uricamic

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 avatar Sep 29 '16 17:09 sarmadm

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 ?

sarmadm avatar Sep 29 '16 18:09 sarmadm

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.

uricamic avatar Sep 30 '16 07:09 uricamic

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

sarmadm avatar Sep 30 '16 11:09 sarmadm

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

uricamic avatar Sep 30 '16 11:09 uricamic

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

ghost avatar Mar 13 '17 21:03 ghost

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

uricamic avatar Mar 14 '17 07:03 uricamic

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.

ghost avatar Mar 15 '17 14:03 ghost

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.

uricamic avatar Mar 15 '17 17:03 uricamic

Got it. Thanks.

ghost avatar Mar 15 '17 17:03 ghost

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...

sarmadm avatar Mar 15 '17 19:03 sarmadm

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

uricamic avatar Mar 16 '17 21:03 uricamic