#!/bin/bash # Disclaimer: # Script for internal use. We might make continuous changess on it and we will not answer questions about it. # Full usage description: # Step 1 - Getting JSON output # Running it: # Run it from OpenPose main folder with the following command: # clear && clear && make all -j`nproc` && bash ./scripts/tests/hand_accuracy_test.sh # Image paths: # Read that script for details about all the paths and change them for your own paths. # Careful: # 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 `--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: # From Matlab, `cd /media/posefs3b/Users/gines/openpose_train/dataset/hand_testing` # Run `b_keypointJsonToMatAndImage` to generate your new file (you can run the current code to try it, I commented everything but test 1) # Run `c_plot_save_results` to plot and save the results. Just modify `models` and `texts` with your new model path and desired name. # Clear terminal screen clear && clear # Fix paths HAND_TESTING_FOLDER="/media/posefs3b/Users/gines/openpose_train/dataset/hand_testing/" IMAGES_FOLDER=${HAND_TESTING_FOLDER}"0_images/" IMAGES_BB_FOLDER=${HAND_TESTING_FOLDER}"3_images_bounding_box" HAND_GROUND_TRUTH_FOLDER=${HAND_TESTING_FOLDER}"4_hand_detections" PEOPLE_JSON_FOLDER=${HAND_TESTING_FOLDER}"5_keypointJson/" # Variable paths SCALES=6 SUFFIX="_${SCALES}" HAND_RESULTS_FOLDER_BASE=${PEOPLE_JSON_FOLDER}"hand_keypoints_estimated" HAND_RESULTS_FOLDER_NO_BB=${HAND_RESULTS_FOLDER_BASE}"_old"${SUFFIX} HAND_RESULTS_FOLDER_BB=${HAND_RESULTS_FOLDER_BASE}"_BBox"${SUFFIX} HAND_RESULTS_FOLDER_BODY_65=${HAND_RESULTS_FOLDER_BASE}"_BODY_65" # Given bounding box echo "Output on ${HAND_RESULTS_FOLDER_BB}" rm -rf $HAND_RESULTS_FOLDER_BB # 1 scale ./build/examples/tests/handFromJsonTest.bin \ --hand_scale_number ${SCALES} --hand_scale_range 0.4 \ --image_dir ${IMAGES_BB_FOLDER} \ --hand_ground_truth ${HAND_GROUND_TRUTH_FOLDER} \ --write_json $HAND_RESULTS_FOLDER_BB \ --display 0 # No bounding box echo "Output on ${HAND_RESULTS_FOLDER_NO_BB}" rm -rf $HAND_RESULTS_FOLDER_NO_BB # 1 scale ./build/examples/openpose/openpose.bin \ --hand \ --hand_scale_number ${SCALES} --hand_scale_range 0.4 \ --image_dir ${IMAGES_FOLDER} \ --write_json $HAND_RESULTS_FOLDER_NO_BB \ --display 0