99 lines
3.0 KiB
Bash
Executable File
99 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Download OpenFace models.
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
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
|
|
|
|
mkdir -p dlib
|
|
if [ ! -f dlib/shape_predictor_68_face_landmarks.dat ]; then
|
|
printf "\n\n====================================================\n"
|
|
printf "Downloading dlib's public domain face landmarks model.\n"
|
|
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"
|
|
printf "====================================================\n\n"
|
|
wget -nv http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 \
|
|
-O dlib/shape_predictor_68_face_landmarks.dat.bz2
|
|
[ $? -eq 0 ] || die "+ Error in wget."
|
|
bunzip2 dlib/shape_predictor_68_face_landmarks.dat.bz2
|
|
[ $? -eq 0 ] || die "+ Error using bunzip2."
|
|
fi
|
|
|
|
mkdir -p openface
|
|
if [ ! -f openface/nn4.small2.v1.t7 ]; then
|
|
printf "\n\n====================================================\n"
|
|
printf "Downloading OpenFace models, which are copyright\n"
|
|
printf "Carnegie Mellon University and are licensed under\n"
|
|
printf "the Apache 2.0 License.\n\n"
|
|
printf "This will incur about 100MB of network traffic for the models.\n"
|
|
printf "====================================================\n\n"
|
|
|
|
wget -nv http://openface-models.storage.cmusatyalab.org/nn4.small2.v1.t7 \
|
|
-O openface/nn4.small2.v1.t7
|
|
[ $? -eq 0 ] || ( rm openface/nn4.small2.v1.t7* && die "+ nn4.small2.v1.t7: Error in wget." )
|
|
|
|
wget -nv http://openface-models.storage.cmusatyalab.org/celeb-classifier.nn4.small2.v1.pkl \
|
|
-O openface/celeb-classifier.nn4.small2.v1.pkl
|
|
[ $? -eq 0 ] || ( rm openface/celeb-classifier.nn4.small2.v1.pkl && \
|
|
die "+ celeb-classifier.nn4.small2.v1.pkl: Error in wget." )
|
|
fi
|
|
|
|
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"
|
|
return -1
|
|
fi
|
|
printf "\n"
|
|
}
|
|
|
|
set -e
|
|
|
|
checkmd5 \
|
|
dlib/shape_predictor_68_face_landmarks.dat \
|
|
73fde5e05226548677a050913eed4e04
|
|
|
|
checkmd5 \
|
|
openface/celeb-classifier.nn4.small2.v1.pkl \
|
|
199a2c0d32fd0f22f14ad2d248280475
|
|
|
|
checkmd5 \
|
|
openface/nn4.small2.v1.t7 \
|
|
c95bfd8cc1adf05210e979ff623013b6
|