A real-time approach for mapping all human pixels of 2D RGB images to a 3D surface-based model of the body

Overview

DensePose:

Dense Human Pose Estimation In The Wild

Rıza Alp Güler, Natalia Neverova, Iasonas Kokkinos

[densepose.org] [arXiv] [BibTeX]

Dense human pose estimation aims at mapping all human pixels of an RGB image to the 3D surface of the human body. DensePose-RCNN is implemented in the Detectron framework and is powered by Caffe2.

In this repository, we provide the code to train and evaluate DensePose-RCNN. We also provide notebooks to visualize the collected DensePose-COCO dataset and show the correspondences to the SMPL model.

Important Note

!!! This project is no longer supported !!!

DensePose is now part of Detectron2 (https://github.com/facebookresearch/detectron2/tree/master/projects/DensePose). There you can find the most up to date architectures / models. If you think some feature is missing from there, please post an issue in Detectron2 DensePose.

Installation

Please find installation instructions for Caffe2 and DensePose in INSTALL.md, a document based on the Detectron installation instructions.

Inference-Training-Testing

After installation, please see GETTING_STARTED.md for examples of inference and training and testing.

Notebooks

Visualization of DensePose-COCO annotations:

See notebooks/DensePose-COCO-Visualize.ipynb to visualize the DensePose-COCO annotations on the images:


DensePose-COCO in 3D:

See notebooks/DensePose-COCO-on-SMPL.ipynb to localize the DensePose-COCO annotations on the 3D template (SMPL) model:


Visualize DensePose-RCNN Results:

See notebooks/DensePose-RCNN-Visualize-Results.ipynb to visualize the inferred DensePose-RCNN Results.


DensePose-RCNN Texture Transfer:

See notebooks/DensePose-RCNN-Texture-Transfer.ipynb to localize the DensePose-COCO annotations on the 3D template (SMPL) model:

License

This source code is licensed under the license found in the LICENSE file in the root directory of this source tree.

Citing DensePose

If you use Densepose, please use the following BibTeX entry.

  @InProceedings{Guler2018DensePose,
  title={DensePose: Dense Human Pose Estimation In The Wild},
  author={R\{i}za Alp G\"uler, Natalia Neverova, Iasonas Kokkinos},
  journal={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year={2018}
  }
Comments
  • How to generate 24 parts UV fields of a SMPL model?

    How to generate 24 parts UV fields of a SMPL model?

    As mentioned in the paper: For head, hands and feet, we use the manually obtained UV fields provided in the SMPL model. For the rest of the parts we obtain the unwrapping via multidimensional scaling applied to pairwise geodesic distances. Then we get this: image

    Is there any code to generate this UV map? And what is the corresponence between this map with 6890 SMPL vertices?

    opened by ypflll 37
  • make ops error

    make ops error

    when run the make ops,i encountered this error and i also have found that many people had the same problems i had,but none of them were soved. (base) tensor@tensor-GS65-Stealth-Thin-8RF:~/densepose$ make ops mkdir -p build && cd build && cmake .. && make -j12 CMake Error at CMakeLists.txt:8 (find_package): By not providing "FindCaffe2.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Caffe2", but CMake did not find one.

    Could not find a package configuration file provided by "Caffe2" with any of the following names:

    Caffe2Config.cmake
    caffe2-config.cmake
    

    Add the installation prefix of "Caffe2" to CMAKE_PREFIX_PATH or set "Caffe2_DIR" to a directory containing one of the above files. If "Caffe2" provides a separate development package or SDK, be sure it has been installed.

    -- Configuring incomplete, errors occurred! See also "/home/tensor/densepose/build/CMakeFiles/CMakeOutput.log". Makefile:13: recipe for target 'ops' failed make: *** [ops] Error 1

    this is the last step to use this demo,please give me a hand!

    opened by Anikily 29
  • I have one question about densepose result!

    I have one question about densepose result!

    I succeeded densepose test for video with reference to (https://github.com/trrahul/densepose-video). while tests, i got a question.

    1. When I detect an object using densepose, where are the keypoints' coordination stored? (which variable?) Example) get_keypoints() in keypoints.py ? 2. What information can I use in densepose data?

    Thank you! i want to your detail opinion.

    opened by yagee97 21
  • make ops error: No rule to make target libculibos.a when compile libcaffe2_detectron_custom_ops_gpu.so

    make ops error: No rule to make target libculibos.a when compile libcaffe2_detectron_custom_ops_gpu.so

    When I run "make ops" I encountered many errors which made me very sad, most of them were solved in #152, thanks to @linkinpark213. However, here is a new error I met which was not emerged in that issue. The error message looks like this:

    [ 12%] Building NVCC (Device) object CMakeFiles/caffe2_detectron_custom_ops_gpu.dir/detectron/ops/caffe2_detectron_custom_ops_gpu_generated_zero_even_op.cu.o [ 25%] Building NVCC (Device) object CMakeFiles/caffe2_detectron_custom_ops_gpu.dir/detectron/ops/caffe2_detectron_custom_ops_gpu_generated_pool_points_interp.cu.o [ 37%] Building CXX object CMakeFiles/caffe2_detectron_custom_ops.dir/detectron/ops/pool_points_interp.cc.o [ 50%] Building CXX object CMakeFiles/caffe2_detectron_custom_ops.dir/detectron/ops/zero_even_op.cc.o [ 62%] Linking CXX shared library libcaffe2_detectron_custom_ops.so [ 62%] Built target caffe2_detectron_custom_ops Scanning dependencies of target caffe2_detectron_custom_ops_gpu make[2]: *** No rule to make target /usr/local/cuda/lib64/libculibos.a', needed bylibcaffe2_detectron_custom_ops_gpu.so'. Stop. make[2]: *** Waiting for unfinished jobs.... [ 75%] Building CXX object CMakeFiles/caffe2_detectron_custom_ops_gpu.dir/detectron/ops/pool_points_interp.cc.o [ 87%] Building CXX object CMakeFiles/caffe2_detectron_custom_ops_gpu.dir/detectron/ops/zero_even_op.cc.o make[1]: *** [CMakeFiles/caffe2_detectron_custom_ops_gpu.dir/all] Error 2 make: *** [all] Error 2

    The problem is when compiling the library "libcaffe_detectron_custom_ops_gpu.so", the compiler can't find the dependent library "libculibos.a" from the path "/usr/local/cuda/lib64". I found that this path in fact doesn't exist on my system since I didn't create a symbol link for a specific version of CUDA.

    By checking the file "CMakeFiles/caffe2_detectron_custom_ops_gpu.dir/build.cmake" generated by "cmake .." command, I found all paths related to cuda libraries were generated correctly with specefic cuda version (e.g., /usr/local/cuda-9.0/lib64/libcublas.so) except only this one (i.e., libculibos.a).

    So, here's my solution which I think should solve this problem (but I still don't know why this happened, maybe it's a minor bug):

    1. Execute cmake .. in $DENSEPOSE/build;
    2. Check $DENSEPOSE/build/CMakeFiles/caffe2_detectron_custom_ops_gpu.dir/build.cmake and $DENSEPOSE/build/CMakeFiles/caffe2_detectron_custom_ops_gpu.dir/link.txt to make sure all dependencies can be found in the specified paths. (In my case, replace /usr/local/cuda/lib64 with /usr/local/cuda-9.0/lib64 in both files);
    3. make -j8 (or simply make). After this, you can test your compilation by running $DENSEPOSE/detectron/tests/test_zero_even_op.py

    Although this is not a big issue, but there's still a chance that someone may encounter it. So, hope this can help :)

    opened by Johnqczhang 20
  • output 2D/3D coordinates for 6890 vertices in SMPL

    output 2D/3D coordinates for 6890 vertices in SMPL

    Thanks for making this tremendous work public available! I have read the code of tools/infer_simple.py and the output of is UV coordinate. But I am more interested in the estimate SMPL model and I am wondering is it possible to output the 2D coordinates of the 6890 vertices given an image?

    opened by penincillin 16
  • cd $DensePose && make ops

    cd $DensePose && make ops

    cd $DensPose && make ops when I perform this instruction , it will tell me that ‘ mkdir -p build && cd build && cmake .. && make -j48 -- Caffe2: Cannot find gflags automatically. Using legacy find. -- Caffe2: Found gflags (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libgflags.so) -- Caffe2: Cannot find glog automatically. Using legacy find. -- Caffe2: Found glog (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libglog.so) -- Caffe2: Found protobuf with old-style protobuf targets. -- Caffe2: Protobuf version CMake Error at /data/xiaobing.wang/peixuan.liang/caffe2/build/Caffe2Config.cmake:55 (message): Your installed Caffe2 is built with protobuf , while your current cmake setting discovers protobuf version . Please specify a protobuf version that is the same as the built version. Call Stack (most recent call first): CMakeLists.txt:8 (find_package)

    -- Configuring incomplete, errors occurred! See also "/data/xiaobing.wang/peixuan.liang/DensePose-master/build/CMakeFiles/CMakeOutput.log". See also "/data/xiaobing.wang/peixuan.liang/DensePose-master/build/CMakeFiles/CMakeError.log". Makefile:13: recipe for target 'ops' failed make: *** [ops] Error 1

    ’ and i could not solve this problem,what should i do? thanks very much.

    opened by Molength 13
  • infer_simple.py failed to detect any meaningful results?

    infer_simple.py failed to detect any meaningful results?

    I set up caffe2 and Densepose environment per instruction, there's something wrong with making custom ops though, but the rest seems okay. However, the generated results are meaningless.

    Here's my command:

    python2 tools/infer_simple.py \
    
    	--cfg configs/DensePose_ResNet101_FPN_s1x-e2e.yaml \
    
    	--output-dir DensePoseData/infer_out_new/ \
    
    	--image-ext jpg \
    
    	--wts https://s3.amazonaws.com/densepose/DensePose_ResNet101_FPN_s1x-e2e.pkl \
    
    	DensePoseData/demo_data/demo_im.jpg`
    

    Here is the output info, all the bounding box score has 0.5000 which is below the threshold 0.7. note that I added some print function in the utils/vis.py to force the program save the .pdf result even if return criterion has been triggered:

    (py27-caffe2) vcl@vcl-dl-2:/backup/DensePose$ bash run_test.sh
    
    Found Detectron ops lib: /home/vcl/anaconda3/envs/py27-caffe2/lib/libcaffe2_detectron_ops_gpu.so
    
    E0907 14:51:03.959839  6653 init_intrinsics_check.cc:43] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    
    E0907 14:51:03.959861  6653 init_intrinsics_check.cc:43] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    
    E0907 14:51:03.959867  6653 init_intrinsics_check.cc:43] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    
    WARNING cnn.py:  25: [====DEPRECATE WARNING====]: you are creating an object from CNNModelHelper class which will be deprecated soon. Please use ModelHelper object with brew module. For more information, please refer to caffe2.ai and python/brew.py, python/brew_test.py for more information.
    
    INFO net.py:  51: Loading weights from: /tmp/detectron-download-cache/DensePose_ResNet101_FPN_s1x-e2e.pkl
    
    I0907 14:51:04.730620  6653 operator.cc:191] Engine CUDNN is not available for operator MaxPool.
    
    I0907 14:51:04.736507  6653 operator.cc:191] Engine CUDNN is not available for operator MaxPool.
    
    I0907 14:51:04.737638  6653 net_dag_utils.cc:102] Operator graph pruning prior to chain compute took: 8.1733e-05 secs
    
    I0907 14:51:04.741101  6653 operator.cc:191] Engine CUDNN is not available for operator MaxPool.
    
    I0907 14:51:04.747277  6653 operator.cc:191] Engine CUDNN is not available for operator MaxPool.
    
    I0907 14:51:04.747470  6653 net_dag_utils.cc:102] Operator graph pruning prior to chain compute took: 7.0287e-05 secs
    
    I0907 14:51:04.749591  6653 net_dag_utils.cc:102] Operator graph pruning prior to chain compute took: 1.0054e-05 secs
    
    INFO infer_simple.py: 103: Processing DensePoseData/demo_data/demo_im.jpg -> DensePoseData/infer_out_new/demo_im.jpg.pdf
    
    I0907 14:51:07.475107  6653 net_async_base.cc:435] Using specified CPU pool size: 4; NUMA node id: -1
    
    I0907 14:51:07.475139  6653 net_async_base.cc:440] Created new CPU pool, size: 4; NUMA node id: -1
    
    I0907 14:51:08.376976  6653 net_async_base.cc:435] Using specified CPU pool size: 4; NUMA node id: -1
    
    I0907 14:51:08.377008  6653 net_async_base.cc:440] Created new CPU pool, size: 4; NUMA node id: -1
    
    INFO infer_simple.py: 115: Inference time: 3.384s
    
    INFO infer_simple.py: 117:  | im_detect_bbox: 0.935s
    
    INFO infer_simple.py: 117:  | im_detect_body_uv: 2.445s
    
    INFO infer_simple.py: 117:  | misc_bbox: 0.003s
    
    INFO infer_simple.py: 120:  \ Note: inference on the first image will be slower than the rest (caches and auto-tuning need to warm up)
    
    going in vis
    
    boxes: (395, 5)
    
    [[0.0000000e+00 0.0000000e+00 1.1634885e+02 1.5376009e+02 5.0000000e-01]
     [8.7234839e+02 0.0000000e+00 1.0807764e+03 1.2694235e+02 5.0000000e-01]
     [4.1836800e+01 0.0000000e+00 2.5026465e+02 1.2694235e+02 5.0000000e-01]
     ...
     [9.6155505e+02 0.0000000e+00 1.0129530e+03 3.1035259e+01 5.0000000e-01]
     [1.0553225e+03 0.0000000e+00 1.1067205e+03 3.1035259e+01 5.0000000e-01]
     [9.3476440e+02 0.0000000e+00 9.8616235e+02 3.1035259e+01 5.0000000e-01]]
    
    DensePoseData/demo_data/demo_im.jpg
    IUV written to:  DensePoseData/infer_out_new/demo_im_IUV.png
    

    And here's the inferred results(pdf and converted .png): demo_im.jpg.pdf demo_im_jpg

    I didn't change anything in the infer script (except some debugging print functions), and I don't know where goes wrong. Is it possible for you to check it out? Thanks!

    Environment ubuntu 18.04 python=2.7 caffe2=0.8.dev (installed from anaconda) cuda=9.0.176 cudnn=7.2.1

    opened by Lotayou 12
  • number of parametrized mesh faces unequal to SMPL mesh faces

    number of parametrized mesh faces unequal to SMPL mesh faces

    Hi,

    First of all, thank you for making such a excellent work public available.

    I downloaded the uv data and found the number of faces in the data is 13774. But there are 13776 faces in the SMPL mesh, which has two more faces.

    I wonder if there is anything I missed? How to make a correspondence between the uv coordinates and SMPL mesh vertices?

    Thanks a lot!

    opened by VVingerfly 12
  • Engine CUDNN is not available for operator MaxPool

    Engine CUDNN is not available for operator MaxPool

    I installed Caffe2 using the Anaconda pre-built binary with CUDA 9.0 and cuDNN 7.1.4. infer_simple.py seems to work just fine without any errors, but I do not think that it is making use of the GPU, and it outputs warnings like:

    Engine CUDNN is not available for operator MaxPool

    Also, there have been new messages like Created new CPU Pool size: 4; NUMA node id: -1, but I don't think it should be using the CPU since I have the GPU. Does anyone know what's wrong?

    opened by minthetkhine 12
  • Strange error when running simple_infer.py, can not figure out what is wrong (CuDNN?)

    Strange error when running simple_infer.py, can not figure out what is wrong (CuDNN?)

    I am under Ubuntu 16.04, Cuda 8.0 CuDNN 6.0.21; on a GTX 980Ti. I attach my caffe2 cmake summary and my compile log for ref compile_pytorch.txt cmake_pytorch.txt

    Cannot figure out where is the problem. HELP please!!!

    I pass the first caffe2 tests:

    1. python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure" Success
    2. python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())' 1

    Then I "fail" the relu_op_test.py with a weird message but I have read those errors may just be warnings so not sure.

     python caffe2/python/operator_test/relu_op_test.py
    No handlers could be found for logger "caffe2.python.net_drawer"
    net_drawer will not run correctly. Please install the correct dependencies.
    /usr/local/lib/python2.7/dist-packages/caffe2/python/hypothesis_test_util.py:75: HypothesisDeprecationWarning: 
    The min_satisfying_examples setting has been deprecated and disabled, due to
    overlap with the filter_too_much healthcheck and poor interaction with the
    max_examples setting.
    
      verbosity=hypothesis.Verbosity.verbose))
    /usr/local/lib/python2.7/dist-packages/caffe2/python/hypothesis_test_util.py:84: HypothesisDeprecationWarning: 
    The min_satisfying_examples setting has been deprecated and disabled, due to
    overlap with the filter_too_much healthcheck and poor interaction with the
    max_examples setting.
    
      verbosity=hypothesis.Verbosity.verbose))
    /usr/local/lib/python2.7/dist-packages/caffe2/python/hypothesis_test_util.py:92: HypothesisDeprecationWarning: 
    The min_satisfying_examples setting has been deprecated and disabled, due to
    overlap with the filter_too_much healthcheck and poor interaction with the
    max_examples setting.
    
      verbosity=hypothesis.Verbosity.verbose))
    E0702 22:04:28.531708  3503 init_intrinsics_check.cc:43] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    E0702 22:04:28.531721  3503 init_intrinsics_check.cc:43] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    E0702 22:04:28.531724  3503 init_intrinsics_check.cc:43] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([0.], dtype=float32), gc=, dc=[, device_type: 1], engine=u'')
    {u'X': }
    {u'X': device_type: 1
    }
    Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([[[[-0.25521252],
             [-0.25521252],
             [-0.25521252],
             [-0.25521252]],
    
            [[-0.25521252],
             [-0.25521252],
             [-0.25521252],
             [-0.25521252]],
    
            [[-0.25521252],
             [-0.25521252],
             [-0.25521252],
             [-0.25521252]]],
    
    
           [[[-0.25521252],
             [-0.25521252],
             [ 0.37402993],
             [-0.25521252]],
    
            [[-0.25521252],
             [-0.25521252],
             [-0.25521252],
             [-0.25521252]],
    
            [[-0.25521252],
             [-0.25521252],
             [-0.25521252],
             [-0.25521252]]],
    
    
           [[[-0.25521252],
             [-0.25521252],
             [ 0.6883273 ],
             [-0.25521252]],
    
            [[-0.25521252],
             [-0.25521252],
             [-0.25521252],
             [-0.25521252]],
    
            [[-0.25521252],
             [ 0.86089224],
             [-0.25521252],
             [-0.25521252]]]], dtype=float32), gc=device_type: 1, dc=[, device_type: 1], engine=u'')
    {u'X': }
    {u'X': device_type: 1
    }
    Trying example: test_relu(self=<__main__.TestRelu testMethod=test_relu>, X=array([[-0.793503  , -0.793503  , -0.793503  ],
           [-0.49327314, -0.793503  , -0.793503  ],
           [-0.793503  , -0.793503  , -0.793503  ],
           [-0.29144055, -0.793503  , -0.793503  ],
           [-0.793503  ,  0.07806086, -0.5510364 ]], dtype=float32), gc=device_type: 1, dc=[, device_type: 1], engine=u'CUDNN')
    {u'X': }
    I0702 22:04:28.761914  3503 operator.cc:169] Engine CUDNN is not available for operator Relu.
    {u'X': device_type: 1
    }
    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/hypothesis/core.py", line 671, in evaluate_test_data
        result = self.execute(data, collect=True)
      File "/usr/local/lib/python2.7/dist-packages/hypothesis/core.py", line 586, in execute
        result = self.test_runner(data, run)
      File "/usr/local/lib/python2.7/dist-packages/hypothesis/executors.py", line 58, in default_new_style_executor
        return function(data)
      File "/usr/local/lib/python2.7/dist-packages/hypothesis/core.py", line 582, in run
        return test(*args, **kwargs)
      File "caffe2/python/operator_test/relu_op_test.py", line 19, in test_relu
        engine=st.sampled_from(["", "CUDNN"]),
      File "/usr/local/lib/python2.7/dist-packages/hypothesis/core.py", line 524, in test
        result = self.test(*args, **kwargs)
      File "caffe2/python/operator_test/relu_op_test.py", line 26, in test_relu
        self.assertDeviceChecks(dc, op, [X], [0])
      File "/usr/local/lib/python2.7/dist-packages/caffe2/python/hypothesis_test_util.py", line 350, in assertDeviceChecks
        dc.CheckSimple(op, inputs, outputs_to_check, input_device_options)
      File "/usr/local/lib/python2.7/dist-packages/caffe2/python/device_checker.py", line 49, in CheckSimple
        workspace.RunOperatorOnce(op)
      File "/usr/local/lib/python2.7/dist-packages/caffe2/python/workspace.py", line 165, in RunOperatorOnce
        return C.run_operator_once(StringifyProto(operator))
    RuntimeError: [enforce fail at context_gpu.h:100] status == CUDNN_STATUS_SUCCESS. 4 vs 0. , Error at: /home/tets/pytorch/caffe2/core/context_gpu.h:100: CUDNN_STATUS_INTERNAL_ERROR Error from operator: 
    input: "X" output: "Y" name: "" type: "Relu" device_option { device_type: 1 } engine: "CUDNN"
    

    I compiled denspose with no pb, and passed the detectron checks:

    python2 $DENSEPOSE/detectron/tests/test_spatial_narrow_as_op.py
    No handlers could be found for logger "caffe2.python.net_drawer"
    net_drawer will not run correctly. Please install the correct dependencies.
    E0702 22:22:49.913838  3731 init_intrinsics_check.cc:43] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    E0702 22:22:49.913887  3731 init_intrinsics_check.cc:43] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    E0702 22:22:49.913918  3731 init_intrinsics_check.cc:43] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    Found Detectron ops lib: /usr/local/lib/libcaffe2_detectron_ops_gpu.so
    ...
    ----------------------------------------------------------------------
    Ran 3 tests in 0.932s
    
    OK
    
    
     python2 $DENSEPOSE/detectron/tests/test_zero_even_op.py
    E0702 22:24:07.535202  3750 init_intrinsics_check.cc:43] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    E0702 22:24:07.535217  3750 init_intrinsics_check.cc:43] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    E0702 22:24:07.535226  3750 init_intrinsics_check.cc:43] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    ............
    ----------------------------------------------------------------------
    Ran 12 tests in 0.136s
    
    OK
    

    But when running the infer_simple.py command, I got the below cryptic error message.

    ~/densepose$ python2 tools/infer_simple.py     --cfg configs/DensePose_ResNet101_FPN_s1x-e2e.yaml     --output-dir DensePoseData/infer_out/     --image-ext jpg     --wts https://s3.amazonaws.com/densepose/DensePose_ResNet101_FPN_s1x-e2e.pkl     DensePoseData/demo_data/20170716_101313.jpg
    /home/tets/.local/lib/python2.7/site-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
      from ._conv import register_converters as _register_converters
    Found Detectron ops lib: /usr/local/lib/libcaffe2_detectron_ops_gpu.so
    E0702 21:59:20.453374  3391 init_intrinsics_check.cc:43] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    E0702 21:59:20.453388  3391 init_intrinsics_check.cc:43] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    E0702 21:59:20.453392  3391 init_intrinsics_check.cc:43] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
    WARNING cnn.py:  25: [====DEPRECATE WARNING====]: you are creating an object from CNNModelHelper class which will be deprecated soon. Please use ModelHelper object with brew module. For more information, please refer to caffe2.ai and python/brew.py, python/brew_test.py for more information.
    INFO net.py:  51: Loading weights from: /tmp/detectron-download-cache/DensePose_ResNet101_FPN_s1x-e2e.pkl
    I0702 21:59:21.176241  3391 net_dag_utils.cc:102] Operator graph pruning prior to chain compute took: 0.000106374 secs
    I0702 21:59:21.185215  3391 net_dag_utils.cc:102] Operator graph pruning prior to chain compute took: 8.9347e-05 secs
    I0702 21:59:21.186816  3391 net_dag_utils.cc:102] Operator graph pruning prior to chain compute took: 1.1866e-05 secs
    INFO infer_simple.py: 103: Processing DensePoseData/demo_data/20170716_101313.jpg -> DensePoseData/infer_out/20170716_101313.jpg.pdf
    I0702 21:59:21.589475  3391 net_async_base.cc:435] Using specified CPU pool size: 4; NUMA node id: -1
    I0702 21:59:21.589490  3391 net_async_base.cc:440] Created new CPU pool, size: 4; NUMA node id: -1
    E0702 21:59:23.285727  3413 net_async_base.cc:368] [enforce fail at context_gpu.h:100] status == CUDNN_STATUS_SUCCESS. 4 vs 0. , Error at: /home/tets/pytorch/caffe2/core/context_gpu.h:100: CUDNN_STATUS_INTERNAL_ERROR Error from operator: 
    input: "gpu_0/data" input: "gpu_0/conv1_w" output: "gpu_0/conv1" name: "" type: "Conv" arg { name: "kernel" i: 7 } arg { name: "exhaustive_search" i: 0 } arg { name: "pad" i: 3 } arg { name: "order" s: "NCHW" } arg { name: "stride" i: 2 } device_option { device_type: 1 cuda_gpu_id: 0 } engine: "CUDNN",  op Conv
    WARNING workspace.py: 185: Original python traceback for operator `0` in network `generalized_rcnn` in exception above (most recent call last):
    WARNING workspace.py: 190:   File "tools/infer_simple.py", line 140, in <module>
    WARNING workspace.py: 190:   File "tools/infer_simple.py", line 91, in main
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/core/test_engine.py", line 334, in initialize_model_from_cfg
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/model_builder.py", line 119, in create
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/model_builder.py", line 84, in generalized_rcnn
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/model_builder.py", line 233, in build_generic_detection_model
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/optimizer.py", line 46, in build_data_parallel_model
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/model_builder.py", line 165, in _single_gpu_build_func
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/FPN.py", line 55, in add_fpn_ResNet101_conv5_body
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/FPN.py", line 96, in add_fpn_onto_conv_body
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/ResNet.py", line 40, in add_ResNet101_conv5_body
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/ResNet.py", line 90, in add_ResNet_convX_body
    WARNING workspace.py: 190:   File "/home/tets/densepose/detectron/modeling/ResNet.py", line 243, in basic_bn_stem
    WARNING workspace.py: 190:   File "/usr/local/lib/python2.7/dist-packages/caffe2/python/cnn.py", line 97, in Conv
    WARNING workspace.py: 190:   File "/usr/local/lib/python2.7/dist-packages/caffe2/python/brew.py", line 107, in scope_wrapper
    WARNING workspace.py: 190:   File "/usr/local/lib/python2.7/dist-packages/caffe2/python/helpers/conv.py", line 186, in conv
    WARNING workspace.py: 190:   File "/usr/local/lib/python2.7/dist-packages/caffe2/python/helpers/conv.py", line 139, in _ConvBase
    Traceback (most recent call last):
      File "tools/infer_simple.py", line 140, in <module>
        main(args)
      File "tools/infer_simple.py", line 109, in main
        model, im, None, timers=timers
      File "/home/tets/densepose/detectron/core/test.py", line 58, in im_detect_all
        model, im, cfg.TEST.SCALE, cfg.TEST.MAX_SIZE, boxes=box_proposals
      File "/home/tets/densepose/detectron/core/test.py", line 158, in im_detect_bbox
        workspace.RunNet(model.net.Proto().name)
      File "/usr/local/lib/python2.7/dist-packages/caffe2/python/workspace.py", line 217, in RunNet
        StringifyNetName(name), num_iter, allow_fail,
      File "/usr/local/lib/python2.7/dist-packages/caffe2/python/workspace.py", line 178, in CallWithExceptionIntercept
        return func(*args, **kwargs)
    RuntimeError: [enforce fail at context_gpu.h:100] status == CUDNN_STATUS_SUCCESS. 4 vs 0. , Error at: /home/tets/pytorch/caffe2/core/context_gpu.h:100: CUDNN_STATUS_INTERNAL_ERROR Error from operator: 
    input: "gpu_0/data" input: "gpu_0/conv1_w" output: "gpu_0/conv1" name: "" type: "Conv" arg { name: "kernel" i: 7 } arg { name: "exhaustive_search" i: 0 } arg { name: "pad" i: 3 } arg { name: "order" s: "NCHW" } arg { name: "stride" i: 2 } device_option { device_type: 1 cuda_gpu_id: 0 } engine: "CUDNN"
    

    my NVIDIA setup for ref:

    Mon Jul  2 22:20:18 2018       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 384.130                Driver Version: 384.130                   |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  GeForce GTX 980 Ti  Off  | 00000000:01:00.0  On |                  N/A |
    |  0%   50C    P0    61W / 250W |    243MiB /  6077MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
                                                                                   
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |    0      1141      G   /usr/lib/xorg/Xorg                            17MiB |
    |    0      1447      G   /usr/lib/xorg/Xorg                           101MiB |
    |    0      1917      G   /usr/bin/gnome-shell                          93MiB |
    +-----------------------------------------------------------------------------+
    
    opened by Tetsujinfr 12
  • yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:python/object/new:detectron.utils.collections.AttrDict'

    yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:python/object/new:detectron.utils.collections.AttrDict'

    When I run

    python2 tools/infer_simple.py \
        --cfg configs/DensePose_ResNet101_FPN_s1x-e2e.yaml \
        --output-dir DensePoseData/infer_out/ \
        --image-ext jpg \
        --wts https://s3.amazonaws.com/densepose/DensePose_ResNet101_FPN_s1x-e2e.pkl \
        DensePoseData/demo_data/demo_im.jpg
    

    from the Getting Started page, I get the following problem. Doesn't look like the yaml parser implemented the proper constructors. I built stuff from source and I verified that all the tests in the install guide passes. Anyone else have this issue? Thanks.

    Traceback (most recent call last):
      File "tools/infer_simple.py", line 140, in <module>
        main(args)
      File "tools/infer_simple.py", line 91, in main
        model = infer_engine.initialize_model_from_cfg(args.weights)
      File "/home/ubuntu/densepose/detectron/core/test_engine.py", line 333, in initialize_model_from_cfg
        model, weights_file, gpu_id=gpu_id,
      File "/home/ubuntu/densepose/detectron/utils/net.py", line 56, in initialize_gpu_from_weights_file
        saved_cfg = load_cfg(src_blobs['cfg'])
      File "/home/ubuntu/densepose/detectron/core/config.py", line 1164, in load_cfg
        return yaml.load(cfg_to_load)
      File "/home/ubuntu/.local/lib/python2.7/site-packages/yaml/__init__.py", line 74, in load
        return loader.get_single_data()
      File "/home/ubuntu/.local/lib/python2.7/site-packages/yaml/constructor.py", line 40, in get_single_data
        return self.construct_document(node)
      File "/home/ubuntu/.local/lib/python2.7/site-packages/yaml/constructor.py", line 44, in construct_document
        data = self.construct_object(node)
      File "/home/ubuntu/.local/lib/python2.7/site-packages/yaml/constructor.py", line 89, in construct_object
        data = constructor(self, node)
      File "/home/ubuntu/.local/lib/python2.7/site-packages/yaml/constructor.py", line 415, in construct_undefined
        node.start_mark)
    yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:python/object/new:detectron.utils.collections.AttrDict'
      in "<unicode string>", line 1, column 1:
        !!python/object/new:detectron.ut ... 
    

    Anyone else have this issue? Thanks.

    opened by canzhiye 10
  • Commercial use of DensePose?

    Commercial use of DensePose?

    Hello there, I am interested in developing and adapting DensePose (https://github.com/facebookresearch/detectron2/tree/main/projects/DensePose) into a mobile product. To attract the investment required to 1) adapt DensePose into the required form 2)Port everything onto the mobile 3)Get the design and marketing right, there needs to be at least some commercial upside for the investors.

    I am a little confused because detectron2, seems to allow for commercial use https://github.com/facebookresearch/detectron2/blob/main/LICENSE and DensePose is a subproject thereof.

    But the original DensePose licence https://github.com/facebookresearch/DensePose/blob/main/LICENSE is Attribution-NonCommercial 4.0 International and quite clearly states that one may "produce, reproduce, and Share Adapted Material for NonCommercial purposes only."

    So what does it fall under?

    opened by diegogranziol 1
  • How to create Synthetic Densepose

    How to create Synthetic Densepose

    Hello ,

    I was wondering if there is any line of work that addresses the problem of generating synthetic densepose data (UV data, etc) by having an SMPL model with texture

    opened by Babaee 0
  • DensePose Detectron on CPU (Intel Skylake),  OS: Debian GNU/Linux

    DensePose Detectron on CPU (Intel Skylake), OS: Debian GNU/Linux

    Hello,

    I am new to this framework. According to document Detectron is only for GPU. What is the issue if i start running on CPU bases computing (Intel Skylake), OS: Debian GNU/Linux. I understand there will be some latency? Are there any other issues

    opened by shailenderjain 0
  • How to omit blurry images while taking a folder/directory of images (frames from a video)

    How to omit blurry images while taking a folder/directory of images (frames from a video)

    Found Detectron ops lib: /content/anaconda2/lib/python2.7/site-packages/lib/libcaffe2_detectron_ops_gpu.so [E init_intrinsics_check.cc:43] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU. [E init_intrinsics_check.cc:43] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU. [E init_intrinsics_check.cc:43] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU. usage: infer_simple.py [-h] [--cfg CFG] [--wts WEIGHTS] [--output-dir OUTPUT_DIR] [--image-ext IMAGE_EXT] im_or_folder

    infer_simple.py: error: unrecognized arguments: frames/100.jpg frames/101.jpg frames/102.jpg frames/103.jpg frames/104.jpg frames/105.jpg frames/106.jpg frames/107.jpg frames/108.jpg frames/109.jpg frames/10.jpg frames/110.jpg frames/111.jpg frames/112.jpg frames/113.jpg frames/114.jpg frames/115.jpg frames/116.jpg frames/117.jpg frames/118.jpg frames/119.jpg frames/11.jpg frames/120.jpg frames/121.jpg frames/122.jpg frames/123.jpg frames/124.jpg frames/125.jpg frames/126.jpg frames/127.jpg frames/128.jpg frames/129.jpg frames/12.jpg frames/130.jpg frames/131.jpg

    opened by harish-prakash-99 0
Owner
Meta Research
Meta Research
Human POSEitioning System (HPS): 3D Human Pose Estimation and Self-localization in Large Scenes from Body-Mounted Sensors, CVPR 2021

Human POSEitioning System (HPS): 3D Human Pose Estimation and Self-localization in Large Scenes from Body-Mounted Sensors Human POSEitioning System (H

Aymen Mir 66 Dec 21, 2022
Expressive Body Capture: 3D Hands, Face, and Body from a Single Image

Expressive Body Capture: 3D Hands, Face, and Body from a Single Image [Project Page] [Paper] [Supp. Mat.] Table of Contents License Description Fittin

Vassilis Choutas 1.3k Jan 7, 2023
WormMovementSimulation - 3D Simulation of Worm Body Movement with Neurons attached to its body

Generate 3D Locomotion Data This module is intended to create 2D video trajector

null 1 Aug 9, 2022
Demo for Real-time RGBD-based Extended Body Pose Estimation paper

Real-time RGBD-based Extended Body Pose Estimation This repository is a real-time demo for our paper that was published at WACV 2021 conference The ou

Renat Bashirov 118 Dec 26, 2022
Poisson Surface Reconstruction for LiDAR Odometry and Mapping

Poisson Surface Reconstruction for LiDAR Odometry and Mapping Surfels TSDF Our Approach Table: Qualitative comparison between the different mapping te

Photogrammetry & Robotics Bonn 305 Dec 21, 2022
SSL_SLAM2: Lightweight 3-D Localization and Mapping for Solid-State LiDAR (mapping and localization separated) ICRA 2021

SSL_SLAM2 Lightweight 3-D Localization and Mapping for Solid-State LiDAR (Intel Realsense L515 as an example) This repo is an extension work of SSL_SL

Wang Han 王晗 1.3k Jan 8, 2023
DSAC* for Visual Camera Re-Localization (RGB or RGB-D)

DSAC* for Visual Camera Re-Localization (RGB or RGB-D) Introduction Installation Data Structure Supported Datasets 7Scenes 12Scenes Cambridge Landmark

Visual Learning Lab 143 Dec 22, 2022
3DMV jointly combines RGB color and geometric information to perform 3D semantic segmentation of RGB-D scans.

3DMV 3DMV jointly combines RGB color and geometric information to perform 3D semantic segmentation of RGB-D scans. This work is based on our ECCV'18 p

Владислав Молодцов 0 Feb 6, 2022
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

null 25.7k Jan 9, 2023
Pose Detection and Machine Learning for real-time body posture analysis during exercise to provide audiovisual feedback on improvement of form.

Posture: Pose Tracking and Machine Learning for prescribing corrective suggestions to improve posture and form while exercising. This repository conta

Pratham Mehta 10 Nov 11, 2022
Ultra-lightweight human body posture key point CNN model. ModelSize:2.3MB HUAWEI P40 NCNN benchmark: 6ms/img,

Ultralight-SimplePose Support NCNN mobile terminal deployment Based on MXNET(>=1.5.1) GLUON(>=0.7.0) framework Top-down strategy: The input image is t

null 223 Dec 27, 2022
SMPL-X: A new joint 3D model of the human body, face and hands together

SMPL-X: A new joint 3D model of the human body, face and hands together [Paper Page] [Paper] [Supp. Mat.] Table of Contents License Description News I

Vassilis Choutas 1k Jan 9, 2023
T-LOAM: Truncated Least Squares Lidar-only Odometry and Mapping in Real-Time

T-LOAM: Truncated Least Squares Lidar-only Odometry and Mapping in Real-Time The first Lidar-only odometry framework with high performance based on tr

Pengwei Zhou 183 Dec 1, 2022
Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities

ORB-SLAM2 Authors: Raul Mur-Artal, Juan D. Tardos, J. M. M. Montiel and Dorian Galvez-Lopez (DBoW2) 13 Jan 2017: OpenCV 3 and Eigen 3.3 are now suppor

Raul Mur-Artal 7.8k Dec 30, 2022
PixelPick This is an official implementation of the paper "All you need are a few pixels: semantic segmentation with PixelPick."

PixelPick This is an official implementation of the paper "All you need are a few pixels: semantic segmentation with PixelPick." [Project page] [Paper

Gyungin Shin 59 Sep 25, 2022
Official PyTorch implementation of "Camera Distance-aware Top-down Approach for 3D Multi-person Pose Estimation from a Single RGB Image", ICCV 2019

PoseNet of "Camera Distance-aware Top-down Approach for 3D Multi-person Pose Estimation from a Single RGB Image" Introduction This repo is official Py

Gyeongsik Moon 677 Dec 25, 2022
PoseCamera is python based SDK for human pose estimation through RGB webcam.

PoseCamera PoseCamera is python based SDK for human pose estimation through RGB webcam. Install install posecamera package through pip pip install pos

WonderTree 7 Jul 20, 2021
Real-Time-Student-Attendence-System - Real Time Student Attendence System

Real-Time-Student-Attendence-System The Student Attendance Management System Pro

Rounak Das 1 Feb 15, 2022
Python script for performing depth completion from sparse depth and rgb images using the msg_chn_wacv20. model in ONNX

ONNX msg_chn_wacv20 depth completion Python script for performing depth completion from sparse depth and rgb images using the msg_chn_wacv20 model in

Ibai Gorordo 19 Oct 22, 2022