Skip to content

Commit

Permalink
Doc ordered in a more intuitive way
Browse files Browse the repository at this point in the history
Signed-off-by: Gines Hidalgo <[email protected]>
  • Loading branch information
gineshidalgo99 committed Nov 19, 2020
1 parent 1b4827f commit 1d46c08
Show file tree
Hide file tree
Showing 26 changed files with 109 additions and 111 deletions.
21 changes: 9 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,18 @@ It is **authored by [Gines Hidalgo](https://www.gineshidalgo.com), [Zhe Cao](htt
- [**Foot dataset website**](https://cmu-perceptual-computing-lab.github.io/foot_keypoint_dataset/).
- **Others**:
- Available: command-line demo, C++ wrapper, and C++ API.
- [**Python API**](doc/modules/python_module.md).
- [**Python API**](doc/python_module.md).
- [**Unity Plugin**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_unity_plugin).
- CUDA (Nvidia GPU), OpenCL (AMD GPU), and CPU-only (no GPU) versions.

For further details, check [all released features](doc/released_features.md) and [release notes](doc/release_notes.md).


## Latest Features
- Sep 2019: [**Training code released**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_train)!
- Jan 2019: [**Unity plugin released**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_unity_plugin)!
- Jan 2019: [**Improved Python API**](doc/modules/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)!

For further details, check [all released features](doc/released_features.md) and [release notes](doc/release_notes.md).
## Related Work
- Since Sep 2019: [**Training code**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_train)!
- Since Jan 2019: [**Unity plugin**](https://github.com/CMU-Perceptual-Computing-Lab/openpose_unity_plugin)!
- Since Dec 2018: [**Foot dataset**](https://cmu-perceptual-computing-lab.github.io/foot_keypoint_dataset) and [**new paper released**](https://arxiv.org/abs/1812.08008)!



Expand Down Expand Up @@ -107,7 +106,7 @@ This analysis was performed using the same images for each algorithm and a batch

## Contents
1. [Features](#features)
2. [Latest Features](#latest-features)
2. [Related Work](#related-work)
3. [Results](#results)
4. [Installation, Reinstallation and Uninstallation](#installation-reinstallation-and-uninstallation)
5. [Quick Start](#quick-start)
Expand Down Expand Up @@ -138,13 +137,11 @@ Most users do not need the OpenPose C++/Python API, but can simply use the OpenP
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](doc/modules/calibration_module.md).

- **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/) and [doc/library_introduction.md](doc/library_introduction.md). You can create your custom code on [examples/user_code/](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](examples/user_code/README.md) for further 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/). 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/).

- **Adding an extra module**: Check [doc/library_add_new_module.md](./doc/library_add_new_module.md).
- **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).

- **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).
Expand Down
4 changes: 2 additions & 2 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ after_build:
- ps: Get-ChildItem -Path 3rdparty/*.lib -Recurse -File | Copy-Item -Destination artifacts/lib
- ps: Copy-Item models -Recurse -Destination artifacts/
- ps: cd artifacts
- ps: 7z a ..\openpose.zip .
# - ps: 7z a ..\openpose.zip . # `artifacts` disabled
- ps: cd ..
# Test
- ps: .\artifacts\bin\openpose.bin --image_dir examples/media/ --net_resolution -1x32 --write_json output/ --write_images output/ --display 0
- ps: .\artifacts\bin\OpenPoseDemo.exe --image_dir examples/media/ --net_resolution -1x32 --write_json output/ --write_images output/ --display 0

# `artifacts` disabled because of the AppVeyor crash: "Maximum allowed artifact storage size of 50000 Mb will be exceeded."
# artifacts:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.md#3d-reconstruction-module](./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.md#3d-reconstruction-module](./installation.md#3d-reconstruction-module) for more details.



Expand Down Expand Up @@ -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](./calibration_module.md#).
1. Using the OpenPose calibration toolbox, [doc/calibration/README.md](./calibration/README.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).
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
20 changes: 20 additions & 0 deletions doc/advanced/library_extend_functionality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
OpenPose Library - How to Develop OpenPose
====================================

If you intend to extend the functionality of our library:

1. Read the [README.md](../../README.md) page.

2. Check the basic library overview doc on [doc/advanced/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.

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.

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.

8. You can also take a look to the source code or ask us on GitHub.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ 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:

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/library_overview.md](./library_overview.md).
3. Extending Functionality: Learn how to extend the library in [doc/library_extend_functionality.md](./library_extend_functionality.md).
4. Adding An Extra Module: Learn how to add an extra module in [doc/library_add_new_module.md](./library_add_new_module.md).
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).
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.
10 changes: 5 additions & 5 deletions doc/library_overview.md → doc/advanced/library_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ OpenPose C++ API - Basic Overview



Note: Read [doc/library_introduction.md](./library_introduction.md) before this page.
Note: Read [doc/advanced/library_introduction.md](./library_introduction.md) before this page.



## Modules Diagram
<p align="center">
<img src="../doc/UML/1_0_0rc3/UML.png", width="720">
<img src="./UML/1_0_0rc3/UML.png", width="720">
</p>



## 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/UML/](../doc/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/UML](./UML/) contains the class diagram of all these modules.

1. The basic module: `core`.

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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 the [README.md](../../README.md), in the demo section.
5. `poseModel` specifies the model to load (e.g., COCO or MPI).
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,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/modules/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/3d_reconstruction_module.md#using-a-different-camera-brand](../3d_reconstruction_module.md#using-a-different-camera-brand).



Expand Down
File renamed without changes.
10 changes: 5 additions & 5 deletions doc/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/installation_jetson_tx1.md](./installation_jetson_tx1.md).
- **Nvidia Jetson TX2** (for JetPack 3.1 or 3.3), installation instructions in [doc/installation_jetson_tx2_jetpack3.1.md](./installation_jetson_tx2_jetpack3.1.md) and [doc/installation_jetson_tx2_jetpack3.3.md](./installation_jetson_tx2_jetpack3.3.md) respectively.
- **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.
- 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:
Expand Down Expand Up @@ -244,7 +244,7 @@ Note: Check the differences between these models in [doc/faq.md#difference-betwe
### Python API
To install the Python API, ensure that the `BUILD_PYTHON` flag is turned on while running CMake GUI and follow the standard installation steps. After the installation, check [doc/modules/python_module.md](./modules/python_module.md) for further details.
To install the Python API, ensure that the `BUILD_PYTHON` flag is turned on while running CMake GUI and follow the standard installation steps. After the installation, check [doc/python_module.md](./python_module.md) for further details.
Expand Down Expand Up @@ -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/modules/3d_reconstruction_module.md](./modules/3d_reconstruction_module.md) instructions.
After installation, check the [doc/3d_reconstruction_module.md](./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.

After installation, check the [doc/modules/calibration_module.md](./modules/calibration_module.md) instructions.
After installation, check the [doc/calibration/README.md](./calibration/README.md) instructions.



Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
20 changes: 0 additions & 20 deletions doc/library_extend_functionality.md

This file was deleted.

2 changes: 1 addition & 1 deletion doc/output.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,4 +273,4 @@ There are 3 different keypoint `Array<float>` elements in the `Datum` class:
```

## Camera Matrix Output Format
Check [doc/modules/calibration_module.md#camera-matrix-output-format](./modules/calibration_module.md#camera-matrix-output-format).
Check [doc/calibration/README.md#camera-matrix-output-format](./calibration/README.md#camera-matrix-output-format).
2 changes: 1 addition & 1 deletion doc/modules/python_module.md → doc/python_module.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.md#python-api](./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:

Expand Down
Loading

0 comments on commit 1d46c08

Please sign in to comment.