3 #########################################################################
4 # This program is free software: you can redistribute it and/or modify #
5 # it under the terms of the version 3 of the GNU General Public License #
6 # as published by the Free Software Foundation. #
8 # This program is distributed in the hope that it will be useful, but #
9 # WITHOUT ANY WARRANTY; without even the implied warranty of #
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU #
11 # General Public License for more details. #
13 # You should have received a copy of the GNU General Public License #
14 # along with this program. If not, see <http://www.gnu.org/licenses/>. #
16 # Written by Francois Fleuret #
17 # (C) Idiap Research Institute #
19 # Contact <francois.fleuret@idiap.ch> for comments & bug reports #
20 #########################################################################
22 MAIN_URL="http://www.idiap.ch/folded-ctf"
24 #########################################################################
29 if [[ $? != 0 ]]; then
30 echo "Compilation failed." >&2
36 #########################################################################
37 # Generating the pool file
40 POOL_NAME=${DATA_PATH}/rmk.pool
42 if [[ -d ${DATA_PATH} ]]; then
44 if [[ -f ${POOL_NAME} ]]; then
46 echo "The pool file exists."
50 echo "Can not find the pool file, checking the data integrity."
52 md5sum -c ${DATA_PATH}/list.md5
54 if [[ $? != 0 ]]; then
55 echo "The data set is corrupted. You can download it" >&2
56 echo "from ${MAIN_URL}" >&2
60 echo "Generating the pool file."
62 ./list_to_pool ${DATA_PATH}/full.lst ${DATA_PATH} ${POOL_NAME}.wrk
64 if [[ $? == 0 ]]; then
65 mv ${POOL_NAME}.wrk ${POOL_NAME}
67 \rm ${POOL_NAME}.wrk 2> /dev/null
68 echo "Pool generation failed." >&2
76 echo "Can not find the RateMyKitten images in ${DATA_PATH}. You can download" >&2
77 echo "them from ${MAIN_URL}" >&2
86 #####################################################################
87 ## Generate the pictures from the paper
93 EXPERIMENT_RESULT_DIR="${RESULT_DIR}/hb-${SEED}"
95 if [[ -d "${EXPERIMENT_RESULT_DIR}" ]]; then
97 for npf in -1 0 2497; do
99 ./folding --random-seed=${SEED} \
100 --pool-name=${POOL_NAME} \
101 --result-path=/tmp/ \
102 --detector-name=${EXPERIMENT_RESULT_DIR}/default.det \
104 --material-feature-nb=${npf} \
112 echo "You have to run at least the first round completely to be able" >&2
113 echo "to generate the pictures." >&2
119 #####################################################################
120 ## Run the full computation
124 if [[ ! -d ${RESULT_DIR} ]]; then
128 for SEED in {0..9}; do
130 for MODE in hb h+b; do
132 EXPERIMENT_RESULT_DIR="${RESULT_DIR}/${MODE}-${SEED}"
134 mkdir ${EXPERIMENT_RESULT_DIR} 2> /dev/null
136 if [[ $? == 0 ]]; then
138 if [[ $MODE == "h+b" ]]; then
139 OPTS="${OPTS} --force-head-belly-independence=yes"
142 if [[ $1 == "valgrind" ]]; then
143 OPTS="${OPTS} --nb-classifiers-per-level=1 --nb-weak-learners-per-classifier=10"
144 OPTS="${OPTS} --proportion-for-train=0.1 --proportion-for-validation=0.025 --proportion-for-test=0.01"
145 OPTS="${OPTS} --wanted-true-positive-rate=0.1"
146 DEBUGGER="valgrind --db-attach=yes --leak-check=full --show-reachable=yes"
149 ${DEBUGGER} ./folding \
150 --random-seed=${SEED} \
151 --pool-name=${POOL_NAME} \
152 --result-path=${EXPERIMENT_RESULT_DIR} \
153 --detector-name=${EXPERIMENT_RESULT_DIR}/default.det \
159 sequence-test-detector | tee -a ${EXPERIMENT_RESULT_DIR}/stdout
163 echo "${EXPERIMENT_RESULT_DIR} exists, aborting experiment."