Skip to content

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

License

Notifications You must be signed in to change notification settings

svikramank/openpose

Repository files navigation


Linux
Build Status

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

Features

  • Functionality:
    • 2D real-time multi-person keypoint detection:
      • 15 or 18 or 25-keypoint body/foot keypoint estimation. Running time invariant to number of detected people.
      • 2x21-keypoint hand keypoint estimation. Currently, running time depends on number of detected people.
      • 70-keypoint face keypoint estimation. Currently, running time depends on number of detected people.
    • 3D real-time single-person keypoint detection:
      • 3-D triangulation from multiple single views.
      • Synchronization of Flir cameras handled.
      • Compatible with Flir/Point Grey cameras, but provided C++ demos to add your custom input.
    • Calibration toolbox:
      • Easy estimation of distortion, intrinsic, and extrinsic camera parameters.
    • Single-person tracking for further speed up or visual smoothing.
  • Input: Image, video, webcam, Flir/Point Grey and IP camera. Included C++ demos to add your custom input.
  • Output: Basic image + keypoint display/saving (PNG, JPG, AVI, ...), keypoint saving (JSON, XML, YML, ...), and/or keypoints as array class.
  • OS: Ubuntu (14, 16), Windows (8, 10), Mac OSX, Nvidia TX2.
  • Others:
    • Available: command-line demo, C++ wrapper, and C++ API.
    • CUDA (Nvidia GPU), OpenCL (AMD GPU), and CPU versions.

Latest Features

For further details, check all released features and release notes.

Contents

  1. Latest Features
  2. Results
  3. Installation, Reinstallation and Uninstallation
  4. Quick Start
  5. Output

Results

Body-Foot Estimation

Body, Face, and Hands Estimation

3-D Reconstruction Module

Body and Hands Estimation

Body Estimation

Installation, Reinstallation and Uninstallation

Windows portable version: Simply download and use the latest version from the Releases section.

Otherwise, check doc/installation.md for instructions on how to build OpenPose from source.

Quick Start

Most users do not need the OpenPose C++ API, but they can simply use the basic Demo and/or OpenPose Wrapper.

  • Demo: To easily process images/video/webcam and display/save the results. See doc/demo_overview.md. E.g. run OpenPose in a video with:
# Ubuntu
./build/examples/openpose/openpose.bin --video examples/media/video.avi
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples\media\video.avi
  • Calibration toolbox: To easily calibrate your cameras for 3-D OpenPose or any other stereo vision task. See doc/modules/calibration_module.md.

  • OpenPose Wrapper: If you want to read a specific input, and/or add your custom post-processing function, and/or implement your own display/saving, check the Wrapper tutorial on examples/tutorial_wrapper/. You can create your custom code on examples/user_code/ and quickly compile it with CMake when compiling the whole OpenPose project. Quickly add your custom code: See examples/user_code/README.md for further details.

  • OpenPose C++ API: See doc/library_introduction.md.

  • Adding an extra module: Check doc/library_add_new_module.md.

  • Standalone face or hand detector:

    • Face keypoint detection without body keypoint detection: If you want to speed it up (but also reduce amount of detected faces), check the OpenCV-face-detector approach in doc/standalone_face_or_hand_keypoint_detector.md.
    • Use your own face/hand detector: You can use the hand and/or face keypoint detectors with your own face or hand detectors, rather than using the body detector. E.g. useful for camera views at which the hands are visible but not the body (OpenPose detector would fail). See doc/standalone_face_or_hand_keypoint_detector.md.
  • Library dependencies: OpenPose uses default Caffe and OpenCV, as well as any Caffe dependency. The demos additionally use GFlags. It could easily be ported to other deep learning frameworks (Tensorflow, Torch, ...). Feel free to make a pull request if you implement any of those!

Output

Output (format, keypoint index ordering, etc.) in doc/output.md.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published