OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Overview

Build Type Linux MacOS Windows
Build Status Status Status Status

OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facial, and foot keypoints (in total 135 keypoints) on single images.

It is authored by Ginés Hidalgo, Zhe Cao, Tomas Simon, Shih-En Wei, Yaadhav Raaj, Hanbyul Joo, and Yaser Sheikh. It is maintained by Ginés Hidalgo and Yaadhav Raaj. OpenPose would not be possible without the CMU Panoptic Studio dataset. We would also like to thank all the people who has helped OpenPose in any way.


Authors Ginés Hidalgo (left) and Hanbyul Joo (right) in front of the CMU Panoptic Studio

Contents

  1. Results
  2. Features
  3. Related Work
  4. Installation
  5. Quick Start Overview
  6. Send Us Feedback!
  7. Citation
  8. License

Results

Whole-body (Body, Foot, Face, and Hands) 2D Pose Estimation


Testing OpenPose: (Left) Crazy Uptown Funk flashmob in Sydney video sequence. (Center and right) Authors Ginés Hidalgo and Tomas Simon testing face and hands

Whole-body 3D Pose Reconstruction and Estimation


Tianyi Zhao testing the OpenPose 3D Module

Unity Plugin


Tianyi Zhao and Ginés Hidalgo testing the OpenPose Unity Plugin

Runtime Analysis

We show an inference time comparison between the 3 available pose estimation libraries (same hardware and conditions): OpenPose, Alpha-Pose (fast Pytorch version), and Mask R-CNN. The OpenPose runtime is constant, while the runtime of Alpha-Pose and Mask R-CNN grow linearly with the number of people. More details here.

Features

  • Main Functionality:
    • 2D real-time multi-person keypoint detection:
      • 15, 18 or 25-keypoint body/foot keypoint estimation, including 6 foot keypoints. Runtime invariant to number of detected people.
      • 2x21-keypoint hand keypoint estimation. Runtime depends on number of detected people. See OpenPose Training for a runtime invariant alternative.
      • 70-keypoint face keypoint estimation. Runtime depends on number of detected people. See OpenPose Training for a runtime invariant alternative.
    • 3D real-time single-person keypoint detection:
      • 3D triangulation from multiple single views.
      • Synchronization of Flir cameras handled.
      • Compatible with Flir/Point Grey cameras.
    • Calibration toolbox: Estimation of distortion, intrinsic, and extrinsic camera parameters.
    • Single-person tracking for further speedup or visual smoothing.
  • Input: Image, video, webcam, Flir/Point Grey, IP camera, and support to add your own custom input source (e.g., depth camera).
  • Output: Basic image + keypoint display/saving (PNG, JPG, AVI, ...), keypoint saving (JSON, XML, YML, ...), keypoints as array class, and support to add your own custom output code (e.g., some fancy UI).
  • OS: Ubuntu (20, 18, 16, 14), Windows (10, 8), Mac OSX, Nvidia TX2.
  • Hardware compatibility: CUDA (Nvidia GPU), OpenCL (AMD GPU), and non-GPU (CPU-only) versions.
  • Usage Alternatives:
    • Command-line demo for built-in functionality.
    • C++ API and Python API for custom functionality. E.g., adding your custom inputs, pre-processing, post-posprocessing, and output steps.

For further details, check the major released features and release notes docs.

Related Work

Installation

If you want to use OpenPose without installing or writing any code, simply download and use the latest Windows portable version of OpenPose!

Otherwise, you could build OpenPose from source. See the installation doc for all the alternatives.

Quick Start Overview

Simply use the OpenPose Demo from your favorite command-line tool (e.g., Windows PowerShell or Ubuntu Terminal). E.g., this example runs OpenPose on your webcam and displays the body keypoints:

# Ubuntu
./build/examples/openpose/openpose.bin
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi

You can also add any of the available flags in any order. E.g., the following example runs on a video (--video {PATH}), enables face (--face) and hands (--hand), and saves the output keypoints on JSON files on disk (--write_json {PATH}).

# Ubuntu
./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand --write_json output_json_folder/
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand --write_json output_json_folder/

Optionally, you can also extend OpenPose's functionality from its Python and C++ APIs. After installing OpenPose, check its official doc for a quick overview of all the alternatives and tutorials.

Send Us Feedback!

Our library is open source for research purposes, and we want to improve it! So let us know (create a new GitHub issue or pull request, email us, etc.) if you...

  1. Find/fix any bug (in functionality or speed) or know how to speed up or improve any part of OpenPose.
  2. Want to add/show some cool functionality/demo/project made on top of OpenPose. We can add your project link to our Community-based Projects section or even integrate it with OpenPose!

Citation

Please cite these papers in your publications if OpenPose helps your research. All of OpenPose is based on OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields, while the hand and face detectors also use Hand Keypoint Detection in Single Images using Multiview Bootstrapping (the face detector was trained using the same procedure than the hand detector).

@article{8765346,
  author = {Z. {Cao} and G. {Hidalgo Martinez} and T. {Simon} and S. {Wei} and Y. A. {Sheikh}},
  journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title = {OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
  year = {2019}
}

@inproceedings{simon2017hand,
  author = {Tomas Simon and Hanbyul Joo and Iain Matthews and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Hand Keypoint Detection in Single Images using Multiview Bootstrapping},
  year = {2017}
}

@inproceedings{cao2017realtime,
  author = {Zhe Cao and Tomas Simon and Shih-En Wei and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
  year = {2017}
}

@inproceedings{wei2016cpm,
  author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Convolutional pose machines},
  year = {2016}
}

Paper links:

License

OpenPose is freely available for free non-commercial use, and may be redistributed under these conditions. Please, see the license for further details. Interested in a commercial license? Check this FlintBox link. For commercial queries, use the Contact section from the FlintBox link and also send a copy of that message to Yaser Sheikh.

Comments
  • Google colab helper script

    Google colab helper script

    Issue Summary

    Apologies if this is the wrong place for this. I've made a script to install OpenPose on Google Colab. It's not a particularly exciting piece of programming, but I find it really useful as I don't have access to a computer which is powerful enough to run OpenPose, even in CPU mode, so the only way I can use OpenPose is to build it on a GPU-enabled Colab runtime and then run my programs there. Since I found it really useful, I presume others might also find it useful, so I'm putting it here for developers to do with as they please.

    ! apt update
    ! apt install -y cmake sudo libopencv-dev
    ! git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
    ! cd openpose/ubuntu && ./install_cmake.sh && ./install_cuda.sh && ./install_cudnn.sh
    ! cd openpose && git pull origin master && rm -r build || true && mkdir build && cd build && cmake .. && make -j`nproc`
    
    # example demo usage
    !cd openpose && ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_json output/ --display 0 --render_pose 0
    

    Type of Issue

    • Enhancement / offering possible extensions / pull request / etc
    enhancement 
    opened by sirramsalott 81
  • Python API error: Cannot import name pyopenpose

    Python API error: Cannot import name pyopenpose

    When I execute the python API sample code in build folder ( 1_body_from_image.py ), the terminal return back the following errors. I also noticed that the python API have been changed during the past month. I am using ubuntu 16.04. cuda 8.0 with cudnn 5.1. The openpose is current version. Any suggestions?

    Thanks!

    from openpose import pyopenpose Traceback (most recent call last): File "", line 1, in File "/home/jack/Documents/computervision/openpose/build/python/openpose/init.py", line 1, in from . import pyopenpose as pyopenpose ImportError: cannot import name pyopenpose

    issue template not followed: read posting rules... Python 
    opened by ccjack 42
  • CUDA 10 (RTX 20XX cards) compatibility with Windows - Check failed: error == cudaSuccess (8 vs. 0)  invalid device function

    CUDA 10 (RTX 20XX cards) compatibility with Windows - Check failed: error == cudaSuccess (8 vs. 0) invalid device function

    Issue Summary

    Cuda error with OpenPose / Nvidia 2080 Ti / CUDA 10 on Windows 10 pro (error == cudaSuccess (8 vs. 0) invalid device function)

    Executed Command (if any)

    OpenPoseDemo.exe --logging_level 0 --disable_multi_thread

    OpenPose Output (if any)

    Starting OpenPose demo... {{{ full output that was in here is available at https://pastebin.com/ATu7amDD }}} F1230 19:44:08.215404 15224 pooling_layer.cu:212] Check failed: error == cudaSuccess (8 vs. 0) invalid device function *** Check failure stack trace: ***

    Errors (if any)

    Recompiled OpenPose with Cuda 10 on Windows 10 pro works well with 1080 ti, but with the 2080 ti it fails to open a window and the following message appears: F1230 19:44:08.215404 15224 pooling_layer.cu:212] Check failed: error == cudaSuccess (8 vs. 0) invalid device function

    Type of Issue

    You might select multiple topics, delete the rest:

    • Compilation/installation error
    • Execution error
    • Help wanted

    Your System Configuration

    1. Whole console output: https://pastebin.com/sdUKns74 (CMake output + CMakeCache.txt)
    2. OpenPose version: commit 7a4fb5a2d8a0634659fa7ea6efddb23531e95df2
    3. General configuration:
      • Installation mode: CMake-gui on Windows
      • Operating system: Windows 10 Professional x64 version 1809, version
      • Release or Debug mode? (by default: release):
      • Compiler: VS2017 community (build toolset v141, MSVC 19.16.27025.1)
    4. Non-default settings:
      • 3-D Reconstruction module added?: no
      • Any other custom CMake configuration with respect to the default version? no
    5. 3rd-party software:
      • Caffe version: Default from OpenPose
      • CMake version: CMake-gui 3.13.2
      • OpenCV version: OpenPose default -- 3.10 (Windows)
    6. If GPU mode issue:
      • CUDA version: 10.0
      • cuDNN version: 7.4.2
      • GPU model: Nvidia 2080ti, driver 417.35
    7. If Windows system:
      • Portable demo or compiled library? Compiled library, but also happens with release 1.4.0
    enhancement fixed/added in newer versions 
    opened by tech-gh 41
  • [libprotobuf ERROR google/protobuf/message_lite.cc:123] Can't parse message of type

    [libprotobuf ERROR google/protobuf/message_lite.cc:123] Can't parse message of type "caffe.NetParameter" because it is missing required fields: layer[0].clip_param.min, layer[0].clip_param.max

    I have compile my own caffe and Protobuf, my cuda is 8.0, cudnn is 6.0.21, protobuf is 2.5.0. And after I run make -jnproc``, I run the ./build/examples/openpose/openpose.bin --video examples/media/video.avi, i get this error:

    Errors

    Starting OpenPose demo... Configuring OpenPose... Starting thread(s)... Auto-detecting all available GPUs... Detected 2 GPU(s), using 2 of them starting at GPU 0. [libprotobuf ERROR google/protobuf/message_lite.cc:123] Can't parse message of type "caffe.NetParameter" because it is missing required fields: layer[0].clip_param.min, layer[0].clip_param.max F1125 21:36:33.818452 14233 upgrade_proto.cpp:97] Check failed: ReadProtoFromBinaryFile(param_file, param) Failed to parse NetParameter file: models/pose/body_25/pose_iter_584000.caffemodel *** Check failure stack trace: *** @ 0x7fbfce9fedaa (unknown) @ 0x7fbfce9fece4 (unknown) @ 0x7fbfce9fe6e6 (unknown) @ 0x7fbfcea01687 (unknown) @ 0x7fbfcdebce51 caffe::ReadNetParamsFromBinaryFileOrDie() @ 0x7fbfcdeff0d7 caffe::Net<>::CopyTrainedLayersFromBinaryProto() @ 0x7fbfd4abdddc op::NetCaffe::initializationOnThread() @ 0x7fbfd4c3fe14 op::addCaffeNetOnThread() @ 0x7fbfd4c4076b op::PoseExtractorCaffe::netInitializationOnThread() @ 0x7fbfd4c44710 op::PoseExtractorNet::initializationOnThread() @ 0x7fbfd4c3c781 op::PoseExtractor::initializationOnThread() @ 0x7fbfd4c37861 op::WPoseExtractor<>::initializationOnThread() @ 0x7fbfd4b519b1 op::SubThread<>::initializationOnThread() @ 0x7fbfd4b55130 op::Thread<>::initializationOnThread() @ 0x7fbfd4b55351 op::Thread<>::threadFunction() @ 0x7fbfd3248c10 (unknown) @ 0x7fbfcd9ae184 start_thread @ 0x7fbfd2cd403d (unknown) @ (nil) (unknown) Aborted (core dumped)

    I don't know why it happen. Anyone help me? Thanks.

    help wanted/question fixed/added in newer versions 
    opened by ziyueSeo 36
  • Ubuntu Cmake-gui error while getting default Caffe

    Ubuntu Cmake-gui error while getting default Caffe

    Issue Summary

    This should not be a Caffe problem per se, but before I install custom Caffe I would like to make sure. I followed all the steps in the install doc up until using the CMake-gui. There I ran into an error while downloading Caffe.

    It seems to me CMake-gui does not download Caffe at all. I tried to wipe everything and try to install OpenPose again, but received the same mistake. I also tried to see if cmake follows the ifs in the CMakeLists.txt correctly and reaches the branches where he establishes that Caffe needs to be downloaded and it seems to me it does so.

    CMake-gui returns the following error:

    Caffe will be downloaded from source now. NOTE: This process might take several minutes depending
            on your internet connection.
    Already on 'master'
    
    M	CMakeLists.txt
    Your branch is up-to-date with 'origin/master'.
    
    Caffe will be built from source now.
    CMake Error at /usr/share/cmake-3.5/Modules/ExternalProject.cmake:1915 (message):
      No download info given for 'openpose_caffe' and its source directory:
    
       /home/naoskin/openpose/3rdparty/caffe
    
      is not an existing non-empty directory.  Please specify one of:
    
       * SOURCE_DIR with an existing non-empty directory
       * URL
       * GIT_REPOSITORY
       * HG_REPOSITORY
       * CVS_REPOSITORY and CVS_MODULE
       * SVN_REVISION
       * DOWNLOAD_COMMAND
    Call Stack (most recent call first):
      /usr/share/cmake-3.5/Modules/ExternalProject.cmake:2459 (_ep_add_download_command)
      CMakeLists.txt:392 (ExternalProject_Add)
    

    Executed Command (if any)

    CMake-gui according to installation guide.

    OpenPose Output (if any)

    None.

    Type of Issue

    You might select multiple topics, delete the rest:

    • Compilation/installation error

    Your System Configuration

    Operating system (lsb_release -a in Ubuntu):

    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 16.04.3 LTS
    Release:	16.04
    Codename:	xenial
    

    Installation mode: CMake-gui

    CUDA version: CUDA Version 8.0.61 cuDNN version: ver. 5.1.10 Release or Debug mode?: release 3-D Reconstruction module added?: no GPU model nvidia-smi 384.111 GeForce GTX 106 Caffe version: Default from OpenPose - or at least trying OpenCV version: pre-compiled `apt-get install libopencv-dev` (only Ubuntu) Compiler (gcc --version in Ubuntu): 5.4.0 20160609

    installation 
    opened by svarnypetr 36
  • 3D demo (Windows)  TDatums size problem in wQueueAssembler.hpp

    3D demo (Windows) TDatums size problem in wQueueAssembler.hpp

    Issue Summary

    I am trying to run 3D reconstruction using two webcam, each one can work fine on 2D mode.

    I modify the WUserInput in 9_synchronous_custom_all.cpp, then I got a Error message says there should be only 1 element per TDatums.

    I am confused about it, TDatums is a vector of Datum but the 3D mode requires only 1 per TDatums ? Where should I put the second webcam's Datum ?

    Any help with this would be much appreciated!

    My custom WUserInput

        std::shared_ptr<std::vector<UserDatum>> workProducer()
        {
            try
            {
    		cv::Mat fram1, fram2;
    		cap1.read(fram1);
    		cap2.read(fram2);
    
    		auto datumsPtr = std::make_shared<std::vector<UserDatum>>();
    
    		datumsPtr->emplace_back();
    		auto& datum = datumsPtr->at(0);
    		datum.cvInputData = fram1;
    
    		datumsPtr->emplace_back();
    		auto& datum2 = datumsPtr->at(1);
    		datum2.cvInputData = fram2;
    
    		return datumsPtr;
            }
    

    Error message from wQueueAssembler.hpp

     // Sanity check
     if (tDatums->size() > 1)
            error("This function assumes that WQueueSplitter (inside WDatumProducer)"
            " was applied in the first place, i.e., that there is only 1 element"
            " per TDatums (size = " + std::to_string(tDatums->size()) + ").",
            __LINE__, __FUNCTION__, __FILE__);
    auto tDatum = (*tDatums)[0];
    

    Executed Command

    --3d --number_people_max 1

    Errors

    Error: This function assumes that WQueueSplitter (inside WDatumProducer) was applied in the first place, i.e., that there is only 1 element per TDatums (size = 2).

    Type of Issue

    • Help wanted
    • Question

    System Configuration

    Operating system : Windows 10 Installation mode: VS 2017 Enterprise CUDA version : CUDA 10.0 cuDNN version: v 7.3 CMake version : 3.13.0 Release or Debug mode? : Release 3-D Reconstruction module added? : Yes GPU model (nvidia-smi in Ubuntu): Nvidia GTX 1060 Caffe version: Default from OpenPose

    3-D 
    opened by Linshiyuan 35
  • openpose.bin does not seem to take advantage of multiple GPU's

    openpose.bin does not seem to take advantage of multiple GPU's

    Issue summary

    Executing ./build/examples/openpose/openpose.bin does not seem to take advantage of multiple GPU's even tho multiple GPUs are detected as indicated by the output message: "Auto-detecting GPUs... Detected 2 GPU(s), using them all."

    Regardless if one GPU or two GPU's are used, the processing for a single image in the image_dir is the same. Approximately: 4.1 - 4.2 seconds.

    I noted in the following readme that multiple GPU's are for training, only? Is that still the case?

    Currently Multi-GPU is only supported via the C/C++ paths and only for training.

    https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/3rdparty/caffe/docs/multigpu.md

    Note: I'm using a Google Compute instance with NVIDIA Tesla K80 GPU's.

    Executed command (if any)

    ./build/examples/openpose/openpose.bin --image_dir images --write_keypoint /var/www/html/images -write_keypoint_format xml --keypoint_scale 3 --no_display --render_pose 0

    I've also tried specifying '-num_gpu 2' versus '-num_gpu 1'.

    (I'm only retrieving the keypoint data and not generating an output image.)

    OpenPose output (if any)

    Starting pose estimation demo. Auto-detecting GPUs... Detected 2 GPU(s), using them all. Starting thread(s) Real-time pose estimation demo successfully finished. Total time: 4.150646 seconds.

    Type of issue

    • Help wanted

    Your system configuration

    Operating system (lsb_release -a in Ubuntu): No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.2 LTS Release: 16.04 Codename: xenial

    CUDA version (cat /usr/local/cuda/version.txt in most cases): CUDA Version 8.0.61

    cuDNN version: (cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2) #define CUDNN_MAJOR 5 #define CUDNN_MINOR 1 #define CUDNN_PATCHLEVEL 10

    GPU model (nvidia-smi in Ubuntu): +-----------------------------------------------------------------------------+ | NVIDIA-SMI 375.66 Driver Version: 375.66 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla K80 Off | 0000:00:04.0 Off | 0 | | N/A 29C P8 28W / 149W | 15MiB / 11439MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla K80 Off | 0000:00:05.0 Off | 0 | | N/A 29C P8 28W / 149W | 0MiB / 11439MiB | 0% Default | +-------------------------------+----------------------+----------------------+

    +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 1976 G /usr/lib/xorg/Xorg 15MiB | +-----------------------------------------------------------------------------+

    Caffe version: Default from OpenPose or custom version. Default from OpenPose.

    OpenCV version: 2.4.9.1, installed with apt-get install libopencv-dev (Ubuntu)

    Generation mode (only for Ubuntu): Makefile + Makefile.config (default, Ubuntu)

    Compiler (gcc --version in Ubuntu): gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609

    help wanted/question 
    opened by appleweed 34
  • openpose-1.3.0-win64-cpu-binaries is error:Cublas won't be available.

    openpose-1.3.0-win64-cpu-binaries is error:Cublas won't be available.

    I use openpose-1.3.0-win64-cpu-binaries.zip

    when I run exe, it's error.

    openpose-1.3.0-win64-cpu-binaries> bin/OpenPoseDemo.exe --video examples/media/video.avi Starting pose estimation demo. Starting thread(s) E0423 15:19:01.718263 6652 common.cpp:123] Cannot create Cublas handle. Cublas won't be available. E0423 15:19:01.729264 6652 common.cpp:130] Cannot create Curand generator. Curand won't be available. F0423 15:19:01.737263 6652 cudnn_conv_layer.cpp:52] Check failed: error == cudaSuccess (35 vs. 0) CUDA driver version is insufficient for CUDA runtime version *** Check failure stack trace: *** openpose-1.3.0-win64-cpu-binaries>

    cpu-binaries needs cuda?

    bug/typo fixed/added in newer versions CPU only 
    opened by nanako-ut 32
  • How hard would it be to port to mobile? (iOS/Android)

    How hard would it be to port to mobile? (iOS/Android)

    I'm looking for hand recognition that works on a mobile device. The videos from OpenPose are the best results that I've seen.

    Two questions:

    1. When will the hand recognition stuff be available? (Sick of that question yet? 😜 )
    2. What are the obstacles to making this work on mobile?

    I saw issue #27, but I was also looking at Tensorflow as a possibility.

    I expect that reducing the size of the model will be necessary for practical use on mobile since wireless download and fast startup are important features, and it's okay to lose some quality for the sake of performance.

    I'm pretty new to this stuff, so excuse me if I'm totally wrong. Any input at all would be greatly appreciated.

    help wanted/question stale/old 
    opened by kibiz0r 32
  • macOS - protobuf compilation errors

    macOS - protobuf compilation errors

    Steps to reproduce

    • Clone repo
    • bash 3rdparty/osx/install_deps.sh
    • mkdir build
    • cd build
    • cmake-gui (configure and generate with the non default settings below)
    • sudo make inside the build directory fails due to protobuf errors.

    Type of Issue

    • Compilation/installation error

    Your System Configuration

    • macOS High Sierra 10.13.4
    • MacBook Pro (Retina, 13-inch, Early 2015)
    • Processor: 2.7 GHz Intel Core i5
    • RAM: 16 GB 1867 MHz DDR3

    Non-default settings

    • GPU_MODE=CPU_ONLY and WITH_EIGEN=BUILD

    Using commit c8e3879

    Description

    Compilation fails on mac with numerous errors in the protobuf lib:

    In file included from /usr/local/include/google/protobuf/wire_format_lite_inl.h:43:
    /usr/local/include/google/protobuf/message_lite.h:117:3: error: unknown type name 'constexpr'
      constexpr const T& get() const { return reinterpret_cast<const T&>(union_); }
      ^
    /usr/local/include/google/protobuf/message_lite.h:117:13: error: expected member name or ';' after declaration specifiers
      constexpr const T& get() const { return reinterpret_cast<const T&>(union_); }
      ~~~~~~~~~ ^
    /usr/local/include/google/protobuf/message_lite.h:110:11: error: use of undeclared identifier 'union_'
        new (&union_) T();
              ^
    /usr/local/include/google/protobuf/message_lite.h:114:5: error: use of undeclared identifier 'get_mutable'
        get_mutable()->~T();
        ^
    /usr/local/include/google/protobuf/message_lite.h:131:48: error: found '<::' after a template name which forms the digraph '<:'
          (aka '[') and a ':', did you mean '< ::'?
    
    In file included from /usr/local/include/google/protobuf/wire_format_lite_inl.h:44:
    /usr/local/include/google/protobuf/repeated_field.h:123:39: error: expected ';' at end of declaration list
      RepeatedField(RepeatedField&& other) noexcept;
                                          ^
    /usr/local/include/google/protobuf/repeated_field.h:124:50: error: expected ';' at end of declaration list
      RepeatedField& operator=(RepeatedField&& other) noexcept;
                                                     ^
    /usr/local/include/google/protobuf/repeated_field.h:778:45: error: expected ';' at end of declaration list
      RepeatedPtrField(RepeatedPtrField&& other) noexcept;
                                                ^
    /usr/local/include/google/protobuf/repeated_field.h:779:56: error: expected ';' at end of declaration list
      RepeatedPtrField& operator=(RepeatedPtrField&& other) noexcept;
                                                           ^
    /usr/local/include/google/protobuf/repeated_field.h:1090:68: error: expected ';' at end of declaration
    inline RepeatedField<Element>::RepeatedField(RepeatedField&& other) noexcept
                                                                       ^
    /usr/local/include/google/protobuf/repeated_field.h:1090:69: error: unknown type name 'noexcept'
    inline RepeatedField<Element>::RepeatedField(RepeatedField&& other) noexcept
                                                                        ^
    /usr/local/include/google/protobuf/repeated_field.h:1091:5: error: expected unqualified-id
        : RepeatedField() {
        ^
    /usr/local/include/google/protobuf/repeated_field.h:1103:27: error: expected ';' at end of declaration
        RepeatedField&& other) noexcept {
                              ^
    /usr/local/include/google/protobuf/repeated_field.h:1103:28: error: C++ requires a type specifier for all declarations
        RepeatedField&& other) noexcept {
                               ^
    /usr/local/include/google/protobuf/repeated_field.h:1103:36: error: expected ';' after top level declarator
        RepeatedField&& other) noexcept {
                                       ^
    /usr/local/include/google/protobuf/repeated_field.h:1928:30: error: expected ';' at end of declaration
        RepeatedPtrField&& other) noexcept
                                 ^
    /usr/local/include/google/protobuf/repeated_field.h:1928:31: error: unknown type name 'noexcept'
        RepeatedPtrField&& other) noexcept
                                  ^
    /usr/local/include/google/protobuf/repeated_field.h:1929:5: error: expected unqualified-id
        : RepeatedPtrField() {
        ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    
    Mac OS 
    opened by codyrushing 31
  • Jetson TX2 JetPack 3.1 install scripts

    Jetson TX2 JetPack 3.1 install scripts

    Use : ./ubuntu/install_caffe_and_openpose_JetsonTX2_JetPack3.1.sh

    Jetson TX2 with JetPack 3.1 install scripts, I advise to use the following parameters with the demo :

    • external webcam
    • camera_resolution 640x480
    • net_resolution 128x96
    • face_net_resolution or hand_net_resolution 256x256
    enhancement fixed/added in newer versions 
    opened by bushibushi 30
  • Is it possible to use OpenPose output of x and y coordinates to detect rotating movement?

    Is it possible to use OpenPose output of x and y coordinates to detect rotating movement?

    Issue Summary

    I did some research on OpenPose and the output is x and y coordinates with confidence point. x and y coordinates are good for detecting up, down, left, and right movements. I was wondering is it possible to detect turning movements. Turning usually happens on the z axis. Is there a way to tell if body part has rotated 180 degrees with x and y coordinate.

    I had few ideas like calculating the slope of the hand line. The slope tells us if the hand is tilted or not. If the slope is high or very low then the hand has rotated. Same concept for all other body parts. But I don't think that will work in all cases.

    OpenPose Output (if any)

    To review the output of open pose go here https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/02_output.md

    Type of Issue

    Select the topic(s) on your post, delete the rest:

    • Question
    opened by kingofjong 0
  • Cmake-Gui not installing python3 libs even though BUILD_PYTHON was selected.

    Cmake-Gui not installing python3 libs even though BUILD_PYTHON was selected.

    Issue Summary

    cmake-gui not installing python3 libs for openpose even though BUILD_PYTHON and include python shared libs option was chosen during cmake-gui configure and generate step.

    Executed Command (if any)

    Note: add --logging_level 0 --disable_multi_thread to get higher debug information.

    1. cmake-gui configure, generate.
    2. cd build && sudo make install
    3. ls /home/ijet/openpose/python/openpose CMakeLists.txt init.py openpose_python.cpp pycache

    Errors (if any)

    python3 01_body_from_image.py

    Error: OpenPose library could not be found. Did you enable BUILD_PYTHON in CMake and have this Python script in the right folder? cannot import name 'pyopenpose' from partially initialized module 'openpose' (most likely due to a circular import) (/home/ijet/openpose/examples/tutorial_api_python/../../python/openpose/init.py)

    Select the topic(s) on your post, delete the rest:

    • Compilation/installation error
    • Execution error
    • Help wanted
    • Question

    System Configuration

    Your System Configuration

    OpenPose version:
    Latest commit 
    
    General configuration:
        Installation mode: CMake
        Operating system: Ubuntu
        Operating system version: Ubuntu 22.04 LTS
        Release or Debug mode: Release
    
    3rd-party software:
        Caffe version: Default from OpenPose
        CMake version: 3.14.0
        OpenCV version: 3.2.0
    
    If Python API:
        Python version: 3.10
    
    opened by rakshithsinghgm 0
  • Facing cuDNN version error in cmake while building openpose solution

    Facing cuDNN version error in cmake while building openpose solution

    Posting rules

    1. No duplicated posts, only 1 new post opened a day, and up to 2 opened a week. Otherwise, extrict user bans will occur.
      • Check the FAQ section, other GitHub issues, and general documentation before posting. E.g., low-speed, out-of-memory, output format, 0-people detected, installation issues, ...).
      • Keep posting all your issues in the same post.
      • No bans if you are unsure whether the post is duplicated!
    2. Fill all the Your System Configuration section if you are facing an error or unexpected behavior. Some posts (e.g., feature requests) might not require it.
    3. No questions about training or 3rd party libraries:
      • OpenPose only implements testing. For training, check OpenPose train.
      • Caffe errors/issues: Check Caffe documentation.
      • CUDA/cuDNN check failed errors: They are usually fixed by re-installing CUDA, then re-installing the proper cuDNN version, then rebooting, and then re-installing OpenPose. Otherwise, check Nvidia/CUDA/cuDNN forums.
      • OpenCV errors: Install the default/pre-compiled OpenCV or check for OpenCV online help.
    4. Set a proper issue title: Add the OS (Ubuntu, Windows) and be specific (e.g., do not call it: Error).
    5. Only English comments.
    6. Remove these posting rules from your post but follow them! Posts which do not follow these rules will be ignored/deleted and those users banned with no further clarification.

    Issue Summary

    I facing the error related to cuDNN version while building openpose using cmake. Please inform which CUDA and cuDNN verison should I install to build openpose using cmake in ubuntu GPU machine.

    The error is as follows: CMake Error at cmake/Modules/FindCuDNN.cmake:47 (message): cuDNN version >3 is required. Call Stack (most recent call first): CMakeLists.txt:425 (find_package)

    Executed Command (if any)

    Note: add --logging_level 0 --disable_multi_thread to get higher debug information.

    OpenPose Output (if any)

    Errors (if any)

    CMake Error at cmake/Modules/FindCuDNN.cmake:47 (message): cuDNN version >3 is required. Call Stack (most recent call first): CMakeLists.txt:425 (find_package)

    Type of Issue

    Select the topic(s) on your post, delete the rest:

    • Compilation/installation error
    • Execution error
    • Help wanted
    • Question
    • Enhancement / offering possible extensions / pull request / etc
    • Other (type your own type)

    Your System Configuration

    1. Whole console output (if errors appeared), paste the error to PasteBin and then paste the link here: LINK

    2. OpenPose version: Latest GitHub code? Or specific commit (e.g., d52878f)? Or specific version from Release section (e.g., 1.2.0)? Latest Github code

    3. General configuration:

      • Installation mode: CMake, sh script, manual Makefile installation, ... (Ubuntu); CMake, ... (Windows); ...?
      • Operating system (lsb_release -a in Ubuntu):
      • Operating system version (e.g., Ubuntu 16, Windows 10, Ubuntu20.04 ...):
      • Release or Debug mode? (by default: release):
      • Compiler (gcc --version in Ubuntu or VS version in Windows): 5.4.0, ... (Ubuntu); VS2015 Enterprise Update 3, VS2017 community, ... (Windows); ...? gcc --version 9.4.8
    4. Non-default settings:

      • 3-D Reconstruction module added? (by default: no):
      • Any other custom CMake configuration with respect to the default version? (by default: no):
    5. 3rd-party software:

      • Caffe version: Default from OpenPose, custom version, ...?
      • CMake version (cmake --version in Ubuntu): 3.16.3
      • OpenCV version: pre-compiled apt-get install libopencv-dev (only Ubuntu); OpenPose default (only Windows); compiled from source? If so, 2.4.9, 2.4.12, 3.1, 3.2?; ...?
    6. If GPU mode issue:

      • CUDA version (cat /usr/local/cuda/version.txt in most cases): 11.2
      • cuDNN version: 8.7.0.84
      • GPU model (nvidia-smi in Ubuntu): 525.60.11
    7. If CPU-only mode issue:

      • CPU brand & model:
      • Total RAM memory available:
    8. If Python API:

      • Python version: 2.7, 3.7, ...?
      • Numpy version (python -c "import numpy; print numpy.version.version" in Ubuntu):
    9. If Windows system:

      • Portable demo or compiled library?
    10. If speed performance issue:

    opened by Hizafa-Nadeem 0
  • Python API

    Python API

    Hi, I am trying to run some python examples, but I am unable to do so. I checked Build python while doing the Cmake-configuration and I can also see the following folder, but whenever I try to run I get the following error stating "cannot import pyopenpose"

    Executed Command (if any)

    Note: add --logging_level 0 --disable_multi_thread to get higher debug information.

    python2 01_body_from_image.py --logging_level 0 --disable_multi_thread

    OpenPose Output (if any)

    image

    Errors (if any)

    Error: OpenPose library could not be found. Did you enable BUILD_PYTHON in CMake and have this Python script in the right folder? cannot import name pyopenpose

    Type of Issue

    Select the topic(s) on your post, delete the rest:

    • Help wanted
    • Question

    Your System Configuration

    1. Whole console output (if errors appeared), paste the error to PasteBin and then paste the link here: LINK

    2. OpenPose version: Latest GitHub code? Or specific commit (e.g., d52878f)? Or specific version from Release section (e.g., 1.2.0)? 1.7.0

    3. General configuration:

      • Installation mode: CMake, sh script, manual Makefile installation, ... (Ubuntu); CMake, ... (Windows); ...?
      • Operating system (lsb_release -a in Ubuntu): Ubuntu
      • Operating system version (e.g., Ubuntu 16, Windows 10, ...): Ubuntu 18
      • Release or Debug mode? (by default: release):
      • Compiler (gcc --version in Ubuntu or VS version in Windows): 5.4.0, ... (Ubuntu); VS2015 Enterprise Update 3, VS2017 community, ... (Windows); ...?
    4. Non-default settings:

      • 3-D Reconstruction module added? (by default: no):
      • Any other custom CMake configuration with respect to the default version? (by default: no):
    5. 3rd-party software:

      • Caffe version: Default from OpenPose, custom version, ...?
      • CMake version (cmake --version in Ubuntu):
      • OpenCV version: pre-compiled apt-get install libopencv-dev (only Ubuntu); OpenPose default (only Windows); compiled from source? If so, 2.4.9, 2.4.12, 3.1, 3.2?; ...?
    6. If GPU mode issue:

      • CUDA version (cat /usr/local/cuda/version.txt in most cases):
      • cuDNN version:
      • GPU model (nvidia-smi in Ubuntu):
    7. If CPU-only mode issue:

      • CPU brand & model:
      • Total RAM memory available:
    8. If Python API:

      • Python version: 2.7, 3.7, ...?
      • Numpy version (python -c "import numpy; print numpy.version.version" in Ubuntu):
    9. If Windows system:

      • Portable demo or compiled library?
    10. If speed performance issue:

    opened by mobeeniqbal101 2
  • Hand Standalone Detector

    Hand Standalone Detector

    Hi, I am trying to run the stand alone detector using the example given here: https://cmu-perceptual-computing-lab.github.io/openpose/web/html/doc/md_doc_advanced_standalone_face_or_hand_keypoint_detector.html

    But I am getting the following error, can you suggest what might be the cause ? Because it is giving a syntax error where it should'nt be any.

    image

    opened by mobeeniqbal101 0
  • Windows: Inference speed depends greatly on GUI

    Windows: Inference speed depends greatly on GUI

    Issue Summary

    OpenPose inference speed depends largely on the presence of the GUI display. If I turn off the display (--display=0 --render_pose=0 --cli_verbose=1), OpenPose runs at a speed of about 2 fps. If I turn on the display, and keep it in focus, OpenPose runs with about 12 fps. If I turn on the display, but don't give it focus (i.e. I bring another window to the foreground), OpenPose runs with about 1 fps.

    Why does the algorithm depend so heavily on the presence/focus of the GUI? Is there anything I can do to run OpenPose at a high speed without showing the GUI or having to keep its window in focus? Thank you in advance.

    Executed Code (Python)

    params = dict()
    
    params["video"] = "C://path/to/video.mkv"
    
    params["model_folder"] = "./models/"
    params["body"]         = 1
    params["face"]         = False
    params["hand"]         = False
    params["3d"]           = False
    params["model_pose"]   = "BODY_25"
    
    params["display"]      = 0
    params["render_pose"]  = 0
    params["cli_verbose"]  = 1
    
    opWrapper = op.WrapperPython(op.ThreadManagerMode.Synchronous)
    opWrapper.configure(params)
    opWrapper.execute()
    

    Your System Configuration

    1. OpenPose version: Latest GitHub code

    2. General configuration: Installation mode: Using the opWrapper with the latest released binaries Operating System: Windows 10 Pro 22H2 Release or Debug mode: Release

    3. 3rd-party software: Caffe version: Default from OpenPose OpenCV version: OpenPose default

    4. If GPU mode issue: CUDA version: 11.4 cuDNN version: None GPU model: Nvidia GeForce RTX 3090

    5. If Python API: Python version: 3.7.9 Numpy version: 1.21.6

    6. If Windows system: Portable demo

    opened by RM-8vt13r 0
Releases(v1.7.0)
pytorch implementation of openpose including Hand and Body Pose Estimation.

pytorch-openpose pytorch implementation of openpose including Body and Hand Pose Estimation, and the pytorch model is directly converted from openpose

Hzzone 1.4k Jan 7, 2023
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
Face Library is an open source package for accurate and real-time face detection and recognition

Face Library Face Library is an open source package for accurate and real-time face detection and recognition. The package is built over OpenCV and us

null 52 Nov 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
Face and Pose detector that emits MQTT events when a face or human body is detected and not detected.

Face Detect MQTT Face or Pose detector that emits MQTT events when a face or human body is detected and not detected. I built this as an alternative t

Jacob Morris 38 Oct 21, 2022
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
Code for "Multi-View Multi-Person 3D Pose Estimation with Plane Sweep Stereo"

Multi-View Multi-Person 3D Pose Estimation with Plane Sweep Stereo This repository includes the source code for our CVPR 2021 paper on multi-view mult

Jiahao Lin 66 Jan 4, 2023
Full body anonymization - Realistic Full-Body Anonymization with Surface-Guided GANs

Realistic Full-Body Anonymization with Surface-Guided GANs This is the official

Håkon Hukkelås 30 Nov 18, 2022
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
A gesture recognition system powered by OpenPose, k-nearest neighbours, and local outlier factor.

OpenHands OpenHands is a gesture recognition system powered by OpenPose, k-nearest neighbours, and local outlier factor. Currently the system can iden

Paul Treanor 12 Jan 10, 2022
img2pose: Face Alignment and Detection via 6DoF, Face Pose Estimation

img2pose: Face Alignment and Detection via 6DoF, Face Pose Estimation Figure 1: We estimate the 6DoF rigid transformation of a 3D face (rendered in si

Vítor Albiero 519 Dec 29, 2022
This is an official implementation of our CVPR 2021 paper "Bottom-Up Human Pose Estimation Via Disentangled Keypoint Regression" (https://arxiv.org/abs/2104.02300)

Bottom-Up Human Pose Estimation Via Disentangled Keypoint Regression Introduction In this paper, we are interested in the bottom-up paradigm of estima

HRNet 367 Dec 27, 2022
Single-stage Keypoint-based Category-level Object Pose Estimation from an RGB Image

CenterPose Overview This repository is the official implementation of the paper "Single-stage Keypoint-based Category-level Object Pose Estimation fro

NVIDIA Research Projects 188 Dec 27, 2022
Light-weight network, depth estimation, knowledge distillation, real-time depth estimation, auxiliary data.

light-weight-depth-estimation Boosting Light-Weight Depth Estimation Via Knowledge Distillation, https://arxiv.org/abs/2105.06143 Junjie Hu, Chenyou F

Junjie Hu 13 Dec 10, 2022
MediaPipeのPythonパッケージのサンプルです。2020/12/11時点でPython実装のある4機能(Hands、Pose、Face Mesh、Holistic)について用意しています。

mediapipe-python-sample MediaPipeのPythonパッケージのサンプルです。 2020/12/11時点でPython実装のある以下4機能について用意しています。 Hands Pose Face Mesh Holistic Requirement mediapipe 0.

KazuhitoTakahashi 217 Dec 12, 2022
Simple Pose: Rethinking and Improving a Bottom-up Approach for Multi-Person Pose Estimation

SimplePose Code and pre-trained models for our paper, “Simple Pose: Rethinking and Improving a Bottom-up Approach for Multi-Person Pose Estimation”, a

Jia Li 256 Dec 24, 2022
3D Multi-Person Pose Estimation by Integrating Top-Down and Bottom-Up Networks

3D Multi-Person Pose Estimation by Integrating Top-Down and Bottom-Up Networks Introduction This repository contains the code and models for the follo

null 124 Jan 6, 2023
Keras implementation of PersonLab for Multi-Person Pose Estimation and Instance Segmentation.

PersonLab This is a Keras implementation of PersonLab for Multi-Person Pose Estimation and Instance Segmentation. The model predicts heatmaps and vari

OCTI 160 Dec 21, 2022
End-to-end face detection, cropping, norm estimation, and landmark detection in a single onnx model

onnx-facial-lmk-detector End-to-end face detection, cropping, norm estimation, and landmark detection in a single onnx model, model.onnx. Demo You can

atksh 42 Dec 30, 2022