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
  • 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
  • how to get it run in online streaming

    how to get it run in online streaming

    Installation guide provides details as in how to process a video that is saved in a directory. But, how to process a online stream that is not given. Some guidance will be highly appreciated. :)

    opened by SoumyajitMukherjee-droid 1
Releases(v1.7.0)
Swapping face using Face Mesh with TensorFlow Lite

demo.mp4 Aiine Transform (アイン変換) Swapping face using FaceMesh. (could be used to unveil masked faces) Tested Environment Computer Windows 10 (x64) + V

iwatake 17 Apr 26, 2022
CT-Net, OpenPose, LIP_JPPNet, DensePose running with ncnn⚡服装迁移/虚拟试穿⚡ClothingTransfer/Virtual-Try-On⚡

ClothingMigration-NCNN What CT-Net:CVPR2021上的一个虚拟试穿/服装迁移的工作,该工程就是将CT-Net及其相关依赖网络移植到ncnn 服装迁移:给定一个人的图A,与另一个人的图B,将A的衣服穿到B的身上 PS 这个工作其实我个人计划做的一个系列,分三步: 仿

WuJinxuan 187 Dec 27, 2022
Anomaly Detection on Dynamic (time-evolving) Graphs in Real-time and Streaming manner

Anomaly Detection on Dynamic (time-evolving) Graphs in Real-time and Streaming manner. Detecting intrusions (DoS and DDoS attacks), frauds, fake rating anomalies.

Stream-AD 696 Dec 18, 2022
The SCRFD face detection, depends on ncnn library and opencv

The SCRFD face detection, depends on ncnn library and opencv

null 157 Jan 5, 2023
Python and C++ implementation of "MarkerPose: Robust real-time planar target tracking for accurate stereo pose estimation". Accepted at LXCV Workshop @ CVPR 2021.

MarkerPose: Robust Real-time Planar Target Tracking for Accurate Stereo Pose Estimation This is a PyTorch and LibTorch implementation of MarkerPose: a

Jhacson Meza 47 Nov 18, 2022
R3live - A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package

R3LIVE A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package News [Dec 31, 2021] Release of cod

HKU-Mars-Lab 1.3k Jan 4, 2023
Real-Time Neural 3D Hand Pose Estimation from an Event Stream [ICCV 2021]

EventHands: Real-Time Neural 3D Hand Pose Estimation from an Event Stream Project Page Index TRAIN.md -- how to train the model from scratch EVAL_REAL

null 23 Nov 7, 2022
ROS wrapper for real-time incremental event-based vision motion estimation by dispersion minimisation

event_emin_ros ROS wrapper for real-time incremental event-based vision motion estimation by dispersion minimisation (EventEMin). This code was used t

Imperial College London 2 Jan 10, 2022
Deploy SCRFD, an efficient high accuracy face detection approach, in your web browser with ncnn and webassembly

ncnn-webassembly-scrfd open https://nihui.github.io/ncnn-webassembly-scrfd and enjoy build and deploy Install emscripten

null 42 Nov 16, 2022
CUDA-accelerated Apriltag detection and pose estimation.

Isaac ROS Apriltag Overview This ROS2 node uses the NVIDIA GPU-accelerated AprilTags library to detect AprilTags in images and publishes their poses,

NVIDIA Isaac ROS 46 Dec 26, 2022
Port of the 2020 support library to Raspberry Pi for the VL53L3CX Time-of-Flight ranging sensor with advanced multi-object detection

Port of ST VL53L3CX (2020) driver library to Raspberry Pi This is a port of the support library to Raspberry Pi for the VL53L3CX Time-of-Flight rangin

Niall Douglas 4 Jul 27, 2022
GFPGAN-ncnn - a naive NCNN implementation of GFPGAN aims at developing Practical Algorithms for Real-world Face Restoration

GFPGAN-ncnn a naive ncnn implementation of GFPGAN aims at developing Practical Algorithms for Real-world Face Restoration model support: 1.GFPGANClean

FeiGeChuanShu 42 Dec 10, 2022
Real-time object detection with YOLOv5 and TensorRT

YOLOv5-TensorRT The goal of this library is to provide an accessible and robust method for performing efficient, real-time inference with YOLOv5 using

Noah van der Meer 43 Dec 27, 2022
ORB-SLAM3 is the first real-time SLAM library able to perform Visual, Visual-Inertial and Multi-Map SLAM with monocular, stereo and RGB-D cameras, using pin-hole and fisheye lens models.

Just to test for my research, and I add coordinate transformation to evaluate the ORB_SLAM3. Only applied in research, and respect the authors' all work.

B.X.W 5 Jul 11, 2022
PointPillars MultiHead 40FPS - A REAL-TIME 3D detection network [Pointpillars] compiled by CUDA/TensorRT/C++.

English | 简体中文 PointPillars High performance version of 3D object detection network -PointPillars, which can achieve the real-time processing (less th

Yan haixu 191 Jan 3, 2023
Tandem - [CoRL 21'] TANDEM: Tracking and Dense Mapping in Real-time using Deep Multi-view Stereo

TANDEM: Tracking and Dense Mapping in Real-time using Deep Multi-view Stereo Lukas Koestler1*    Nan Yang1,2*,†    Niclas Zeller2,3    Daniel Cremers1

TUM Computer Vision Group 742 Dec 31, 2022
The Robotics Library (RL) is a self-contained C++ library for rigid body kinematics and dynamics, motion planning, and control.

Robotics Library The Robotics Library (RL) is a self-contained C++ library for rigid body kinematics and dynamics, motion planning, and control. It co

Robotics Library 656 Jan 1, 2023
Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.

Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.

James Fung 111 Jan 9, 2023