patrikhuber / eos

A lightweight 3D Morphable Face Model library in modern C++
Apache License 2.0
1.89k stars 596 forks source link

model_contour.json file for lyhm #324

Closed saikiran321 closed 3 years ago

saikiran321 commented 3 years ago

Hi I would like to understand more about model_contour.json file, in specific how do we generate model_contour.json file for new shape model.

In the _modelcontour.json file there are 17 right contour landmark points and 17 left contour landmark points, but in the _ibug_tosfm.txt file there are only 8 right contour landmark points and 8 left contour landmark points.

How are the contour points in _ibug_to_sfm related to landmarks given model_contour.json?

I'm planning to extend eos for lyhm and other 3dmm's

patrikhuber commented 3 years ago

Hi,

That sounds great! In case you haven't seen it, check out the recent commit 1153e77dab41161f91c1bdeece72650b0956317a which adds a load function for the LYHM.

model_contour.json is a list of vertex ids of the morphable model, which make up the 3D contour that should be matched with 2D contour landmarks (e.g. detected by a landmark detector). You can specify any number of those 3D contour points - depending on the 3DMM mesh resolution. They should just follow the contour line that you would like to match with the 2D contour landmarks. This file is also only relevant if you want to use eos's contour fitting algorithm. My PhD thesis describes the algorithm in more detail. You could also visualise those vertices in model_contour.json to get a better understanding.

saikiran321 commented 3 years ago

Thanks, this is helpful

malteprinzler commented 3 years ago

@saikiran321 did you have any success with including the lyhm into eos? Im currently working on it too but still struggle to find out the vertex-landmark correspondences in this model. Any help would be highly appreciated!

saikiran321 commented 3 years ago

@malteprinzler No, I did not try further. but if you want to use lyhm without eos contour fitting i guess 1153e77 commit might work.