GithubHelp home page GithubHelp logo

pixie's Introduction

PIXIE: Collaborative Regression of Expressive Bodies

[Project Page]

This is the official Pytorch implementation of PIXIE.

PIXIE reconstructs an expressive body with detailed face shape and hand articulation from a single image. PIXIE does this by regressing the body, face and hands directly from image pixels using a neural network that includes a novel moderator, which attends to add weights information about the different body parts. Unlike prior work, PIXIE estimates bodies with a gender-appropriate shape but does so in a gender neutral shape space to accommodate non-binary shapes. Please refer to the Paper for more details.

The main features of PIXIE are:

  • Expressive body estimation: Given a single image, PIXIE reconstructs the 3D body shape and pose, hand articulation and facial expression as SMPL-X parameters
  • Facial details: PIXIE extracts detailed face shape, including wrinkles, using DECA
  • Facial texture: PIXIE also returns a estimate of the albedo of the subject
  • Animation: The estimated body can be re-posed and animated
  • Robust: Tested on full-body images in unconstrained conditions. The moderation strategy prevents unnatural poses. Overall, our method is robust to: various poses, illumination conditions and occlusions
  • Accurate: state-of-the-art expressive body reconstruction
  • Fast: this is a direct regression method (pixels in, SMPL-X out)

Getting started

Please follow the installation instructions to install all necessary packages and download the data.

Demo

Expressive 3D body reconstruction

python demos/demo_fit_body.py --saveObj True 

This return the estimated 3D body geometry with texture, in the form of an obj file, and render it from multiple viewpoints. If you set the optional --deca_path argument then the result will also contain facial details from DECA, provided that the face moderator is confident enough. Please run python demos/demo_fit_body.py --help for a more detailed description of the various available options.

input body image, estimated 3D body, with facial details, with texture, different views

3D face reconstruction

python demos/demo_fit_face.py --saveObj True --showBody True

Note that, given only a face image, our method still regresses the full SMPL-X parameters, producing a body mesh (as shown in the rightmost image). Futher, note how different face shapes produce different body shapes. The face tells us a lot about the body.

input face image, estimated face, with facial details, with texture, whole body in T-pose

3D hand reconstruction

python demos/demo_fit_hand.py --saveObj True

We do not provide support for hand detection, please make sure that to pass hand-only images and flip horizontally all left hands.

input hand image, estimated hand, with texture(fixed texture).

Animation

python demos/demo_animate_body.py 

Bodies estimated by PIXIE are easily animated. For example, we can estimate the body from one image and animate with the poses regressed from a different image sequence.

The visualization contains the input image, the predicted expressive 3D body, the animation result, the reference video and its corresponding reconstruction. For the latter, the color of the hands and head represents the confidence of the corresponding moderators. A lighter color means that PIXIE trusts more the information of the body image rather than the parts, which can happen when a person is facing away from the camera for example.

Notes

You can find more details on our method, as well as a discussion of the limitations of PIXIE here.

Citation

If you find our work useful to your research, please consider citing:

@inproceedings{PIXIE:2021,
      title={Collaborative Regression of Expressive Bodies using Moderation}, 
      author={Yao Feng and Vasileios Choutas and Timo Bolkart and Dimitrios Tzionas and Michael J. Black},
      booktitle={International Conference on 3D Vision (3DV)},
      year={2021}
}

License

This code and model are available for non-commercial scientific research purposes as defined in the LICENSE file. By downloading and using the code and model you agree to the terms in the LICENSE.

Acknowledgments

For functions or scripts that are based on external sources, we acknowledge the origin individually in each file.
Here are some great resources we benefit from:

We would also like to thank the authors of other public body regression methods, which allow us to easily perform quantitative and qualitative comparisons:
HMR, SPIN, frankmocap

Last but not least, we thank Victoria Fernández Abrevaya, Yinghao Huang and Radek Danecek for their helpful comments and proof reading, and Yuliang Xiu for his help in capturing demo sequences. This research was partially supported by the Max Planck ETH Center for Learning Systems. Some of the images used in the qualitative examples come from pexels.com.

Contact

For questions, please contact [email protected].
For commercial licensing (and all related questions for business applications), please contact [email protected].

pixie's People

Contributors

yfeng95 avatar yuliangxiu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pixie's Issues

Video reconstruction visualization

Hello, I am excited about your excellent research work.When I input my own video, the reconstructed video image is very shaken, as if holding the camera shaking, it seems to be a fixed size (1024) problem, would like to ask how to solve this problem?

Problem of using --deca_path argument

Thanks for the wonderful job!
As you mentioned: "If you set the optional --deca_path argument then the result will also contain facial details from DECA, provided that the face moderator is confident enough."

However, using the GettyImages-545880635.jpg as an example, after managed to run the demo_fit_body with "--deca_path [absolute path]", the result is the same comparing to that without deca_path.

So I want to ask:"Is the --deca_path argument not designed to replace the old head by the newly generated head from deca"? And is it just for texture changing?

Speed is too slow

Hi. I am trying to run PIXIE on Jetson TX but the speed is too slow...(about 0.5~0.6 seconds per frame)

Note that ExPose, the other model for comparison, seems to run at about 0.2~0.3 seconds per frame on Jetson TX.

How can I increase the PIXIE running speed?

audio driven face animation

hi
@YadiraF
Thanks for your excellent work. I am interested in the audio-driven face animation in your paper, could you please release the demo?

Thanks very much

Questions about training details.

Hi, I'm very interested in your excellect work. Could you please help me with a few questions that I didn't find the answer to in the paper?

  1. In the first stage of training, what are the hyperparameters (learning rate, weight decay and momentum of the optimizer and number of training epochs) for body, hand and face?
  2. The prior mentioned in the paper is added on which loss in which stage of training?
  3. What is the loss weight of body, hand, face and update loss?
    Thanks very much!

How to get groundtruth pose and shape params in COCO-Wholebody.

Hi, I'm very interested in your excellent work. I'm trying to reproduce the training result, but I found coco-wholebody dataset has no groundtruth pose and shape params which are used to compute smplx loss. Could you please help me how to get the groundtruth? Thanks very much!

Clothing the Body Model

What is the easiest way to get the output of PIXIE on avatars that are clothed and have a skin-colored body mesh?
Note that it suffices to have some fixed clothing/skin-color and I don't need them to be derived from the source image.

NVIDIA GPU as dependency?

Hi there,

just tried to get PIXIE working. I tried to do so on a arch linux based system with the follwing GPU:

00:02.0 VGA compatible controller: Intel Corporation CometLake-U GT2 [UHD Graphics] (rev 02) Subsystem: Lenovo CometLake-U GT2 [UHD Graphics] Kernel driver in use: i915

and as it seems a NVIDIA GPU is required as shown in the output of the demo_animate_body.py script:

CUDA is not available! use CPU instead
total 1 images
total 6 images
Traceback (most recent call last):
  File "demos/demo_animate_body.py", line 150, in <module>
    main(parser.parse_args())
  File "demos/demo_animate_body.py", line 37, in main
    pixie = PIXIE(config = pixie_cfg, device=device)
  File "/home/juk/code/python/PIXIE/pixielib/pixie.py", line 50, in __init__
    self._create_model()
  File "/home/juk/code/python/PIXIE/pixielib/pixie.py", line 73, in _create_model
    self.Encoder[key] = HRNEncoder().to(self.device)
  File "/home/juk/.conda/envs/pixie-env/lib/python3.7/site-packages/torch/nn/modules
/module.py", line 607, in to
    return self._apply(convert)
  File "/home/juk/.conda/envs/pixie-env/lib/python3.7/site-packages/torch/nn/modules
/module.py", line 354, in _apply
    module._apply(fn)
  File "/home/juk/.conda/envs/pixie-env/lib/python3.7/site-packages/torch/nn/modules
/module.py", line 354, in _apply
    module._apply(fn)
  File "/home/juk/.conda/envs/pixie-env/lib/python3.7/site-packages/torch/nn/modules
/module.py", line 376, in _apply
    param_applied = fn(param)
  File "/home/juk/.conda/envs/pixie-env/lib/python3.7/site-packages/torch/nn/modules
/module.py", line 605, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
  File "/home/juk/.conda/envs/pixie-env/lib/python3.7/site-packages/torch/cuda/__ini
t__.py", line 186, in _lazy_init
    _check_driver()
  File "/home/juk/.conda/envs/pixie-env/lib/python3.7/site-packages/torch/cuda/__ini
t__.py", line 68, in _check_driver
    http://www.nvidia.com/Download/index.aspx""")
AssertionError:
Found no NVIDIA driver on your system. Please check that you
have an NVIDIA GPU and installed a driver from
http://www.nvidia.com/Download/index.aspx

I guess mentioning that somewhere could some people save some time.
If I am completely wrong and there is a way to get it running pls let me know :)

Here the content of my conda environment:

_libgcc_mutex             0.1                        main
_openmp_mutex             5.1                       1_gnu
ca-certificates           2023.05.30           h06a4308_0
certifi                   2022.12.7        py37h06a4308_0
chumpy                    0.70                     pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
face-alignment            1.4.0                    pypi_0    pypi
fonttools                 4.38.0                   pypi_0    pypi
future                    0.18.3                   pypi_0    pypi
imageio                   2.31.1                   pypi_0    pypi
importlib-metadata        6.7.0                    pypi_0    pypi
kiwisolver                1.4.4                    pypi_0    pypi
kornia                    0.4.0                    pypi_0    pypi
libedit                   3.1.20221030         h5eee18b_0
libffi                    3.2.1             hf484d3e_1007
libgcc-ng                 11.2.0               h1234567_1
libgomp                   11.2.0               h1234567_1
libstdcxx-ng              11.2.0               h1234567_1
llvmlite                  0.39.1                   pypi_0    pypi
matplotlib                3.5.3                    pypi_0    pypi
ncurses                   6.4                  h6a678d5_0
networkx                  2.6.3                    pypi_0    pypi
ninja                     1.11.1                   pypi_0    pypi
numba                     0.56.4                   pypi_0    pypi
numpy                     1.21.6                   pypi_0    pypi
opencv-python             4.8.0.74                 pypi_0    pypi
openssl                   1.1.1v               h7f8727e_0
packaging                 23.1                     pypi_0    pypi
pillow                    9.5.0                    pypi_0    pypi
pip                       22.3.1           py37h06a4308_0
pyparsing                 3.1.1                    pypi_0    pypi
python                    3.7.4                h265db76_1
python-dateutil           2.8.2                    pypi_0    pypi
pywavelets                1.3.0                    pypi_0    pypi
pyyaml                    5.1.1                    pypi_0    pypi
readline                  7.0                  h7b6447c_5
scikit-image              0.19.3                   pypi_0    pypi
scipy                     1.7.3                    pypi_0    pypi
setuptools                65.6.3           py37h06a4308_0
six                       1.16.0                   pypi_0    pypi
sqlite                    3.33.0               h62c20be_0
tifffile                  2021.11.2                pypi_0    pypi
tk                        8.6.12               h1ccaba5_0
torch                     1.6.0                    pypi_0    pypi
torchaudio                0.6.0                    pypi_0    pypi
torchvision               0.7.0                    pypi_0    pypi
tqdm                      4.65.1                   pypi_0    pypi
typing-extensions         4.7.1                    pypi_0    pypi
wheel                     0.38.4           py37h06a4308_0
xz                        5.4.2                h5eee18b_0
yacs                      0.1.8                    pypi_0    pypi
zipp                      3.15.0                   pypi_0    pypi
zlib                      1.2.13               h5eee18b_0

Idea about getting rotation and translation vectors for joints provided in xxxxx_prediction.pkl

Hey,
I'm trying to animate the generated 3D body using the joints provided in the xxxx_prediction.pkl file.
I'm also confused about the joint arrangements and how to get the blendshape and expression parameters for the face.
Can anyone suggest any reference I should look for?

From the issue, , I can figure it out there is something in the decode function of pixie.py, But there was no additional information provided there,

Please explain the xxxx_parameters.pkl and xxxx_prediction.pkl we get as output if possible.

Thanks,

OSError: Failed to interpret file '/home/michael/PIXIE/data/SMPLX_NEUTRAL_2020.npz' as a pickle

python demos/demo_fit_body.py --saveObj True

total 12 images
creating the SMPLX Decoder
Traceback (most recent call last):
File "/home/michael/anaconda3/envs/pixie-env/lib/python3.7/site-packages/numpy/lib/npyio.py", line 448, in load
return pickle.load(fid, **pickle_kwargs)
_pickle.UnpicklingError: invalid load key, 'E'.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "demos/demo_fit_body.py", line 165, in
main(parser.parse_args())
File "demos/demo_fit_body.py", line 35, in main
pixie = PIXIE(config = pixie_cfg, device=device)
File "/home/michael/PIXIE/pixielib/pixie.py", line 50, in init
self._create_model()
File "/home/michael/PIXIE/pixielib/pixie.py", line 108, in _create_model
self.smplx = SMPLX(self.cfg.model).to(self.device)
File "/home/michael/PIXIE/pixielib/models/SMPLX.py", line 113, in init
ss = np.load(config.smplx_model_path, allow_pickle=True)
File "/home/michael/anaconda3/envs/pixie-env/lib/python3.7/site-packages/numpy/lib/npyio.py", line 451, in load
"Failed to interpret file %s as a pickle" % repr(file)) from e
OSError: Failed to interpret file '/home/michael/PIXIE/data/SMPLX_NEUTRAL_2020.npz' as a pickle

No such file : 'FLAME_albedo_from_BFM.npz'

Hi!
I wont start thic project, but get error:

File "/home/owner/.local/lib/python3.8/site-packages/numpy/lib/npyio.py", line 417, in load
fid = stack.enter_context(open(os_fspath(file), "rb"))
FileNotFoundError: [Errno 2] No such file or directory: '/home/owner/PythonProjects/3dBodyFromImage/4/PIXIE/data/FLAME_albedo_from_BFM.npz'

Please help fix this error.

TypeError: load() missing 1 required positional argument: 'Loader'

Hi!
I have configured cuda and torch of other versions, because my system requires it.
I wont start body example, but get this error:

total 12 images
creating the SMPLX Decoder
Traceback (most recent call last):
File "demos/demo_fit_body.py", line 165, in
main(parser.parse_args())
File "demos/demo_fit_body.py", line 35, in main
pixie = PIXIE(config = pixie_cfg, device=device)
File "/home/owner/PythonProjects/3dBodyFromImage/4/PIXIE/pixielib/pixie.py", line 50, in init
self._create_model()
File "/home/owner/PythonProjects/3dBodyFromImage/4/PIXIE/pixielib/pixie.py", line 108, in _create_model
self.smplx = SMPLX(self.cfg.model).to(self.device)
File "/home/owner/PythonProjects/3dBodyFromImage/4/PIXIE/pixielib/models/SMPLX.py", line 156, in init
self.extra_joint_selector = JointsFromVerticesSelector(
File "/home/owner/PythonProjects/3dBodyFromImage/4/PIXIE/pixielib/models/lbs.py", line 399, in init
data = yaml.load(f)
TypeError: load() missing 1 required positional argument: 'Loader'

Please, help fix this.

FileNotFoundError - smplx_extra_joints.yaml

total 12 images
creating the SMPLX Decoder
Traceback (most recent call last):
File "demos/demo_fit_body.py", line 165, in
main(parser.parse_args())
File "demos/demo_fit_body.py", line 35, in main
pixie = PIXIE(config = pixie_cfg, device=device)
File "/Projects/PIXIE/pixielib/pixie.py", line 50, in init
self._create_model()
File "/Projects/PIXIE/pixielib/pixie.py", line 108, in _create_model
self.smplx = SMPLX(self.cfg.model).to(self.device)
File "/Projects/PIXIE/pixielib/models/SMPLX.py", line 157, in init
fname=config.extra_joint_path)
File "/Projects/PIXIE/pixielib/models/lbs.py", line 398, in init
with open(fname, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/Projects/PIXIE/data/smplx_extra_joints.yaml'

Thanks for sharing this code.
When I try these commands, the error appears
But there is no 'smplx_extra_joints.yaml' in smpl-x site
python demos/demo_fit_body.py --saveObj True
python demos/demo_animate_body.py

How can I get the file?

Face texture issue with whole body fitting

Hey,
Congrats for this great work.
I tested this repository and glad to see the results.

I'm experimenting with different options given as arguments, so i executed the below command,
python demos/demo_fit_body.py -i test_samples1/ -s test_samples1_result/ --deca_path DECA/ --extractTex True --saveObj True

But the resultant texture is not mapping correctly to the given template and hence getting very poor facial texture.
Below are some references -
input 1

bill-gates-7

output 1

bill-gates-7

input 2
elon_musk

output 2
elon_musk

input 3

thumb_bezos

output 3
thumb_bezos

Can you please suggest some ways to enhance the results?

Thanks.

how to get face expression basis like apple's ARKit ?

Hi, pixie looks really impressive, just wonder, does there anyway to get a expression basis blend shapes in 51 dimensional same as apples' ARKit?

this could be useful we want using these blend shape to animate 3d characters not just reconstruct.

Animating non-trivial hand and finger movements

I ran the trained PIXIE model on a sign-language video to test its capability on animating complex hand and finger movements (see attached video: the video has 3 signs. The video is put in 0.5x speed to ease spotting).

asl_3.1_pixie_0.5x.mp4

This video demonstrates that the output of PIXIE is imperfect for hand/finger joints. Pointing out a couple of examples below:
1] On the first sign, the left hand is a closed fist in the video, but this is not the case in the animation.
2] On the third sign, the right hand fingers make the V-symbol, whereas the animated right hand is an open palm.

Could you clarify what the reason for this could be ? Any ideas on trying to improve this?
Also, is there any existing work (either a follow-up to this work or some other independent research) that is better at capturing finer movements of the hand?

input image body position

Is it possible to get the original input image body position (yaw, pitch, roll) or rotation matrix from the pickle file?

I see that there is a rotation matrix in data_pkl['global_pose'], but the (yaw, pitch,roll) I get from it doesn't seem to be right. maybe the rotation matrix is of another normalized version of the input image?

For example, using the image 'photo-of-woman-holding-mobile-phone-3762372' in the demo yields the rotation matrix:
[[ 0.9990019 -0.03468268 0.02814787]
[-0.03083506 -0.9913991 -0.12718882]
[ 0.03231702 0.12619393 -0.99147904]]

which is translated to the values
roll 3.01499488446322 pitch -0.03232265071036924 yaw -0.030856074336614314

I would expect all 3 values to be very low, as it seems the woman is directly facing the camera.

error in 3D face reconstruction

While I able to generate reconstruction of Expressive 3D body, 3D hand and Animation of complete body but my 3D face reconstruction is not working and giving the following error, Please help to figure out the issue


total 11 images
creating the SMPLX Decoder
/nfs/151/gpu/munender/code_space/pix/PIXIE/pixielib/models/lbs.py:399: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
data = yaml.load(f)
0%| | 0/11 [00:13<?, ?it/s]
TypeError: expected dtype object, got 'numpy.dtype[float32]'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "demos/demo_fit_face.py", line 133, in
main(parser.parse_args())
File "demos/demo_fit_face.py", line 41, in main
for i, batch in enumerate(tqdm(testdata, dynamic_ncols=True)):
File "/users/gpu/munender/.local/lib/python3.7/site-packages/tqdm/std.py", line 1127, in iter
for obj in iterable:
File "/nfs/151/gpu/munender/code_space/pix/PIXIE/pixielib/datasets/face_datasets.py", line 92, in getitem
bbox = self.face_detector.run(image)
File "/nfs/151/gpu/munender/code_space/pix/PIXIE/pixielib/datasets/detectors.py", line 152, in run
out = self.model.get_landmarks(image)
File "/users/gpu/munender/anaconda3/envs/pixie-env/lib/python3.7/site-packages/face_alignment/api.py", line 110, in get_landmarks
return self.get_landmarks_from_image(image_or_path, detected_faces, return_bboxes, return_landmark_score)
File "/users/gpu/munender/anaconda3/envs/pixie-env/lib/python3.7/site-packages/torch/autograd/grad_mode.py", line 15, in decorate_context
return func(*args, **kwargs)
File "/users/gpu/munender/anaconda3/envs/pixie-env/lib/python3.7/site-packages/face_alignment/api.py", line 170, in get_landmarks_from_image
pts, pts_img, scores = get_preds_fromhm(out, center.numpy(), scale)
File "/users/gpu/munender/anaconda3/envs/pixie-env/lib/python3.7/site-packages/face_alignment/utils.py", line 201, in get_preds_fromhm
preds, preds_orig = _get_preds_fromhm(hm, idx, center, scale)
SystemError: CPUDispatcher(<function _get_preds_fromhm at 0x7fcc0cfa7440>) returned a result with an error set

FLAME texture array reshape error

I am getting following error in all the demo codes.
`

PIXIE> python demos/demo_animate_body.py
total 1 images
total 6 images
creating the SMPLX Decoder
Traceback (most recent call last):
File "demos/demo_animate_body.py", line 150, in
main(parser.parse_args())
File "demos/demo_animate_body.py", line 37, in main
pixie = PIXIE(config = pixie_cfg, device=device)
File "\PIXIE\pixielib\pixie.py", line 50, in init
self._create_model()
File "
\PIXIE\pixielib\pixie.py", line 112, in _create_model
self.flametex = FLAMETex(self.cfg.model).to(self.device)
File "~\PIXIE\pixielib\models\FLAME.py", line 38, in init
texture_basis = tex_space[pc_key].reshape(-1, n_pc)
ValueError: cannot reshape array of size 114032640 into shape (199)

`

Why is the model not able to represent the hair

Based on the gifs,seems that the model is unable to accurately represent the hair.If we were to look at the model from the back,you can see a vertical line that seperates the head.
Any ideas why this is happening,also are there any papers that are able to capture the hair aspect in the image.

OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root. Raising CUDA error even if I'm using CPU

Hi everybody,
congrats on the cool project!
I wanted to test the animation body demo on my MacBook Pro that doesn't have a GPU. For this reason, I'm using the option with CPU usage: python demos/demo_animate_body.py --device cpu

I get the following error related to CUDA even if I'm tring to use the CPU:
CUDA is not available! use CPU instead total 1 images total 6 images creating the SMPLX Decoder /Users/erickturricelli/thesis/PIXIE/pixielib/models/lbs.py:399: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details. data = yaml.load(f) Traceback (most recent call last): File "demos/demo_animate_body.py", line 150, in <module> main(parser.parse_args()) File "demos/demo_animate_body.py", line 38, in main visualizer = Visualizer(render_size=args.render_size, config = pixie_cfg, device=device, rasterizer_type=args.rasterizer_type) File "/Users/erickturricelli/thesis/PIXIE/pixielib/visualizer.py", line 48, in __init__ self._setup_renderer() File "/Users/erickturricelli/thesis/PIXIE/pixielib/visualizer.py", line 57, in _setup_renderer set_rasterizer(self.rasterizer_type) File "/Users/erickturricelli/thesis/PIXIE/pixielib/utils/renderer.py", line 32, in set_rasterizer extra_cuda_cflags = ['-std=c++14', '-ccbin=$$(which gcc-7)']) # cuda10.2 is not compatible with gcc9. Specify gcc 7 File "/Users/erickturricelli/virtualenv_detectron2/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 974, in load keep_intermediates=keep_intermediates) File "/Users/erickturricelli/virtualenv_detectron2/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1179, in _jit_compile with_cuda=with_cuda) File "/Users/erickturricelli/virtualenv_detectron2/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1257, in _write_ninja_file_and_build_library verbose) File "/Users/erickturricelli/virtualenv_detectron2/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1348, in _prepare_ldflags extra_ldflags.append('-L{}'.format(_join_cuda_home('lib64'))) File "/Users/erickturricelli/virtualenv_detectron2/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1783, in _join_cuda_home raise EnvironmentError('CUDA_HOME environment variable is not set. ' OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.

For reference, before I was getting an error regarding deserialization in CUDA that I solved following this answer on stackoverflow.

Thanks for the support!

SMPLX t-pose shape change issue.

Thank you for sharing such good work. I want to change the t-pose shape(fat to thin) for my output 3D character, can someone suggest to me which line of code I have to look into?

Extracting 3D keypoints

Hello,

thank you for sharing your work!

Is there a way of extracting 3D keypoints based on the reconstructed mesh?

Unable to align different body parts (face,hand,wrist)

Hey ,
I'm trying to use the predicted joints information to animate the human avatar we get as output.
But getting a bit of misaligned results at the end.

Sharing the pic for reference:-
PIXIE_Joints_rotation

@ijorquera, facing the same issue. can you suggest how you did that?

Anyone having ideas, please suggest here.

Misalign between the .obj and a smplx model with the generated rotations

Hello, when reconstructing the body of the image "GettyImages-545880635" I get an .obj with a similar pose to the image, but when I use the generated rotation matrix and radians in an SMPLX model in unity I get a slightly different pose with a slightly lower arm (the one pointing upwards) than the .obj model.

The degs for the arm pointing upwards after calling the pixie functions and converting from radians are like this:

collar: [-3.638, -6.141, -11.834]
shoulder: [ 0.758, -28.597, -54.184]
elbow: [-7.016, -105.445, 25.618]

But after rotating the arms to make it look like the generated .obj it ended looking like this:

collar: [-3.638, -6.141, -11.834]
shoulder: [-7.461, -34.199, -38.933]
elbow: [ 4.089, -112.616, 21.870]

I would like to know if there is some fix for this kind of misalign, since it also happens with some fingers and other body parts when using other images. I'm using the radians generated after calling the decode function, maybe there is an additional step that I'm missing.

Thanks!

Clothing in the Figure

In the figure under the Expressive 3D body reconstruction section in the README, the final (i.e. the rightmost) image has a model with clothing. How was this achieved?

How to reverse the vertices to the original space.

Hi, I'm very interested in your excellent project. I wonder how to reverse the mesh vertices to the original space. I set args.reproject_mesh as True, but the result of vertices is strange as shown below.
sample_video_frame00000_vis

No such file or directory: '/content/PIXIE/data/FLAME_albedo_from_BFM.npz

Hi, first congrats for your work :)

I'm running your code in Colab and getting this error:

!python demos/demo_fit_face.py --saveObj True

FileNotFoundError: [Errno 2] No such file or directory: '/content/PIXIE/data/FLAME_albedo_from_BFM.npz'

In the instruction says that ALBEDO stuff is optional. I'm getting this error with all demo scripts. Any clue?
Is it compulsory to install albedo repo?

Thanks a lot

Using own 3d model

Hi, first of all many thanks for your amazing code.
Is there a way to use my own 3d model in the animation script? I mean, I don't want to extract a 3d body from a picture, just insert my own .obj an animate it acording to target images.

Many thanks in advance

How to get training data? Why is the betas parameter is 200?

As you mentioned in your paper, the training data is SMPL-X fit of exPose. But the number of betas parameters given by exPose is 10, but the number of betas parameters given in your method is 200, I was wondering how you guys Get the SMPL-X dataset with betas parameter of 200? (I see that most of the methods set the number of betas parameter of SMPL-X to 10)

Aligning the wrists, head and pelvis

Hello, I have been doing a few tests with pixie (using body as the type) to obtain the pose of the smplx given a picture and I managed to get the joints rotation from param_dict['body'] after applying some conversions, but when I try to use those values on a regular smplx in blender or unity I end up with a misalign between the wrists, the pelvis (global_pose) and the head, for example the body is looking backwards while the head is looking to the cam and the wrist are all over the place.

The fingers and the body parts seems to be fine when compared to the picture except for the other 3 parts, so I wanted to know if there is a right way to obtain the joints rotation while keeping the 3 bodies aligned or if there is a known way to easily align them.

Thanks.

How to fit an smplx model with the person of a picture?

Hello, I was doing some test with pixie and smplx in unity and right now I'm trying to fit the smplx with the 1024x1024 image that pixie generates using the pelvis keypoints (the first array of the keypoints obtained after using the decode function) and the body_cam, but I can't manage to get the same result as the rendered by pixie as shown in the image (left is rendered by pixie, right is my attempt to fit it using the keypoints and cam).
///

Is there any kind of scale or conversion that I should be considering when trying to fit the smplx to the image? in the previous image it looks really close to the rendered by pixie, but that is just the case with that image and I get bigger off-sets with other pictures.

Thanks!

FLAME_albedo_from_BFM.npz not found

Hi, first congrats for your work :)

I'm running your code in Colab and getting this error:

!python demos/demo_fit_face.py --saveObj True

FileNotFoundError: [Errno 2] No such file or directory: '/content/PIXIE/data/FLAME_albedo_from_BFM.npz'

Any clue? Should I download this file from any website?
Thanks a lot

Do you plan to release the training code?

Hi @YadiraF, the effect of PIXIE is fantastic. I want to follow your work but find the training scripts are not released yet. May I know whether you have a plan to release the training code?

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.