|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set -e |
|
|
|
|
|
echo "=== Medical Image Analysis Tool Setup ===" |
|
|
echo "Starting setup process at $(date)" |
|
|
|
|
|
|
|
|
check_python_package() { |
|
|
python3 -c "import $1" 2>/dev/null && echo "β
$1" || echo "β $1" |
|
|
} |
|
|
|
|
|
|
|
|
install_python_package() { |
|
|
local package=$1 |
|
|
echo "Installing $package..." |
|
|
|
|
|
if pip install "$package" --no-cache-dir; then |
|
|
echo "β
Successfully installed $package" |
|
|
else |
|
|
echo "β Failed to install $package" |
|
|
return 1 |
|
|
fi |
|
|
} |
|
|
|
|
|
|
|
|
echo "Updating pip..." |
|
|
python3 -m pip install --upgrade pip |
|
|
|
|
|
|
|
|
echo "Installing core dependencies..." |
|
|
install_python_package "torch>=2.5.1" |
|
|
install_python_package "torchvision>=0.20.1" |
|
|
install_python_package "transformers>=4.30.0" |
|
|
install_python_package "gradio>=4.0.0" |
|
|
install_python_package "numpy>=1.24.4" |
|
|
install_python_package "pillow>=9.4.0" |
|
|
|
|
|
|
|
|
echo "Installing additional dependencies..." |
|
|
install_python_package "albumentations" |
|
|
install_python_package "einops" |
|
|
install_python_package "opencv-python" |
|
|
install_python_package "tqdm" |
|
|
install_python_package "hydra-core" |
|
|
install_python_package "omegaconf" |
|
|
|
|
|
|
|
|
if [ -d "segment-anything-2" ]; then |
|
|
echo "Installing SAM-2..." |
|
|
cd segment-anything-2 |
|
|
pip install -e . --no-cache-dir |
|
|
cd .. |
|
|
echo "β
SAM-2 installation completed" |
|
|
else |
|
|
echo "β οΈ SAM-2 directory not found - cloning repository..." |
|
|
git clone https://github.com/facebookresearch/segment-anything-2.git |
|
|
cd segment-anything-2 |
|
|
pip install -e . --no-cache-dir |
|
|
cd .. |
|
|
echo "β
SAM-2 cloned and installed" |
|
|
fi |
|
|
|
|
|
|
|
|
echo "Verifying installations..." |
|
|
echo "Python packages status:" |
|
|
check_python_package "torch" |
|
|
check_python_package "torchvision" |
|
|
check_python_package "transformers" |
|
|
check_python_package "gradio" |
|
|
check_python_package "albumentations" |
|
|
check_python_package "einops" |
|
|
check_python_package "cv2" |
|
|
check_python_package "numpy" |
|
|
check_python_package "PIL" |
|
|
|
|
|
|
|
|
echo "Testing PyTorch and Torchvision compatibility..." |
|
|
python3 -c " |
|
|
import torch |
|
|
import torchvision |
|
|
print(f'PyTorch version: {torch.__version__}') |
|
|
print(f'Torchvision version: {torchvision.__version__}') |
|
|
print(f'CUDA available: {torch.cuda.is_available()}') |
|
|
print('β
PyTorch and Torchvision are compatible') |
|
|
" || echo "β PyTorch/Torchvision compatibility issue" |
|
|
|
|
|
|
|
|
echo "Creating necessary directories..." |
|
|
mkdir -p logs |
|
|
mkdir -p uploads |
|
|
mkdir -p outputs |
|
|
|
|
|
|
|
|
chmod +x app.py |
|
|
|
|
|
echo "=== Setup completed at $(date) ===" |
|
|
echo "You can now run the application with: python3 app.py" |
|
|
|
|
|
|
|
|
echo "Running quick test..." |
|
|
python3 -c " |
|
|
import sys |
|
|
sys.path.append('.') |
|
|
try: |
|
|
from app import check_dependencies |
|
|
deps = check_dependencies() |
|
|
print('Dependency check results:') |
|
|
for dep, status in deps.items(): |
|
|
print(f' {dep}: {\"β
\" if status else \"β\"}') |
|
|
except Exception as e: |
|
|
print(f'Test failed: {e}') |
|
|
" |