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 <gineshidalgo99@gmail.com>
  • 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
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
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
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
@@ -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.
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
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.
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
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
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
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

0 comments on commit 1d46c08

Please sign in to comment.