From 36ddcdb63c722d8e586413a37bf1878702cf5f15 Mon Sep 17 00:00:00 2001 From: Gines Hidalgo Date: Thu, 23 Apr 2020 08:12:51 -0400 Subject: [PATCH] Bin folder with only used DLLs --- CMakeLists.txt | 26 +++++++++++++++----------- doc/quick_start.md | 19 ++++++++++++------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8fe84aa8..53463f9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -662,7 +662,10 @@ if (WIN32) # Auto copy DLLs if (BUILD_BIN_FOLDER) - # Locate DLLs + # Copy DLLs into same folder + set(BIN_FOLDER ${CMAKE_BINARY_DIR}/bin) + file(MAKE_DIRECTORY ${BIN_FOLDER}) + # Locate and copy DLLs # Caffe DLLs if (${GPU_MODE} MATCHES "CUDA") file(GLOB CAFFE_DLL "${CMAKE_SOURCE_DIR}/3rdparty/windows/caffe/bin/*.dll") @@ -671,22 +674,23 @@ if (WIN32) elseif (${GPU_MODE} MATCHES "CPU_ONLY") file(GLOB CAFFE_DLL "${CMAKE_SOURCE_DIR}/3rdparty/windows/caffe_cpu/bin/*.dll") endif () + file(COPY ${CAFFE_DLL} DESTINATION ${BIN_FOLDER}) # Caffe 3rd-party DLLs file(GLOB CAFFE_3RD_PARTY_DLL "${CMAKE_SOURCE_DIR}/3rdparty/windows/caffe3rdparty/lib/*.dll") + file(COPY ${CAFFE_3RD_PARTY_DLL} DESTINATION ${BIN_FOLDER}) # OpenCV DLLs file(GLOB OPENCV_DLL "${CMAKE_SOURCE_DIR}/3rdparty/windows/opencv/x64/vc${VS_VERSION}/bin/*.dll") + file(COPY ${OPENCV_DLL} DESTINATION ${BIN_FOLDER}) # GLUT DLLs - file(GLOB GLUT_DLL "${CMAKE_SOURCE_DIR}/3rdparty/windows/freeglut/bin/*.dll") + if (WITH_3D_RENDERER OR WITH_3D_ADAM_MODEL) + file(GLOB GLUT_DLL "${CMAKE_SOURCE_DIR}/3rdparty/windows/freeglut/bin/*.dll") + file(COPY ${GLUT_DLL} DESTINATION ${BIN_FOLDER}) + endif (WITH_3D_RENDERER OR WITH_3D_ADAM_MODEL) # Spinnaker DLLs and other files - file(GLOB SPINNAKER_DLL "${CMAKE_SOURCE_DIR}/3rdparty/windows/spinnaker/bin/*") - # Copy DLLs into same folder - set(BIN_FOLDER ${CMAKE_BINARY_DIR}/bin) - file(MAKE_DIRECTORY ${BIN_FOLDER}) - file(COPY ${CAFFE_DLL} DESTINATION ${BIN_FOLDER}) - file(COPY ${OPENCV_DLL} DESTINATION ${BIN_FOLDER}) - file(COPY ${CAFFE_3RD_PARTY_DLL} DESTINATION ${BIN_FOLDER}) - file(COPY ${GLUT_DLL} DESTINATION ${BIN_FOLDER}) - file(COPY ${SPINNAKER_DLL} DESTINATION ${BIN_FOLDER}) + if (WITH_FLIR_CAMERA) + file(GLOB SPINNAKER_DLL "${CMAKE_SOURCE_DIR}/3rdparty/windows/spinnaker/bin/*") + file(COPY ${SPINNAKER_DLL} DESTINATION ${BIN_FOLDER}) + endif (WITH_FLIR_CAMERA) endif (BUILD_BIN_FOLDER) endif (WIN32) diff --git a/doc/quick_start.md b/doc/quick_start.md index 352b9170..0e6cfd9e 100644 --- a/doc/quick_start.md +++ b/doc/quick_start.md @@ -93,13 +93,18 @@ build\x64\Release\OpenPoseDemo.exe --image_dir examples\media\ --face --hand ### Maximum Accuracy Configuration -Note: Unfortunately, this will not work on CPU given the huge ammount of memory required. Your only option with CPU-only versions is to manually crop the people to fit the whole area of the image that is fed into OpenPose. - -This command provides the most accurate results we have been able to achieve for body, hand and face keypoint detection. However, this command will need ~10.5 GB of GPU memory (6.7 GB for COCO model) and runs at ~2 FPS on a Titan X for the body-foot model (1 FPS for COCO). - -- **Note 1:** Increasing `--net_resolution` will highly reduce the frame rate and increase latency, while it might increase the accuracy. However, this accuracy increase is not guaranteed in all scenarios, required a more detailed analysis for each particular scenario. E.g., it will work better for images with very small people, but usually worse for people taking a big ratio of the image. Thus, we recommend to follow the commands below for maximum accuracy in most cases for both big and small-size people. -- **Note 2: Do not use this configuration for MPII model**, its accuracy might be harmed by this multi-scale setting. This configuration is optimal only for COCO and COCO-extended (e.g., the default BODY_25) models. - +This command provides the most accurate results we have been able to achieve for body, hand and face keypoint detection. + +However: +- This will not work on CPU given the huge ammount of memory required. Your only option with CPU-only versions is to manually crop the people to fit the whole area of the image that is fed into OpenPose. +- It will also need ~10.5 GB of GPU memory for body-foot (BODY_25) model (~6.7 GB for COCO model). +- This requires GPUs like Titan X, Titan XP, some Quadro models, P100, V100, etc. +- Including hands and face will require >= 16GB GPUs (so the 12 GB GPUs like Titan X and XPs will no longer work). +- This command runs at ~2 FPS on a Titan X for the body-foot model (~1 FPS for COCO). +- Increasing `--net_resolution` will highly reduce the frame rate and increase latency, while it might increase the accuracy. However, this accuracy increase is not guaranteed in all scenarios, required a more detailed analysis for each particular scenario. E.g., it will work better for images with very small people, but usually worse for people taking a big ratio of the image. Thus, we recommend to follow the commands below for maximum accuracy in most cases for both big and small-size people. +- **Do not use this configuration for MPII model**, its accuracy might be harmed by this multi-scale setting. This configuration is optimal only for COCO and COCO-extended (e.g., the default BODY_25) models. + +**Method overview:** ``` # Ubuntu and Mac: Body ./build/examples/openpose/openpose.bin --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 -- GitLab