2024-02-10 13:41:46 +01:00
|
|
|
#!/command/with-contenv bash
|
|
|
|
# shellcheck shell=bash
|
|
|
|
# Download yolov8 models when DOWNLOAD_YOLOV8=1 environment variable is set
|
|
|
|
|
|
|
|
set -o errexit -o nounset -o pipefail
|
|
|
|
|
|
|
|
MODEL_CACHE_DIR=${MODEL_CACHE_DIR:-"/config/model_cache"}
|
2024-02-10 18:54:18 +01:00
|
|
|
DOWNLOAD_YOLOV8=${DOWNLOAD_YOLOV8:-"0"}
|
2024-02-10 13:41:46 +01:00
|
|
|
YOLOV8_DIR="$MODEL_CACHE_DIR/yolov8"
|
|
|
|
YOLOV8_URL=https://github.com/harakas/models/releases/download/yolov8.1-1.1/yolov8.small.models.tar.gz
|
|
|
|
YOLOV8_DIGEST=304186b299560fbacc28eac9b9ea02cc2289fe30eb2c0df30109a2529423695c
|
|
|
|
|
|
|
|
if [ "$DOWNLOAD_YOLOV8" = "1" ]; then
|
|
|
|
echo "download-models: DOWNLOAD_YOLOV8=${DOWNLOAD_YOLOV8}, running download"
|
|
|
|
if ! test -f "${YOLOV8_DIR}/model.fetched"; then
|
|
|
|
mkdir -p $YOLOV8_DIR
|
|
|
|
TMP_FILE="${YOLOV8_DIR}/download.tar.gz"
|
|
|
|
curl --no-progress-meter -L --max-filesize 500M --insecure --output $TMP_FILE "${YOLOV8_URL}"
|
|
|
|
digest=$(sha256sum $TMP_FILE | awk '{print $1}')
|
|
|
|
if [ "$digest" = "$YOLOV8_DIGEST" ]; then
|
|
|
|
echo "download-models: Extracting downloaded file"
|
|
|
|
cd $YOLOV8_DIR
|
|
|
|
tar zxf $TMP_FILE
|
|
|
|
rm $TMP_FILE
|
|
|
|
touch model.fetched
|
|
|
|
echo "download-models: Yolov8 download done, files placed into ${YOLOV8_DIR}"
|
|
|
|
else
|
|
|
|
echo "download-models: Downloaded file digest does not match: got $digest, expected $YOLOV8_DIGEST"
|
|
|
|
rm $TMP_FILE
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "download-models: ${YOLOV8_DIR}/model.fetched already present"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|