提交 6477264f 编写于 作者: G gineshidalgo99

Deprecated Windows removed, no_display renamed as display

上级 8eab7d6b
......@@ -69,7 +69,9 @@ For further details, check [all released features](doc/released_features.md) and
## Installation, Reinstallation and Uninstallation
See [doc/installation.md](doc/installation.md) for instructions on how to build from source or how to download our portable binaries.
**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.
......
......@@ -40,9 +40,9 @@ Since the Windows 10 Anniversary, Kinect 2.0 can be read as a normal webcam. All
The following example runs the demo video `video.avi` and outputs JSON files in `output/`. Note: see [doc/output.md](./output.md) to understand the format of the JSON files.
```
# Only body
./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_keypoint_json output/ --no_display --render_pose 0
./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_keypoint_json output/ --display 0 --render_pose 0
# Body + face + hands
./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_keypoint_json output/ --no_display --render_pose 0 --face --hand
./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_keypoint_json output/ --display 0 --render_pose 0 --face --hand
```
......@@ -120,7 +120,7 @@ We enumerate some of the most important flags, check the `Flags Detailed Descrip
- `--process_real_time`: For video, it might skip frames to display at real time.
- `--disable_blending`: If enabled, it will render the results (keypoint skeletons or heatmaps) on a black background, not showing the original image. Related: `part_to_show`, `alpha_pose`, and `alpha_pose`.
- `--part_to_show`: Prediction channel to visualize.
- `--no_display`: Display window not opened. Useful for servers and/or to slightly speed up OpenPose.
- `--display 0`: Display window not opened. Useful for servers and/or to slightly speed up OpenPose.
- `--num_gpu 2 --num_gpu_start 1`: Parallelize over this number of GPUs starting by the desired device id. By default it uses all the available GPUs.
- `--model_pose MPI`: Model to use, affects number keypoints, speed and accuracy.
- `--logging_level 3`: Logging messages threshold, range [0,255]: 0 will output any message & 255 will output none. Current messages in the range [1-4], 1 for low priority messages and 4 for important ones.
......@@ -206,7 +206,7 @@ Each flag is divided into flag name, default value, and description.
12. Display
- DEFINE_bool(fullscreen, false, "Run in full-screen mode (press f during runtime to toggle).");
- DEFINE_bool(no_gui_verbose, false, "Do not write text on output images on GUI (e.g. number of current frame and people). It does not affect the pose rendering.");
- DEFINE_bool(no_display, false, "Do not open a display window. Useful if there is no X server and/or to slightly speed up the processing if visual output is not required.");
- DEFINE_int32(display, -1, "Display mode: -1 for automatic selection; 0 for no display (useful if there is no X server and/or to slightly speed up the processing if visual output is not required); 2 for 2-D display; 3 for 3-D display (if `--3d` enabled); and 1 for both 2-D and 3-D display.");
12. Result Saving
- DEFINE_string(write_images, "", "Directory to write rendered frames in `write_images_format` image format.");
- DEFINE_string(write_images_format, "png", "File extension and format for `write_images`, e.g. png, jpg or bmp. Check the OpenCV function cv::imwrite for all compatible extensions.");
......
......@@ -7,7 +7,8 @@ OpenPose - Frequently Asked Question (FAQ)
2. [Speed Up and Benchmark](#speed-up-and-benchmark)
3. [Webcam Slower than Images](#webcam-slower-than-images)
4. [Vide/Webcam Not Working](#video-webcam-not-working)
5. [Free Invalid Pointer Error](#free-invalid-pointer-error)
5. [Cannot Find OpenPose.dll Error](#cannot-find-openpose.dll-error-windows)
6. [Free Invalid Pointer Error](#free-invalid-pointer-error)
......@@ -37,7 +38,7 @@ OpenPose - Frequently Asked Question (FAQ)
### 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 `Reinstallation` section in Ubuntu or cleaning the project on Windows). 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.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!
......@@ -48,6 +49,19 @@ OpenPose - Frequently Asked Question (FAQ)
### 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.
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.
If it didn't have any error, then setting OpenPoseDemo as main project again and F5 (or green play button) should work.
Note: OpenPose library is not an executable, but a library. So instead clicking F5 or the green button instead of `Build` will give you an error similar to `openpose.dll is not a valid Win32 application`.
### Free Invalid Pointer Error
**Q: I am getting an error of the type: munmap_chunk()/free/invalid pointer.**
......
......@@ -2,14 +2,15 @@ OpenPose - Installation
==========================
## Contents
1. [Operating Systems](#operating-systems)
2. [Requirements](#requirements)
3. [Clone OpenPose](#clone-openpose)
4. [Update OpenPose](#update-openpose)
5. [Installation](#installation)
6. [Reinstallation](#reinstallation)
7. [Uninstallation](#uninstallation)
8. [Optional Settings](#optional-settings)
1. [Windows Portable Demo](#windows-portable-demo)
2. [Operating Systems](#operating-systems)
3. [Requirements](#requirements)
4. [Clone OpenPose](#clone-openpose)
5. [Update OpenPose](#update-openpose)
6. [Installation](#installation)
7. [Reinstallation](#reinstallation)
8. [Uninstallation](#uninstallation)
9. [Optional Settings](#optional-settings)
1. [MPI Model](#mpi-model)
2. [OpenPose 3D Reconstruction Module and Demo](#openpose-3d-reconstruction-module-and-demo)
3. [Compiling without cuDNN](#compiling-without-cudnn)
......@@ -20,6 +21,11 @@ OpenPose - Installation
## Windows Portable Demo
This installation 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 in Windows, simply use the latest version of the OpenPose binaries which you can find in the [Releases](https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases) section.
## Operating Systems
- **Ubuntu** 14 and 16.
- **Windows** 8 and 10.
......
......@@ -71,7 +71,7 @@ In order to verify that the camera parameters introduced by the user are sorted
## Installing the OpenPose 3-D Reconstruction Module
Check the [doc/quick_start.md#3-d-reconstruction](./quick_start.md#3-d-reconstruction) for 3-D examples.
Check the [doc/quick_start.md#3-d-reconstruction](./quick_start.md#3-d-reconstruction) for basic examples.
......
......@@ -105,6 +105,7 @@ windows\x64\Release\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number
### 3-D Reconstruction
1. Real-time demo
```
# Ubuntu
./build/examples/openpose/openpose.bin --3d --number_people_max 1
......@@ -124,6 +125,20 @@ windows\x64\Release\OpenPoseDemo.exe --3d --number_people_max 1
windows\x64\Release\OpenPoseDemo.exe --3d --number_people_max 1 --face --hand
```
2. Saving stereo camera images for a later post-processing:
```
# Ubuntu (same flags for Windows version)
./build/examples/openpose/openpose.bin --3d --num_gpu 0 --write_images output_folder_path/
```
3. Reading previouly saved stereo camera images and processing them:
```
# Ubuntu (same flags for Windows version)
./build/examples/openpose/openpose.bin --image_dir output_folder_path/ --3d --number_people_max 1
# Ubuntu face and hands (same flags for Windows version)
./build/examples/openpose/openpose.bin --image_dir output_folder_path/ --3d --number_people_max 1 --face --hand
```
## Expected Visual Results
......
......@@ -183,7 +183,10 @@ OpenPose Library - Release Notes
11. CMake as default installer in documentation.
12. Added flag: number_people_max to optionally select the maximum number of people to be detected.
13. 3-D reconstruction module forces the user to set `number_people_max 1` to avoid errors (as it assumes only 1 person per image).
2. Main bugs fixed:
14. Removed old `windows/` version. CMake is the only Windows version available.
2. Functions or parameters renamed:
1. Flag `no_display` renamed as `display`, able to select between `NoDisplay`, `Display2D`, `Display3D`, and `DisplayAll`.
3. Main bugs fixed:
1. Slight speed up (~1%) for performing the non-maximum suppression stage only in the body part heatmaps channels, and not also in the PAF channels.
2. Fixed core-dumped in PoseRenderer with GUI when changed element to be rendered to something else than skeleton.
3. 3-D visualizer does not crash on exit anymore.
......
......@@ -113,7 +113,6 @@ DEFINE_int32(hand_scale_number, 1, "Analogous to `scale_num
DEFINE_double(hand_scale_range, 0.4, "Analogous purpose than `scale_gap` but applied to the hand keypoint detector. Total range"
" between smallest and biggest scale. The scales will be centered in ratio 1. E.g. if"
" scaleRange = 0.4 and scalesNumber = 2, then there will be 2 scales, 0.8 and 1.2.");
DEFINE_bool(hand_tracking, false, "Adding hand tracking might improve hand keypoints detection for webcam (if the frame rate"
" is high enough, i.e. >7 FPS per GPU) and video. This is not person ID tracking, it"
" simply looks for hands in positions at which hands were located in previous frames, but"
......@@ -156,6 +155,13 @@ DEFINE_int32(hand_render, -1, "Analogous to `render_po
" configuration that `render_pose` is using.");
DEFINE_double(hand_alpha_pose, 0.6, "Analogous to `alpha_pose` but applied to hand.");
DEFINE_double(hand_alpha_heatmap, 0.7, "Analogous to `alpha_heatmap` but applied to hand.");
// Display
DEFINE_bool(fullscreen, false, "Run in full-screen mode (press f during runtime to toggle).");
DEFINE_bool(no_gui_verbose, false, "Do not write text on output images on GUI (e.g. number of current frame and people). It"
" does not affect the pose rendering.");
DEFINE_int32(display, -1, "Display mode: -1 for automatic selection; 0 for no display (useful if there is no X server"
" and/or to slightly speed up the processing if visual output is not required); 2 for 2-D"
" display; 3 for 3-D display (if `--3d` enabled); and 1 for both 2-D and 3-D display.");
// Result Saving
DEFINE_string(write_images, "", "Directory to write rendered frames in `write_images_format` image format.");
DEFINE_string(write_images_format, "png", "File extension and format for `write_images`, e.g. png, jpg or bmp. Check the OpenCV"
......@@ -218,16 +224,11 @@ int openpose()
// Initializing the user custom classes
// Frames producer (e.g. video, webcam, ...)
auto wFlirReader = std::make_shared<op::WFlirReader>();
// GUI (Display)
auto wRender3D = std::make_shared<op::WRender3D>();
op::Wrapper<std::vector<op::Datum>> opWrapper;
// Add custom input
const auto workerInputOnNewThread = true;
opWrapper.setWorkerInput(wFlirReader, workerInputOnNewThread);
// Add custom output
const auto workerOutputOnNewThread = true;
opWrapper.setWorkerOutput(wRender3D, workerOutputOnNewThread);
// Configure OpenPose
const op::WrapperStructPose wrapperStructPose{!FLAGS_body_disable, netInputSize, outputSize, keypointScale,
FLAGS_num_gpu, FLAGS_num_gpu_start, FLAGS_scale_number,
......@@ -249,10 +250,8 @@ int openpose()
(float)FLAGS_hand_alpha_pose, (float)FLAGS_hand_alpha_heatmap,
(float)FLAGS_hand_render_threshold};
// Consumer (comment or use default argument to disable any output)
const bool displayGui = false;
const bool guiVerbose = true;
const bool fullScreen = false;
const op::WrapperStructOutput wrapperStructOutput{displayGui, guiVerbose, fullScreen, FLAGS_write_keypoint,
const op::WrapperStructOutput wrapperStructOutput{op::flagsToDisplayMode(FLAGS_display, FLAGS_3d),
!FLAGS_no_gui_verbose, FLAGS_fullscreen, FLAGS_write_keypoint,
op::stringToDataFormat(FLAGS_write_keypoint_format),
writeJson, FLAGS_write_coco_json,
FLAGS_write_images, FLAGS_write_images_format, FLAGS_write_video,
......
......@@ -182,8 +182,9 @@ DEFINE_double(hand_alpha_heatmap, 0.7, "Analogous to `alpha_hea
DEFINE_bool(fullscreen, false, "Run in full-screen mode (press f during runtime to toggle).");
DEFINE_bool(no_gui_verbose, false, "Do not write text on output images on GUI (e.g. number of current frame and people). It"
" does not affect the pose rendering.");
DEFINE_bool(no_display, false, "Do not open a display window. Useful if there is no X server and/or to slightly speed up"
" the processing if visual output is not required.");
DEFINE_int32(display, -1, "Display mode: -1 for automatic selection; 0 for no display (useful if there is no X server"
" and/or to slightly speed up the processing if visual output is not required); 2 for 2-D"
" display; 3 for 3-D display (if `--3d` enabled); and 1 for both 2-D and 3-D display.");
// Result Saving
DEFINE_string(write_images, "", "Directory to write rendered frames in `write_images_format` image format.");
DEFINE_string(write_images_format, "png", "File extension and format for `write_images`, e.g. png, jpg or bmp. Check the OpenCV"
......@@ -279,8 +280,8 @@ int openPoseDemo()
FLAGS_process_real_time, FLAGS_frame_flip, FLAGS_frame_rotate,
FLAGS_frames_repeat};
// Consumer (comment or use default argument to disable any output)
const op::WrapperStructOutput wrapperStructOutput{!FLAGS_no_display, !FLAGS_no_gui_verbose, FLAGS_fullscreen,
FLAGS_write_keypoint,
const op::WrapperStructOutput wrapperStructOutput{op::flagsToDisplayMode(FLAGS_display, FLAGS_3d),
!FLAGS_no_gui_verbose, FLAGS_fullscreen, FLAGS_write_keypoint,
op::stringToDataFormat(FLAGS_write_keypoint_format),
writeJson, FLAGS_write_coco_json,
FLAGS_write_images, FLAGS_write_images_format, FLAGS_write_video,
......
......@@ -28,7 +28,7 @@ DEFINE_int32(hand_scale_number, 1, "");
DEFINE_double(hand_scale_range, 0.4, "");
DEFINE_bool(hand_tracking, false, "");
// Display
DEFINE_bool(no_display, false, "");
DEFINE_int32(display, -1, "");
// Result Saving
DEFINE_string(write_json, "", "");
......@@ -69,7 +69,7 @@ int handFromJsonTest()
op::flagsToRenderMode(1)};
// Configure wrapper
opWrapper.configure(wrapperStructPose, wrapperStructHand, producerSharedPtr, FLAGS_hand_ground_truth,
FLAGS_write_json, !FLAGS_no_display);
FLAGS_write_json, op::flagsToDisplayMode(FLAGS_display, false));
// Start processing
op::log("Starting thread(s)", op::Priority::High);
......
......@@ -14,7 +14,7 @@
# If you are using the NAS, please do not override my files, i.e. please change the output paths (corresponding to the ones indicated by `--write_json`, which is ).
# In order to generate the JSON output:
# Uncomment the commented lines starting by `--write_json` and `--no_display`
# Uncomment the commented lines starting by `--write_json` and `--display 0`
# Step 2 - Running JSON output to get accuracy
# Once you have the JSON files, run them with the script Tomas prepared for it, which in my case I use:
......@@ -53,7 +53,7 @@ rm -rf $HAND_RESULTS_FOLDER_BB
--image_dir ${IMAGES_BB_FOLDER} \
--hand_ground_truth ${HAND_GROUND_TRUTH_FOLDER} \
--write_json $HAND_RESULTS_FOLDER_BB \
--no_display
--display 0
......@@ -66,7 +66,7 @@ rm -rf $HAND_RESULTS_FOLDER_NO_BB
--hand_scale_number ${SCALES} --hand_scale_range 0.4 \
--image_dir ${IMAGES_FOLDER} \
--write_json $HAND_RESULTS_FOLDER_NO_BB \
--no_display
--display 0
......@@ -78,4 +78,4 @@ rm -rf $HAND_RESULTS_FOLDER_BODY_59
--model_pose BODY_59 \
--image_dir ${IMAGES_FOLDER} \
--write_json $HAND_RESULTS_FOLDER_BODY_59 \
--no_display
--display 0
......@@ -11,7 +11,7 @@ JSON_FOLDER=../evaluation/coco_val_jsons/
OP_BIN=./build/examples/openpose/openpose.bin
# 1 scale
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_test.json --no_display --render_pose 0
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_test.json --display 0 --render_pose 0
# 4 scales
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4_test.json --no_display --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736"
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4_test.json --display 0 --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736"
......@@ -20,16 +20,16 @@ JSON_FOLDER=../evaluation/coco_val_jsons/
OP_BIN=./build/examples/openpose/openpose.bin
# 1 scale
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --no_display --render_pose 0
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --display 0 --render_pose 0
# 1 scale - Debugging
# $OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --no_display --write_images ~/Desktop/CppValidation/
# $OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --display 0 --write_images ~/Desktop/CppValidation/
# # 3 scales
# $OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_3.json --no_display --render_pose 0 --scale_number 3 --scale_gap 0.25
# $OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_3.json --display 0 --render_pose 0 --scale_number 3 --scale_gap 0.25
# # 4 scales
# $OP_BIN --num_gpu 1 --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4.json --no_display --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736"
# $OP_BIN --num_gpu 1 --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4.json --display 0 --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736"
# # Debugging - Rendered frames saved
# $OP_BIN --image_dir $IMAGE_FOLDER --write_images ${JSON_FOLDER}frameOutput --no_display
# $OP_BIN --image_dir $IMAGE_FOLDER --write_images ${JSON_FOLDER}frameOutput --display 0
......@@ -21,16 +21,16 @@ JSON_FOLDER=../evaluation/coco_val_jsons/
OP_BIN=./build/examples/openpose/openpose.bin
# 1 scale
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --no_display --render_pose 0 --frame_last 3558
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --display 0 --render_pose 0 --frame_last 3558
# 1 scale - Debugging
# $OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --no_display --frame_last 3558 --write_images ~/Desktop/CppValidation/
# $OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --display 0 --frame_last 3558 --write_images ~/Desktop/CppValidation/
# # 3 scales
# $OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_3.json --no_display --render_pose 0 --scale_number 3 --scale_gap 0.25 --frame_last 3558
# $OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_3.json --display 0 --render_pose 0 --scale_number 3 --scale_gap 0.25 --frame_last 3558
# # 4 scales
# $OP_BIN --num_gpu 1 --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4.json --no_display --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736" --frame_last 3558
# $OP_BIN --num_gpu 1 --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4.json --display 0 --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736" --frame_last 3558
# # Debugging - Rendered frames saved
# $OP_BIN --image_dir $IMAGE_FOLDER --write_images ${JSON_FOLDER}frameOutput --no_display
# $OP_BIN --image_dir $IMAGE_FOLDER --write_images ${JSON_FOLDER}frameOutput --display 0
......@@ -11,10 +11,10 @@ JSON_FOLDER=../evaluation/coco_val_jsons/
OP_BIN=./build/examples/openpose/openpose.bin
# 1 scale
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --no_display --render_pose 0
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --display 0 --render_pose 0
# 3 scales
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_3.json --no_display --render_pose 0 --scale_number 3 --scale_gap 0.25
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_3.json --display 0 --render_pose 0 --scale_number 3 --scale_gap 0.25
# 4 scales
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4.json --no_display --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736"
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4.json --display 0 --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736"
......@@ -11,10 +11,10 @@ JSON_FOLDER=../evaluation/coco_val_jsons/
OP_BIN=./build/examples/openpose/openpose.bin
# 1 scale
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --no_display --render_pose 0 --frame_last 3558
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1.json --display 0 --render_pose 0 --frame_last 3558
# 3 scales
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_3.json --no_display --render_pose 0 --scale_number 3 --scale_gap 0.25 --frame_last 3558
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_3.json --display 0 --render_pose 0 --scale_number 3 --scale_gap 0.25 --frame_last 3558
# 4 scales
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4.json --no_display --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736" --frame_last 3558
$OP_BIN --image_dir $IMAGE_FOLDER --write_coco_json ${JSON_FOLDER}1_4.json --display 0 --render_pose 0 --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736" --frame_last 3558
......@@ -27,7 +27,7 @@ namespace op
const std::shared_ptr<Producer>& producerSharedPtr,
const std::string& handGroundTruth,
const std::string& writeJson,
const bool displayGui = false);
const DisplayMode displayMode = DisplayMode::NoDisplay);
/**
* Function to start multi-threading.
......@@ -120,7 +120,7 @@ namespace op
const std::shared_ptr<Producer>& producerSharedPtr,
const std::string& handGroundTruth,
const std::string& writeJson,
const bool displayGui)
const DisplayMode displayMode)
{
try
{
......@@ -131,13 +131,15 @@ namespace op
// Check no wrong/contradictory flags enabled
if (wrapperStructPose.scaleGap <= 0.f && wrapperStructPose.scalesNumber > 1)
error("The scale gap must be greater than 0 (it has no effect if the number of scales is 1).", __LINE__, __FUNCTION__, __FILE__);
const std::string additionalMessage = " You could also set mThreadManagerMode = mThreadManagerMode::Asynchronous(Out) and/or add your own"
" output worker class before calling this function.";
error("The scale gap must be greater than 0 (it has no effect if the number of scales is 1).",
__LINE__, __FUNCTION__, __FILE__);
const std::string additionalMessage = " You could also set mThreadManagerMode = mThreadManagerMode::Asynchronous(Out)"
" and/or add your own output worker class before calling this function.";
const auto savingSomething = !writeJson.empty();
const auto displayGui = (displayMode != DisplayMode::NoDisplay);
if (!displayGui && !savingSomething)
{
const auto message = "No output is selected (`no_display`) and no results are generated (no `write_X` flags enabled). Thus,"
const auto message = "No output is selected (`--display 0`) and no results are generated (no `write_X` flags enabled). Thus,"
" no output would be generated." + additionalMessage;
error(message, __LINE__, __FUNCTION__, __FILE__);
}
......
......@@ -147,6 +147,11 @@ DEFINE_bool(hand_tracking, false, "Adding hand tracking mi
" is high enough, i.e. >7 FPS per GPU) and video. This is not person ID tracking, it"
" simply looks for hands in positions at which hands were located in previous frames, but"
" it does not guarantee the same person ID among frames.");
// OpenPose 3-D Reconstruction
DEFINE_bool(3d, false, "Running OpenPose 3-D reconstruction demo: 1) Reading from a stereo camera system."
" 2) Performing 3-D reconstruction from the multiple views. 3) Displaying 3-D reconstruction"
" results. Note that it will only display 1 person. If multiple people is present, it will"
" fail.");
// OpenPose Rendering
DEFINE_int32(part_to_show, 0, "Prediction channel to visualize (default: 0). 0 for all the body parts, 1-18 for each body"
" part heat map, 19 for the background heat map, 20 for all the body part heat maps"
......@@ -184,8 +189,9 @@ DEFINE_double(hand_alpha_heatmap, 0.7, "Analogous to `alpha_hea
DEFINE_bool(fullscreen, false, "Run in full-screen mode (press f during runtime to toggle).");
DEFINE_bool(no_gui_verbose, false, "Do not write text on output images on GUI (e.g. number of current frame and people). It"
" does not affect the pose rendering.");
DEFINE_bool(no_display, false, "Do not open a display window. Useful if there is no X server and/or to slightly speed up"
" the processing if visual output is not required.");
DEFINE_int32(display, -1, "Display mode: -1 for automatic selection; 0 for no display (useful if there is no X server"
" and/or to slightly speed up the processing if visual output is not required); 2 for 2-D"
" display; 3 for 3-D display (if `--3d` enabled); and 1 for both 2-D and 3-D display.");
// Result Saving
DEFINE_string(write_images, "", "Directory to write rendered frames in `write_images_format` image format.");
DEFINE_string(write_images_format, "png", "File extension and format for `write_images`, e.g. png, jpg or bmp. Check the OpenCV"
......@@ -259,7 +265,7 @@ int openPoseTutorialWrapper4()
(float)FLAGS_alpha_heatmap, FLAGS_part_to_show, FLAGS_model_folder,
heatMapTypes, heatMapScale, FLAGS_part_candidates,
(float)FLAGS_render_threshold, FLAGS_number_people_max,
enableGoogleLogging};
enableGoogleLogging, FLAGS_3d};
// Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{FLAGS_face, faceNetInputSize,
op::flagsToRenderMode(FLAGS_face_render, FLAGS_render_pose),
......@@ -276,8 +282,8 @@ int openPoseTutorialWrapper4()
FLAGS_process_real_time, FLAGS_frame_flip, FLAGS_frame_rotate,
FLAGS_frames_repeat};
// Consumer (comment or use default argument to disable any output)
const op::WrapperStructOutput wrapperStructOutput{!FLAGS_no_display, !FLAGS_no_gui_verbose, FLAGS_fullscreen,
FLAGS_write_keypoint,
const op::WrapperStructOutput wrapperStructOutput{op::flagsToDisplayMode(FLAGS_display, FLAGS_3d),
!FLAGS_no_gui_verbose, FLAGS_fullscreen, FLAGS_write_keypoint,
op::stringToDataFormat(FLAGS_write_keypoint_format),
writeJson, FLAGS_write_coco_json,
FLAGS_write_images, FLAGS_write_images_format, FLAGS_write_video,
......
......@@ -137,6 +137,11 @@ DEFINE_bool(hand_tracking, false, "Adding hand tracking mi
" is high enough, i.e. >7 FPS per GPU) and video. This is not person ID tracking, it"
" simply looks for hands in positions at which hands were located in previous frames, but"
" it does not guarantee the same person ID among frames.");
// OpenPose 3-D Reconstruction
DEFINE_bool(3d, false, "Running OpenPose 3-D reconstruction demo: 1) Reading from a stereo camera system."
" 2) Performing 3-D reconstruction from the multiple views. 3) Displaying 3-D reconstruction"
" results. Note that it will only display 1 person. If multiple people is present, it will"
" fail.");
// OpenPose Rendering
DEFINE_int32(part_to_show, 0, "Prediction channel to visualize (default: 0). 0 for all the body parts, 1-18 for each body"
" part heat map, 19 for the background heat map, 20 for all the body part heat maps"
......@@ -335,7 +340,7 @@ int openPoseTutorialWrapper1()
(float)FLAGS_alpha_heatmap, FLAGS_part_to_show, FLAGS_model_folder,
heatMapTypes, heatMapScale, FLAGS_part_candidates,
(float)FLAGS_render_threshold, FLAGS_number_people_max,
enableGoogleLogging};
enableGoogleLogging, FLAGS_3d};
// Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{FLAGS_face, faceNetInputSize,
op::flagsToRenderMode(FLAGS_face_render, FLAGS_render_pose),
......@@ -352,10 +357,10 @@ int openPoseTutorialWrapper1()
FLAGS_process_real_time, FLAGS_frame_flip, FLAGS_frame_rotate,
FLAGS_frames_repeat};
// Consumer (comment or use default argument to disable any output)
const bool displayGui = false;
const auto displayMode = op::DisplayMode::NoDisplay;
const bool guiVerbose = false;
const bool fullScreen = false;
const op::WrapperStructOutput wrapperStructOutput{displayGui, guiVerbose, fullScreen, FLAGS_write_keypoint,
const op::WrapperStructOutput wrapperStructOutput{displayMode, guiVerbose, fullScreen, FLAGS_write_keypoint,
op::stringToDataFormat(FLAGS_write_keypoint_format),
writeJson, FLAGS_write_coco_json,
FLAGS_write_images, FLAGS_write_images_format, FLAGS_write_video,
......
......@@ -120,6 +120,11 @@ DEFINE_bool(hand_tracking, false, "Adding hand tracking mi
" is high enough, i.e. >7 FPS per GPU) and video. This is not person ID tracking, it"
" simply looks for hands in positions at which hands were located in previous frames, but"
" it does not guarantee the same person ID among frames.");
// OpenPose 3-D Reconstruction
DEFINE_bool(3d, false, "Running OpenPose 3-D reconstruction demo: 1) Reading from a stereo camera system."
" 2) Performing 3-D reconstruction from the multiple views. 3) Displaying 3-D reconstruction"
" results. Note that it will only display 1 person. If multiple people is present, it will"
" fail.");
// OpenPose Rendering
DEFINE_int32(part_to_show, 0, "Prediction channel to visualize (default: 0). 0 for all the body parts, 1-18 for each body"
" part heat map, 19 for the background heat map, 20 for all the body part heat maps"
......@@ -431,7 +436,7 @@ int openPoseTutorialWrapper2()
(float)FLAGS_alpha_heatmap, FLAGS_part_to_show, FLAGS_model_folder,
heatMapTypes, heatMapScale, FLAGS_part_candidates,
(float)FLAGS_render_threshold, FLAGS_number_people_max,
enableGoogleLogging};
enableGoogleLogging, FLAGS_3d};
// Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{FLAGS_face, faceNetInputSize,
op::flagsToRenderMode(FLAGS_face_render, FLAGS_render_pose),
......@@ -444,10 +449,10 @@ int openPoseTutorialWrapper2()
(float)FLAGS_hand_alpha_pose, (float)FLAGS_hand_alpha_heatmap,
(float)FLAGS_hand_render_threshold};
// Consumer (comment or use default argument to disable any output)
const bool displayGui = false;
const auto displayMode = op::DisplayMode::NoDisplay;
const bool guiVerbose = false;
const bool fullScreen = false;
const op::WrapperStructOutput wrapperStructOutput{displayGui, guiVerbose, fullScreen, FLAGS_write_keypoint,
const op::WrapperStructOutput wrapperStructOutput{displayMode, guiVerbose, fullScreen, FLAGS_write_keypoint,
op::stringToDataFormat(FLAGS_write_keypoint_format),
writeJson, FLAGS_write_coco_json,
FLAGS_write_images, FLAGS_write_images_format, FLAGS_write_video,
......
......@@ -120,6 +120,11 @@ DEFINE_bool(hand_tracking, false, "Adding hand tracking mi
" is high enough, i.e. >7 FPS per GPU) and video. This is not person ID tracking, it"
" simply looks for hands in positions at which hands were located in previous frames, but"
" it does not guarantee the same person ID among frames.");
// OpenPose 3-D Reconstruction
DEFINE_bool(3d, false, "Running OpenPose 3-D reconstruction demo: 1) Reading from a stereo camera system."
" 2) Performing 3-D reconstruction from the multiple views. 3) Displaying 3-D reconstruction"
" results. Note that it will only display 1 person. If multiple people is present, it will"
" fail.");
// OpenPose Rendering
DEFINE_int32(part_to_show, 0, "Prediction channel to visualize (default: 0). 0 for all the body parts, 1-18 for each body"
" part heat map, 19 for the background heat map, 20 for all the body part heat maps"
......@@ -372,7 +377,7 @@ int openPoseTutorialWrapper3()
(float)FLAGS_alpha_heatmap, FLAGS_part_to_show, FLAGS_model_folder,
heatMapTypes, heatMapScale, FLAGS_part_candidates,
(float)FLAGS_render_threshold, FLAGS_number_people_max,
enableGoogleLogging};
enableGoogleLogging, FLAGS_3d};
// Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{FLAGS_face, faceNetInputSize,
op::flagsToRenderMode(FLAGS_face_render, FLAGS_render_pose),
......@@ -385,10 +390,10 @@ int openPoseTutorialWrapper3()
(float)FLAGS_hand_alpha_pose, (float)FLAGS_hand_alpha_heatmap,
(float)FLAGS_hand_render_threshold};
// Consumer (comment or use default argument to disable any output)
const bool displayGui = false;
const auto displayMode = op::DisplayMode::NoDisplay;
const bool guiVerbose = false;
const bool fullScreen = false;
const op::WrapperStructOutput wrapperStructOutput{displayGui, guiVerbose, fullScreen, FLAGS_write_keypoint,
const op::WrapperStructOutput wrapperStructOutput{displayMode, guiVerbose, fullScreen, FLAGS_write_keypoint,
op::stringToDataFormat(FLAGS_write_keypoint_format),
writeJson, FLAGS_write_coco_json,
FLAGS_write_images, FLAGS_write_images_format, FLAGS_write_video,
......
......@@ -6,8 +6,8 @@
namespace op
{
OP_API void reconstructArray(Array<float>& keypoints3D, const std::vector<Array<float>>& keypointsVector,
const std::vector<cv::Mat>& matrixEachCamera);
OP_API Array<float> reconstructArray(const std::vector<Array<float>>& keypointsVector,
const std::vector<cv::Mat>& matrixEachCamera);
}
#endif // OPENPOSE_3D_POSE_TRIANGULATION_HPP
......@@ -66,13 +66,18 @@ namespace op
cameraParameterMatrices.emplace_back(datumsElement.cameraParameterMatrix);
}
// Pose 3-D reconstruction
reconstructArray(tDatums->at(0).poseKeypoints3D, poseKeypointVector, cameraParameterMatrices);
// Face 3-D reconstruction
reconstructArray(tDatums->at(0).faceKeypoints3D, faceKeypointVector, cameraParameterMatrices);
// Left hand 3-D reconstruction
reconstructArray(tDatums->at(0).handKeypoints3D[0], leftHandKeypointVector, cameraParameterMatrices);
// Right hand 3-D reconstruction
reconstructArray(tDatums->at(0).handKeypoints3D[1], rightHandKeypointVector, cameraParameterMatrices);
auto poseKeypoints3D = reconstructArray(poseKeypointVector, cameraParameterMatrices);
auto faceKeypoints3D = reconstructArray(faceKeypointVector, cameraParameterMatrices);
auto leftHandKeypoints3D = reconstructArray(leftHandKeypointVector, cameraParameterMatrices);
auto rightHandKeypoints3D = reconstructArray(rightHandKeypointVector, cameraParameterMatrices);
// Assign to all tDatums
for (auto& datumsElement : *tDatums)
{
datumsElement.poseKeypoints3D = poseKeypoints3D;
datumsElement.faceKeypoints3D = faceKeypoints3D;
datumsElement.handKeypoints3D[0] = leftHandKeypoints3D;
datumsElement.handKeypoints3D[1] = rightHandKeypoints3D;
}
// Profiling speed
Profiler::timerEnd(profilerKey);
Profiler::printAveragedTimeMsOnIterationX(profilerKey, __LINE__, __FUNCTION__, __FILE__);
......
......@@ -3,8 +3,14 @@
#include <memory> // std::shared_ptr
#include <ostream>
#include <string>
#include <vector>
// OpenPose name and version
const std::string OPEN_POSE_NAME_STRING = "OpenPose";
const std::string OPEN_POSE_VERSION_STRING = "1.2.1";
const std::string OPEN_POSE_NAME_AND_VERSION = OPEN_POSE_NAME_STRING + " " + OPEN_POSE_VERSION_STRING;
#ifndef _WIN32
#define OP_API
#elif defined OP_EXPORTS
......
#ifndef OPENPOSE_EXPERIMENTAL_3D_HEADERS_HPP
#define OPENPOSE_EXPERIMENTAL_3D_HEADERS_HPP
// Camera intrinsic and extrinsic parameters
// 3d module
#include <openpose/experimental/3d/cameraParameters.hpp>
// Flir (Point-Grey) cameras
#include <openpose/experimental/3d/flirReader.hpp>
// OpenGL Renderer
#include <openpose/experimental/3d/renderer.hpp>
#endif // OPENPOSE_EXPERIMENTAL_3D_HEADERS_HPP
#ifndef OPENPOSE_EXPERIMENTAL_3D_RENDERER_HPP
#define OPENPOSE_EXPERIMENTAL_3D_RENDERER_HPP
#include <openpose/core/common.hpp>
#include <openpose/pose/enumClasses.hpp>
#include <openpose/thread/workerConsumer.hpp>
namespace op
{
// This worker will do 3-D rendering
class OP_API WRender3D : public WorkerConsumer<std::shared_ptr<std::vector<Datum>>>
{
public:
WRender3D(const PoseModel poseModel = PoseModel::COCO_18);
~WRender3D();
void initializationOnThread();
void workConsumer(const std::shared_ptr<std::vector<Datum>>& datumsPtr);
};
}
#endif // OPENPOSE_EXPERIMENTAL_3D_RENDERER_HPP
......@@ -3,11 +3,23 @@
namespace op
{
/**
* GUI display modes.
* An enum class with the different output screen options (e.g. full screen, windored or disabling the display).
/**
* GUI display modes.
* An enum class with the different output screen options. E.g., 2-D, 3-D, all, none.
*/
enum class GuiDisplayMode : bool
enum class DisplayMode : unsigned short
{
NoDisplay, /**< No display. */
DisplayAll, /**< All (2-D and 3-D) displays */
Display2D, /**< Only 2-D display. */
Display3D /**< Only 3-D display. */
};
/**
* Full screen modes.
* An enum class with the different full screen mode options, i.e., full screen or windored.
*/
enum class FullScreenMode : bool
{
FullScreen, /**< Full screen mode. */
Windowed, /**< Windowed mode, depending on the frame output size. */
......
......@@ -15,38 +15,44 @@ namespace op
public:
/**
* Constructor of the FrameDisplayer class.
* @param windowedName const std::string value with the opencv resulting display name. Showed at the top-left part of the window.
* @param windowedName const std::string value with the opencv resulting display name. Showed at the top-left
* part of the window.
* @param initialWindowedSize const Point<int> with the initial window output resolution (width and height).
* @param fullScreen bool from which the FrameDisplayer::GuiDisplayMode property mGuiDisplayMode will be set, i.e. specifying the type of initial display (it can be changed later).
* @param fullScreen bool from which the FrameDisplayer::FullScreenMode property mFullScreenMode will be set,
* i.e. specifying the type of initial display (it can be changed later).
*/
FrameDisplayer(const std::string& windowedName = "OpenPose Display", const Point<int>& initialWindowedSize = Point<int>{}, const bool fullScreen = false);
FrameDisplayer(const std::string& windowedName = OPEN_POSE_NAME_AND_VERSION,
const Point<int>& initialWindowedSize = Point<int>{}, const bool fullScreen = false);
// Due to OpenCV visualization issues (all visualization functions must be in the same thread)
void initializationOnThread();
/**
* This function set the new FrameDisplayer::GuiDisplayMode (e.g. full screen).
* @param displayMode New FrameDisplayer::GuiDisplayMode state.
* This function set the new FrameDisplayer::FullScreenMode (e.g. full screen).
* @param fullScreenMode New FrameDisplayer::FullScreenMode state.
*/
void setGuiDisplayMode(const GuiDisplayMode displayMode);
void setFullScreenMode(const FullScreenMode fullScreenMode);
/**
* This function switch between full screen and windowed modes (e.g. when double-click on video players or Ctrt+Enter are presed).
* This function switch between full screen and windowed modes (e.g. when double-click on video players or
* Ctrt+Enter are presed).
*/
void switchGuiDisplayMode();
void switchFullScreenMode();
/**
* This function displays an image on the display.
* @param frame cv::Mat image to display.
* @param waitKeyValue int value that specifies the argument parameter for cv::waitKey (see OpenCV documentation for more information). Special cases: select -1
* not to use cv::waitKey or 0 for cv::waitKey(0). OpenCV doc: http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=waitkey
* @param waitKeyValue int value that specifies the argument parameter for cv::waitKey (see OpenCV
* documentation for more information). Special cases: select -1
* not to use cv::waitKey or 0 for cv::waitKey(0). OpenCV doc:
* http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=waitkey
*/
void displayFrame(const cv::Mat& frame, const int waitKeyValue = -1);
private:
const std::string mWindowName;
Point<int> mWindowedSize;
GuiDisplayMode mGuiDisplayMode;
FullScreenMode mFullScreenMode;
};
}
......
......@@ -5,7 +5,6 @@
#include <opencv2/core/core.hpp> // cv::Mat
#include <openpose/core/common.hpp>
#include <openpose/core/renderer.hpp>
#include <openpose/gui/enumClasses.hpp>
#include <openpose/gui/frameDisplayer.hpp>
#include <openpose/pose/poseExtractor.hpp>
......@@ -20,9 +19,16 @@ namespace op
const std::vector<std::shared_ptr<PoseExtractor>>& poseExtractors = {},
const std::vector<std::shared_ptr<Renderer>>& renderers = {});
void initializationOnThread();
virtual void initializationOnThread();
void update(const cv::Mat& cvOutputData = cv::Mat());
void setImage(const cv::Mat& cvMatOutput);
void setImage(const std::vector<cv::Mat>& cvMatOutputs);
virtual void update();
protected:
std::shared_ptr<std::atomic<bool>> spIsRunning;
private:
// Frames display
......@@ -30,7 +36,6 @@ namespace op
// Other variables
std::vector<std::shared_ptr<PoseExtractor>> mPoseExtractors;
std::vector<std::shared_ptr<Renderer>> mRenderers;
std::shared_ptr<std::atomic<bool>> spIsRunning;
std::shared_ptr<std::pair<std::atomic<bool>, std::atomic<int>>> spVideoSeek;
};
}
......
#ifndef OPENPOSE_GUI_GUI_3D_HPP
#define OPENPOSE_GUI_GUI_3D_HPP
#include <openpose/core/common.hpp>
#include <openpose/gui/enumClasses.hpp>
#include <openpose/gui/gui.hpp>
#include <openpose/pose/enumClasses.hpp>
#include <openpose/thread/workerConsumer.hpp>
namespace op
{
// This worker will do 3-D rendering
class OP_API Gui3D : public Gui
{
public:
Gui3D(const Point<int>& outputSize, const bool fullScreen,
const std::shared_ptr<std::atomic<bool>>& isRunningSharedPtr,
const std::shared_ptr<std::pair<std::atomic<bool>, std::atomic<int>>>& videoSeekSharedPtr = nullptr,
const std::vector<std::shared_ptr<PoseExtractor>>& poseExtractors = {},
const std::vector<std::shared_ptr<Renderer>>& renderers = {},
const PoseModel poseModel = PoseModel::COCO_18,
const DisplayMode displayMode = DisplayMode::DisplayAll);
~Gui3D();
void initializationOnThread();
void setKeypoints(const Array<float>& poseKeypoints3D, const Array<float>& faceKeypoints3D,
const Array<float>& leftHandKeypoints3D, const Array<float>& rightHandKeypoints3D);
void update();
private:
DisplayMode mDisplayMode;
};
}
#endif // OPENPOSE_GUI_GUI_3D_HPP
......@@ -5,8 +5,10 @@
#include <openpose/gui/enumClasses.hpp>
#include <openpose/gui/frameDisplayer.hpp>
#include <openpose/gui/gui.hpp>
#include <openpose/gui/gui3D.hpp>
#include <openpose/gui/guiInfoAdder.hpp>
#include <openpose/gui/wGui.hpp>
#include <openpose/gui/wGui3D.hpp>
#include <openpose/gui/wGuiInfoAdder.hpp>
#endif // OPENPOSE_GUI_HEADERS_HPP
......@@ -2,7 +2,6 @@
#define OPENPOSE_GUI_W_GUI_HPP
#include <openpose/core/common.hpp>
#include <openpose/gui/enumClasses.hpp>
#include <openpose/gui/gui.hpp>
#include <openpose/thread/workerConsumer.hpp>
......@@ -57,6 +56,7 @@ namespace op
{
try
{
// tDatums might be empty but we still wanna update the GUI
if (tDatums != nullptr)
{
// Check tDatums->size() == 1
......@@ -68,9 +68,11 @@ namespace op
const auto profilerKey = Profiler::timerInit(__LINE__, __FUNCTION__, __FILE__);
// T* to T
auto& tDatumsNoPtr = *tDatums;
// Refresh GUI
// Set image
const auto cvOutputData = (!tDatumsNoPtr.empty() ? tDatumsNoPtr[0].cvOutputData : cv::Mat());
spGui->update(cvOutputData);
spGui->setImage(cvOutputData);
// Refresh GUI
spGui->update();
// Profiling speed
if (!tDatumsNoPtr.empty())
{
......
#ifndef OPENPOSE_GUI_W_GUI_3D_HPP
#define OPENPOSE_GUI_W_GUI_3D_HPP
#include <openpose/core/common.hpp>
#include <openpose/gui/gui3D.hpp>
#include <openpose/thread/workerConsumer.hpp>
namespace op
{
template<typename TDatums>
class WGui3D : public WorkerConsumer<TDatums>
{
public:
explicit WGui3D(const std::shared_ptr<Gui3D>& gui3D);
void initializationOnThread();
void workConsumer(const TDatums& tDatums);
private:
std::shared_ptr<Gui3D> spGui3D;
DELETE_COPY(WGui3D);
};
}
// Implementation
#include <openpose/utilities/pointerContainer.hpp>
namespace op
{
template<typename TDatums>
WGui3D<TDatums>::WGui3D(const std::shared_ptr<Gui3D>& gui3D) :
spGui3D{gui3D}
{
}
template<typename TDatums>
void WGui3D<TDatums>::initializationOnThread()
{
try
{
spGui3D->initializationOnThread();
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
}
template<typename TDatums>
void WGui3D<TDatums>::workConsumer(const TDatums& tDatums)
{
try
{
// tDatums might be empty but we still wanna update the GUI
if (tDatums != nullptr)
{
// Debugging log
dLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
// Profiling speed
const auto profilerKey = Profiler::timerInit(__LINE__, __FUNCTION__, __FILE__);
if (!tDatums->empty())
{
// T* to T
auto& tDatum = (*tDatums)[0];
// Update cvMat
std::vector<cv::Mat> cvOutputDatas;
for (auto& tDatum : *tDatums)
cvOutputDatas.emplace_back(tDatum.cvOutputData);
spGui3D->setImage(cvOutputDatas);
// Update keypoints
spGui3D->setKeypoints(tDatum.poseKeypoints3D, tDatum.faceKeypoints3D, tDatum.handKeypoints3D[0],
tDatum.handKeypoints3D[1]);
// Refresh/update GUI
spGui3D->update();
// Profiling speed
Profiler::timerEnd(profilerKey);
Profiler::printAveragedTimeMsOnIterationX(profilerKey, __LINE__, __FUNCTION__, __FILE__);
}
// Debugging log
dLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
}
}
catch (const std::exception& e)
{
this->stop();
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
}
COMPILE_TEMPLATE_DATUM(WGui3D);
}
#endif // OPENPOSE_GUI_W_GUI_3D_HPP
......@@ -17,7 +17,8 @@ namespace op
explicit DatumProducer(const std::shared_ptr<Producer>& producerSharedPtr,
const unsigned long long frameFirst = 0,
const unsigned long long frameLast = std::numeric_limits<unsigned long long>::max(),
const std::shared_ptr<std::pair<std::atomic<bool>, std::atomic<int>>>& videoSeekSharedPtr = nullptr);
const std::shared_ptr<std::pair<std::atomic<bool>,
std::atomic<int>>>& videoSeekSharedPtr = nullptr);
std::pair<bool, std::shared_ptr<TDatumsNoPtr>> checkIfRunningAndGetDatum();
......@@ -47,7 +48,8 @@ namespace op
template<typename TDatumsNoPtr>
DatumProducer<TDatumsNoPtr>::DatumProducer(const std::shared_ptr<Producer>& producerSharedPtr,
const unsigned long long frameFirst, const unsigned long long frameLast,
const std::shared_ptr<std::pair<std::atomic<bool>, std::atomic<int>>>& videoSeekSharedPtr) :
const std::shared_ptr<std::pair<std::atomic<bool>,
std::atomic<int>>>& videoSeekSharedPtr) :
mNumberFramesToProcess{(frameLast != std::numeric_limits<unsigned long long>::max()
? frameLast - frameFirst : frameLast)},
spProducer{producerSharedPtr},
......
......@@ -3,6 +3,7 @@
#include <openpose/core/common.hpp>
#include <openpose/core/enumClasses.hpp>
#include <openpose/gui/enumClasses.hpp>
#include <openpose/pose/enumClasses.hpp>
#include <openpose/producer/producer.hpp>
......@@ -16,19 +17,28 @@ namespace op
// Determine type of frame source
OP_API ProducerType flagsToProducerType(const std::string& imageDirectory, const std::string& videoPath,
const std::string& ipCameraPath, const int webcamIndex);
const std::string& ipCameraPath, const int webcamIndex,
const bool flirCamera);
OP_API std::shared_ptr<Producer> flagsToProducer(const std::string& imageDirectory, const std::string& videoPath,
const std::string& ipCameraPath, const int webcamIndex,
const std::string& webcamResolution = "1280x720",
const double webcamFps = 30.);
OP_API std::shared_ptr<Producer> flagsToProducer(const std::string& imageDirectory, const std::string& videoPath,
const std::string& ipCameraPath, const int webcamIndex,
const bool flirCamera /*= false*/,
const std::string& webcamResolution /*= "1280x720"*/,
const double webcamFps /*= 30.*/);
OP_API std::vector<HeatMapType> flagsToHeatMaps(const bool heatMapsAddParts = false,
const bool heatMapsAddBkg = false,
const bool heatMapsAddPAFs = false);
OP_API RenderMode flagsToRenderMode(const int renderFlag, const int renderPoseFlag = -2);
OP_API DisplayMode flagsToDisplayMode(const int display, const bool enabled3d);
OP_API Point<int> flagsToPoint(const std::string& pointString, const std::string& pointExample = "1280x720");
}
......
......@@ -873,18 +873,19 @@ namespace op
mOutputWs.emplace_back(std::make_shared<WHeatMapSaver<TDatumsPtr>>(heatMapSaver));
}
// Add frame information for GUI
const bool guiEnabled = (wrapperStructOutput.displayMode != DisplayMode::NoDisplay);
// If this WGuiInfoAdder instance is placed before the WImageSaver or WVideoSaver, then the resulting
// recorded frames will look exactly as the final displayed image by the GUI
if (wrapperStructOutput.guiVerbose && (wrapperStructOutput.displayGui || !mUserOutputWs.empty()
if (wrapperStructOutput.guiVerbose && (guiEnabled || !mUserOutputWs.empty()
|| mThreadManagerMode == ThreadManagerMode::Asynchronous
|| mThreadManagerMode == ThreadManagerMode::AsynchronousOut))
{
const auto guiInfoAdder = std::make_shared<GuiInfoAdder>(numberThreads, wrapperStructOutput.displayGui);
const auto guiInfoAdder = std::make_shared<GuiInfoAdder>(numberThreads, guiEnabled);
mOutputWs.emplace_back(std::make_shared<WGuiInfoAdder<TDatumsPtr>>(guiInfoAdder));
}
// Minimal graphical user interface (GUI)
spWGui = nullptr;
if (wrapperStructOutput.displayGui)
if (guiEnabled)
{
// PoseRenderers to Renderers
std::vector<std::shared_ptr<Renderer>> renderers;
......@@ -893,13 +894,31 @@ namespace op
else
for (const auto& poseGpuRenderer : poseGpuRenderers)
renderers.emplace_back(std::static_pointer_cast<Renderer>(poseGpuRenderer));
// Gui
const auto gui = std::make_shared<Gui>(
finalOutputSize, wrapperStructOutput.fullScreen, mThreadManager.getIsRunningSharedPtr(),
spVideoSeek, poseExtractors, renderers
);
// WGui
spWGui = {std::make_shared<WGui<TDatumsPtr>>(gui)};
// Display
// 3-D (+2-D) display
if (wrapperStructOutput.displayMode == DisplayMode::Display3D
|| wrapperStructOutput.displayMode == DisplayMode::DisplayAll)
{
// Gui
auto gui = std::make_shared<Gui3D>(
finalOutputSize, wrapperStructOutput.fullScreen, mThreadManager.getIsRunningSharedPtr(),
spVideoSeek, poseExtractors, renderers, wrapperStructPose.poseModel,
wrapperStructOutput.displayMode
);
// WGui
spWGui = {std::make_shared<WGui3D<TDatumsPtr>>(gui)};
}
// 2-D display
else if (wrapperStructOutput.displayMode == DisplayMode::Display2D)
{
// Gui
auto gui = std::make_shared<Gui>(
finalOutputSize, wrapperStructOutput.fullScreen, mThreadManager.getIsRunningSharedPtr(),
spVideoSeek, poseExtractors, renderers
);
// WGui
spWGui = {std::make_shared<WGui<TDatumsPtr>>(gui)};
}
}
// Set wrapper as configured
mConfigured = true;
......
......@@ -3,6 +3,7 @@
#include <openpose/core/common.hpp>
#include <openpose/filestream/enumClasses.hpp>
#include <openpose/gui/enumClasses.hpp>
namespace op
{
......@@ -13,9 +14,15 @@ namespace op
struct OP_API WrapperStructOutput
{
/**
* Whether to display the OpenPose small integrated GUI.
* Display mode
* a) -1 for automatic selection.
* b) 0 for no display. Useful if there is no X server and/or to slightly speed up the processing if visual
* output is not required.
* c) 2 for 2-D display in the OpenPose small integrated GUI.
* d) 3 for 3-D display, if `--3d` was enabled.
* e) 1 for both 2-D and 3-D display.
*/
bool displayGui;
DisplayMode displayMode;
/**
* Whether to add some information to the frame (number of frame, number people detected, etc.) after it is
......@@ -98,7 +105,7 @@ namespace op
* It has the recommended and default values we recommend for each element of the struct.
* Since all the elements of the struct are public, they can also be manually filled.
*/
WrapperStructOutput(const bool displayGui = false, const bool guiVerbose = false,
WrapperStructOutput(const DisplayMode displayMode = DisplayMode::NoDisplay, const bool guiVerbose = false,
const bool fullScreen = false, const std::string& writeKeypoint = "",
const DataFormat writeKeypointFormat = DataFormat::Xml,
const std::string& writeJson = "", const std::string& writeCocoJson = "",
......
......@@ -9,20 +9,20 @@ set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_3D_WITH_CP} PARENT_SCOPE)
if (UNIX AND NOT APPLE)
if (${GPU_MODE} MATCHES "CUDA")
cuda_add_library(openpose_core ${SOURCES_OP_3D})
cuda_add_library(openpose_3d ${SOURCES_OP_3D})
else()
add_library(openpose_core ${SOURCES_OP_3D})
add_library(openpose_3d ${SOURCES_OP_3D})
endif ()
add_library(caffe SHARED IMPORTED)
set_property(TARGET caffe PROPERTY IMPORTED_LOCATION ${Caffe_LIBS})
target_link_libraries(openpose_core caffe ${MKL_LIBS})
target_link_libraries(openpose_3d caffe ${MKL_LIBS})
if (BUILD_CAFFE)
add_dependencies(openpose_core openpose_caffe)
add_dependencies(openpose_3d openpose_caffe)
endif (BUILD_CAFFE)
install(TARGETS openpose_core
install(TARGETS openpose_3d
EXPORT OpenPose
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
......
......@@ -83,11 +83,17 @@ namespace op
}
}
void reconstructArray(Array<float>& keypoints3D, const std::vector<Array<float>>& keypointsVector,
const std::vector<cv::Mat>& matrixEachCamera)
Array<float> reconstructArray(const std::vector<Array<float>>& keypointsVector,
const std::vector<cv::Mat>& matrixEachCamera)
{
try
{
Array<float> keypoints3D;
// Security checks
if (matrixEachCamera.size() < 2)
error("Only 1 camera detected. The 3-D reconstruction module can only be used with > 1 cameras"
" simultaneously. E.g., using FLIR stereo cameras (`--flir_camera`).",
__LINE__, __FUNCTION__, __FILE__);
// Get number body parts
auto detectionMissed = false;
for (auto& keypoints : keypointsVector)
......@@ -102,6 +108,7 @@ namespace op
if (!detectionMissed)
{
const auto numberBodyParts = keypointsVector.at(0).getSize(1);
const auto lastChannelLength = keypointsVector.at(0).getSize(2);
// Create x-y vector from high score results
const auto threshold = 0.2f;
std::vector<int> indexesUsed;
......@@ -111,11 +118,12 @@ namespace op
// Create vector of points
auto missedPoint = false;
std::vector<cv::Point2d> xyPointsElement;
const auto baseIndex = part * lastChannelLength;
for (auto& keypoints : keypointsVector)
{
if (keypoints[{0, part, 2}] > threshold)
xyPointsElement.emplace_back(cv::Point2d{ keypoints[{0, part, 0}],
keypoints[{0, part, 1}]});
if (keypoints[baseIndex+2] > threshold)
xyPointsElement.emplace_back(cv::Point2d{ keypoints[baseIndex],
keypoints[baseIndex+1]});
else
{
missedPoint = true;
......@@ -146,28 +154,28 @@ namespace op
// cv::Mat reconstructedPoints{4, firstcv::Points.size(), CV_64F};
// cv::triangulatecv::Points(cv::Mat::eye(3,4, CV_64F), M_3_1, firstcv::Points, secondcv::Points,
// reconstructedcv::Points);
keypoints3D = Array<float>{ { 1, numberBodyParts, 4 }, 0 };
keypoints3D.reset({ 1, numberBodyParts, 4 }, 0);
const auto lastChannelLength = keypoints3D.getSize(2);
for (auto index = 0u; index < indexesUsed.size(); index++)
{
auto& xValue = keypoints3D[{0, indexesUsed[index], 0}];
auto& yValue = keypoints3D[{0, indexesUsed[index], 1}];
auto& zValue = keypoints3D[{0, indexesUsed[index], 2}];
auto& scoreValue = keypoints3D[{0, indexesUsed[index], 3}];
if (std::isfinite(xyzPoints[index].x) && std::isfinite(xyzPoints[index].y)
&& std::isfinite(xyzPoints[index].z))
{
xValue = xyzPoints[index].x;
yValue = xyzPoints[index].y;
zValue = xyzPoints[index].z;
scoreValue = 1.f;
const auto baseIndex = indexesUsed[index] * lastChannelLength;
keypoints3D[baseIndex] = xyzPoints[index].x;
keypoints3D[baseIndex + 1] = xyzPoints[index].y;
keypoints3D[baseIndex + 2] = xyzPoints[index].z;
keypoints3D[baseIndex + 3] = 1.f;
}
}
}
}
return keypoints3D;
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
return Array<float>{};
}
}
}
set(SOURCES_OP_3D
cameraParameters.cpp
flirReader.cpp
renderer.cpp)
flirReader.cpp)
include(${CMAKE_SOURCE_DIR}/cmake/Utils.cmake)
prepend(SOURCES_OP_3D_WITH_CP ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCES_OP_3D})
......@@ -9,11 +8,11 @@ set(SOURCES_OP_3D_WITH_CP ${SOURCES_OP_3D_WITH_CP} PARENT_SCOPE)
set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} ${SOURCES_OP_3D_WITH_CP} PARENT_SCOPE)
if (UNIX AND NOT APPLE)
add_library(openpose_3d ${SOURCES_OP_3D})
add_library(openpose_experimental_3d ${SOURCES_OP_3D})
set_target_properties(openpose_3d PROPERTIES COMPILE_FLAGS ${OP_CXX_FLAGS})
set_target_properties(openpose_experimental_3d PROPERTIES COMPILE_FLAGS ${OP_CXX_FLAGS})
install(TARGETS openpose_3d
install(TARGETS openpose_experimental_3d
EXPORT OpenPose
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
......
......@@ -3,7 +3,7 @@ add_subdirectory(tracking)
if (UNIX AND NOT APPLE)
add_custom_target(openpose_experimental)
add_dependencies(openpose_experimental openpose_tracking openpose_3d)
add_dependencies(openpose_experimental openpose_tracking openpose_experimental_3d)
endif (UNIX AND NOT APPLE)
set(SOURCES_OPENPOSE ${SOURCES_OPENPOSE} PARENT_SCOPE)
......@@ -2,6 +2,7 @@ set(SOURCES_OP_GUI
defineTemplates.cpp
frameDisplayer.cpp
gui.cpp
gui3D.cpp
guiInfoAdder.cpp
)
......
......@@ -3,5 +3,6 @@
namespace op
{
DEFINE_TEMPLATE_DATUM(WGui);
DEFINE_TEMPLATE_DATUM(WGui3D);
DEFINE_TEMPLATE_DATUM(WGuiInfoAdder);
}
#include <opencv2/opencv.hpp> // cv::imshow, cv::waitKey, cv::namedWindow, cv::setWindowProperty
// #include <opencv2/opencv.hpp> // cv::imshow, cv::waitKey, cv::namedWindow, cv::setWindowProperty
#include <opencv2/highgui/highgui.hpp> // cv::imshow, cv::waitKey, cv::namedWindow, cv::setWindowProperty
#include <openpose/gui/frameDisplayer.hpp>
namespace op
{
FrameDisplayer::FrameDisplayer(const std::string& windowedName, const Point<int>& initialWindowedSize, const bool fullScreen) :
FrameDisplayer::FrameDisplayer(const std::string& windowedName, const Point<int>& initialWindowedSize,
const bool fullScreen) :
mWindowName{windowedName},
mWindowedSize{initialWindowedSize},
mGuiDisplayMode{(fullScreen ? GuiDisplayMode::FullScreen : GuiDisplayMode::Windowed)}
mFullScreenMode{(fullScreen ? FullScreenMode::FullScreen : FullScreenMode::Windowed)}
{
try
{
......@@ -25,12 +26,15 @@ namespace op
{
try
{
setGuiDisplayMode(mGuiDisplayMode);
setFullScreenMode(mFullScreenMode);
const cv::Mat blackFrame(mWindowedSize.y, mWindowedSize.x, CV_32FC3, {0,0,0});
FrameDisplayer::displayFrame(blackFrame);
cv::waitKey(1); // This one will show most probably a white image (I guess the program does not have time to render in 1 msec)
// cv::waitKey(1000); // This one will show the desired black image
// This one will show most probably a white image (I guess the program does not have time to render
// in 1 msec)
cv::waitKey(1);
// // This one will show the desired black image
// cv::waitKey(1000);
}
catch (const std::exception& e)
{
......@@ -38,23 +42,23 @@ namespace op
}
}
void FrameDisplayer::setGuiDisplayMode(const GuiDisplayMode displayMode)
void FrameDisplayer::setFullScreenMode(const FullScreenMode fullScreenMode)
{
try
{
mGuiDisplayMode = displayMode;
mFullScreenMode = fullScreenMode;
// Setting output resolution
cv::namedWindow(mWindowName, CV_WINDOW_NORMAL | CV_WINDOW_KEEPRATIO);
if (mGuiDisplayMode == GuiDisplayMode::FullScreen)
if (mFullScreenMode == FullScreenMode::FullScreen)
cv::setWindowProperty(mWindowName, CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN);
else if (mGuiDisplayMode == GuiDisplayMode::Windowed)
else if (mFullScreenMode == FullScreenMode::Windowed)
{
cv::resizeWindow(mWindowName, mWindowedSize.x, mWindowedSize.y);
cv::setWindowProperty(mWindowName, CV_WND_PROP_FULLSCREEN, CV_WINDOW_NORMAL);
}
else
error("Unknown GuiDisplayMode", __LINE__, __FUNCTION__, __FILE__);
error("Unknown FullScreenMode", __LINE__, __FUNCTION__, __FILE__);
}
catch (const std::exception& e)
{
......@@ -62,16 +66,16 @@ namespace op
}
}
void FrameDisplayer::switchGuiDisplayMode()
void FrameDisplayer::switchFullScreenMode()
{
try
{
if (mGuiDisplayMode == GuiDisplayMode::FullScreen)
setGuiDisplayMode(GuiDisplayMode::Windowed);
else if (mGuiDisplayMode == GuiDisplayMode::Windowed)
setGuiDisplayMode(GuiDisplayMode::FullScreen);
if (mFullScreenMode == FullScreenMode::FullScreen)
setFullScreenMode(FullScreenMode::Windowed);
else if (mFullScreenMode == FullScreenMode::Windowed)
setFullScreenMode(FullScreenMode::FullScreen);
else
error("Unknown GuiDisplayMode", __LINE__, __FUNCTION__, __FILE__);
error("Unknown FullScreenMode", __LINE__, __FUNCTION__, __FILE__);
}
catch (const std::exception& e)
{
......@@ -89,7 +93,9 @@ namespace op
mWindowedSize.x = std::max(mWindowedSize.x, frame.cols);
mWindowedSize.y = std::max(mWindowedSize.y, frame.rows);
cv::resizeWindow(mWindowName, mWindowedSize.x, mWindowedSize.y);
cv::waitKey(1); // This one will show most probably a white image (I guess the program does not have time to render in 1 msec)
// This one will show most probably a white image (I guess the program does not have time to render
// in 1 msec)
cv::waitKey(1);
}
cv::imshow(mWindowName, frame);
if (waitKeyValue != -1)
......
......@@ -7,8 +7,6 @@
namespace op
{
const std::string OPEN_POSE_TEXT{"OpenPose 1.2.1"};
inline void showGuiHelp()
{
try
......@@ -18,7 +16,7 @@ namespace op
if (!helpCvMat.empty())
{
const auto fullScreen = false;
FrameDisplayer frameDisplayer{OPEN_POSE_TEXT + " - GUI Help",
FrameDisplayer frameDisplayer{OPEN_POSE_NAME_AND_VERSION + " - GUI Help",
Point<int>{helpCvMat.cols, helpCvMat.rows}, fullScreen};
frameDisplayer.displayFrame(helpCvMat, 33);
}
......@@ -57,7 +55,7 @@ namespace op
showGuiHelp();
// Switch full screen - normal screen
else if (castedKey=='f')
frameDisplayer.switchGuiDisplayMode();
frameDisplayer.switchFullScreenMode();
// ------------------------- Producer-Related ------------------------- //
// Pause
else if (castedKey==' ')
......@@ -162,10 +160,10 @@ namespace op
const std::shared_ptr<std::pair<std::atomic<bool>, std::atomic<int>>>& videoSeekSharedPtr,
const std::vector<std::shared_ptr<PoseExtractor>>& poseExtractors,
const std::vector<std::shared_ptr<Renderer>>& renderers) :
mFrameDisplayer{OPEN_POSE_TEXT, outputSize, fullScreen},
spIsRunning{isRunningSharedPtr},
mFrameDisplayer{OPEN_POSE_NAME_AND_VERSION, outputSize, fullScreen},
mPoseExtractors{poseExtractors},
mRenderers{renderers},
spIsRunning{isRunningSharedPtr},
spVideoSeek{videoSeekSharedPtr}
{
}
......@@ -175,17 +173,68 @@ namespace op
mFrameDisplayer.initializationOnThread();
}
void Gui::update(const cv::Mat& cvOutputData)
void Gui::setImage(const cv::Mat& cvMatOutput)
{
try
{
// Check tDatum integrity
const bool returnedIsValidFrame = ((spIsRunning == nullptr || *spIsRunning) && !cvOutputData.empty());
const bool returnedIsValidFrame = ((spIsRunning == nullptr || *spIsRunning) && !cvMatOutput.empty());
// Display
if (returnedIsValidFrame)
mFrameDisplayer.displayFrame(cvOutputData, -1);
mFrameDisplayer.displayFrame(cvMatOutput, -1);
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
}
void Gui::setImage(const std::vector<cv::Mat>& cvMatOutputs)
{
try
{
// 0 image
if (cvMatOutputs.empty())
setImage(cvMatOutputs[0]);
// 1 image
else if (cvMatOutputs.size() == 1)
setImage(cvMatOutputs[0]);
// > 1 image
else
{
// Check tDatum integrity
bool returnedIsValidFrame = ((spIsRunning == nullptr || *spIsRunning) && !cvMatOutputs.empty());
if (returnedIsValidFrame)
{
// Security checks
for (const auto& cvMatOutput : cvMatOutputs)
if (cvMatOutput.empty())
returnedIsValidFrame = false;
// Prepare final cvMat
if (returnedIsValidFrame)
{
// Concat (0)
cv::Mat cvMat = cvMatOutputs[0].clone();
// Concat (1,size()-1)
for (auto i = 1u; i < cvMatOutputs.size(); i++)
cv::hconcat(cvMat, cvMatOutputs[i], cvMat);
// Display
mFrameDisplayer.displayFrame(cvMat, -1);
}
}
}
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
}
void Gui::update()
{
try
{
// Handle user input
handleUserInput(mFrameDisplayer, mPoseExtractors, mRenderers, spIsRunning, spVideoSeek);
}
......
#include <mutex>
#include <atomic>
#include <mutex>
#include <stdio.h>
#ifdef WITH_3D_RENDERER
#include <GL/glut.h>
......@@ -9,19 +10,20 @@
#include <openpose/face/faceParameters.hpp>
#include <openpose/hand/handParameters.hpp>
#include <openpose/pose/poseParameters.hpp>
#include <openpose/experimental/3d/renderer.hpp>
#include <openpose/gui/gui3D.hpp>
namespace op
{
const bool LOG_VERBOSE_3D_RENDERER = false;
#ifdef WITH_3D_RENDERER
const bool LOG_VERBOSE_3D_RENDERER = false;
std::atomic<bool> sConstructorSet{false};
struct Keypoints3D
{
Array<float> mPoseKeypoints;
Array<float> mFaceKeypoints;
Array<float> mLeftHandKeypoints;
Array<float> mRightHandKeypoints;
Array<float> poseKeypoints;
Array<float> faceKeypoints;
Array<float> leftHandKeypoints;
Array<float> rightHandKeypoints;
bool validKeypoints;
std::mutex mutex;
};
......@@ -42,7 +44,6 @@ namespace op
const std::vector<GLfloat> LIGHT_DIFFUSE{ 1.f, 1.f, 1.f, 1.f }; // Diffuse light
const std::vector<GLfloat> LIGHT_POSITION{ 1.f, 1.f, 1.f, 0.f }; // Infinite light location
const std::vector<GLfloat> COLOR_DIFFUSE{ 0.5f, 0.5f, 0.5f, 1.f };
const std::string GUI_NAME{"OpenPose 3-D Reconstruction"};
const auto RAD_TO_DEG = 0.0174532925199433;
......@@ -172,7 +173,7 @@ namespace op
}
}
void initGraphics(void)
void initGraphics()
{
// Enable a single OpenGL light
glLightfv(GL_LIGHT0, GL_AMBIENT, LIGHT_DIFFUSE.data());
......@@ -278,11 +279,11 @@ namespace op
std::unique_lock<std::mutex> lock{gKeypoints3D.mutex};
if (gKeypoints3D.validKeypoints)
{
renderHumanBody(gKeypoints3D.mPoseKeypoints, getPoseBodyPartPairsRender(sPoseModel),
renderHumanBody(gKeypoints3D.poseKeypoints, getPoseBodyPartPairsRender(sPoseModel),
getPoseColors(sPoseModel), 1.f);
renderHumanBody(gKeypoints3D.mFaceKeypoints, FACE_PAIRS_RENDER, FACE_COLORS_RENDER, 0.5f);
renderHumanBody(gKeypoints3D.mLeftHandKeypoints, HAND_PAIRS_RENDER, HAND_COLORS_RENDER, 0.5f);
renderHumanBody(gKeypoints3D.mRightHandKeypoints, HAND_PAIRS_RENDER, HAND_COLORS_RENDER, 0.5f);
renderHumanBody(gKeypoints3D.faceKeypoints, FACE_PAIRS_RENDER, FACE_COLORS_RENDER, 0.5f);
renderHumanBody(gKeypoints3D.leftHandKeypoints, HAND_PAIRS_RENDER, HAND_COLORS_RENDER, 0.5f);
renderHumanBody(gKeypoints3D.rightHandKeypoints, HAND_PAIRS_RENDER, HAND_COLORS_RENDER, 0.5f);
}
lock.unlock();
......@@ -390,7 +391,7 @@ namespace op
// https://stackoverflow.com/questions/3799803/is-it-possible-to-make-a-window-withouth-a-top-in-glut
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH | GLUT_MULTISAMPLE);
// Create and set up a window
glutCreateWindow(GUI_NAME.c_str());
glutCreateWindow(std::string{OPEN_POSE_NAME_AND_VERSION + " - 3-D Display"}.c_str());
initGraphics();
glutDisplayFunc(renderMain);
glutMouseFunc(mouseButton);
......@@ -409,17 +410,29 @@ namespace op
}
#endif
WRender3D::WRender3D(const PoseModel poseModel)
Gui3D::Gui3D(const Point<int>& outputSize, const bool fullScreen,
const std::shared_ptr<std::atomic<bool>>& isRunningSharedPtr,
const std::shared_ptr<std::pair<std::atomic<bool>, std::atomic<int>>>& videoSeekSharedPtr,
const std::vector<std::shared_ptr<PoseExtractor>>& poseExtractors,
const std::vector<std::shared_ptr<Renderer>>& renderers, const PoseModel poseModel,
const DisplayMode displayMode) :
Gui{outputSize, fullScreen, isRunningSharedPtr, videoSeekSharedPtr, poseExtractors, renderers},
mDisplayMode{displayMode}
{
try
{
#ifdef WITH_3D_RENDERER
// Update sPoseModel
sPoseModel = poseModel;
if (!sConstructorSet)
sConstructorSet = true;
else
error("The Gui3D class can only be initialized once.", __LINE__, __FUNCTION__, __FILE__);
#else
UNUSED(poseModel);
error("OpenPose must be compiled with `WITH_3D_RENDERER` in order to use this class.",
__LINE__, __FUNCTION__, __FILE__);
if (mDisplayMode == DisplayMode::DisplayAll || mDisplayMode == DisplayMode::Display3D)
error("OpenPose must be compiled with `WITH_3D_RENDERER` in order to use the 3-D visualization"
"renderer. Alternatively, set 2-D rendering.", __LINE__, __FUNCTION__, __FILE__);
#endif
}
catch (const std::exception& e)
......@@ -428,12 +441,29 @@ namespace op
}
}
WRender3D::~WRender3D()
Gui3D::~Gui3D()
{
#ifdef WITH_3D_RENDERER
try
{
glutLeaveMainLoop();
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
#endif
}
void Gui3D::initializationOnThread()
{
try
{
// Init parent class
Gui::initializationOnThread();
#ifdef WITH_3D_RENDERER
glutLeaveMainLoop();
// OpenGL - Initialization
initializeVisualization();
#endif
}
catch (const std::exception& e)
......@@ -442,83 +472,72 @@ namespace op
}
}
void WRender3D::initializationOnThread()
void Gui3D::setKeypoints(const Array<float>& poseKeypoints3D, const Array<float>& faceKeypoints3D,
const Array<float>& leftHandKeypoints3D, const Array<float>& rightHandKeypoints3D)
{
#ifdef WITH_3D_RENDERER
try
{
// Init display
cv::imshow(GUI_NAME, cv::Mat(500, 500, CV_8UC3, cv::Scalar{ 0,0,0 }));
// OpenGL - Initialization
initializeVisualization();
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
#endif
try
{
// 3-D rendering
#ifdef WITH_3D_RENDERER
if (mDisplayMode == DisplayMode::DisplayAll || mDisplayMode == DisplayMode::Display3D)
{
if (!poseKeypoints3D.empty() || !faceKeypoints3D.empty()
|| !leftHandKeypoints3D.empty() || !rightHandKeypoints3D.empty())
{
// OpenGL Rendering
std::unique_lock<std::mutex> lock{gKeypoints3D.mutex};
gKeypoints3D.poseKeypoints = poseKeypoints3D;
gKeypoints3D.faceKeypoints = faceKeypoints3D;
gKeypoints3D.leftHandKeypoints = leftHandKeypoints3D;
gKeypoints3D.rightHandKeypoints = rightHandKeypoints3D;
gKeypoints3D.validKeypoints = true;
lock.unlock();
}
}
#else
UNUSED(poseKeypoints3D);
UNUSED(faceKeypoints3D);
UNUSED(leftHandKeypoints3D);
UNUSED(rightHandKeypoints3D);
#endif
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
}
void WRender3D::workConsumer(const std::shared_ptr<std::vector<Datum>>& datumsPtr)
void Gui3D::update()
{
#ifdef WITH_3D_RENDERER
try
{
// Debugging log
dLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
// Profiling speed
const auto profilerKey = Profiler::timerInit(__LINE__, __FUNCTION__, __FILE__);
// User's displaying/saving/other processing here
// datum.cvOutputData: rendered frame with pose or heatmaps
// datum.poseKeypoints: Array<float> with the estimated pose
if (datumsPtr != nullptr && !datumsPtr->empty())
try
{
// 2-D rendering
// Display all 2-D views
if (mDisplayMode == DisplayMode::DisplayAll || mDisplayMode == DisplayMode::Display2D)
Gui::update();
// 3-D rendering
#ifdef WITH_3D_RENDERER
if (mDisplayMode == DisplayMode::DisplayAll || mDisplayMode == DisplayMode::Display3D)
{
cv::Mat cvMat = datumsPtr->at(0).cvOutputData.clone();
for (auto i = 1u; i < datumsPtr->size(); i++)
cv::hconcat(cvMat, datumsPtr->at(i).cvOutputData, cvMat);
// while (cvMat.cols > 1500 || cvMat.rows > 1500)
while (cvMat.cols > 1920 || cvMat.rows > 1920)
// while (cvMat.rows > 3500)
cv::pyrDown(cvMat, cvMat);
// Display all views
cv::imshow(GUI_NAME, cvMat);
cv::resizeWindow(GUI_NAME, cvMat.cols, cvMat.rows);
// OpenGL Rendering
std::unique_lock<std::mutex> lock{gKeypoints3D.mutex};
gKeypoints3D.mPoseKeypoints = datumsPtr->at(0).poseKeypoints3D;
gKeypoints3D.mFaceKeypoints = datumsPtr->at(0).faceKeypoints3D;
gKeypoints3D.mLeftHandKeypoints = datumsPtr->at(0).handKeypoints3D[0];
gKeypoints3D.mRightHandKeypoints = datumsPtr->at(0).handKeypoints3D[1];
gKeypoints3D.validKeypoints = true;
// Esc pressed -> Close program
if (sLastKeyPressed == 27)
this->stop();
if (spIsRunning != nullptr)
*spIsRunning = false;
lock.unlock();
// Profiling speed
Profiler::timerEnd(profilerKey);
Profiler::printAveragedTimeMsOnIterationX(profilerKey, __LINE__, __FUNCTION__, __FILE__);
// OpenCL - Run main loop event
// It is run outside loop, or it would get visually stuck if loop to slow
idleFunction();
glutMainLoopEvent();
// This alternative can only be called once, and it will block the thread until program exit
// glutMainLoop();
}
// Render images
// It sleeps 1 ms just to let the user see the 2D visual output
// Change to 33ms for normal 30 fps display if too fast
if ((char)cv::waitKey(1) == 27)
this->stop();
// OpenCL - Run main loop event
// It is run outside loop, or it would get visually stuck if loop to slow
idleFunction();
glutMainLoopEvent();
// This alternative can only be called once, and it will block the thread until program exit
// glutMainLoop();
// Debugging log
dLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
}
catch (const std::exception& e)
{
this->stop();
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
#else
UNUSED(datumsPtr);
#endif
#endif
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
}
}
}
#include <cstdio> // sscanf
// #include <openpose/producer/flirReader.hpp>
#include <openpose/producer/imageDirectoryReader.hpp>
#include <openpose/producer/ipCameraReader.hpp>
#include <openpose/producer/videoReader.hpp>
......@@ -97,24 +98,22 @@ namespace op
}
ProducerType flagsToProducerType(const std::string& imageDirectory, const std::string& videoPath,
const std::string& ipCameraPath, const int webcamIndex)
const std::string& ipCameraPath, const int webcamIndex,
const bool flirCamera)
{
try
{
log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
// Avoid duplicates (e.g. selecting at the time camera & video)
if (int(!imageDirectory.empty()) + int(!videoPath.empty()) + int(!ipCameraPath.empty()) > 1)
error("Selected simultaneously image directory, video and/or IP camera. Please, select only one.",
__LINE__, __FUNCTION__, __FILE__);
else if (!imageDirectory.empty() && webcamIndex > 0)
error("Selected simultaneously image directory and webcam. Please, select only one.",
__LINE__, __FUNCTION__, __FILE__);
else if (!videoPath.empty() && webcamIndex > 0)
error("Selected simultaneously video and webcam. Please, select only one.",
__LINE__, __FUNCTION__, __FILE__);
else if (!ipCameraPath.empty() && webcamIndex > 0)
error("Selected simultaneously IP camera and webcam. Please, select only one.",
__LINE__, __FUNCTION__, __FILE__);
if (int(!imageDirectory.empty()) + int(!videoPath.empty()) + int(webcamIndex > 0)
+ int(flirCamera) + int(!ipCameraPath.empty()) > 1)
error("Selected simultaneously"
" image directory (seletected: " + (imageDirectory.empty() ? "no" : imageDirectory) + "),"
" video (seletected: " + (videoPath.empty() ? "no" : videoPath) + "),"
" camera (selected: " + (webcamIndex > 0 ? std::to_string(webcamIndex) : "no") + "),"
" flirCamera (selected: " + (flirCamera ? "yes" : "no") + ","
" and/or IP camera (selected: " + (ipCameraPath.empty() ? "no" : ipCameraPath) + ")."
" Please, select only one.", __LINE__, __FUNCTION__, __FILE__);
// Get desired ProducerType
if (!imageDirectory.empty())
......@@ -123,8 +122,11 @@ namespace op
return ProducerType::Video;
else if (!ipCameraPath.empty())
return ProducerType::IPCamera;
// else if (flirCamera)
// return ProducerType::FlirCamera;
else
return ProducerType::Webcam;
UNUSED(flirCamera);
}
catch (const std::exception& e)
{
......@@ -136,11 +138,28 @@ namespace op
std::shared_ptr<Producer> flagsToProducer(const std::string& imageDirectory, const std::string& videoPath,
const std::string& ipCameraPath, const int webcamIndex,
const std::string& webcamResolution, const double webcamFps)
{
try
{
return flagsToProducer(imageDirectory, videoPath, ipCameraPath, webcamIndex, false, webcamResolution,
webcamFps);
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
return std::shared_ptr<Producer>{};
}
}
std::shared_ptr<Producer> flagsToProducer(const std::string& imageDirectory, const std::string& videoPath,
const std::string& ipCameraPath, const int webcamIndex,
const bool flirCamera, const std::string& webcamResolution,
const double webcamFps)
{
try
{
log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
const auto type = flagsToProducerType(imageDirectory, videoPath, ipCameraPath, webcamIndex);
const auto type = flagsToProducerType(imageDirectory, videoPath, ipCameraPath, webcamIndex, flirCamera);
if (type == ProducerType::ImageDirectory)
return std::make_shared<ImageDirectoryReader>(imageDirectory);
......@@ -148,6 +167,8 @@ namespace op
return std::make_shared<VideoReader>(videoPath);
else if (type == ProducerType::IPCamera)
return std::make_shared<IpCameraReader>(ipCameraPath);
// else if (type == ProducerType::FlirCamera)
// return std::make_shared<FlirReader>();
else if (type == ProducerType::Webcam)
{
// cameraFrameSize
......@@ -244,6 +265,41 @@ namespace op
}
}
DisplayMode flagsToDisplayMode(const int display, const bool enabled3d)
{
try
{
// Automatic --> All if 3d enabled, 2d otherwise
if (display == -1)
{
if (enabled3d)
return DisplayMode::DisplayAll;
else
return DisplayMode::Display2D;
}
// No render
else if (display == 0)
return DisplayMode::NoDisplay;
// All (2-D + 3-D)
else if (display == 1)
return DisplayMode::DisplayAll;
// 2-D
else if (display == 2)
return DisplayMode::Display2D;
// 3-D
else if (display == 3)
return DisplayMode::Display3D;
// else
error("Undefined RenderMode selected.", __LINE__, __FUNCTION__, __FILE__);
return DisplayMode::NoDisplay;
}
catch (const std::exception& e)
{
error(e.what(), __LINE__, __FUNCTION__, __FILE__);
return DisplayMode::NoDisplay;
}
}
Point<int> flagsToPoint(const std::string& pointString, const std::string& pointExample)
{
try
......
......@@ -60,9 +60,10 @@ namespace op
|| !wrapperStructOutput.writeKeypoint.empty() || !wrapperStructOutput.writeJson.empty()
|| !wrapperStructOutput.writeCocoJson.empty() || !wrapperStructOutput.writeHeatMaps.empty()
);
if (!wrapperStructOutput.displayGui && !savingSomething)
const bool guiEnabled = (wrapperStructOutput.displayMode != DisplayMode::NoDisplay);
if (!guiEnabled && !savingSomething)
{
const auto message = "No output is selected (`--no_display`) and no results are generated (no"
const auto message = "No output is selected (`--display 0`) and no results are generated (no"
" `--write_X` flags enabled). Thus, no output would be generated."
+ additionalMessage;
error(message, __LINE__, __FUNCTION__, __FILE__);
......@@ -75,10 +76,10 @@ namespace op
error(message, __LINE__, __FUNCTION__, __FILE__);
}
// Warnings
if ((wrapperStructOutput.displayGui && wrapperStructOutput.guiVerbose) && !renderOutput)
if (guiEnabled && wrapperStructOutput.guiVerbose && !renderOutput)
{
const auto message = "No render is enabled (e.g. `--render_pose 0`), so you might also want to"
" remove the display (set `--no_display` or `--no_gui_verbose`). If you"
" remove the display (set `--display 0` or `--no_gui_verbose`). If you"
" simply want to use OpenPose to record video/images without keypoints, you"
" only need to set `--num_gpu 0`." + additionalMessage;
log(message, Priority::High);
......
......@@ -2,13 +2,14 @@
namespace op
{
WrapperStructOutput::WrapperStructOutput(const bool displayGui_, const bool guiVerbose_, const bool fullScreen_,
const std::string& writeKeypoint_, const DataFormat writeKeypointFormat_,
const std::string& writeJson_, const std::string& writeCocoJson_,
const std::string& writeImages_, const std::string& writeImagesFormat_,
const std::string& writeVideo_, const std::string& writeHeatMaps_,
WrapperStructOutput::WrapperStructOutput(const DisplayMode displayMode_, const bool guiVerbose_,
const bool fullScreen_, const std::string& writeKeypoint_,
const DataFormat writeKeypointFormat_, const std::string& writeJson_,
const std::string& writeCocoJson_, const std::string& writeImages_,
const std::string& writeImagesFormat_, const std::string& writeVideo_,
const std::string& writeHeatMaps_,
const std::string& writeHeatMapsFormat_) :
displayGui{displayGui_},
displayMode{displayMode_},
guiVerbose{guiVerbose_},
fullScreen{fullScreen_},
writeKeypoint{writeKeypoint_},
......

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenPose", "OpenPose\OpenPose.vcxproj", "{1848F100-6EC5-4F60-9748-062590ADFE5C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenPoseDemo", "OpenPoseDemo\OpenPoseDemo.vcxproj", "{DF3983B6-A052-478D-9C59-B353C5F95991}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenPose library", "OpenPose library", "{A2660049-67B9-4C4A-9E54-3BB659BCF9C0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{322A32B5-4A4E-40B7-9CAA-62573A12BE5E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tutorial", "Tutorial", "{48ECEE85-ED06-42A5-8068-CBDD92BB6EF4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wrapper", "Wrapper", "{BA0F9599-8099-4A7A-99A3-ACFC7C35639C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1_user_asynchronous_output", "TutorialWrapper\1_user_asynchronous_output.vcxproj", "{1A72B535-7E9E-4B48-9D54-B90D6FC52616}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2_user_synchronous", "TutorialWrapper\2_user_synchronous.vcxproj", "{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Pose", "Pose", "{40194B19-A61E-4B91-89CD-A858AC5953A6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Thread", "Thread", "{8F1B1B9F-0117-48CD-B9F6-06E1930640C3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1_openpose_read_and_display", "TutorialThread\1_openpose_read_and_display.vcxproj", "{D28D2569-F7D3-4049-8B49-AF7150943F1F}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2_user_processing_function", "TutorialThread\2_user_processing_function.vcxproj", "{D27AEA08-2345-457A-B1E2-BFA8E3C77222}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3_user_input_processing_and_output", "TutorialThread\3_user_input_processing_and_output.vcxproj", "{44F26037-115D-41E7-97DE-C754844CC5B0}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "4_user_input_processing_output_and_datum", "TutorialThread\4_user_input_processing_output_and_datum.vcxproj", "{4A271F39-C60B-4827-9A64-E0EEDD15D082}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1_extract_from_image", "TutorialPose\1_extract_from_image.vcxproj", "{DA43DA92-141D-4B91-80CE-8A2C5B377683}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "2_extract_pose_or_heatmat_from_image", "TutorialPose\2_extract_pose_or_heatmat_from_image.vcxproj", "{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenPose 3D Reconstruction", "OpenPose 3D Reconstruction", "{CB5A0F6C-6DD3-4789-9E6F-9B9B51AE4F10}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpenPose3DReconstruction", "OpenPose3DReconstruction\OpenPose3DReconstruction.vcxproj", "{F31BEEF2-37B0-4B0F-85D3-AD427C56AD72}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3_user_asynchronous", "TutorialWrapper\3_user_asynchronous.vcxproj", "{6669F592-6798-4F29-853A-A8C42205DE4A}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Adding Module to OpenPose", "Adding Module to OpenPose", "{C6404144-61BC-4402-BA36-FB6BB19BD739}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "1_custom_post_processing", "TutorialAddModule\1_custom_post_processing.vcxproj", "{0CC54804-3AD3-4C81-BE71-8011C72F1E1C}"
ProjectSection(ProjectDependencies) = postProject
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {1848F100-6EC5-4F60-9748-062590ADFE5C}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1848F100-6EC5-4F60-9748-062590ADFE5C}.Debug|x64.ActiveCfg = Release|x64
{1848F100-6EC5-4F60-9748-062590ADFE5C}.Debug|x64.Build.0 = Release|x64
{1848F100-6EC5-4F60-9748-062590ADFE5C}.Debug|x86.ActiveCfg = Debug|x64
{1848F100-6EC5-4F60-9748-062590ADFE5C}.Release|x64.ActiveCfg = Release|x64
{1848F100-6EC5-4F60-9748-062590ADFE5C}.Release|x64.Build.0 = Release|x64
{1848F100-6EC5-4F60-9748-062590ADFE5C}.Release|x86.ActiveCfg = Release|x64
{DF3983B6-A052-478D-9C59-B353C5F95991}.Debug|x64.ActiveCfg = Release|x64
{DF3983B6-A052-478D-9C59-B353C5F95991}.Debug|x64.Build.0 = Release|x64
{DF3983B6-A052-478D-9C59-B353C5F95991}.Debug|x86.ActiveCfg = Debug|x64
{DF3983B6-A052-478D-9C59-B353C5F95991}.Release|x64.ActiveCfg = Release|x64
{DF3983B6-A052-478D-9C59-B353C5F95991}.Release|x64.Build.0 = Release|x64
{DF3983B6-A052-478D-9C59-B353C5F95991}.Release|x86.ActiveCfg = Release|x64
{1A72B535-7E9E-4B48-9D54-B90D6FC52616}.Debug|x64.ActiveCfg = Release|x64
{1A72B535-7E9E-4B48-9D54-B90D6FC52616}.Debug|x64.Build.0 = Release|x64
{1A72B535-7E9E-4B48-9D54-B90D6FC52616}.Debug|x86.ActiveCfg = Debug|x64
{1A72B535-7E9E-4B48-9D54-B90D6FC52616}.Release|x64.ActiveCfg = Release|x64
{1A72B535-7E9E-4B48-9D54-B90D6FC52616}.Release|x64.Build.0 = Release|x64
{1A72B535-7E9E-4B48-9D54-B90D6FC52616}.Release|x86.ActiveCfg = Release|x64
{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A}.Debug|x64.ActiveCfg = Release|x64
{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A}.Debug|x64.Build.0 = Release|x64
{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A}.Debug|x86.ActiveCfg = Debug|x64
{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A}.Release|x64.ActiveCfg = Release|x64
{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A}.Release|x64.Build.0 = Release|x64
{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A}.Release|x86.ActiveCfg = Release|x64
{D28D2569-F7D3-4049-8B49-AF7150943F1F}.Debug|x64.ActiveCfg = Release|x64
{D28D2569-F7D3-4049-8B49-AF7150943F1F}.Debug|x64.Build.0 = Release|x64
{D28D2569-F7D3-4049-8B49-AF7150943F1F}.Debug|x86.ActiveCfg = Debug|x64
{D28D2569-F7D3-4049-8B49-AF7150943F1F}.Release|x64.ActiveCfg = Release|x64
{D28D2569-F7D3-4049-8B49-AF7150943F1F}.Release|x64.Build.0 = Release|x64
{D28D2569-F7D3-4049-8B49-AF7150943F1F}.Release|x86.ActiveCfg = Release|x64
{D27AEA08-2345-457A-B1E2-BFA8E3C77222}.Debug|x64.ActiveCfg = Release|x64
{D27AEA08-2345-457A-B1E2-BFA8E3C77222}.Debug|x64.Build.0 = Release|x64
{D27AEA08-2345-457A-B1E2-BFA8E3C77222}.Debug|x86.ActiveCfg = Debug|x64
{D27AEA08-2345-457A-B1E2-BFA8E3C77222}.Release|x64.ActiveCfg = Release|x64
{D27AEA08-2345-457A-B1E2-BFA8E3C77222}.Release|x64.Build.0 = Release|x64
{D27AEA08-2345-457A-B1E2-BFA8E3C77222}.Release|x86.ActiveCfg = Release|x64
{44F26037-115D-41E7-97DE-C754844CC5B0}.Debug|x64.ActiveCfg = Release|x64
{44F26037-115D-41E7-97DE-C754844CC5B0}.Debug|x64.Build.0 = Release|x64
{44F26037-115D-41E7-97DE-C754844CC5B0}.Debug|x86.ActiveCfg = Debug|x64
{44F26037-115D-41E7-97DE-C754844CC5B0}.Release|x64.ActiveCfg = Release|x64
{44F26037-115D-41E7-97DE-C754844CC5B0}.Release|x64.Build.0 = Release|x64
{44F26037-115D-41E7-97DE-C754844CC5B0}.Release|x86.ActiveCfg = Release|x64
{4A271F39-C60B-4827-9A64-E0EEDD15D082}.Debug|x64.ActiveCfg = Release|x64
{4A271F39-C60B-4827-9A64-E0EEDD15D082}.Debug|x64.Build.0 = Release|x64
{4A271F39-C60B-4827-9A64-E0EEDD15D082}.Debug|x86.ActiveCfg = Debug|x64
{4A271F39-C60B-4827-9A64-E0EEDD15D082}.Release|x64.ActiveCfg = Release|x64
{4A271F39-C60B-4827-9A64-E0EEDD15D082}.Release|x64.Build.0 = Release|x64
{4A271F39-C60B-4827-9A64-E0EEDD15D082}.Release|x86.ActiveCfg = Release|x64
{DA43DA92-141D-4B91-80CE-8A2C5B377683}.Debug|x64.ActiveCfg = Release|x64
{DA43DA92-141D-4B91-80CE-8A2C5B377683}.Debug|x64.Build.0 = Release|x64
{DA43DA92-141D-4B91-80CE-8A2C5B377683}.Debug|x86.ActiveCfg = Debug|x64
{DA43DA92-141D-4B91-80CE-8A2C5B377683}.Release|x64.ActiveCfg = Release|x64
{DA43DA92-141D-4B91-80CE-8A2C5B377683}.Release|x64.Build.0 = Release|x64
{DA43DA92-141D-4B91-80CE-8A2C5B377683}.Release|x86.ActiveCfg = Release|x64
{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D}.Debug|x64.ActiveCfg = Release|x64
{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D}.Debug|x64.Build.0 = Release|x64
{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D}.Debug|x86.ActiveCfg = Debug|x64
{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D}.Release|x64.ActiveCfg = Release|x64
{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D}.Release|x64.Build.0 = Release|x64
{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D}.Release|x86.ActiveCfg = Release|x64
{F31BEEF2-37B0-4B0F-85D3-AD427C56AD72}.Debug|x64.ActiveCfg = Release|x64
{F31BEEF2-37B0-4B0F-85D3-AD427C56AD72}.Debug|x86.ActiveCfg = Debug|x64
{F31BEEF2-37B0-4B0F-85D3-AD427C56AD72}.Release|x64.ActiveCfg = Release|x64
{F31BEEF2-37B0-4B0F-85D3-AD427C56AD72}.Release|x86.ActiveCfg = Release|x64
{6669F592-6798-4F29-853A-A8C42205DE4A}.Debug|x64.ActiveCfg = Release|x64
{6669F592-6798-4F29-853A-A8C42205DE4A}.Debug|x64.Build.0 = Release|x64
{6669F592-6798-4F29-853A-A8C42205DE4A}.Debug|x86.ActiveCfg = Debug|x64
{6669F592-6798-4F29-853A-A8C42205DE4A}.Release|x64.ActiveCfg = Release|x64
{6669F592-6798-4F29-853A-A8C42205DE4A}.Release|x64.Build.0 = Release|x64
{6669F592-6798-4F29-853A-A8C42205DE4A}.Release|x86.ActiveCfg = Release|x64
{0CC54804-3AD3-4C81-BE71-8011C72F1E1C}.Debug|x64.ActiveCfg = Debug|x64
{0CC54804-3AD3-4C81-BE71-8011C72F1E1C}.Debug|x64.Build.0 = Debug|x64
{0CC54804-3AD3-4C81-BE71-8011C72F1E1C}.Debug|x86.ActiveCfg = Debug|x64
{0CC54804-3AD3-4C81-BE71-8011C72F1E1C}.Release|x64.ActiveCfg = Release|x64
{0CC54804-3AD3-4C81-BE71-8011C72F1E1C}.Release|x64.Build.0 = Release|x64
{0CC54804-3AD3-4C81-BE71-8011C72F1E1C}.Release|x86.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{1848F100-6EC5-4F60-9748-062590ADFE5C} = {A2660049-67B9-4C4A-9E54-3BB659BCF9C0}
{DF3983B6-A052-478D-9C59-B353C5F95991} = {322A32B5-4A4E-40B7-9CAA-62573A12BE5E}
{48ECEE85-ED06-42A5-8068-CBDD92BB6EF4} = {322A32B5-4A4E-40B7-9CAA-62573A12BE5E}
{BA0F9599-8099-4A7A-99A3-ACFC7C35639C} = {48ECEE85-ED06-42A5-8068-CBDD92BB6EF4}
{1A72B535-7E9E-4B48-9D54-B90D6FC52616} = {BA0F9599-8099-4A7A-99A3-ACFC7C35639C}
{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A} = {BA0F9599-8099-4A7A-99A3-ACFC7C35639C}
{40194B19-A61E-4B91-89CD-A858AC5953A6} = {48ECEE85-ED06-42A5-8068-CBDD92BB6EF4}
{8F1B1B9F-0117-48CD-B9F6-06E1930640C3} = {48ECEE85-ED06-42A5-8068-CBDD92BB6EF4}
{D28D2569-F7D3-4049-8B49-AF7150943F1F} = {8F1B1B9F-0117-48CD-B9F6-06E1930640C3}
{D27AEA08-2345-457A-B1E2-BFA8E3C77222} = {8F1B1B9F-0117-48CD-B9F6-06E1930640C3}
{44F26037-115D-41E7-97DE-C754844CC5B0} = {8F1B1B9F-0117-48CD-B9F6-06E1930640C3}
{4A271F39-C60B-4827-9A64-E0EEDD15D082} = {8F1B1B9F-0117-48CD-B9F6-06E1930640C3}
{DA43DA92-141D-4B91-80CE-8A2C5B377683} = {40194B19-A61E-4B91-89CD-A858AC5953A6}
{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D} = {40194B19-A61E-4B91-89CD-A858AC5953A6}
{CB5A0F6C-6DD3-4789-9E6F-9B9B51AE4F10} = {48ECEE85-ED06-42A5-8068-CBDD92BB6EF4}
{F31BEEF2-37B0-4B0F-85D3-AD427C56AD72} = {CB5A0F6C-6DD3-4789-9E6F-9B9B51AE4F10}
{6669F592-6798-4F29-853A-A8C42205DE4A} = {BA0F9599-8099-4A7A-99A3-ACFC7C35639C}
{C6404144-61BC-4402-BA36-FB6BB19BD739} = {48ECEE85-ED06-42A5-8068-CBDD92BB6EF4}
{0CC54804-3AD3-4C81-BE71-8011C72F1E1C} = {C6404144-61BC-4402-BA36-FB6BB19BD739}
EndGlobalSection
EndGlobal
此差异已折叠。
此差异已折叠。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\experimental_3d\3d.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F31BEEF2-37B0-4B0F-85D3-AD427C56AD72}</ProjectGuid>
<RootNamespace>OpenPose3DReconstruction</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;..\..\examples_beta\openpose3d\include;..\..\3rdparty\windows\freeglut\include;..\..\3rdparty\windows\spinnaker\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;..\..\3rdparty\windows\freeglut\lib\freeglut.lib;..\..\3rdparty\windows\spinnaker\lib\Spinnaker_$(PlatformToolset).lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{71c68da4-5188-4106-a82d-b220b4ede682}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{52199589-120f-4517-bd6f-64c2857a0e29}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\experimental_3d\3d.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin;3rdparty\windows\freeglut\bin;3rdparty\windows\spinnaker\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin;3rdparty\windows\freeglut\bin;3rdparty\windows\spinnaker\bin</LocalDebuggerEnvironment>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{DF3983B6-A052-478D-9C59-B353C5F95991}</ProjectGuid>
<RootNamespace>OpenPoseDemo</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\openpose\openpose.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\openpose\openpose.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_add_module\1_custom_post_processing.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\tutorial_add_module\userDatum.hpp" />
<ClInclude Include="..\..\examples\tutorial_add_module\userPostProcessing.hpp" />
<ClInclude Include="..\..\examples\tutorial_add_module\wUserPostProcessing.hpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0CC54804-3AD3-4C81-BE71-8011C72F1E1C}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{eeb2cc8c-beec-41a6-8ede-1cccf81f7a8d}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{35ac3ba9-48c9-4d62-82f0-69be0b50034c}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\examples\tutorial_add_module\userDatum.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\tutorial_add_module\userPostProcessing.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\examples\tutorial_add_module\wUserPostProcessing.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_add_module\1_custom_post_processing.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_pose\1_extract_from_image.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{DA43DA92-141D-4B91-80CE-8A2C5B377683}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_pose\1_extract_from_image.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_pose\2_extract_pose_or_heatmat_from_image.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D1E5B5FC-A447-4BCC-8024-C6B6B8061A7D}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_pose\2_extract_pose_or_heatmat_from_image.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_thread\1_openpose_read_and_display.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D28D2569-F7D3-4049-8B49-AF7150943F1F}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_thread\1_openpose_read_and_display.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_thread\2_user_processing_function.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D27AEA08-2345-457A-B1E2-BFA8E3C77222}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_thread\2_user_processing_function.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_thread\3_user_input_processing_and_output.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{44F26037-115D-41E7-97DE-C754844CC5B0}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_thread\3_user_input_processing_and_output.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_thread\4_user_input_processing_output_and_datum.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4A271F39-C60B-4827-9A64-E0EEDD15D082}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_thread\4_user_input_processing_output_and_datum.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_wrapper\1_user_asynchronous_output.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{1A72B535-7E9E-4B48-9D54-B90D6FC52616}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_wrapper\1_user_asynchronous_output.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_wrapper\2_user_synchronous.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A00A4BDB-C7BC-4DFC-85C4-991FAB45B22A}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_wrapper\2_user_synchronous.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_wrapper\3_user_asynchronous.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{6669F592-6798-4F29-853A-A8C42205DE4A}</ProjectGuid>
<RootNamespace>1_user_asynchronous</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(VC_ReferencesPath_x64);</ReferencePath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\include;..\..\3rdparty\windows\opencv\include;..\..\3rdparty\windows\caffe3rdparty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;CMAKE_WINDOWS_BUILD;GLOG_NO_ABBREVIATED_SEVERITIES;GOOGLE_GLOG_DLL_DECL=__declspec(dllimport);GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport);CMAKE_INTDIR="Release";NDEBUG</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)\obj\relDir\relDir\%(RelativeDir)\%(Filename)%(Extension).obj</ObjectFileName>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<DebugInformationFormat>OldStyle</DebugInformationFormat>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(CUDA_PATH_V8_0)\lib\x64\;</AdditionalLibraryDirectories>
<AdditionalDependencies>..\..\3rdparty\windows\caffe3rdparty\lib\gflags.lib;..\..\3rdparty\windows\opencv\x64\vc14\lib\opencv_world310.lib;..\x64\Release\OpenPose.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\examples\tutorial_wrapper\3_user_asynchronous.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerWorkingDirectory>..\..</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerEnvironment>PATH=%PATH%;3rdparty\windows\caffe\bin\;3rdparty\windows\opencv\x64\vc14\bin</LocalDebuggerEnvironment>
</PropertyGroup>
</Project>
\ No newline at end of file
:: Avoid printing all the comments in the Windows cmd
@echo off
echo ------------------------- Downloading Caffe and OpenCV -------------------------
echo NOTE: This script assumes that CUDA, cuDNN and Visual Studio are already installed on your machine. Otherwise, it might fail.
:: Go back to main OpenPose folder
cd ..
echo:
echo ------------------------- Download 3rdparty Libraries -------------------------
cd 3rdparty\windows\
echo Downloading Caffe...
call getCaffe.bat
echo Downloading Caffe dependencies...
call getCaffe3rdparty.bat
echo:
echo Downloading OpenCV...
call getOpenCV.bat
:: Go back to OpenPose folder
cd ..\..
echo ------------------------ 3rdparty Libraries Downloaded ------------------------
echo:
echo:
echo:
echo ------------------------- Download Models -------------------------
cd models\
call getModels.bat
:: Go back to OpenPose folder
cd ..
echo ------------------------ Models Downloaded ------------------------
echo:
echo ------------------------- Caffe and OpenCV Downloaded -------------------------
:: Pause until user manually closes it
pause
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册