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)
The implementation of FOLD-R++ algorithm

FOLD-R-PP The implementation of FOLD-R++ algorithm. The target of FOLD-R++ algorithm is to learn an answer set program for a classification task. Inst

13 Dec 23, 2022
LightningFSL: Pytorch-Lightning implementations of Few-Shot Learning models.

LightningFSL: Few-Shot Learning with Pytorch-Lightning In this repo, a number of pytorch-lightning implementations of FSL algorithms are provided, inc

Xu Luo 76 Dec 11, 2022
NR-GAN: Noise Robust Generative Adversarial Networks

Lexicon Enhanced Chinese Sequence Labeling Using BERT Adapter Code and checkpoints for the ACL2021 paper "Lexicon Enhanced Chinese Sequence Labelling

Takuhiro Kaneko 59 Dec 11, 2022
天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易

TqSdk 天勤量化交易策略程序开发包 TqSdk 是一个由信易科技发起并贡献主要代码的开源 python 库. 依托快期多年积累成熟的交易及行情服务器体系, TqSdk 支持用户使用极少的代码量构建各种类型的量化交易策略程序, 并提供包含期货、期权、股票的 历史数据-实时数据-开发调试-策略回测-

信易科技 2.8k Dec 30, 2022
Our VMAgent is a platform for exploiting Reinforcement Learning (RL) on Virtual Machine (VM) scheduling tasks.

VMAgent is a platform for exploiting Reinforcement Learning (RL) on Virtual Machine (VM) scheduling tasks. VMAgent is constructed based on one month r

56 Dec 12, 2022
Mahadi-Now - This Is Pakistani Just Now Login Tools

PAKISTANI JUST NOW LOGIN TOOLS Install apt update apt upgrade apt install python

MAHADI HASAN AFRIDI 19 Apr 06, 2022
Code from PropMix, accepted at BMVC'21

PropMix: Hard Sample Filtering and Proportional MixUp for Learning with Noisy Labels This repository is the official implementation of Hard Sample Fil

6 Dec 21, 2022
Official page of Struct-MDC (RA-L'22 with IROS'22 option); Depth completion from Visual-SLAM using point & line features

Struct-MDC (click the above buttons for redirection!) Official page of "Struct-MDC: Mesh-Refined Unsupervised Depth Completion Leveraging Structural R

Urban Robotics Lab. @ KAIST 37 Dec 22, 2022
QT Py Media Knob using rotary encoder & neopixel ring

QTPy-Knob QT Py USB Media Knob using rotary encoder & neopixel ring The QTPy-Knob features: Media knob for volume up/down/mute with "qtpy-knob.py" Cir

Tod E. Kurt 56 Dec 30, 2022
GAN Image Generator and Characterwise Image Recognizer with python

MODEL SUMMARY 모델의 구조는 크게 6단계로 나뉩니다. STEP 0: Input Image Predict 할 이미지를 모델에 입력합니다. STEP 1: Make Black and White Image STEP 1 은 입력받은 이미지의 글자를 흑색으로, 배경을

Juwan HAN 1 Feb 09, 2022
MatryODShka: Real-time 6DoF Video View Synthesis using Multi-Sphere Images

Main repo for ECCV 2020 paper MatryODShka: Real-time 6DoF Video View Synthesis using Multi-Sphere Images. visual.cs.brown.edu/matryodshka

Brown University Visual Computing Group 75 Dec 13, 2022
paper list in the area of reinforcenment learning for recommendation systems

paper list in the area of reinforcenment learning for recommendation systems

HenryZhao 23 Jun 09, 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
Nerf pl - NeRF (Neural Radiance Fields) and NeRF in the Wild using pytorch-lightning

nerf_pl Update: an improved NSFF implementation to handle dynamic scene is open! Update: NeRF-W (NeRF in the Wild) implementation is added to nerfw br

AI葵 1.8k Dec 30, 2022
Unit-Convertor - Unit Convertor Built With Python

Python Unit Converter This project can convert Weigth,length and ... units for y

Mahdis Esmaeelian 1 May 31, 2022
Rocket-recycling with Reinforcement Learning

Rocket-recycling with Reinforcement Learning Developed by: Zhengxia Zou I have long been fascinated by the recovery process of SpaceX rockets. In this

Zhengxia Zou 202 Jan 03, 2023
Structure Information is the Key: Self-Attention RoI Feature Extractor in 3D Object Detection

Structure Information is the Key: Self-Attention RoI Feature Extractor in 3D Object Detection abstract:Unlike 2D object detection where all RoI featur

DK. Zhang 2 Oct 07, 2022
Code for Private Recommender Systems: How Can Users Build Their Own Fair Recommender Systems without Log Data? (SDM 2022)

Private Recommender Systems: How Can Users Build Their Own Fair Recommender Systems without Log Data? (SDM 2022) We consider how a user of a web servi

joisino 20 Aug 21, 2022
StarGAN - Official PyTorch Implementation (CVPR 2018)

StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation

Yunjey Choi 5.1k Dec 30, 2022
Haze Removal can remove slight to extreme cases of haze affecting an image

Haze Removal can remove slight to extreme cases of haze affecting an image. Its most typical use is for landscape photography where the haze causes low contrast and low saturation, but it can also be

Grace Ugochi Nneji 3 Feb 15, 2022