|
#!/bin/bash |
|
|
|
set -eux |
|
|
|
|
|
model_name="DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth" |
|
|
|
check_docker() { |
|
if ! command -v docker &>/dev/null; then |
|
echo "Docker could not be found. Please install Docker and try again." |
|
exit 1 |
|
fi |
|
} |
|
|
|
download_model_checkpoint() { |
|
if [ -f "./files/checkpoints/${model_name}" ]; then |
|
echo "Model checkpoint ${model_name} already exists. Skipping download." |
|
return |
|
fi |
|
echo "Downloading model checkpoint ${model_name}..." |
|
wget "https://download.europe.naverlabs.com/ComputerVision/DUSt3R/${model_name}" -P ./files/checkpoints |
|
} |
|
|
|
set_dcomp() { |
|
if command -v docker-compose &>/dev/null; then |
|
dcomp="docker-compose" |
|
elif command -v docker &>/dev/null && docker compose version &>/dev/null; then |
|
dcomp="docker compose" |
|
else |
|
echo "Docker Compose could not be found. Please install Docker Compose and try again." |
|
exit 1 |
|
fi |
|
} |
|
|
|
run_docker() { |
|
export MODEL=${model_name} |
|
if [ "$with_cuda" -eq 1 ]; then |
|
$dcomp -f docker-compose-cuda.yml up --build |
|
else |
|
$dcomp -f docker-compose-cpu.yml up --build |
|
fi |
|
} |
|
|
|
with_cuda=0 |
|
for arg in "$@"; do |
|
case $arg in |
|
--with-cuda) |
|
with_cuda=1 |
|
;; |
|
--model_name=*) |
|
model_name="${arg#*=}.pth" |
|
;; |
|
*) |
|
echo "Unknown parameter passed: $arg" |
|
exit 1 |
|
;; |
|
esac |
|
done |
|
|
|
|
|
main() { |
|
check_docker |
|
download_model_checkpoint |
|
set_dcomp |
|
run_docker |
|
} |
|
|
|
main |
|
|