TadasBaltrusaitis / CLM-framework

CLM-framework (a.k.a Cambridge Face Tracker) is a framework for various Constrained Local Model based face tracking and landmark detection algorithms and their extensions/applications. Includes CLM-Z and CLNF.
Other
469 stars 246 forks source link

Split the pose estimation source and 68 landmark points from CLM framework. #40

Open wiliamc opened 8 years ago

wiliamc commented 8 years ago

hi, I successfully builded and run the poseestimation in CLM,for that i added all the source in the CLM framework.

Now i need only pose estimation and landmark points. I need to remove the unused code in CLM framework for poseestimation to run.

Is there any easy way to remove the code not need for poseestimation in CLM Framework?

TadasBaltrusaitis commented 8 years ago

I'm not exactly sure what your question is. For pose estimation you should only need to know the locations of the landmarks.

wiliamc commented 8 years ago

Hi Tadas Baltrusaitis

Thanks for the reply

While building the CLM Framework, 5 exe are generated (FeatureExtraction,MultiTrackCLM,Recording,SimpleCLM,SimpleCLMImg).

I need only FeatureExtraction(ie,Poseestimation) exe but only need the CLM src needed for FeatureExtraction(ie,abstract only needed codes from the link https://github.com/TadasBaltrusaitis/CLM-framework/tree/master/lib/local/CLM/src)

Regards CIBIN

TadasBaltrusaitis commented 7 years ago

You should only need the CLM library and not the FaceAnalyser one in that case.

Thanks, Tadas

wiliamc commented 7 years ago

hi Tadas

Thanks for the reply

You mean I need to use every file in the CLM src (https://github.com/TadasBaltrusaitis/CLM-framework/tree/master/lib/local/CLM/src)

I have one more doublt.I am using clm poseestimation in ios and android, is there any way to speed the clm poseestimation in ios and android.

Thanks Regards CIBIN

TadasBaltrusaitis commented 7 years ago

I believe you do, while it might be possible to remove some files it would require a reasonable restructuring of the code.

I have not worked on porting the code to mobile myself so cannot help you much with that. But I believe it might be possible to move some of the computations to the GPU thus making it run faster. Also currently face detection is an expensive operation that could be replaced with a cheaper alternative detector, such as NPD.

Thanks, Tadas

wiliamc commented 7 years ago

hi Tadas

Thanks for the reply

One more doubt,I am using ios native camera and passing only the images(frame) to the poseestimation code(c++ code ie)via wrapper). In the poseestimation ,there is a method "CLMTracker::get_camera_params(device, fx, fy, cx, cy, arguments);" and default "device" value as 0. If I commented the above method it works.

Whether this method has any impact on the perfomance of poseestimation?

Regards, CIBIN

TadasBaltrusaitis commented 7 years ago

If you are not providing camera callibration parameters though command line arguments the performance will not be affected. But if you do not provide fx, fy, cx, cy values the pose estimation accuracy will not be as accurate.

Thanks, Tadas

wiliamc commented 7 years ago

hi Tadas

Thanks for the reply

I am using ios native camera and pass only frame(image) to the poseestimation.Then how to get fx, fy, cx, cy values for the ios camera.

If i get the values, I will pass the values as arguments to the poseestimation.

Regards, CIBIN

TadasBaltrusaitis commented 7 years ago

The method should infer approximate values based on image size, but you can find the actual values through camera callibration - https://en.wikipedia.org/wiki/Camera_resectioning#Intrinsic_parameters.

You can also search online for regular iPhone camera parameters as they should be roughly stable across devices - http://stackoverflow.com/questions/14680944/create-opencv-camera-matrix-for-iphone-5-solvepnp