84 lines
3.3 KiB
Bash
Executable File
84 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Raspberry Pi Installation Script
|
|
# This script helps install dependencies on Raspberry Pi with proper error handling
|
|
|
|
set -e # Exit on error
|
|
|
|
echo "🚗 Driver DSMS ADAS - Raspberry Pi Installation"
|
|
echo "================================================"
|
|
echo ""
|
|
|
|
# Check Python version
|
|
PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2)
|
|
PYTHON_MAJOR=$(echo $PYTHON_VERSION | cut -d. -f1)
|
|
PYTHON_MINOR=$(echo $PYTHON_VERSION | cut -d. -f2)
|
|
|
|
echo "📋 System Information:"
|
|
echo " Python: $(python3 --version)"
|
|
echo " Architecture: $(uname -m)"
|
|
echo " OS: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)"
|
|
echo ""
|
|
|
|
# Check if virtual environment exists
|
|
if [ ! -d "venv" ]; then
|
|
echo "📦 Creating virtual environment..."
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install --upgrade pip setuptools wheel
|
|
else
|
|
echo "✓ Virtual environment exists"
|
|
source venv/bin/activate
|
|
fi
|
|
|
|
echo ""
|
|
echo "📦 Installing base requirements (without MediaPipe)..."
|
|
pip install -r requirements_rpi.txt
|
|
|
|
echo ""
|
|
echo "🎯 Attempting MediaPipe installation..."
|
|
|
|
# Try MediaPipe based on Python version
|
|
if [ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -ge 11 ]; then
|
|
echo " Trying MediaPipe 1.0+ (for Python 3.11+)..."
|
|
pip install mediapipe>=1.0.0 && echo " ✓ MediaPipe 1.0+ installed successfully" || {
|
|
echo " ⚠️ MediaPipe 1.0+ installation failed"
|
|
echo " Trying MediaPipe 0.10.8 as fallback..."
|
|
pip install mediapipe==0.10.8 && echo " ✓ MediaPipe 0.10.8 installed successfully" || {
|
|
echo " ⚠️ MediaPipe installation failed - will use OpenCV fallback"
|
|
}
|
|
}
|
|
elif [ "$PYTHON_MAJOR" -eq 3 ] && [ "$PYTHON_MINOR" -ge 9 ]; then
|
|
echo " Trying MediaPipe 0.10.8 (for Python 3.9-3.10)..."
|
|
pip install mediapipe==0.10.8 && echo " ✓ MediaPipe 0.10.8 installed successfully" || {
|
|
echo " ⚠️ MediaPipe 0.10.8 installation failed"
|
|
echo " Trying MediaPipe 1.0+ as fallback..."
|
|
pip install mediapipe>=1.0.0 && echo " ✓ MediaPipe 1.0+ installed successfully" || {
|
|
echo " ⚠️ MediaPipe installation failed - will use OpenCV fallback"
|
|
}
|
|
}
|
|
else
|
|
echo " ⚠️ Python version $PYTHON_VERSION may not be supported"
|
|
echo " Trying MediaPipe anyway..."
|
|
pip install mediapipe>=1.0.0 && echo " ✓ MediaPipe installed successfully" || {
|
|
echo " ⚠️ MediaPipe installation failed - will use OpenCV fallback"
|
|
}
|
|
fi
|
|
|
|
echo ""
|
|
echo "✅ Installation complete!"
|
|
echo ""
|
|
echo "📝 Verification:"
|
|
python3 -c "import cv2; print(f' ✓ OpenCV {cv2.__version__}')" 2>/dev/null || echo " ✗ OpenCV not found"
|
|
python3 -c "import mediapipe; print(f' ✓ MediaPipe {mediapipe.__version__}')" 2>/dev/null || echo " ⚠️ MediaPipe not found (will use OpenCV fallback)"
|
|
python3 -c "import streamlit; print(f' ✓ Streamlit {streamlit.__version__}')" 2>/dev/null || echo " ✗ Streamlit not found"
|
|
python3 -c "import torch; print(f' ✓ PyTorch {torch.__version__}')" 2>/dev/null || echo " ✗ PyTorch not found"
|
|
|
|
echo ""
|
|
echo "🚀 To run the application:"
|
|
echo " source venv/bin/activate"
|
|
echo " streamlit run src/poc_demo.py --server.port 8501 --server.address 0.0.0.0"
|
|
echo ""
|
|
echo "Or use: ./run_poc.sh"
|
|
echo ""
|
|
|