提交 c9fbc7b6 编写于 作者: G gineshidalgo99

Tracking out of experimental

上级 d9e745a0
......@@ -36,14 +36,29 @@ You might select multiple topics, delete the rest:
### Your System Configuration
**Operating system** (`lsb_release -a` in Ubuntu):
**Installation mode**: CMake, sh script, manual Makefile installation, ... (Ubuntu); VS2015, VS2017, CMake, ... (Windows); ...?
**CUDA version** (`cat /usr/local/cuda/version.txt` in most cases):
**cuDNN version**:
**CMake version** (`cmake --version` in Ubuntu):
**Release or Debug mode**? (by defualt: release):
**3-D Reconstruction module added**? (by default: no):
**GPU model** (`nvidia-smi` in Ubuntu):
**Caffe version**: Default from OpenPose, custom version, ...?
**OpenCV version**: pre-compiled `apt-get install libopencv-dev` (only Ubuntu); OpenPose default (only Windows); compiled from source? If so, 2.4.9, 2.4.12, 3.1, 3.2?; ...?
Compiler (`gcc --version` in Ubuntu):
1. **General configuration**:
- **Installation mode**: CMake, sh script, manual Makefile installation, ... (Ubuntu); CMake, ... (Windows); ...?
- **Operating system** (`lsb_release -a` in Ubuntu):
- **Release or Debug mode**? (by defualt: release):
- Compiler (`gcc --version` in Ubuntu or VS version in Windows): 5.4.0, ... (Ubuntu); VS2015 Enterprise Update 3, VS2017 community, ... (Windows); ...?
2. **Non-default settings**:
- **3-D Reconstruction module added**? (by default: no):
- Any other custom CMake configuration with respect to the default version? (by default: no):
3. **3rd-party software**:
- **Caffe version**: Default from OpenPose, custom version, ...?
- **CMake version** (`cmake --version` in Ubuntu):
- **OpenCV version**: pre-compiled `apt-get install libopencv-dev` (only Ubuntu); OpenPose default (only Windows); compiled from source? If so, 2.4.9, 2.4.12, 3.1, 3.2?; ...?
4. If **GPU mode** issue:
- **CUDA version** (`cat /usr/local/cuda/version.txt` in most cases):
- **cuDNN version**:
- **GPU model** (`nvidia-smi` in Ubuntu):
5. If **CPU-only mode** issue:
- **CPU model**:
- Total **RAM memory** available:
6. If **speed performance** issue:
- Report OpenPose timing speed based on [this link](https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.md#profiling-speed).
......@@ -11,6 +11,7 @@ OpenPose is authored by [Gines Hidalgo](https://www.gineshidalgo.com/), [Zhe Cao
### Contributors
We would also like to thank the following people who have highly contributed to OpenPose:
1. [Yaadhav Raaj](https://www.linkedin.com/in/yaadhavraaj): OpenPose maintainer, CPU version, and OpenCL version.
2. [Bikramjot Hanzra](https://www.linkedin.com/in/bikz05): former OpenPose maintainer, CMake (Ubuntu and Windows) version, and Travis Build.
3. [Helen Medina](https://github.com/helen-medina): Initial Windows version.
1. [Yaadhav Raaj](https://www.linkedin.com/in/yaadhavraaj): OpenPose maintainer, CPU version, OpenCL version, and person tracker.
2. [Bikramjot Hanzra](https://www.linkedin.com/in/bikz05): Former OpenPose maintainer, CMake (Ubuntu and Windows) version, and Travis Build.
3. [Luis Fernando Fraga](https://github.com/fragalfernando/): Implementation of Lukas-Kanade algorith and person ID extractor.
4. [Helen Medina](https://github.com/helen-medina): Initial Windows version.
......@@ -235,7 +235,7 @@ To manually select the CPU Version, open CMake GUI mentioned above, and set the
- On Ubuntu, OpenPose will link against the Intel MKL version (Math Kernel Library) of Caffe. Alternatively, the user can choose his own Caffe version, by unselecting `USE_MKL` and selecting his own Caffe path.
- On Windows, it will use the default version of Caffe or one provided by the user on the CPU.
The default CPU version takes ~0.2 seconds per image on Ubuntu (~50x slower than GPU) while the MKL version provides a roughly 2x speedup at ~0.4 seconds. As of now OpenPose does not support MKL on Windows but will at a later date. Also, MKL version does not support unfixed resolution. So a folder of images of different resolutions with openpose, requires the `--net_resolution 656x368` flag for example.
The default CPU version takes ~0.2 images per second on Ubuntu (~50x slower than GPU) while the MKL version provides a roughly 2x speedup at ~0.4 images per second. As of now OpenPose does not support MKL on Windows but will at a later date. Also, MKL version does not support unfixed resolution. So a folder of images of different resolutions requires a fixed net resolution (e.g., `--net_resolution 656x368`).
The user can configure the environmental variables `MKL_NUM_THREADS` and `OMP_NUM_THREADS`. They are set at an optimum parameter level by default (i.e., to the number of threads of the machine). However, they can be tweak by running the following commands into the terminal window, right before running any OpenPose application. Eg:
```
......
......@@ -220,10 +220,12 @@ OpenPose Library - Release Notes
5. Function `scaleKeypoints(Array<float>& keypoints, const float scale)` also accepts 3D keypoints.
6. 3D keypoints and camera parameters in meters (instead of millimeters) in order to reduce numerical errors.
7. New `PoseExtractor` class to contain future ID and tracking algorithms as well as the current OpenPose keypoint detection algorithm.
8. Added initial alpha versions of the `tracking` and `identification` modules (for now disabled but available in the source code), including `PersonIdExtractor` and `PersonTracker`. `PersonIdExtractor` includes greedy matrix OP-LK matching.
2. Functions or parameters renamed:
1. Removed scale parameter from hand and face rectangle extractor (causing wrong results if custom `--output_resolution`).
2. Functions `scaleKeypoints`, other than `scaleKeypoints(Array<float>& keypoints, const float scale)`, renamed as `scaleKeypoints2d`.
3. `(W)PoseExtractor` renamed to `(W)PoseExtractorNet` to distinguish from new `PoseExtractor`. Analogously with `(W)FaceExtractorNet` and `(W)HandExtractorNet`.
4. Experimental module removed and internal `tracking` folder moved to main openpose folder.
3. Main bugs fixed:
1. Fixed hand and face extraction and rendering scaling issues when `--output_resolution` is not the default one.
2. Part candidates (`--part_candidates`) are saved with the same scale than the final keypoints itself.
......
#ifndef OPENPOSE_EXPERIMENTAL_HEADERS_HPP
#define OPENPOSE_EXPERIMENTAL_HEADERS_HPP
// experimental modules
#include <openpose/experimental/tracking/headers.hpp>
#endif // OPENPOSE_EXPERIMENTAL_HEADERS_HPP
#ifndef OPENPOSE_EXPERIMENTAL_PRODUCER_HEADERS_HPP
#define OPENPOSE_EXPERIMENTAL_PRODUCER_HEADERS_HPP
// producer module
// #include <openpose/experimental/producer/wPoseLoader.hpp>
#endif // OPENPOSE_EXPERIMENTAL_PRODUCER_HEADERS_HPP
// TODO: IMPLEMENT THIS CLASS so that we can:
// 1. Pre-process whole video and save people pose
// 2. Real-time showing it by loading this + original video
// #ifndef OPENPOSE_PRODUCER_W_POSE_LOADER_HPP
// #define OPENPOSE_PRODUCER_W_POSE_LOADER_HPP
// namespace op
// {
// template<typename TDatums>
// class wPoseLoader : public Worker<TDatums>
// {
// public:
// explicit WPoseLoader()
// {
// }
// bool work(TDatums& datums, const bool isValidFrame)
// {
// }
// private:
// const WPoseLoader mFormat;
// };
// COMPILE_TEMPLATE_DATUM(WPoseLoader);
// }
// #endif // OPENPOSE_PRODUCER_W_POSE_LOADER_HPP
......@@ -7,9 +7,6 @@
// core module
#include <openpose/core/headers.hpp>
// experimental module
#include <openpose/experimental/headers.hpp>
// face module
#include <openpose/face/headers.hpp>
......@@ -34,6 +31,9 @@
// threading module
#include <openpose/thread/headers.hpp>
// tracking module
#include <openpose/thread/headers.hpp>
// utilities module
#include <openpose/utilities/headers.hpp>
......
......@@ -6,8 +6,8 @@
#include <openpose/core/keepTopNPeople.hpp>
#include <openpose/pose/poseParameters.hpp>
#include <openpose/pose/poseExtractorNet.hpp>
#include <openpose/experimental/tracking/personIdExtractor.hpp>
#include <openpose/experimental/tracking/personTracker.hpp>
#include <openpose/tracking/personIdExtractor.hpp>
#include <openpose/tracking/personTracker.hpp>
namespace op
{
......
......@@ -2,8 +2,8 @@
#define OPENPOSE_TRACKING_HEADERS_HPP
// tracking module
#include <openpose/experimental/tracking/personIdExtractor.hpp>
#include <openpose/experimental/tracking/personTracker.hpp>
#include <openpose/experimental/tracking/wPersonIdExtractor.hpp>
#include <openpose/tracking/personIdExtractor.hpp>
#include <openpose/tracking/personTracker.hpp>
#include <openpose/tracking/wPersonIdExtractor.hpp>
#endif // OPENPOSE_TRACKING_HEADERS_HPP
......@@ -4,7 +4,6 @@
#include <atomic>
#include <unordered_map>
#include <openpose/core/common.hpp>
#include <openpose/experimental/tracking/personTracker.hpp>
namespace op
{
......
......@@ -3,7 +3,7 @@
#include <openpose/core/common.hpp>
#include <openpose/thread/worker.hpp>
#include <openpose/experimental/tracking/personIdExtractor.hpp>
#include <openpose/tracking/personIdExtractor.hpp>
namespace op
{
......
......@@ -261,14 +261,14 @@ namespace op
// Implementation
#include <openpose/3d/headers.hpp>
#include <openpose/core/headers.hpp>
#include <openpose/experimental/tracking/headers.hpp>
#include <openpose/face/headers.hpp>
#include <openpose/filestream/headers.hpp>
#include <openpose/gui/headers.hpp>
#include <openpose/gpu/gpu.hpp>
#include <openpose/gui/headers.hpp>
#include <openpose/hand/headers.hpp>
#include <openpose/pose/headers.hpp>
#include <openpose/producer/headers.hpp>
#include <openpose/tracking/headers.hpp>
#include <openpose/utilities/fileSystem.hpp>
#include <openpose/utilities/standard.hpp>
#include <openpose/wrapper/wrapperAuxiliary.hpp>
......
......@@ -10,11 +10,12 @@ file(GLOB_RECURSE OP_HEADERS_UNFILTERED "${CMAKE_SOURCE_DIR}/include/openpose/*.
"${CMAKE_SOURCE_DIR}/include/openpose/*.hu")
set(OP_HEADERS "")
foreach (FILE ${OP_HEADERS_UNFILTERED})
if (NOT FILE MATCHES "${CMAKE_SOURCE_DIR}/include/openpose/experimental/*")
list(APPEND OP_HEADERS ${FILE})
endif ()
endforeach(FILE ${OP_HEADERS_UNFILTERED})
# # Add experimental sub-folders
# foreach (FILE ${OP_HEADERS_UNFILTERED})
# if (NOT FILE MATCHES "${CMAKE_SOURCE_DIR}/include/openpose/experimental/*")
# list(APPEND OP_HEADERS ${FILE})
# endif ()
# endforeach(FILE ${OP_HEADERS_UNFILTERED})
if (${GPU_MODE} MATCHES "CUDA")
cuda_add_library(openpose ${SOURCES_OPENPOSE} ${OP_HEADERS})
......
add_subdirectory(tracking)
if (UNIX AND NOT APPLE)
add_custom_target(openpose_experimental)
add_dependencies(openpose_experimental openpose_tracking)
endif (UNIX AND NOT APPLE)
set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} PARENT_SCOPE)
#include <openpose/experimental/tracking/headers.hpp>
#include <openpose/tracking/headers.hpp>
namespace op
{
......
#include <thread>
#include <openpose/experimental/tracking/pyramidalLK.hpp>
#include <openpose/tracking/pyramidalLK.hpp>
#include <openpose/utilities/fastMath.hpp>
#include <openpose/experimental/tracking/personIdExtractor.hpp>
#include <openpose/tracking/personIdExtractor.hpp>
// #define LK_CUDA
......
#include <iostream>
#include <thread>
#include <opencv2/imgproc/imgproc.hpp> // cv::resize
#include <openpose/experimental/tracking/personTracker.hpp>
#include <openpose/experimental/tracking/pyramidalLK.hpp>
#include <openpose/tracking/personTracker.hpp>
#include <openpose/tracking/pyramidalLK.hpp>
namespace op
{
......
......@@ -3,7 +3,7 @@
#include <opencv2/imgproc/imgproc.hpp> // cv::pyrDown
#include <opencv2/video/video.hpp> // cv::buildOpticalFlowPyramid
#include <openpose/utilities/profiler.hpp>
#include <openpose/experimental/tracking/pyramidalLK.hpp>
#include <openpose/tracking/pyramidalLK.hpp>
#if defined (WITH_SSE4)
#include <emmintrin.h>
......
......@@ -14,7 +14,7 @@
#define cvCuda cv::cuda
#endif
#endif
#include <openpose/experimental/tracking/pyramidalLK.hpp>
#include <openpose/tracking/pyramidalLK.hpp>
// Error codes for kernel caller
#define IMAGE_SIZES_NEQUAL -1
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册