forked from IsabelaBB/superpixel-benchmark
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathrun_eval_robustness.sh
167 lines (130 loc) · 5.48 KB
/
run_eval_robustness.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#! /bin/bash
####################################
####### MANDATORY PARAMETERS
declare -a DATASETS=("Birds") # dataset
declare -a SUPERPIXELS=("400") # number of superpixels
declare -a MEASURES=("BR" "UE" "SIRS" "EV" "Connectivity") # evaluation measures
# superpixel methods
declare -a METHODS=("AINET" "CRS" "DAL-HERS" "DISF" "DRW" "ERGC" "ERS" "ETPS" "GMMSP" "GRID" "IBIS" "ISF" "LNSNet" "LSC" "ODISF" "RSS" "SCALP" "SEEDS" "SH" "SICLE" "SIN" "SLIC" "SNIC" "SSFCN")
# folders and noise and blur values
ROBUSTNESS_FOLDER="Robustness"
declare -a NOISE_BLUR=("5" "9" "13" "17")
BLUR_FOLDER="avgblur"
declare -a NOISE_SP=("0.04" "0.08" "0.12" "0.16")
SP_FOLDER="salt_pepper"
SCRIPTS_PATH="Scripts/Evaluation" # Path to this file
DATASET_DIR="../../datasets/" # Path to the datasets
RESULTS_DIR="../../RESULTS/" # Path to the results
GT_FOLDER="gt" # folder name in DATASET_DIR to the ground truth images
SEGM_RESULTS_DIR="${RESULTS_DIR}/Segm/${ROBUSTNESS_FOLDER}" # folder of the superpixel segmentation images
EVAL_RESULTS_DIR="${RESULTS_DIR}/Eval" # folder of the output file(s)
####################################
####### OPTIONAL PARAMETERS
SAVE_SCORES=1 # txt file with evaluated results (for each image)
SAVE_OVERALL_SCORES=1 # txt file with overall results
SAVE_LABELS=1 # Save image superpixels after enforce coonectivity/minimum number of superpixels. Used in metrics 6 and 7.
####################################
####### OPTIONAL SIRS/EV PARAMETERS
SAVE_SCORE_IMAGE=0 # Save labeled images whose color map indicates SIRS/EV scores
DRAW_SCORES=0 # Boolean option when using SAVE_SCORE_IMAGE to show score values
SAVE_RECONSTRUCTED_IMAGE=0 # Save the reconstructed image
SCORES_IMAGE_PATH="${RESULTS_DIR}/ScoreImages/${ROBUSTNESS_FOLDER}"
RECONSTRUCTED_IMAGE_PATH="${RESULTS_DIR}/ReconstructedImages/${ROBUSTNESS_FOLDER}"
####################################
runMetric () {
PARAMS+="--label ${SEGM_RESULTS_DIR}/${NOISE_FOLDER}/${NOISE}/${METHOD_NAME}/${DS_NAME}/${superpixels} "
if [ "$SAVE_SCORES" -eq 1 ] || [ "$SAVE_OVERALL_SCORES" -eq 1 ]; then
SCORES_PATH="${EVAL_RESULTS_DIR}/${METHOD_NAME}/${DS_NAME}/${ROBUSTNESS_FOLDER}/${NOISE_FOLDER}/${NOISE}/${MEASURE_NAME}"
mkdir -p ${SCORES_PATH}
fi
if [ "$SAVE_SCORES" -eq 1 ]; then
PARAMS+="--dlog ${SCORES_PATH}/${METHOD_NAME}-${superpixels}.txt "
fi
if [ "$SAVE_OVERALL_SCORES" -eq 1 ]; then
PARAMS+="--log ${SCORES_PATH}/${METHOD_NAME}-${DS_NAME}-${MEASURE_NAME}.txt "
fi
../../evaluation/bin/main ${PARAMS}
}
# GET THE LABELED IMAGE EXTENSION
getExt () {
declare -a PGM_METHODS=("CRS" "DAL-HERS" "DISF" "DRW" "ERGC" "ERS" "GMMSP" "GRID" "IBIS" "ISF" "LSC" "ODISF" "RSS" "SEEDS" "SH" "SLIC" "SICLE")
declare -a PNG_METHODS=("ETPS" "LNSNet" "SCALP" "SNIC")
if [[ " ${PGM_METHODS[@]} " =~ " ${METHOD_NAME} " ]]; then
EXT="pgm"
elif [[ " ${PNG_METHODS[@]} " =~ " ${METHOD_NAME} " ]]; then
EXT="png"
else
echo "Method ${METHOD_NAME} not founded. Set default extension pgm. \n"
EXT="pgm"
fi
}
# SET PARAMETERS ACCORDING TO EACH MEASURE
getParams() {
if [ "$MEASURE_NAME" = "SIRS" ]; then
MEASURE_NUM=1
fi
if [ "$MEASURE_NAME" = "EV" ]; then
MEASURE_NUM=2
fi
if [ "$MEASURE_NAME" = "BR" ]; then
MEASURE_NUM=3
fi
if [ "$MEASURE_NAME" = "UE" ]; then
MEASURE_NUM=4
fi
if [ "$MEASURE_NAME" = "CO" ]; then
MEASURE_NUM=5
fi
if [ "$MEASURE_NAME" = "Connectivity" ]; then
MEASURE_NUM=6
fi
if [ "$MEASURE_NAME" = "SuperpixelNumber" ]; then
MEASURE_NUM=7
PARAMS+="--k ${superpixels} "
fi
PARAMS+="--eval ${MEASURE_NUM} "
if [ "$MEASURE_NAME" = "SIRS" ] || [ "$MEASURE_NAME" = "EV" ] || [ "$MEASURE_NAME" = "SuperpixelNumber" ]; then
PARAMS+="--img ${DATASET_DIR}/${DS_NAME}/${NOISE_FOLDER}/${NOISE} "
else
PARAMS+="--img ${DATASET_DIR}/${DS_NAME}/${GT_FOLDER} "
fi
if ([ "$MEASURE_NAME" = "Connectivity" ] || [ "$MEASURE_NAME" = "SuperpixelNumber" ]) && [ ${SAVE_RECONSTRUCTED_IMAGE} -eq 1 ]; then
PARAMS+="--save ${RESULTS_DIR}/${NOISE_FOLDER}/${NOISE}/${MEASURE_NAME}_Images/${DS_NAME}/${superpixels} "
mkdir -p "${RESULTS_DIR}/${NOISE_FOLDER}/${NOISE}/${MEASURE_NAME}_Images/${DS_NAME}/${superpixels}"
fi
if [ ${SAVE_SCORE_IMAGE} -eq 1 ] && ( [ "$MEASURE_NAME" = "SIRS" ] || [ "$MEASURE_NAME" = "EV" ] ); then
PARAMS+="--imgScores ${SCORES_IMAGE_PATH}/${NOISE_FOLDER}/${NOISE}/${METHOD_NAME}/${DS_NAME}/${MEASURE_NAME}/${superpixels} "
mkdir -p ${SCORES_IMAGE_PATH}/${NOISE_FOLDER}/${NOISE}/${METHOD_NAME}/${DS_NAME}/${MEASURE_NAME}/${superpixels}
PARAMS+="--drawScores ${DRAW_SCORES} "
fi
if [ ${SAVE_RECONSTRUCTED_IMAGE} -eq 1 ] && ( [ "$MEASURE_NAME" = "SIRS" ] || [ "$MEASURE_NAME" = "EV" ] );then
PARAMS+="--recon ${RECONSTRUCTED_IMAGE_PATH}/${NOISE_FOLDER}/${NOISE}/${METHOD_NAME}/${DS_NAME}/${MEASURE_NAME}/${superpixels} "
mkdir -p ${RECONSTRUCTED_IMAGE_PATH}/${NOISE_FOLDER}/${NOISE}/${METHOD_NAME}/${DS_NAME}/${MEASURE_NAME}/${superpixels}
fi
}
for DS_NAME in ${DATASETS[@]}; do
for superpixels in ${SUPERPIXELS[@]}; do
for NOISE in ${NOISE_BLUR[@]}; do
NOISE_FOLDER="${BLUR_FOLDER}"
for METHOD_NAME in ${METHODS[@]}; do
getExt
for MEASURE_NAME in ${MEASURES[@]}; do
PARAMS="--ext ${EXT} "
getParams
runMetric
done
done
done
for NOISE in ${NOISE_SP[@]}; do
NOISE_FOLDER="${SP_FOLDER}"
for METHOD_NAME in ${METHODS[@]}; do
getExt
for MEASURE_NAME in ${MEASURES[@]}; do
PARAMS="--ext ${EXT} "
getParams
runMetric
done
done
done
done
done