2015-09-25 02:31:46 +08:00
|
|
|
#!/bin/bash
|
|
|
|
#
|
2015-10-09 22:48:06 +08:00
|
|
|
# Download OpenFace models.
|
2015-09-25 02:31:46 +08:00
|
|
|
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
|
2015-10-18 01:15:39 +08:00
|
|
|
die() {
|
|
|
|
echo >&2 $*
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
checkCmd() {
|
|
|
|
command -v $1 >/dev/null 2>&1 \
|
|
|
|
|| die "'$1' command not found. Please install from your package manager."
|
|
|
|
}
|
|
|
|
|
|
|
|
checkCmd wget
|
|
|
|
checkCmd bunzip2
|
2015-09-25 02:31:46 +08:00
|
|
|
|
|
|
|
mkdir -p dlib
|
|
|
|
if [ ! -f dlib/shape_predictor_68_face_landmarks.dat ]; then
|
2015-10-18 01:15:39 +08:00
|
|
|
printf "\n\n====================================================\n"
|
|
|
|
printf "Downloading dlib's public domain face landmarks model.\n"
|
2015-10-18 01:26:48 +08:00
|
|
|
printf "Reference: https://github.com/davisking/dlib-models\n\n"
|
|
|
|
printf "This will incur about 60MB of network traffic for the compressed\n"
|
|
|
|
printf "models that will decpmoress to about 100MB on disk.\n"
|
2015-10-18 01:15:39 +08:00
|
|
|
printf "====================================================\n\n"
|
2016-01-12 05:19:07 +08:00
|
|
|
wget -nv http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 \
|
2015-09-25 02:31:46 +08:00
|
|
|
-O dlib/shape_predictor_68_face_landmarks.dat.bz2
|
2015-10-18 01:15:39 +08:00
|
|
|
[ $? -eq 0 ] || die "+ Error in wget."
|
2015-09-25 02:31:46 +08:00
|
|
|
bunzip2 dlib/shape_predictor_68_face_landmarks.dat.bz2
|
2015-10-18 01:15:39 +08:00
|
|
|
[ $? -eq 0 ] || die "+ Error using bunzip2."
|
2015-09-25 02:31:46 +08:00
|
|
|
fi
|
|
|
|
|
2015-10-09 22:48:06 +08:00
|
|
|
mkdir -p openface
|
2016-01-08 07:28:05 +08:00
|
|
|
if [ ! -f openface/nn4.v2.t7 ]; then
|
2015-10-18 01:15:39 +08:00
|
|
|
printf "\n\n====================================================\n"
|
|
|
|
printf "Downloading OpenFace models.\n"
|
2016-01-08 07:28:05 +08:00
|
|
|
printf "The nn4.v2.t7 and celeb-classifier.nn4.v2.pkl models are\n"
|
2015-10-18 01:15:39 +08:00
|
|
|
printf "Copyright Carnegie Mellon University and are licensed under\n"
|
2015-10-18 01:26:48 +08:00
|
|
|
printf "the Apache 2.0 License.\n\n"
|
2016-01-08 07:28:05 +08:00
|
|
|
printf "This will incur about 500MB of network traffic for the models.\n"
|
2015-10-18 01:15:39 +08:00
|
|
|
printf "====================================================\n\n"
|
|
|
|
|
2016-01-12 05:19:07 +08:00
|
|
|
wget -nv http://openface-models.storage.cmusatyalab.org/nn4.v2.t7 \
|
2016-01-08 07:28:05 +08:00
|
|
|
-O openface/nn4.v2.t7
|
|
|
|
[ $? -eq 0 ] || ( rm openface/nn4.v2.t7* && die "+ nn4.v2.t7: Error in wget." )
|
2015-10-18 01:15:39 +08:00
|
|
|
|
2016-01-12 05:19:07 +08:00
|
|
|
wget -nv http://openface-models.storage.cmusatyalab.org/celeb-classifier.nn4.v2.pkl \
|
2016-01-08 07:28:05 +08:00
|
|
|
-O openface/celeb-classifier.nn4.v2.pkl
|
|
|
|
[ $? -eq 0 ] || ( rm openface/celeb-classifier.nn4.v2.pkl && \
|
|
|
|
die "+ celeb-classifier.nn4.v2.pkl: Error in wget." )
|
2015-09-25 02:31:46 +08:00
|
|
|
fi
|
2015-10-18 01:15:39 +08:00
|
|
|
|
|
|
|
printf "\n\n====================================================\n"
|
|
|
|
printf "Verifying checksums.\n"
|
|
|
|
printf "====================================================\n\n"
|
|
|
|
|
|
|
|
md5str() {
|
|
|
|
local FNAME=$1
|
|
|
|
case $(uname) in
|
|
|
|
"Linux")
|
|
|
|
echo $(md5sum "$FNAME" | cut -d ' ' -f 1)
|
|
|
|
;;
|
|
|
|
"Darwin")
|
|
|
|
echo $(md5 -q "$FNAME")
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
|
|
|
checkmd5() {
|
|
|
|
local FNAME=$1
|
|
|
|
local EXPECTED=$2
|
|
|
|
local ACTUAL=$(md5str "$FNAME")
|
|
|
|
if [ $EXPECTED == $ACTUAL ]; then
|
|
|
|
printf "+ $FNAME: successfully checked\n"
|
|
|
|
else
|
|
|
|
printf "+ ERROR! $FNAME md5sum did not match.\n"
|
|
|
|
printf " + Expected: $EXPECTED\n"
|
|
|
|
printf " + Actual: $ACTUAL\n"
|
|
|
|
printf " + Please manually delete this file and try re-running this script.\n"
|
2016-01-08 08:07:56 +08:00
|
|
|
return -1
|
2015-10-18 01:15:39 +08:00
|
|
|
fi
|
|
|
|
printf "\n"
|
|
|
|
}
|
|
|
|
|
2016-01-08 08:07:56 +08:00
|
|
|
set -e
|
|
|
|
|
2015-10-18 01:15:39 +08:00
|
|
|
checkmd5 \
|
|
|
|
dlib/shape_predictor_68_face_landmarks.dat \
|
|
|
|
73fde5e05226548677a050913eed4e04
|
|
|
|
|
|
|
|
checkmd5 \
|
2016-01-08 07:28:05 +08:00
|
|
|
openface/celeb-classifier.nn4.v2.pkl \
|
|
|
|
0d1c6e3ba4fd28580c4aa34a3d4eca04
|
2015-10-18 01:15:39 +08:00
|
|
|
|
|
|
|
checkmd5 \
|
2016-01-08 07:28:05 +08:00
|
|
|
openface/nn4.v2.t7 \
|
2016-01-08 08:07:56 +08:00
|
|
|
71911baa0ac61b437060536f0adb78f4
|