提交 3d7bd823 编写于 作者: G gineshidalgo99

Added disable_multi_thread flag

上级 5c873aa9
...@@ -15,7 +15,7 @@ Issues/comments which do not follow these rules will be **ignored or removed** w ...@@ -15,7 +15,7 @@ Issues/comments which do not follow these rules will be **ignored or removed** w
### Executed Command (if any) ### Executed Command (if any)
Note: add `--logging_level 0` to get higher debug information. Note: add `--logging_level 0 --disable_multi_thread` to get higher debug information.
......
...@@ -116,8 +116,9 @@ We enumerate some of the most important flags, check the `Flags Detailed Descrip ...@@ -116,8 +116,9 @@ We enumerate some of the most important flags, check the `Flags Detailed Descrip
## Flags Description ## Flags Description
Each flag is divided into flag name, default value, and description. Each flag is divided into flag name, default value, and description.
1. Debugging 1. Debugging/Other
- DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for low priority messages and 4 for important ones."); - DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for low priority messages and 4 for important ones.");
- DEFINE_bool(disable_multi_thread, false, "It would slightly reduce the frame rate in order to highly reduce the lag. Mainly useful for 1) Cases where it is needed a low latency (e.g. webcam in real-time scenarios with low-range GPU devices); and 2) Debugging OpenPose when it is crashing to locate the error.");
2. Producer 2. Producer
- DEFINE_int32(camera, -1, "The camera index for cv::VideoCapture. Integer in the range [0, 9]. Select a negative number (by default), to auto-detect and open the first available camera."); - DEFINE_int32(camera, -1, "The camera index for cv::VideoCapture. Integer in the range [0, 9]. Select a negative number (by default), to auto-detect and open the first available camera.");
......
...@@ -132,6 +132,7 @@ OpenPose Library - Release Notes ...@@ -132,6 +132,7 @@ OpenPose Library - Release Notes
12. Added `-1` option for `net_resolution` in order to auto-select the best possible aspect ratio given the user input. 12. Added `-1` option for `net_resolution` in order to auto-select the best possible aspect ratio given the user input.
13. Net resolution can be dynamically changed (e.g. for images with different size). 13. Net resolution can be dynamically changed (e.g. for images with different size).
14. Added example to add functionality/modules to OpenPose. 14. Added example to add functionality/modules to OpenPose.
15. Added `disable_multi_thread` flag in order to allow debug and/or highly reduce the latency (e.g. when using webcam in real-time).
2. Functions or parameters renamed: 2. Functions or parameters renamed:
1. OpenPose able to change its size and initial size dynamically: 1. OpenPose able to change its size and initial size dynamically:
1. Flag `resolution` renamed as `output_resolution`. 1. Flag `resolution` renamed as `output_resolution`.
......
...@@ -31,10 +31,14 @@ ...@@ -31,10 +31,14 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
DEFINE_bool(disable_multi_thread, false, "It would slightly reduce the frame rate in order to highly reduce the lag. Mainly useful"
" for 1) Cases where it is needed a low latency (e.g. webcam in real-time scenarios with"
" low-range GPU devices); and 2) Debugging OpenPose when it is crashing to locate the"
" error.");
// Producer // Producer
DEFINE_int32(camera, -1, "The camera index for cv::VideoCapture. Integer in the range [0, 9]. Select a negative" DEFINE_int32(camera, -1, "The camera index for cv::VideoCapture. Integer in the range [0, 9]. Select a negative"
" number (by default), to auto-detect and open the first available camera."); " number (by default), to auto-detect and open the first available camera.");
...@@ -239,8 +243,9 @@ int openPoseDemo() ...@@ -239,8 +243,9 @@ int openPoseDemo()
// Configure wrapper // Configure wrapper
opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, wrapperStructInput, opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, wrapperStructInput,
wrapperStructOutput); wrapperStructOutput);
// Set to single-thread running (e.g. for debugging purposes) // Set to single-thread running (to debug and/or reduce latency)
// opWrapper.disableMultiThreading(); if (FLAGS_disable_multi_thread)
opWrapper.disableMultiThreading();
// Start processing // Start processing
// Two different ways of running the program on multithread environment // Two different ways of running the program on multithread environment
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include "wrapperHandFromJsonTest.hpp" #include "wrapperHandFromJsonTest.hpp"
// For info about the flags, check `examples/openpose/openpose.bin`. // For info about the flags, check `examples/openpose/openpose.bin`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, ""); DEFINE_int32(logging_level, 3, "");
// Producer // Producer
DEFINE_string(image_dir, "", ""); DEFINE_string(image_dir, "", "");
......
...@@ -41,10 +41,14 @@ ...@@ -41,10 +41,14 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
DEFINE_bool(disable_multi_thread, false, "It would slightly reduce the frame rate in order to highly reduce the lag. Mainly useful"
" for 1) Cases where it is needed a low latency (e.g. webcam in real-time scenarios with"
" low-range GPU devices); and 2) Debugging OpenPose when it is crashing to locate the"
" error.");
// Producer // Producer
DEFINE_int32(camera, -1, "The camera index for cv::VideoCapture. Integer in the range [0, 9]. Select a negative" DEFINE_int32(camera, -1, "The camera index for cv::VideoCapture. Integer in the range [0, 9]. Select a negative"
" number (by default), to auto-detect and open the first available camera."); " number (by default), to auto-detect and open the first available camera.");
...@@ -261,8 +265,9 @@ int openPoseTutorialWrapper4() ...@@ -261,8 +265,9 @@ int openPoseTutorialWrapper4()
// Configure wrapper // Configure wrapper
opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, wrapperStructInput, opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, wrapperStructInput,
wrapperStructOutput); wrapperStructOutput);
// Set to single-thread running (e.g. for debugging purposes) // Set to single-thread running (to debug and/or reduce latency)
// opWrapper.disableMultiThreading(); if (FLAGS_disable_multi_thread)
opWrapper.disableMultiThreading();
op::log("Starting thread(s)", op::Priority::High); op::log("Starting thread(s)", op::Priority::High);
// Two different ways of running the program on multithread environment // Two different ways of running the program on multithread environment
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
......
...@@ -31,10 +31,14 @@ ...@@ -31,10 +31,14 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
DEFINE_bool(disable_multi_thread, false, "It would slightly reduce the frame rate in order to highly reduce the lag. Mainly useful"
" for 1) Cases where it is needed a low latency (e.g. webcam in real-time scenarios with"
" low-range GPU devices); and 2) Debugging OpenPose when it is crashing to locate the"
" error.");
// Producer // Producer
DEFINE_int32(camera, -1, "The camera index for cv::VideoCapture. Integer in the range [0, 9]. Select a negative" DEFINE_int32(camera, -1, "The camera index for cv::VideoCapture. Integer in the range [0, 9]. Select a negative"
" number (by default), to auto-detect and open the first available camera."); " number (by default), to auto-detect and open the first available camera.");
...@@ -332,8 +336,9 @@ int openPoseTutorialWrapper1() ...@@ -332,8 +336,9 @@ int openPoseTutorialWrapper1()
// Configure wrapper // Configure wrapper
opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, wrapperStructInput, opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, wrapperStructInput,
wrapperStructOutput); wrapperStructOutput);
// Set to single-thread running (e.g. for debugging purposes) // Set to single-thread running (to debug and/or reduce latency)
// opWrapper.disableMultiThreading(); if (FLAGS_disable_multi_thread)
opWrapper.disableMultiThreading();
op::log("Starting thread(s)", op::Priority::High); op::log("Starting thread(s)", op::Priority::High);
opWrapper.start(); opWrapper.start();
......
...@@ -31,10 +31,14 @@ ...@@ -31,10 +31,14 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
DEFINE_bool(disable_multi_thread, false, "It would slightly reduce the frame rate in order to highly reduce the lag. Mainly useful"
" for 1) Cases where it is needed a low latency (e.g. webcam in real-time scenarios with"
" low-range GPU devices); and 2) Debugging OpenPose when it is crashing to locate the"
" error.");
// Producer // Producer
DEFINE_string(image_dir, "examples/media/", "Process a directory of images. Read all standard formats (jpg, png, bmp, etc.)."); DEFINE_string(image_dir, "examples/media/", "Process a directory of images. Read all standard formats (jpg, png, bmp, etc.).");
// OpenPose // OpenPose
...@@ -424,8 +428,9 @@ int openPoseTutorialWrapper2() ...@@ -424,8 +428,9 @@ int openPoseTutorialWrapper2()
// Configure wrapper // Configure wrapper
opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, op::WrapperStructInput{}, opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, op::WrapperStructInput{},
wrapperStructOutput); wrapperStructOutput);
// Set to single-thread running (e.g. for debugging purposes) // Set to single-thread running (to debug and/or reduce latency)
// opWrapper.disableMultiThreading(); if (FLAGS_disable_multi_thread)
opWrapper.disableMultiThreading();
op::log("Starting thread(s)", op::Priority::High); op::log("Starting thread(s)", op::Priority::High);
// Two different ways of running the program on multithread environment // Two different ways of running the program on multithread environment
......
...@@ -31,10 +31,14 @@ ...@@ -31,10 +31,14 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
DEFINE_bool(disable_multi_thread, false, "It would slightly reduce the frame rate in order to highly reduce the lag. Mainly useful"
" for 1) Cases where it is needed a low latency (e.g. webcam in real-time scenarios with"
" low-range GPU devices); and 2) Debugging OpenPose when it is crashing to locate the"
" error.");
// Producer // Producer
DEFINE_string(image_dir, "examples/media/", "Process a directory of images. Read all standard formats (jpg, png, bmp, etc.)."); DEFINE_string(image_dir, "examples/media/", "Process a directory of images. Read all standard formats (jpg, png, bmp, etc.).");
// OpenPose // OpenPose
...@@ -366,8 +370,9 @@ int openPoseTutorialWrapper3() ...@@ -366,8 +370,9 @@ int openPoseTutorialWrapper3()
op::log("Configuring OpenPose wrapper.", op::Priority::Low, __LINE__, __FUNCTION__, __FILE__); op::log("Configuring OpenPose wrapper.", op::Priority::Low, __LINE__, __FUNCTION__, __FILE__);
opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, op::WrapperStructInput{}, opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, op::WrapperStructInput{},
wrapperStructOutput); wrapperStructOutput);
// Set to single-thread running (e.g. for debugging purposes) // Set to single-thread running (to debug and/or reduce latency)
// opWrapper.disableMultiThreading(); if (FLAGS_disable_multi_thread)
opWrapper.disableMultiThreading();
op::log("Starting thread(s)", op::Priority::High); op::log("Starting thread(s)", op::Priority::High);
opWrapper.start(); opWrapper.start();
......
...@@ -33,10 +33,14 @@ ...@@ -33,10 +33,14 @@
// See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help` // See all the available parameter options withe the `--help` flag. E.g. `build/examples/openpose/openpose.bin --help`
// Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose // Note: This command will show you flags for other unnecessary 3rdparty files. Check only the flags for the OpenPose
// executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`. // executable. E.g. for `openpose.bin`, look for `Flags from examples/openpose/openpose.cpp:`.
// Debugging // Debugging/Other
DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while" DEFINE_int32(logging_level, 3, "The logging level. Integer in the range [0, 255]. 0 will output any log() message, while"
" 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for" " 255 will not output any. Current OpenPose library messages are in the range 0-4: 1 for"
" low priority messages and 4 for important ones."); " low priority messages and 4 for important ones.");
DEFINE_bool(disable_multi_thread, false, "It would slightly reduce the frame rate in order to highly reduce the lag. Mainly useful"
" for 1) Cases where it is needed a low latency (e.g. webcam in real-time scenarios with"
" low-range GPU devices); and 2) Debugging OpenPose when it is crashing to locate the"
" error.");
// OpenPose // OpenPose
DEFINE_string(model_folder, "models/", "Folder path (absolute or relative) where the models (pose, face, ...) are located."); DEFINE_string(model_folder, "models/", "Folder path (absolute or relative) where the models (pose, face, ...) are located.");
DEFINE_string(output_resolution, "-1x-1", "The image resolution (display and output). Use \"-1x-1\" to force the program to use the" DEFINE_string(output_resolution, "-1x-1", "The image resolution (display and output). Use \"-1x-1\" to force the program to use the"
...@@ -232,8 +236,9 @@ int openpose3d() ...@@ -232,8 +236,9 @@ int openpose3d()
// Configure wrapper // Configure wrapper
opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, op::WrapperStructInput{}, opWrapper.configure(wrapperStructPose, wrapperStructFace, wrapperStructHand, op::WrapperStructInput{},
wrapperStructOutput); wrapperStructOutput);
// Set to single-thread running (e.g. for debugging purposes) // Set to single-thread running (to debug and/or reduce latency)
// opWrapper.disableMultiThreading(); if (FLAGS_disable_multi_thread)
opWrapper.disableMultiThreading();
op::log("Starting thread(s)", op::Priority::Max); op::log("Starting thread(s)", op::Priority::Max);
// Start, run & stop threads // Start, run & stop threads
......
...@@ -1199,9 +1199,10 @@ namespace op ...@@ -1199,9 +1199,10 @@ namespace op
} }
else else
{ {
log("Multi-threading disabled, only 1 thread running. All GPUs have been disabled but the first" if (spWPoses.size() > 1)
" one, which is defined by gpuNumberStart (in the demo, it is set with the `num_gpu_start`" log("Multi-threading disabled, only 1 thread running. All GPUs have been disabled but the"
" flag."); " first one, which is defined by gpuNumberStart (e.g. in the OpenPose demo, it is set"
" with the `num_gpu_start` flag).");
mThreadManager.add(mThreadId, spWPoses.at(0), queueIn, queueOut); mThreadManager.add(mThreadId, spWPoses.at(0), queueIn, queueOut);
} }
queueIn++; queueIn++;
......
...@@ -56,8 +56,9 @@ namespace op ...@@ -56,8 +56,9 @@ namespace op
* It has the recommended and default values we recommend for each element of the struct. * 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. * Since all the elements of the struct are public, they can also be manually filled.
*/ */
WrapperStructInput(const std::shared_ptr<Producer> producerSharedPtr = nullptr, const unsigned long long frameFirst = 0, WrapperStructInput(const std::shared_ptr<Producer> producerSharedPtr = nullptr,
const unsigned long long frameLast = -1, const bool realTimeProcessing = false, const bool frameFlip = false, const unsigned long long frameFirst = 0, const unsigned long long frameLast = -1,
const bool realTimeProcessing = false, const bool frameFlip = false,
const int frameRotate = 0, const bool framesRepeat = false); const int frameRotate = 0, const bool framesRepeat = false);
}; };
} }
......
...@@ -2,8 +2,10 @@ ...@@ -2,8 +2,10 @@
namespace op namespace op
{ {
WrapperStructInput::WrapperStructInput(const std::shared_ptr<Producer> producerSharedPtr_, const unsigned long long frameFirst_, const unsigned long long frameLast_, WrapperStructInput::WrapperStructInput(const std::shared_ptr<Producer> producerSharedPtr_,
const bool realTimeProcessing_, const bool frameFlip_, const int frameRotate_, const bool framesRepeat_) : const unsigned long long frameFirst_, const unsigned long long frameLast_,
const bool realTimeProcessing_, const bool frameFlip_,
const int frameRotate_, const bool framesRepeat_) :
producerSharedPtr{producerSharedPtr_}, producerSharedPtr{producerSharedPtr_},
frameFirst{frameFirst_}, frameFirst{frameFirst_},
frameLast{frameLast_}, frameLast{frameLast_},
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册