提交 1d46c088 编写于 作者: G Gines Hidalgo

Doc ordered in a more intuitive way

Signed-off-by: NGines Hidalgo <gineshidalgo99@gmail.com>
上级 1b4827f0
......@@ -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)!
......@@ -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)
......@@ -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).
......
......@@ -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:
......
......@@ -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.
......@@ -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).
......
......@@ -3,18 +3,18 @@ OpenPose Library - How to Develop OpenPose
If you intend to extend the functionality of our library:
1. Read the README page.
1. Read the [README.md](../../README.md) page.
2. Check the basic library overview doc on [library_overview.md](library_overview.md).
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.
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 [UML folder](UML/) to get an idea of each module relations.
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.
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.
......@@ -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.
......@@ -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`.
......@@ -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 the [README.md](../../README.md), in the demo section.
5. `poseModel` specifies the model to load (e.g., COCO or MPI).
......
......@@ -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).
......
......@@ -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:
......@@ -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.
......@@ -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.
......
......@@ -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).
......@@ -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:
......
此差异已折叠。
OpenPose Library - All Released Features
OpenPose Library - All Major Released 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!
- 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: [**Python API**](./modules/python_module.md) released!
- Jun 2018: [**OpenCL/AMD graphic card version**](./modules/calibration_module.md) released!
- Jun 2018: [**Calibration toolbox**](./modules/calibration_module.md) released!
- 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**](./modules/3d_reconstruction_module.md) (from multiple camera views)!
- 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!
- Jul 2017: [**Windows portable binaries and demo**](https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases)!
- Jul 2017: **Hands** released!
......
// ------------------------- OpenPose Calibration Toolbox -------------------------
// Check `doc/modules/calibration_module.md`.
// Check `doc/calibration/README.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/modules/calibration_module.md for an example.");
" already the origin. See doc/calibration/README.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"
......
......@@ -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/modules/calibration_module.md"
" and 3d_reconstruction_module.md)?", Priority::High);
" upper triangular matrix (as specified in the OpenPose doc/calibration/README.md"
" and doc/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.
先完成此消息的编辑!
想要评论请 注册