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)
Sharpened cosine similarity torch - A Sharpened Cosine Similarity layer for PyTorch

Sharpened Cosine Similarity A layer implementation for PyTorch Install At your c

Brandon Rohrer 203 Nov 30, 2022
Devkit for 3D -- Some utils for 3D object detection based on Numpy and Pytorch

D3D Devkit for 3D: Some utils for 3D object detection and tracking based on Numpy and Pytorch Please consider siting my work if you find this library

Jacob Zhong 27 Jul 07, 2022
Volumetric parameterization of the placenta to a flattened template

placenta-flattening A MATLAB algorithm for volumetric mesh parameterization. Developed for mapping a placenta segmentation derived from an MRI image t

Mazdak Abulnaga 12 Mar 14, 2022
This repository is for Competition for ML_data class

This repository is for Competition for ML_data class. Based on mmsegmentatoin,mainly using swin transformer to completed the competition.

jianlong 2 Oct 23, 2022
3DV 2021: Synergy between 3DMM and 3D Landmarks for Accurate 3D Facial Geometry

SynergyNet 3DV 2021: Synergy between 3DMM and 3D Landmarks for Accurate 3D Facial Geometry Cho-Ying Wu, Qiangeng Xu, Ulrich Neumann, CGIT Lab at Unive

Cho-Ying Wu 239 Jan 06, 2023
这个开源项目主要是对经典的时间序列预测算法论文进行复现,模型主要参考自GluonTS,框架主要参考自Informer

Time Series Research with Torch 这个开源项目主要是对经典的时间序列预测算法论文进行复现,模型主要参考自GluonTS,框架主要参考自Informer。 建立原因 相较于mxnet和TF,Torch框架中的神经网络层需要提前指定输入维度: # 建立线性层 TensorF

Chi Zhang 85 Dec 29, 2022
Implementation of "Semi-supervised Domain Adaptive Structure Learning"

Semi-supervised Domain Adaptive Structure Learning - ASDA This repo contains the source code and dataset for our ASDA paper. Illustration of the propo

3 Dec 13, 2021
Animate molecular orbital transitions using Psi4 and Blender

Molecular Orbital Transitions (MOT) Animate molecular orbital transitions using Psi4 and Blender Author: Maximilian Paradiz Dominguez, University of A

3 Feb 01, 2022
small collection of functions for neural networks

neurobiba other languages: RU small collection of functions for neural networks. very easy to use! Installation: pip install neurobiba See examples h

4 Aug 23, 2021
Joint Channel and Weight Pruning for Model Acceleration on Mobile Devices

Joint Channel and Weight Pruning for Model Acceleration on Mobile Devices Abstract For practical deep neural network design on mobile devices, it is e

11 Dec 30, 2022
An imperfect information game is a type of game with asymmetric information

DecisionHoldem An imperfect information game is a type of game with asymmetric information. Compared with perfect information game, imperfect informat

Decision AI 25 Dec 23, 2022
Local Attention - Flax module for Jax

Local Attention - Flax Autoregressive Local Attention - Flax module for Jax Install $ pip install local-attention-flax Usage from jax import random fr

Phil Wang 16 Jun 16, 2022
Multi-modal co-attention for drug-target interaction annotation and Its Application to SARS-CoV-2

CoaDTI Multi-modal co-attention for drug-target interaction annotation and Its Application to SARS-CoV-2 Abstract Environment The test was conducted i

Layne_Huang 7 Nov 14, 2022
ACV is a python library that provides explanations for any machine learning model or data.

ACV is a python library that provides explanations for any machine learning model or data. It gives local rule-based explanations for any model or data and different Shapley Values for tree-based mod

Salim Amoukou 85 Dec 27, 2022
Implementation of hyperparameter optimization/tuning methods for machine learning & deep learning models

Hyperparameter Optimization of Machine Learning Algorithms This code provides a hyper-parameter optimization implementation for machine learning algor

Li Yang 1.1k Dec 19, 2022
Syntax-Aware Action Targeting for Video Captioning

Syntax-Aware Action Targeting for Video Captioning Code for SAAT from "Syntax-Aware Action Targeting for Video Captioning" (Accepted to CVPR 2020). Th

59 Oct 13, 2022
(NeurIPS 2021) Pytorch implementation of paper "Re-ranking for image retrieval and transductive few-shot classification"

SSR (NeurIPS 2021) Pytorch implementation of paper "Re-ranking for image retrieval and transductivefew-shot classification" [Paper] [Project webpage]

xshen 29 Dec 06, 2022
Joint Versus Independent Multiview Hashing for Cross-View Retrieval[J] (IEEE TCYB 2021, PyTorch Code)

Thanks to the low storage cost and high query speed, cross-view hashing (CVH) has been successfully used for similarity search in multimedia retrieval. However, most existing CVH methods use all view

4 Nov 19, 2022
In Search of Probeable Generalization Measures

In Search of Probeable Generalization Measures Exciting News! In Search of Probeable Generalization Measures has been accepted to the International Co

Mahdi S. Hosseini 6 Sep 11, 2022
Learned image compression

Overview Pytorch code of our recent work A Unified End-to-End Framework for Efficient Deep Image Compression. We first release the code for Variationa

Jiaheng Liu 163 Dec 04, 2022