提交 f20d5ee0 编写于 作者: G Gines Hidalgo

Doc further ordered and restructured

Signed-off-by: NGines Hidalgo <gineshidalgo99@gmail.com>
上级 1d46c088
......@@ -8,7 +8,7 @@ branches:
# Environment variables + OS + other parameters
global:
- GH_REPO_NAME: openpose
- DOXYFILE: $TRAVIS_BUILD_DIR/doc/doc_autogeneration.doxygen
- DOXYFILE: $TRAVIS_BUILD_DIR/scripts/doc_autogeneration.doxygen
# Set this in Environment Variables on travis-ci.org
# - GH_REPO_REF: github.com/<user_name>/openpose.git
matrix:
......
......@@ -289,11 +289,11 @@ option(WITH_OPENCV_WITH_OPENGL "Much faster GUI display, but you must also enabl
# Set the acceleration library
if (WIN32 OR APPLE)
set(WITH_EIGEN NONE CACHE STRING "Select the Eigen mode: NONE if not required, BUILD to let OpenPose download it, or FIND to let CMake find it (e.g., if you installed it manually).")
set(WITH_EIGEN NONE CACHE STRING "Select the Eigen mode: NONE if not required, AUTOBUILD to let OpenPose download it, or FIND to let CMake find it (e.g., if you installed it manually).")
elseif (UNIX AND NOT APPLE)
set(WITH_EIGEN NONE CACHE STRING "Select the Eigen mode: NONE if not required, BUILD to let OpenPose download it, or FIND to let CMake find it (e.g., if you installed it manually or used `sudo apt-get install libeigen3-dev`).")
set(WITH_EIGEN NONE CACHE STRING "Select the Eigen mode: NONE if not required, AUTOBUILD to let OpenPose download it, or FIND to let CMake find it (e.g., if you installed it manually or used `sudo apt-get install libeigen3-dev`).")
endif (WIN32 OR APPLE)
set_property(CACHE WITH_EIGEN PROPERTY STRINGS NONE BUILD FIND)
set_property(CACHE WITH_EIGEN PROPERTY STRINGS NONE AUTOBUILD FIND)
# # Suboptions for OpenPose tracking
# if (UNIX AND NOT APPLE)
......@@ -397,7 +397,7 @@ else (${WITH_EIGEN} MATCHES "NONE")
# OpenPose flags
add_definitions(-DUSE_EIGEN)
# OpenPose download/builds Eigen
if (${WITH_EIGEN} MATCHES "BUILD")
if (${WITH_EIGEN} MATCHES "AUTOBUILD")
# Download it
set(OP_URL "${DOWNLOAD_SERVER}3rdparty/")
set(FIND_LIB_PREFIX ${CMAKE_SOURCE_DIR}/3rdparty/)
......@@ -416,7 +416,7 @@ else (${WITH_EIGEN} MATCHES "NONE")
else (CUDA_VERSION_STRING STRGREATER "9.0")
find_package(Eigen3 3 REQUIRED NO_MODULE)
endif (CUDA_VERSION_STRING STRGREATER "9.0")
endif (${WITH_EIGEN} MATCHES "BUILD")
endif (${WITH_EIGEN} MATCHES "AUTOBUILD")
endif (${WITH_EIGEN} MATCHES "NONE")
if (UNIX OR APPLE)
......@@ -483,7 +483,7 @@ if (UNIX OR APPLE)
# find_package(GLUT REQUIRED) # TODO: Duplicated of WITH_3D_RENDERER, clean somehow (like Eigen)
# git clone --recursive https://github.com/libigl/libigl.git
# No installation, it's header only
# TODO: It's header only (as Eigen), do BUILD option too to download it
# TODO: It's header only (as Eigen), do AUTOBUILD option too to download it
find_package(LIBIGL REQUIRED)
find_package(OpenMP REQUIRED)
# Only adam/renderer::Renderer::IdleSaveImage() uses it. Make dependency optional in hand_model
......@@ -1022,7 +1022,7 @@ if (UNIX OR APPLE)
find_package(Doxygen)
if (DOXYGEN_FOUND)
# Set input and output files
set(DOXYGEN_FILE ${CMAKE_SOURCE_DIR}/doc/doc_autogeneration.doxygen)
set(DOXYGEN_FILE ${CMAKE_SOURCE_DIR}/scripts/doc_autogeneration.doxygen)
# Custom target to build the documentation
add_custom_target(doc_doxygen ALL
......
......@@ -21,7 +21,7 @@ It is **authored by [Gines Hidalgo](https://www.gineshidalgo.com), [Zhe Cao](htt
<p align="center">
<img src="doc/media/pose_face_hands.gif", width="480">
<img src=".github/media/pose_face_hands.gif", width="480">
<br>
<sup>Authors <a href="https://www.gineshidalgo.com" target="_blank">Gines Hidalgo</a> (left) and <a href="https://jhugestar.github.io" target="_blank">Hanbyul Joo</a> (right) in front of the <a href="http://domedb.perception.cs.cmu.edu" target="_blank">CMU Panoptic Studio</a></sup>
</p>
......@@ -29,7 +29,7 @@ It is **authored by [Gines Hidalgo](https://www.gineshidalgo.com), [Zhe Cao](htt
## 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**.
- 15, 18 or **25-keypoint body/foot keypoint estimation**. **Running time invariant to number of detected people**.
- **6-keypoint foot keypoint estimation**. Integrated together with the 25-keypoint body/foot keypoint detector.
- **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**.
......@@ -66,39 +66,39 @@ For further details, check [all released features](doc/released_features.md) and
## Results
### Body and Foot Estimation
<p align="center">
<img src="doc/media/dance_foot.gif", width="360">
<img src=".github/media/dance_foot.gif", width="360">
<br>
<sup>Testing the <a href="https://www.youtube.com/watch?v=2DiQUX11YaY" target="_blank"><i>Crazy Uptown Funk flashmob in Sydney</i></a> video sequence with OpenPose</sup>
</p>
### 3-D Reconstruction Module (Body, Foot, Face, and Hands)
<p align="center">
<img src="doc/media/openpose3d.gif", width="360">
<img src=".github/media/openpose3d.gif", width="360">
<br>
<sup>Testing the 3D Reconstruction Module of OpenPose</sup>
</p>
### Body, Foot, Face, and Hands Estimation
<p align="center">
<img src="doc/media/pose_face.gif", width="360">
<img src="doc/media/pose_hands.gif", width="360">
<img src=".github/media/pose_face.gif", width="360">
<img src=".github/media/pose_hands.gif", width="360">
<br>
<sup>Authors <a href="https://www.gineshidalgo.com" target="_blank">Gines Hidalgo</a> (left image) and <a href="http://www.cs.cmu.edu/~tsimon" target="_blank">Tomas Simon</a> (right image) testing OpenPose</sup>
</p>
### Unity Plugin
<p align="center">
<img src="doc/media/unity_main.png", width="240">
<img src="doc/media/unity_body_foot.png", width="240">
<img src="doc/media/unity_hand_face.png", width="240">
<img src=".github/media/unity_main.png", width="240">
<img src=".github/media/unity_body_foot.png", width="240">
<img src=".github/media/unity_hand_face.png", width="240">
<br>
<sup><a href="http://tianyizhao.com" target="_blank">Tianyi Zhao</a> and <a href="https://www.gineshidalgo.com" target="_blank">Gines Hidalgo</a> testing their <a href="https://github.com/CMU-Perceptual-Computing-Lab/openpose_unity_plugin" target="_blank">OpenPose Unity Plugin</a></sup>
<sup><a href="http://tianyizhao.com" target="_blank">Tianyi Zhao</a> and <a href="https://www.gineshidalgo.com" target="_blank">Gines Hidalgo</a> testing the <a href="https://github.com/CMU-Perceptual-Computing-Lab/openpose_unity_plugin" target="_blank">OpenPose Unity Plugin</a></sup>
</p>
### Runtime Analysis
Inference time comparison between the 3 available pose estimation libraries: OpenPose, Alpha-Pose (fast Pytorch version), and Mask R-CNN:
<p align="center">
<img src="doc/media/openpose_vs_competition.png", width="360">
<img src=".github/media/openpose_vs_competition.png", width="360">
</p>
This analysis was performed using the same images for each algorithm and a batch size of 1. Each analysis was repeated 1000 times and then averaged. This was all performed on a system with a Nvidia 1080 Ti and CUDA 8. Megvii (Face++) and MSRA GitHub repositories were excluded because they only provide pose estimation results given a cropped person. However, they suffer the same problem than Alpha-Pose and Mask R-CNN, their runtimes grow linearly with the number of people.
......@@ -122,14 +122,14 @@ This analysis was performed using the same images for each algorithm and a batch
## Installation, Reinstallation and Uninstallation
**Windows portable version**: Simply download and use the latest version from the [Releases](https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases) section.
Otherwise, check [doc/installation.md](doc/installation.md) for instructions on how to build OpenPose from source.
Otherwise, check [doc/installation/installation.md](doc/installation/installation.md) for instructions on how to build OpenPose from source.
## Quick Start
Most users do not need the OpenPose C++/Python API, but can simply use the OpenPose Demo:
- **OpenPose Demo**: To easily process images/video/webcam and display/save the results. See [doc/demo_overview.md](doc/demo_overview.md). E.g., run OpenPose in a video with:
- **OpenPose Demo**: To easily process images/video/webcam and display/save the results. See [doc/quick_start.md](./doc/quick_start.md) and [doc/demo_overview.md](./doc/demo_overview.md). E.g., run OpenPose in a video with:
```
# Ubuntu
./build/examples/openpose/openpose.bin --video examples/media/video.avi
......@@ -137,15 +137,17 @@ Most users do not need the OpenPose C++/Python API, but can simply use the OpenP
bin\OpenPoseDemo.exe --video examples\media\video.avi
```
- **OpenPose C++ API**: 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 C++ API tutorial on [examples/tutorial_api_cpp/](examples/tutorial_api_cpp/). You can easily **create your custom code** on [examples/user_code/](examples/user_code/) and CMake will automatically compile it together with the whole OpenPose project. See [examples/user_code/README.md](examples/user_code/README.md) for more details.
- **OpenPose C++ API**: 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 C++ API tutorial on [examples/tutorial_api_cpp/](examples/tutorial_api_cpp/).
- For quick prototyping: You can easily **create your custom code** on [examples/user_code/](examples/user_code/) and CMake will automatically compile it together with the whole OpenPose project. See [examples/user_code/README.md](examples/user_code/README.md) for more details.
- **OpenPose Python API**: Analogously to the C++ API, find the tutorial for the Python API on [examples/tutorial_api_python/](examples/tutorial_api_python/).
- For quick prototyping: You can simply duplicate any of the [examples/tutorial_api_python/](examples/tutorial_api_python/) files and rename it within the same folder.
- **Calibration toolbox**: To easily calibrate your cameras for 3-D OpenPose or any other stereo vision task. See [doc/calibration/README.md](doc/calibration/README.md).
- **Calibration toolbox**: To easily calibrate your cameras for 3-D OpenPose or any other stereo vision task. See [doc/advanced/calibration_module.md](doc/advanced/calibration_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](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](doc/standalone_face_or_hand_keypoint_detector.md).
- **Standalone face or hand detector**. See [doc/advanced/standalone_face_or_hand_keypoint_detector.md](doc/advanced/standalone_face_or_hand_keypoint_detector.md) if you want to do any of the following:
- **Face** keypoint detection **without body** keypoint detection: Pros: Speedup and RAM/GPU memory reduction. Cons: Worse accuracy and less detected number of faces).
- **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).
......
......@@ -23,13 +23,13 @@ This module performs 3-D keypoint (body, face, and hand) reconstruction and rend
## Installation
Check [doc/installation.md#3d-reconstruction-module](./installation.md#3d-reconstruction-module) for installation steps.
Check [doc/installation/installation.md#3d-reconstruction-module](../installation/installation.md#3d-reconstruction-module) for installation steps.
## Non Linear Optimization
In order to increase the 3-D reconstruction accuracy, OpenPose optionally performs non-linear optimization if Ceres solver support is enabled (only available in Ubuntu for now). To enable it, check [doc/installation.md#3d-reconstruction-module](./installation.md#3d-reconstruction-module) for more details.
In order to increase the 3-D reconstruction accuracy, OpenPose optionally performs non-linear optimization if Ceres solver support is enabled (only available in Ubuntu for now). To enable it, check [doc/installation/installation.md#3d-reconstruction-module](../installation/installation.md#3d-reconstruction-module) for more details.
......@@ -69,7 +69,7 @@ This demo assumes n arbitrary stereo cameras from the FLIR company (formerly Poi
The user must manually get the intrinsic and extrinsic parameters of the stereo-cameras. Note, we will assume `Flir` cameras, which is specified by default with the flag `--camera_parameter_path "models/cameraParameters/flir/"`. Otherwise, change the path to your camera name accordingly.
There are 2 alternatives to calibrate the cameras:
1. Using the OpenPose calibration toolbox, [doc/calibration/README.md](./calibration/README.md).
1. Using the OpenPose calibration toolbox, [doc/advanced/calibration_module.md](./calibration_module.md).
2. Using your own calibration toolbox (or if you already know the camera parameters of your cameras):
1. Create a xml file for each camera named as `models/cameraParameters/flir/{camera_serial_number}.xml`.
2. The elements inside each xml file are the extrinsic parameters of the camera (`CameraMatrix`), the intrinsic parameters (`Intrinsics`), and the distortion coefficients (`Distortion`). Copy the format from `models/cameraParameters/flir/17012332.xml.example`. For the extrinsic parameters of the camera, it allows you to set the coordinate origin (so that 3-d keypoints are distances with respect to that origin).
......@@ -86,7 +86,7 @@ OpenPose will display the cameras sorted by serial number, starting in the left
## Quick Start
Check the [doc/quick_start.md#3-d-reconstruction](./quick_start.md#3-d-reconstruction) for basic examples.
Check the [doc/quick_start.md#3-d-reconstruction](../quick_start.md#3-d-reconstruction) for basic examples.
......@@ -100,7 +100,7 @@ The visual GUI should show 3 screens.
It should be similar to the following image.
<p align="center">
<img src="../media/openpose3d.gif">
<img src="../../.github/media/openpose3d.gif">
</p>
......
......@@ -3,14 +3,15 @@ OpenPose Calibration Module and Demo
## Contents
1. [Introduction](#introduction)
2. [Installing the Calibration Module](#installing-the-calibration-module)
3. [Running Calibration](#running-calibration)
2. [Example Chessboard](#example-chessboard)
3. [Installing the Calibration Module](#installing-the-calibration-module)
4. [Running Calibration](#running-calibration)
1. [General Quality Tips](#general-quality-tips)
2. [Step 1 - Distortion and Intrinsic Parameter Calibration](#step-1---distortion-and-intrinsic-parameter-calibration)
3. [Step 2 - Extrinsic Parameter Calibration](#step-2---extrinsic-parameter-calibration)
4. [Camera Matrix Output Format](#camera-matrix-output-format)
5. [Using a Different Camera Brand](#using-a-different-camera-brand)
6. [Naming Convention for the Output Images](#naming-convention-for-the-output-images)
5. [Camera Matrix Output Format](#camera-matrix-output-format)
6. [Using a Different Camera Brand](#using-a-different-camera-brand)
7. [Naming Convention for the Output Images](#naming-convention-for-the-output-images)
......@@ -23,9 +24,14 @@ Note: We are not aiming to have the best calibration toolbox, but the simplest o
## Example Chessboard
[doc/Chessboard_in_PDF/](./Chessboard_in_PDF/) contains a chessboard example that you can use to follow this documentation. You can simply print the PDF version ([doc/Chessboard_in_PDF/pattern.pdf](./Chessboard_in_PDF/pattern.pdf)), making your your printer maintains the aspect ratio and, if possible, does not zoom in/out the image. Simply replace the "127" used below by the size of each square on your printed chessboard.
## Installing the Calibration Module
Check [doc/installation.md#calibration-module](../installation.md#calibration-module) for installation steps.
Check [doc/installation/installation.md#calibration-module](../installation/installation.md#calibration-module) for installation steps.
......@@ -174,7 +180,7 @@ This is a 3x4 matrix, which represents rotation (R as a 3x3 matrix) and translat
## Using a Different Camera Brand
If you plan to use the calibration tool without using OpenPose, you can manually save a video sequence of your desired camera into each of the camera image folders (i.e., in the above example, the `~/Desktop/intrinsics_0`, `~/Desktop/intrinsics_1`, etc. folders).
If you wanna eventually run that camera with OpenPose, check [doc/3d_reconstruction_module.md#using-a-different-camera-brand](../3d_reconstruction_module.md#using-a-different-camera-brand).
If you wanna eventually run that camera with OpenPose, check [doc/advanced/3d_reconstruction_module.md#using-a-different-camera-brand](../advanced/3d_reconstruction_module.md#using-a-different-camera-brand).
......
......@@ -18,7 +18,7 @@ Starting in OpenPose 1.6.0 (GitHub code in or after October 2019), OpenPose has
### Third-Party Libraries
While compiling OpenPose from source, the static library files (`*.a` for Ubuntu, `*.lib` for Windows, etc.) and `include/` directories of all the third-party libraries detailed in [doc/installation.md](./installation.md) are required (GFlags, Glog, OpenCV, Caffe, etc.). However, when deploying OpenPose, fewer dependencies are required:
While compiling OpenPose from source, the static library files (`*.a` for Ubuntu, `*.lib` for Windows, etc.) and `include/` directories of all the third-party libraries detailed in [doc/installation/installation.md](../installation/installation.md) are required (GFlags, Glog, OpenCV, Caffe, etc.). However, when deploying OpenPose, fewer dependencies are required:
- GFLags and Glog are required only if the `include/openpose/flags.hpp` file is going to be used (e.g., when intenting to use the command-line interface).
- OpenCV can be optionally included if your project already uses it (but make sure to use the same binaries and include directory of OpenCV for both OpenPose and your project or weird runtime crashes will occur!). Including OpenCV does not increase the functionality of OpenPose, but it makes it easier to use by adding some functions that directly take cv::Mat matrices as input (rather than raw pointers). However, it is optional starting in OpenPose 1.6.0.
- Caffe or any other 3rd-party libraries are not required.
......
OpenPose C++ API - Introduction
====================================
The C++ API is ideal if you want to e.g., change internal functions and/or extend the OpenPose functionality. In order to learn the basics:
As a user, you do not need to know anything about this section! This section is intended for OpenPose internal developpers. It is exposed publicly, but you can skip this whole folder if you are just trying to use OpenPose or create new code/demos using OpenPose.
1. Take a look at the [library Quick Start section](../README.md#quick-start) from the README.
2. OpenPose Overview: Learn the basics about the library source code in [doc/advanced/library_overview.md](./library_overview.md).
3. Extending Functionality: Learn how to extend the library in [doc/advanced/library_extend_functionality.md](./library_extend_functionality.md).
4. Adding An Extra Module: Learn how to add an extra module in [doc/advanced/library_add_new_module.md](./library_add_new_module.md).
Even if you want to e.g., change internal functions and/or extend the OpenPose functionality, the easiest solution as a user is to follow the [examples/tutorial_api_cpp](../../examples/tutorial_api_cpp) examples. If the new functionality is cool, make a pull request so we can add it to OpenPose!
In order to learn the basics about how OpenPose works internally:
1. Take a look at the [library Quick Start section](../../README.md#quick-start) from the main README.
2. OpenPose Overview: Learn the basics about the library source code in [doc/advanced/library_structure/library_overview.md](./library_overview.md).
3. Extending Functionality: Learn how to extend the library in [doc/advanced/library_structure/library_extend_functionality.md](./library_extend_functionality.md).
4. Adding An Extra Module: Learn how to add an extra module in [doc/advanced/library_structure/library_add_new_module.md](./library_add_new_module.md).
5. See the Doxygen documentation on [http://cmu-perceptual-computing-lab.github.io/openpose/html/index.html](http://cmu-perceptual-computing-lab.github.io/openpose/html/index.html) or build it from the source code.
......@@ -3,18 +3,18 @@ OpenPose Library - How to Develop OpenPose
If you intend to extend the functionality of our library:
1. Read the [README.md](../../README.md) page.
1. Read the [README.md](../../../README.md) page.
2. Check the basic library overview doc on [doc/advanced/library_overview.md](library_overview.md).
2. Check the basic library overview doc on [doc/advanced/library_structure/library_overview.md](library_overview.md).
3. Read, understand and play with the basic real time pose demo source code [examples/openpose/openpose.cpp](../../examples/openpose/openpose.cpp) and [examples/tutorial_api_cpp](../../examples/tutorial_api_cpp). It includes all the functionality of our library, and it has been properly commented.
3. Read, understand and play with the basic real time pose demo source code [examples/openpose/openpose.cpp](../../../examples/openpose/openpose.cpp) and [examples/tutorial_api_cpp](../../../examples/tutorial_api_cpp). It includes all the functionality of our library, and it has been properly commented.
4. Read, understand and play with the other tutorials in [examples/](../../examples/). It includes more specific examples.
4. Read, understand and play with the other tutorials in [examples/](../../../examples/). It includes more specific examples.
5. Check the basic UML diagram on the [doc/advanced/UML](./UML/) to get an idea of each module relations.
5. Check the basic UML diagram on the [doc/advanced/library_structure/UML](./UML/) to get an idea of each module relations.
6. Take a look to the stucuture of the already existing modules.
7. The C++ headers files add documentation in [Doxygen](http://www.doxygen.org/) format. Create this documentation by compiling the [include](../../include/) folder with Doxygen. This documentation is slowly but continuously improved.
7. The C++ headers files add documentation in [Doxygen](http://www.doxygen.org/) format. Create this documentation by compiling the [include](../../../include/) folder with Doxygen. This documentation is slowly but continuously improved.
8. You can also take a look to the source code or ask us on GitHub.
......@@ -3,7 +3,7 @@ OpenPose C++ API - Basic Overview
Note: Read [doc/advanced/library_introduction.md](./library_introduction.md) before this page.
Note: Read [doc/advanced/library_structure/README.md](./README.md) before this page.
......@@ -15,7 +15,7 @@ Note: Read [doc/advanced/library_introduction.md](./library_introduction.md) bef
## Main Modules
In order to use and/or slightly extend the OpenPose library, we try to explain the 2 main components on this section. [doc/advanced/UML](./UML/) contains the class diagram of all these modules.
In order to use and/or slightly extend the OpenPose library, we try to explain the 2 main components on this section. [doc/advanced/library_structure/UML](./UML/) contains the class diagram of all these modules.
1. The basic module: `core`.
......@@ -120,7 +120,7 @@ There are 3 basic configuration modes: single-threading, multi-threading and sma
threadManager.add(threadId++, wPose, queueIn++, queueOut++); // Thread 2, queues 3 -> 3
```
3. Smart multi-threading: Some classes are much more faster than others (e.g., pose estimation takes ~100 ms while extracting frames from a video only ~10 ms). In addition, any machine has a limited number of threads. Therefore, the library allows the user to merge the faster threads in order to potentially speed up the code. Check the [real-time pose demo](../../examples/openpose/openpose.cpp) too see a more complete example.
3. Smart multi-threading: Some classes are much more faster than others (e.g., pose estimation takes ~100 ms while extracting frames from a video only ~10 ms). In addition, any machine has a limited number of threads. Therefore, the library allows the user to merge the faster threads in order to potentially speed up the code. Check the [real-time pose demo](../../../examples/openpose/openpose.cpp) too see a more complete example.
```
auto threadId = 0;
auto queueIn = 0;
......@@ -192,7 +192,7 @@ In order to be initialized, `PoseExtractorCaffe` has the following constructor a
3. `outputSize` is the final desired resolution to be used. The human pose keypoint locations will be scaled to this output size. However, the heat-maps will have the `netOutputSize` size due to performance.
4. `scaleNumber` and `scaleGap` specify the multi-scale parameters. Explained in the [README.md](../../README.md), in the demo section.
4. `scaleNumber` and `scaleGap` specify the multi-scale parameters. Explained in [doc/demo_overview.md](../../demo_overview.md).
5. `poseModel` specifies the model to load (e.g., COCO or MPI).
......
......@@ -67,7 +67,7 @@ Also, hands and face increases the GPU memory requeriments, and 4 GB GPUs might
#### Cannot Find OpenPose.dll Error (Windows)
**Q: System cannot find the file specified (Openpose.dll) error when trying to release** - Using a folder with images does work, but the video and/or the webcam do not. Note: often on Windows.
**A**: Visual Studio (VS) and the [doc/installation.md](./installation.md) section is only intended if you plan to modify the OpenPose code or integrate it with another library or project. If you just want to use the OpenPose demo, simply follow [doc/installation.md#windows-portable-demo](./installation.md#windows-portable-demo) and download the OpenPose binaries in the [Releases](https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases) section.
**A**: Visual Studio (VS) and the [doc/installation/installation.md](./installation/installation.md) section is only intended if you plan to modify the OpenPose code or integrate it with another library or project. If you just want to use the OpenPose demo, simply follow [doc/installation/installation.md#windows-portable-demo](./installation/installation.md#windows-portable-demo) and download the OpenPose binaries in the [Releases](https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases) section.
If you need to compile it with Visual Studio (VS), then keep reading. In this error, VS is simply saying that there were errors while compiling the OpenPose library. Try compiling only the OpenPose library (not the demo), by right clicking on it, then `Set as StartUp Project`, and finally right click + `Build`. Then, at the bottom left part of VS, press `Error list` and then you should see which errors VS encountered while compiling. In that way, VS gives you the exact error so you can know it and share the exact issue.
......@@ -96,12 +96,12 @@ Note: OpenPose library is not an executable, but a library. So instead clicking
**A**: This answer assumes that never a single person is detected. If in your case it works sometimes, then check [Always Zero People Detected](#always-zero-people-detected). This always-0-people problem usually occurs in 2 situations: 1) When you selection `--num_gpu 0`, and 2) when the caffemodel has not been properly downloaded. E.g., if the connection drops when downloading the models.
For problem 1, setting `--num_gpu 0` means that no processing is done, so you can use this setting e.g., to record webcam. This functionality is kept for back-compatibility. You are most probably trying to run on CPU-only mode, for that, install OpenPose in CPU-only mode following [doc/installation.md](./installation.md).
For problem 1, setting `--num_gpu 0` means that no processing is done, so you can use this setting e.g., to record webcam. This functionality is kept for back-compatibility. You are most probably trying to run on CPU-only mode, for that, install OpenPose in CPU-only mode following [doc/installation/installation.md](./installation/installation.md).
For problem 2, try the following solutions (in this order):
1. Assuming that default OpenPose (i.e., BODY_25 model) failed, try with `--model_pose COCO` and `--model_pose MPII` models. If any of them work, the `caffemodel` files of the other models were corrupted while being downloaded. Otherwise, it will most probably be a Caffe/protobuf issue.
2. Assuming that the model is corrupted, remove the current models in the model folder, and download them manually from the links in [doc/installation.md](./installation.md). Alternatively, remove them and re-run Cmake again. If this does not work, try downloading the COCO_25 model from the browser following the download link on this [Dropbox link](https://www.dropbox.com/s/03r8pa8sikrqv62/pose_iter_584000.caffemodel).
2. Assuming that the model is corrupted, remove the current models in the model folder, and download them manually from the links in [doc/installation/installation.md](./installation/installation.md). Alternatively, remove them and re-run Cmake again. If this does not work, try downloading the COCO_25 model from the browser following the download link on this [Dropbox link](https://www.dropbox.com/s/03r8pa8sikrqv62/pose_iter_584000.caffemodel).
3. If none of the OpenPose models are working, make sure Caffe is working properly and that you can run the Caffe examples with other caffemodel / prototxt files.
......@@ -136,7 +136,7 @@ F0821 14:26:29.665053 22812 upgrade_proto.cpp:97] Check failed: ReadProtoFromBin
**A**: This error has been solved in the latest OpenPose versions. Completely remove OpenPose and re-download the latest version (just cleaning the compilation or removing the `build/` folder will not work).
If you wanna use your custom Caffe and it has this error: This error only happens in some Ubuntu machines. Following #787, compile your own Caffe with an older version of it. The hacky (quick but not recommended way) is to follow [#787#issuecomment-415476837](https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/787#issuecomment-415476837), the elegant way (compatible with future OpenPose versions) is to build your own Caffe independently, following [doc/installation.md#custom-caffe-ubuntu-only](./installation.md#custom-caffe-ubuntu-only).
If you wanna use your custom Caffe and it has this error: This error only happens in some Ubuntu machines. Following #787, compile your own Caffe with an older version of it. The hacky (quick but not recommended way) is to follow [#787#issuecomment-415476837](https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/787#issuecomment-415476837), the elegant way (compatible with future OpenPose versions) is to build your own Caffe independently, following [doc/installation/installation.md#custom-caffe-ubuntu-only](./installation/installation.md#custom-caffe-ubuntu-only).
......@@ -194,7 +194,7 @@ git submodule update
#### Obscure CMake Error about Caffe or Pybind
**Q:** There appear some weird and obscure errors on CMake about Caffe and/or Pybind.
**A**: Check [doc/installation.md](./installation.md) to run the `git submodule` command, i.e.,
**A**: Check [doc/installation/installation.md](./installation/installation.md) to run the `git submodule` command, i.e.,
```
git submodule update --init --recursive --remote
```
......@@ -233,7 +233,7 @@ Check the [doc/speed_up_openpose.md#profiling-speed](./speed_up_openpose.md#prof
#### Webcam Slower than Images
**Q: Webcam is slow** - Using a folder with images matches the speed FPS benchmarks, but the webcam has lower FPS. Note: often on Windows.
**A**: OpenCV has some issues with some camera drivers (specially on Windows). The first step should be to compile OpenCV by your own and re-compile OpenPose after that (following the [doc/installation.md#reinstallation](./installation.md#reinstallation) section). If the speed is still slower, you can better debug it by running a webcam OpenCV example (e.g. [this C++ example](http://answers.opencv.org/question/1/how-can-i-get-frames-from-my-webcam/)). If you are able to get the proper FPS with the OpenCV demo but OpenPose is still low, then let us know!
**A**: OpenCV has some issues with some camera drivers (specially on Windows). The first step should be to compile OpenCV by your own and re-compile OpenPose after that (following the [doc/installation/installation.md#reinstallation](./installation/installation.md#reinstallation) section). If the speed is still slower, you can better debug it by running a webcam OpenCV example (e.g. [this C++ example](http://answers.opencv.org/question/1/how-can-i-get-frames-from-my-webcam/)). If you are able to get the proper FPS with the OpenCV demo but OpenPose is still low, then let us know!
......
......@@ -15,28 +15,28 @@ OpenPose - Installation (deprecated)
## Operating Systems
See [doc/installation.md#operating-systems](./installation.md#operating-systems).
See [doc/installation/installation.md#operating-systems](../installation.md#operating-systems).
## Requirements
See [doc/installation.md#requirements](./installation.md#requirements).
See [doc/installation/installation.md#requirements](../installation.md#requirements).
## Clone OpenPose
See [doc/installation.md#clone-openpose](./installation.md#clone-openpose).
See [doc/installation/installation.md#clone-openpose](../installation.md#clone-openpose).
## Update OpenPose
See [doc/installation.md#update-openpose](./installation.md#update-openpose).
See [doc/installation/installation.md#update-openpose](../installation.md#update-openpose).
## Ubuntu
### Installation - CMake
Recommended installation method, it is simpler and offers more customization settings. See [doc/installation.md](installation.md).
Recommended installation method, it is simpler and offers more customization settings. See [doc/installation/installation.md](../installation.md).
......@@ -56,7 +56,7 @@ Build Caffe & the OpenPose library + download the required Caffe models for Ubun
```bash
bash scripts/ubuntu_deprecated/install_caffe_and_openpose_if_cuda8.sh
```
**Highly important**: This script only works with CUDA 8 and Ubuntu 14 or 16. Otherwise, see [doc/installation.md](installation.md) or [Installation - Manual Compilation](#installation---manual-compilation).
**Highly important**: This script only works with CUDA 8 and Ubuntu 14 or 16. Otherwise, see [doc/installation/installation.md](../installation.md) or [Installation - Manual Compilation](#installation---manual-compilation).
......@@ -97,7 +97,7 @@ Alternatively to the script installation, if you want to use CUDA 7, avoid using
make clean
make all -j`nproc`
```
**Highly important**: There are 2 `Makefile.config.Ubuntu##.example` analogous files, one in the main folder and one in [3rdparty/caffe/](../3rdparty/caffe/), corresponding to OpenPose and Caffe configuration files respectively. Any change must be done to both files (e.g., OpenCV 3 flag, Atlab/OpenBLAS/MKL flag, etc.). E.g., for CUDA 8 and Ubuntu16: [3rdparty/caffe/Makefile.config.Ubuntu16_cuda8.example](../3rdparty/caffe/Makefile.config.Ubuntu16.example) and [scripts/ubuntu_deprecated/Makefile.config.Ubuntu16_cuda8.example](../scripts/ubuntu_deprecated/Makefile.config.Ubuntu16_cuda8.example).
**Highly important**: There are 2 `Makefile.config.Ubuntu##.example` analogous files, one in the main folder and one in [3rdparty/caffe/](../../../3rdparty/caffe/), corresponding to OpenPose and Caffe configuration files respectively. Any change must be done to both files (e.g., OpenCV 3 flag, Atlab/OpenBLAS/MKL flag, etc.). E.g., for CUDA 8 and Ubuntu16: [3rdparty/caffe/Makefile.config.Ubuntu16_cuda8.example](../../../3rdparty/caffe/Makefile.config.Ubuntu16.example) and [scripts/ubuntu_deprecated/Makefile.config.Ubuntu16_cuda8.example](../../../scripts/ubuntu_deprecated/Makefile.config.Ubuntu16_cuda8.example).
......@@ -126,7 +126,7 @@ You just need to remove the OpenPose folder, by default called `openpose/`. E.g.
3. [**cuDNN 5.1**](https://developer.nvidia.com/cudnn): Once you have downloaded it, just unzip it and copy (merge) the contents on the CUDA folder, `C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0`.
#### CMake Installer
Recommended installation method, it is simpler and offers more customization settings. See [doc/installation.md](installation.md). Note that it is a beta version, post in GitHub any issue you find.
Recommended installation method, it is simpler and offers more customization settings. See [doc/installation/installation.md](../installation.md). Note that it is a beta version, post in GitHub any issue you find.
#### Deprecated Windows Installer
......@@ -154,7 +154,7 @@ Note: This installer will not incorporate any new features, we recommend to use
3. Open the Windows cmd (Windows button + <kbd>X</kbd>, then <kbd>A</kbd>).
4. Go to the OpenPose directory, assuming OpenPose has been downloaded on `C:\openpose`: `cd C:\openpose\`.
5. Run the tutorial commands.
6. Check OpenPose was properly installed by running it on the default images, video or webcam: [doc/quick_start.md#quick-start](./quick_start.md#quick-start).
6. Check OpenPose was properly installed by running it on the default images, video or webcam: [doc/quick_start.md#quick-start](../../quick_start.md#quick-start).
......@@ -174,7 +174,7 @@ If you updated some software that our library or 3rdparty use, or you simply wan
## Doxygen Documentation Autogeneration
See [doc/installation.md#doxygen-documentation-autogeneration-ubuntu-only](./installation.md#doxygen-documentation-autogeneration-ubuntu-only).
See [doc/installation/installation.md#doxygen-documentation-autogeneration-ubuntu-only](../installation.md#doxygen-documentation-autogeneration-ubuntu-only).
......@@ -196,4 +196,4 @@ We only modified some Caffe compilation flags and minor details. You can use you
## Compiling without cuDNN
See [doc/installation.md#compiling-without-cudnn](./installation.md#compiling-without-cudnn).
See [doc/installation/installation.md#compiling-without-cudnn](../installation.md#compiling-without-cudnn).
......@@ -41,8 +41,8 @@ OpenPose - Installation
- **Ubuntu 20**.
- **Mac OSX** Mavericks and above.
- **Ubuntu 14, 16 and 18** as well as **Windows 7 and 8** are no longer officially maintained. However, they should still work (but might require minor changes).
- **Nvidia Jetson TX1** (for JetPack 3.1), installation instructions in [doc/jetson_tx/installation_jetson_tx1.md](./jetson_tx/installation_jetson_tx1.md).
- **Nvidia Jetson TX2** (for JetPack 3.1 or 3.3), installation instructions in [doc/jetson_tx/installation_jetson_tx2_jetpack3.1.md](./jetson_tx/installation_jetson_tx2_jetpack3.1.md) and [doc/jetson_tx/installation_jetson_tx2_jetpack3.3.md](./jetson_tx/installation_jetson_tx2_jetpack3.3.md) respectively.
- **Nvidia Jetson TX1** (for JetPack 3.1), installation instructions in [doc/installation/jetson_tx/installation_jetson_tx1.md](./jetson_tx/installation_jetson_tx1.md).
- **Nvidia Jetson TX2** (for JetPack 3.1 or 3.3), installation instructions in [doc/installation/jetson_tx/installation_jetson_tx2_jetpack3.1.md](./jetson_tx/installation_jetson_tx2_jetpack3.1.md) and [doc/installation/jetson_tx/installation_jetson_tx2_jetpack3.3.md](./jetson_tx/installation_jetson_tx2_jetpack3.3.md) respectively.
- OpenPose has also been used on **CentOS** and other **Nvidia Jetson (TK1)** embedded systems. However, we do not officially support them at the moment.
- **Requirements** for the default configuration
- CUDA (Nvidia GPU) version:
......@@ -110,21 +110,21 @@ cmake-gui ..
```
2. Select the OpenPose directory as project source directory, and a non-existing or empty sub-directory (e.g., `build`) where the Makefile files (Ubuntu) or Visual Studio solution (Windows) will be generated. If `build` does not exist, it will ask you whether to create it. Press `Yes`.
<p align="center">
<img src="media/cmake_installation/im_1.png", width="480">
<img src="media/cmake_installation/im_1_windows.png", width="480">
<img src="media/cmake_installation_im_1.png", width="480">
<img src="media/cmake_installation_im_1_windows.png", width="480">
</p>
3. Press the `Configure` button, keep the generator in `Unix Makefiles` (Ubuntu) or set it to your 64-bit Visual Studio version (Windows), and press `Finish`. Note for Windows users: CMake-GUI has changed their design after version 14. For versions older than 14, you usually select `Visual Studio XX 20XX Win64` as the generator (`X` depends on your VS version), while the `Optional toolset to use` must be empty. However, new CMake versions require you to select only the VS version as the generator, e.g., `Visual Studio 15 2017`, and then you must manually choose `x64` for the `Optional platform for generator`. See the following images as example.
<p align="center">
<img src="media/cmake_installation/im_2.png", width="240">
<img src="media/cmake_installation/im_2_windows.png", width="240">
<img src="media/cmake_installation/im_2_windows_new.png", width="240">
<img src="media/cmake_installation_im_2.png", width="240">
<img src="media/cmake_installation_im_2_windows.png", width="240">
<img src="media/cmake_installation_im_2_windows_new.png", width="240">
</p>
4. If this step is successful, the `Configuring done` text will appear in the bottom box in the last line. Otherwise, some red text will appear in that same bottom box.
<p align="center">
<img src="media/cmake_installation/im_3.png", width="480">
<img src="media/cmake_installation/im_3_windows.png", width="480">
<img src="media/cmake_installation_im_3.png", width="480">
<img src="media/cmake_installation_im_3_windows.png", width="480">
</p>
5. Press the `Generate` button and proceed to [Compilation](#compilation). You can now close CMake.
......@@ -226,7 +226,7 @@ In order to update it or reinstall it:
## Deploying or Exporting OpenPose to Other Projects
See [doc/deployment.md](./deployment.md).
See [doc/advanced/deployment.md](./advanced/deployment.md).
......@@ -337,14 +337,14 @@ You can include the 3D reconstruction module by:
3. Follow the CMake installation steps. In addition, set the `WITH_FLIR_CAMERA` (only if Spinnaker was installed) and `WITH_3D_RENDERER` options.
4. Increased accuracy with Ceres solver (Ubuntu only): For extra 3-D reconstruction accuracy, run `sudo apt-get install libeigen3-dev`, install [Ceres solver](http://ceres-solver.org/installation.html), and enable `WITH_CERES` in CMake when installing OpenPose. Ceres is harder to install in Windows, so we have not tested it so far in there. Feel free to make a pull request if you do.
After installation, check the [doc/3d_reconstruction_module.md](./3d_reconstruction_module.md) instructions.
After installation, check the [doc/advanced/3d_reconstruction_module.md](./advanced/3d_reconstruction_module.md) instructions.
### Calibration Module
The calibration module is included by default, but you must also enable `WITH_EIGEN` if you intend to use the extrinsic camera parameter estimation tool. You can set that flag to 2 different values: `BUILD` or `FIND`, check [Requirements and Dependencies](#requirements-and-dependencies) for more information.
The calibration module is included by default, but you must also enable `WITH_EIGEN` if you intend to use the extrinsic camera parameter estimation tool. You can set that flag to 2 different values: `AUTOBUILD` (recommended) or `FIND` (check [Requirements and Dependencies](#requirements-and-dependencies) for more information).
After installation, check the [doc/calibration/README.md](./calibration/README.md) instructions.
After installation, check the [doc/advanced/calibration_module.md](./advanced/calibration_module.md) instructions.
......@@ -367,7 +367,7 @@ OpenPose uses a [custom fork of Caffe](https://github.com/CMU-Perceptual-Computi
Alternatively, you can use your own Caffe distribution on Ubuntu/Mac by 1) disabling `BUILD_CAFFE`, 2) setting `Caffe_INCLUDE_DIRS` to `{CAFFE_PATH}/include/caffe`, and 3) setting `Caffe_LIBS` to `{CAFFE_PATH}/build/lib/libcaffe.so`, as shown in the image below. Note that cuDNN-compatible Caffe version is required in order to get the maximum possible accuracy in OpenPose.
<p align="center">
<img src="media/cmake_installation/im_5.png", width="480">
<img src="media/cmake_installation_im_5.png", width="480">
</p>
For Windows, simply replace the OpenCV DLLs and include folder for your custom one.
......
......@@ -36,7 +36,7 @@ You might prefer to download them manually:
- Run `./configure --qt-gui`. Make sure no error occurred.
- Run ``./bootstrap && make -j`nproc` && sudo make install -j`nproc` ``. Make sure no error occurred.
- Assuming your CMake downloaded folder is in {CMAKE_FOLDER_PATH}, everytime these instructions mentions `cmake-gui`, you will have to replace that line by `{CMAKE_FOLDER_PATH}/bin/cmake-gui`.
- Ubuntu 14 or 16: Run the command `sudo apt-get install cmake-qt-gui`. Note: If you prefer to use CMake through the command line, see [doc/installation.md#CMake Command Line Configuration (Ubuntu Only)](./installation.md#cmake-command-line-configuration-ubuntu-only).
- Ubuntu 14 or 16: Run the command `sudo apt-get install cmake-qt-gui`. Note: If you prefer to use CMake through the command line, see [doc/installation/installation.md#CMake-Command-Line-Configuration-(Ubuntu-Only)](./installation/installation.md#cmake-command-line-configuration-ubuntu-only).
3. Nvidia GPU version prerequisites:
1. **Note: OpenPose has been tested extensively with CUDA 8.0 (cuDNN 5.1) for Ubuntu 14 and 16, CUDA 10.1 (cuDNN 7.5.1) for Ubuntu 18, and CUDA 11 for Ubuntu 20**. We highly recommend using those versions for those Operating Systems to minimize potential installation issues. Other versions should also work, but we do not provide support about any CUDA/cuDNN installation/compilation issue, as well as problems related to their integration into OpenPose.
2. **CUDA**:
......@@ -58,12 +58,12 @@ You might prefer to download them manually:
6. Install **Caffe, OpenCV, and Caffe prerequisites**:
- OpenCV must be already installed on your machine. It can be installed with `sudo apt-get install libopencv-dev`. You could also use your own compiled OpenCV version.
- Caffe prerequisites: By default, OpenPose uses Caffe under the hood. If you have not used Caffe previously, install its dependencies by running `sudo bash ./scripts/ubuntu/install_deps.sh` after installing your desired CUDA and cuDNN versions. If you are using Ubuntu 14 or 16, you can simply run `sudo bash ./scripts/ubuntu/install_deps_and_cuda.sh` (if Ubuntu 16 or 14 and for Graphic cards up to 10XX).
7. **Eigen prerequisite** (optional, only required for some specific extra functionality, such as extrinsic camera calibration):
- If you enable the `WITH_EIGEN` flag when running CMake, you must have Eigen already installed in your system. Note that [Eigen <= 3.3.6 is not supported by CUDA >=9.1](https://bitbucket.org/eigen/eigen/commits/034b6c3e101792a3cc3ccabd9bfaddcabe85bb58?at=default). In order to install it, you can perform any of the 3 following options (but only 1 of them!), while making sure that Eigen version is compatible with CUDA:
1. Do not do anything if you set the `WITH_EIGEN` flag to `BUILD`, CMake will automatically download Eigen. Alternatively, you might prefer to download it manually:
- [Eigen3](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/eigen_2020_11_18.zip): Unzip as `3rdparty/eigen/`.
2. Run `sudo apt-get install libeigen3-dev` if you prefer to set `WITH_EIGEN` to `FIND`.
3. Use your own version of Eigen by setting `WITH_EIGEN` to `BUILD`, run CMake so that OpenPose downloads the zip file, and then replace the contents of `3rdparty/eigen/` by your own version.
7. **Eigen prerequisite** (optional, only required for some specific extra functionality, such as extrinsic camera calibration). You can perform any of the 2 following options (but only 1 of them!)
- Recommended: Simply set the `WITH_EIGEN` flag to `AUTOBUILD`. CMake will automatically download it and configure OpenPose to use it. If you prefer to download it manually (or if your firewall blocks CMake from downloading it):
- [Eigen 3.3.8](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/eigen_2020_11_18.zip): Unzip as `3rdparty/eigen/`.
- Advanced (not recommended): If you set `WITH_EIGEN` to `FIND`, you must have Eigen already installed in your system. Note that [Eigen <= 3.3.6 is not supported by CUDA >=9.1](https://bitbucket.org/eigen/eigen/commits/034b6c3e101792a3cc3ccabd9bfaddcabe85bb58?at=default). In order to install it (make sure that Eigen version is compatible with CUDA!):
- Run `sudo apt-get install libeigen3-dev` and link CMake to the right CMake.
- Advanced (not recommended): Or you could also use your own version of Eigen by setting `WITH_EIGEN` to `AUTOBUILD`, click `Configure` to let CMake download the zip file, and replace `3rdparty/eigen/` by your own version.
......@@ -72,7 +72,7 @@ You might prefer to download them manually:
2. Install **CMake GUI**: Run the command `brew cask install cmake`.
3. Install **Caffe, OpenCV, and Caffe prerequisites**: Run `bash scripts/osx/install_deps.sh`.
4. **Eigen prerequisite** (optional, only required for some specific extra functionality, such as extrinsic camera calibration):
- Enable the `WITH_EIGEN` flag when running CMake, and set it to `BUILD`.
- Enable the `WITH_EIGEN` flag when running CMake, and set it to `AUTOBUILD`.
- CMake will automatically download Eigen.
- Alternatively, you can manually download it from the [Eigen3 website](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/eigen_2020_11_18.zip), and unzip as `3rdparty/eigen/`.
......@@ -108,6 +108,6 @@ NOTE: These instructions are only required when compiling OpenPose brom source.
- [Caffe dependencies](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/caffe3rdparty_16_2020_11_14.zip): Unzip as `3rdparty/windows/caffe3rdparty/`.
- [OpenCV 4.2.0](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/opencv_450_v15_2020_11_18.zip): Unzip as `3rdparty/windows/opencv/`.
6. **Eigen prerequisite** (optional, only required for some specific extra functionality, such as extrinsic camera calibration):
- Enable the `WITH_EIGEN` flag when running CMake, and set it to `BUILD`.
- Set the `WITH_EIGEN` flag in CMake to `AUTOBUILD`.
- CMake will automatically download Eigen.
- Alternatively, you can manually download it from the [Eigen3 website](http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/eigen_2020_11_18.zip), run CMake so that OpenPose downloads the zip file, and then replace the contents of `3rdparty/eigen/` by your own version.
......@@ -273,4 +273,4 @@ There are 3 different keypoint `Array<float>` elements in the `Datum` class:
```
## Camera Matrix Output Format
Check [doc/calibration/README.md#camera-matrix-output-format](./calibration/README.md#camera-matrix-output-format).
Check [doc/advanced/calibration_module.md#camera-matrix-output-format](./advanced/calibration_module.md#camera-matrix-output-format).
......@@ -50,7 +50,7 @@ If run via the command line, you may need to run cmake twice in order for this c
## Installation
Check [doc/installation.md#python-api](./installation.md#python-api) for installation steps.
Check [doc/installation/installation.md#python-api](./installation/installation.md#python-api) for installation steps.
The Python API requires python-dev, Numpy (for array management), and OpenCV (for image loading). They can be installed via:
......
......@@ -40,7 +40,7 @@ bin\OpenPoseDemo.exe --video examples\media\video.avi
bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand
```
```
:: Windows - Library - Assuming you copied the DLLs following doc/installation.md#windows
:: Windows - Library - Assuming you copied the DLLs following doc/installation/installation.md#windows
build\x64\Release\OpenPoseDemo.exe --video examples\media\video.avi
:: With face and hands
build\x64\Release\OpenPoseDemo.exe --video examples\media\video.avi --face --hand
......@@ -62,7 +62,7 @@ bin\OpenPoseDemo.exe
bin\OpenPoseDemo.exe --face --hand
```
```
:: Windows - Library - Assuming you copied the DLLs following doc/installation.md#windows
:: Windows - Library - Assuming you copied the DLLs following doc/installation/installation.md#windows
build\x64\Release\OpenPoseDemo.exe
:: With face and hands
build\x64\Release\OpenPoseDemo.exe --face --hand
......@@ -84,7 +84,7 @@ bin\OpenPoseDemo.exe --image_dir examples\media\
bin\OpenPoseDemo.exe --image_dir examples\media\ --face --hand
```
```
:: Windows - Library - Assuming you copied the DLLs following doc/installation.md#windows
:: Windows - Library - Assuming you copied the DLLs following doc/installation/installation.md#windows
build\x64\Release\OpenPoseDemo.exe --image_dir examples\media\
:: With face and hands
build\x64\Release\OpenPoseDemo.exe --image_dir examples\media\ --face --hand
......@@ -118,9 +118,9 @@ bin\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number 4 --scale_gap 0.
bin\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 --hand --hand_scale_number 6 --hand_scale_range 0.4 --face
```
```
:: Windows - Library - Assuming you copied the DLLs following doc/installation.md#windows: Body
:: Windows - Library - Assuming you copied the DLLs following doc/installation/installation.md#windows: Body
build\x64\Release\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25
:: Windows - Library - Assuming you copied the DLLs following doc/installation.md#windows: Body + Hand + Face
:: Windows - Library - Assuming you copied the DLLs following doc/installation/installation.md#windows: Body + Hand + Face
build\x64\Release\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 --hand --hand_scale_number 6 --hand_scale_range 0.4 --face
```
......@@ -147,7 +147,7 @@ bin\OpenPoseDemo.exe --flir_camera --3d --number_people_max 1
bin\OpenPoseDemo.exe --flir_camera --3d --number_people_max 1 --face --hand
```
```
:: Windows - Library - Assuming you copied the DLLs following doc/installation.md#windows
:: Windows - Library - Assuming you copied the DLLs following doc/installation/installation.md#windows
build\x64\Release\OpenPoseDemo.exe --flir_camera --3d --number_people_max 1
:: With face and hands
build\x64\Release\OpenPoseDemo.exe --flir_camera --3d --number_people_max 1 --face --hand
......
......@@ -405,7 +405,7 @@ OpenPose Library - Release Notes
1. The debug version of OpenPose actually targets debug lib/DLL files of 3rd-party libraries.
2. The debug version no longer prints on console a huge log message from Caffe with the network when starting OpenPose (fixed by using the right debug libraries).
4. Natural sort now works properly with filenames containing numbers longer than the limit of an int.
5. The optionally auto-generated bin folder only contains the required DLLs (depending on the CMake configuration), instead of all of them.
5. The optionally auto-generated bin directory only contains the required DLLs (depending on the CMake configuration), instead of all of them.
6. When WrapperStructFace and WrapperStructHand are not called and configured for Wrapper, setting the body to CPU rendering was not working.
7. Skeleton rendering bugs:
1. All or some skeletons were not properly displayed or completely missing on images with many people (e.g., videos with about 32 people).
......@@ -439,7 +439,8 @@ OpenPose Library - Release Notes
2. Eigen: From 3.3.4 to 3.3.8.
3. `wget` (Windows): From 1.19.1 to 1.20.3.
3. AppVeyor now tests the actual OpenPoseDemo.exe example (Windows).
4. Doc restructured and divided into subfolders to help users (`advanced`, `calibration`, `deprecated`, etc).
4. Doc restructured to improve simplicity. It is now divided into subdirectories (`advanced`, `deprecated`, `installation`, etc).
5. Calibration doc links to included chessboard pdf.
2. Functions or parameters renamed:
3. Main bugs fixed:
1. Eigen working again on Windows.
......
......@@ -6,14 +6,14 @@ OpenPose Library - All Major Released Features
- Jan 2019: [**Improved Python API**](doc/python_module.md) released! Including body, face, hands, and all the functionality of the C++ API!
- Dec 2018: [**Foot dataset released**](https://cmu-perceptual-computing-lab.github.io/foot_keypoint_dataset) and [**new paper released**](https://arxiv.org/abs/1812.08008)!
- Sep 2018: [**Experimental tracker**](./quick_start.md#tracking)!
- Jun 2018: [**Combined body-foot model released! 40% faster and 5% more accurate**](./installation.md)!
- Jun 2018: [**Combined body-foot model released! 40% faster and 5% more accurate**](./installation/installation.md)!
- Jun 2018: [**Python API**](./python_module.md) released!
- Jun 2018: [**OpenCL/AMD graphic card version**](./installation.md) released!
- Jun 2018: [**Calibration toolbox**](./calibration/README.md) released!
- Jun 2018: [**Mac OSX version (CPU)**](./installation.md) released!
- Mar 2018: [**CPU version**](./installation.md#cpu-version)!
- Mar 2018: [**3-D keypoint reconstruction module**](./3d_reconstruction_module.md) (from multiple camera views)!
- Sep 2017: [**CMake**](./installation.md) installer and **IP camera** support!
- Jun 2018: [**OpenCL/AMD graphic card version**](./installation/installation.md) released!
- Jun 2018: [**Calibration toolbox**](./advanced/calibration_module.md) released!
- Jun 2018: [**Mac OSX version (CPU)**](./installation/installation.md) released!
- Mar 2018: [**CPU version**](./installation/installation.md#cpu-version)!
- Mar 2018: [**3-D keypoint reconstruction module**](./advanced/3d_reconstruction_module.md) (from multiple camera views)!
- Sep 2017: [**CMake**](./installation/installation.md) installer and **IP camera** support!
- Jul 2017: [**Windows portable binaries and demo**](https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases)!
- Jul 2017: **Hands** released!
- Jun 2017: **Face** released!
......
// ------------------------- OpenPose Calibration Toolbox -------------------------
// Check `doc/calibration/README.md`.
// Check `doc/advanced/calibration_module.md`.
// Implemented on top of OpenCV.
// It computes and saves the intrinsics parameters of the input images.
......@@ -23,7 +23,7 @@ DEFINE_string(camera_serial_number, "18079958", "Camera serial number.")
DEFINE_bool(omit_distortion, false, "Set to true if image views are already undistorted (e.g., if recorded from OpenPose"
" after intrinsic parameter calibration).");
DEFINE_bool(combine_cam0_extrinsics, false, "Set to true if cam0 extrinsics are not [R=I, t=0]. I will make no effect if cam0 is"
" already the origin. See doc/calibration/README.md for an example.");
" already the origin. See doc/advanced/calibration_module.md for an example.");
DEFINE_int32(cam0, 1, "Baseline camera for extrinsic calibration, cam1 will be calibrated assuming cam0 the"
" world coordinate origin.");
DEFINE_int32(cam1, 0, "Target camera to estimate its extrinsic parameters, it will be calibrated assuming cam0"
......
......@@ -10,22 +10,22 @@ You can quickly add your custom code into this folder so that quick prototypes c
## How-to
1. Install/compile OpenPose as usual.
2. Add your custom *.cpp / *.hpp files here,. Hint: You might want to start by copying the [OpenPoseDemo](../openpose/openpose.cpp) example or any of the [examples/tutorial_api_cpp/](../tutorial_api_cpp/) examples. Then, you can simply modify their content.
3. Add the name of your custom *.cpp / *.hpp files at the top of the [examples/user_code/CMakeLists.txt](./CMakeLists.txt) file.
4. Re-compile OpenPose. Depending on your OS, that means...
- Ubuntu:
2. Add your custom cpp / hpp files in this folder. Hint: You might want to start by copying the [OpenPoseDemo](../openpose/openpose.cpp) example or any of the [examples/tutorial_api_cpp/](../tutorial_api_cpp/) examples.
3. Add the name of your custom cpp / hpp files at the top of the [examples/user_code/CMakeLists.txt](./CMakeLists.txt) file.
4. Re-run CMake (`Configure` and `Generate`).
5. Then, you can simply modify their content.
6. You can know compile OpenPose after each change in your files:
- Ubuntu:
```
cd build/
make -j`nproc`
```
- Mac:
- Mac:
```
cd build/
make -j`sysctl -n hw.logicalcpu`
```
- Windows: Close Visual Studio, re-run CMake, and re-compile the project in Visual Studio.
- Windows: Compile from Visual Studio (F5, F7, green play button, etc.).
5. **Run step 4 every time that you make changes into your code**.
......
......@@ -147,8 +147,8 @@ namespace op
" detection from 4 cameras is about 2-3 pixels. It might be simply a wrong OpenPose"
" detection. However, if this message appears very frequently, your calibration parameters"
" might be wrong. Note: If you have introduced your own camera intrinsics, are they an"
" upper triangular matrix (as specified in the OpenPose doc/calibration/README.md"
" and doc/3d_reconstruction_module.md)?", Priority::High);
" upper triangular matrix (as specified in the OpenPose doc/advanced/calibration_module.md"
" and doc/advanced/3d_reconstruction_module.md)?", Priority::High);
// opLog("Reprojection error: " + std::to_string(reprojectionErrorTotal)); // To debug reprojection error
return atLeastOnePointProjected;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册