patrikhuber / eos

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

Question: Why do some results (maybe) look inconsistent? #149

Closed linengmiao closed 7 years ago

linengmiao commented 7 years ago

Hi Patrik

First of all, thanks for posting this code! It really has some interesting features. I am posting this message here, not because of an issue. But rather because I was wondering whether you could provide some more information on the software you provide.

I ran a few tests:

test 1: while this input: http://imgur.com/a/ijPfn generates this output: http://imgur.com/a/romwv with this generated 3d model: http://imgur.com/a/kjmrf

test 2: This input: http://imgur.com/a/duQRs generates this output: http://imgur.com/a/RMLoX generated 3d model: http://imgur.com/a/DD0Q3 (looks incorrect to me....)

Could you explain why the second test returns -what looks like- incorrect results (to me)? Is it because of the used .bin file? If yes, could you please elaborate?

Thanks

patrikhuber commented 7 years ago

Posting my answer from reddit here:

Hi!

A few points:

1) The .bin files are MorphableModel's, serialised using the cereal library. Opening them using a .bin file reader is not really useful. It's just the MorphableModel class serialised to a binary file. You can inspect the MorphableModel class to see what's in there, it is in my opinion very well documented. There should be enough information about it in general on the Repo's pages, in the code documentation, and in our paper. If not, we're happy to add if something specific is missing.

2) It seems to me you're trying to use fit-model-simple to fit faces with strong expressions. Please have a look at what this app is actually doing in the documentation. As the name says, it is a (very) simple example app. It does not fit facial expressions (it doesn't take facial expression shapes as input!). Neither does it fit the face contour landmarks. It is a very simple demo app for people to get started. Maybe it creates too much confusion and I should remove it actually... What you probably want is to look at the fit-model app, which fits expression blendshapes and contour landmarks.

If you want to learn more I would strongly urge you to read some of the library documentation and a couple of introductory papers about 3DMM's (maybe the original 1999 paper from Blanz & Vetter, and our VISAPP paper, as a start).