Giter Site home page Giter Site logo

Comments (12)

YiChenCityU avatar YiChenCityU commented on May 29, 2024 1

I will try. Thanks very much.

from nphm.

SimonGiebenhain avatar SimonGiebenhain commented on May 29, 2024

Hi @YiChenCityU,
thanks for your interest.
For the "dummy_dataset" as well as our proposed test set we provide single view data already.

If you want to change some properties of the input for inference you can play araound with scripts.data_processing.generate_single_view_observations.
I used this script to generate the input. Per default it tries to do so for every subject in the test set. But you can simply specifiy what subject and expression you are interested in.

from nphm.

YiChenCityU avatar YiChenCityU commented on May 29, 2024

Thanks very much. What if I only have a point cloud captured from iphone, do I have to provide the expression of it?

from nphm.

YiChenCityU avatar YiChenCityU commented on May 29, 2024

Screenshot from 2023-06-07 14-34-13
Screenshot from 2023-06-07 14-35-35
Screenshot from 2023-06-07 14-39-14
Screenshot from 2023-06-07 14-48-04
This is the point cloud I used and the result was not similar to it. Do you have some suggestions? Ply files are below.
https://drive.google.com/file/d/1UYBbR-TkRtgSKJQbuNUnMu4dwdN1kx9a/view?usp=sharing https://drive.google.com/file/d/1A4EJbSUjuAfJ_k8FzmsimsSKBPi1QQ5k/view?usp=sharing

from nphm.

SimonGiebenhain avatar SimonGiebenhain commented on May 29, 2024

Hey, cool stuff.

The problem is very likely the coordinate system. NPHM only works if the input is in the expected coordinate system (FLAME coordinate system scaled by a factor of 4).

Therefore, you would first have to align the input point cloud with the FLAME coordinate system, e.g. a very simple approach would be a similarity transform from detected 3D landmarks to the landmarks of the FLAME template. Actually, you could also first fit FLAME and use the resulting Scale, Rotation, and Translation from the result. In that case, you can separate the head from the torso in the same way as in the preprocessing of NPHM. Having observations on the torso tends to confuse the inference optimization

Here is an example mesh from the dataset and one of the provided point clouds to show why the model fails:

Screenshot from 2023-06-07 12-19-07

from nphm.

SimonGiebenhain avatar SimonGiebenhain commented on May 29, 2024

Actually, the second Point Cloud aligns better, but is still noticeably off from the expected canonicalization.

Screenshot from 2023-06-07 12-28-03

from nphm.

xvdp avatar xvdp commented on May 29, 2024

Ive been trying to unravel the description as well, I didnt get as far as yichen, It would be wonderful if you could provide a full test example ...
If you are concerned about identity, maybe take a pointcloud of a statue...

from nphm.

nsarafianos avatar nsarafianos commented on May 29, 2024

Thank you so much @SimonGiebenhain for publishing the code and congrats for your great work!

Quick Q: I have a pointcloud in.obj format (lifted from a foreground RGB-D monocular image) that is transformed to be on the exact same space with FLAME as suggested above. How do you go about fitting NPHM to this particular pointcloud ?

I'm asking because the example provided uses existing identities (along with their expressions) from the dummy_data whereas I'm interested in preserving the identity of the pointcloud.

Thank you!

from nphm.

Zvyozdo4ka avatar Zvyozdo4ka commented on May 29, 2024

I am stuck in this project for 2 days. @YiChenCityU and @SimonGiebenhain could you please give more details? Could you provide a full test example? In paper it is mentioned that input is point cloud, so if i have point cloud, how can i get mesh?

from nphm.

Zvyozdo4ka avatar Zvyozdo4ka commented on May 29, 2024

@SimonGiebenhain
even with perfect alignment it did not resemble the identity

Original files are here.
https://drive.google.com/drive/folders/1cprPG_9AihL4HpYl0lOvZDz7kNbXv8kB?usp=sharing

image
image

from nphm.

Zvyozdo4ka avatar Zvyozdo4ka commented on May 29, 2024

The problem is very likely the coordinate system. NPHM only works if the input is in the expected coordinate system (FLAME coordinate system scaled by a factor of 4).

How did you get FLAME models? What solution did you employ?

Therefore, you would first have to align the input point cloud with the FLAME coordinate system, e.g. a very simple approach would be a similarity transform from detected 3D landmarks to the landmarks of the FLAME template.

Do you have this code of alignment or did you use another method to align point cloud and flame?

Actually, you could also first fit FLAME and use the resulting Scale, Rotation, and Translation from the result. In that case, you can separate the head from the torso in the same way as in the preprocessing of NPHM. Having observations on the torso tends to confuse the inference optimization

Do you mean that fitting Flame to point cloud can give us the same NPHM output?

from nphm.

Zvyozdo4ka avatar Zvyozdo4ka commented on May 29, 2024

Screenshot from 2023-06-07 14-35-35

What did use as FLAME model for this experiment? How did you align FLAME with your point cloud?

from nphm.

Related Issues (18)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.