Spaces:
Runtime error
Runtime error
# main.py | |
import os | |
import sys | |
from gradio_interface import GradioWebRTCInterface | |
from dotenv import load_dotenv | |
load_dotenv() | |
def check_opencv_installation(): | |
"""Check if OpenCV is properly installed with required cascades""" | |
try: | |
import cv2 | |
# Check for required cascade files | |
cascade_files = [ | |
'haarcascade_frontalface_default.xml', | |
'haarcascade_eye.xml', | |
'haarcascade_smile.xml' | |
] | |
missing_cascades = [] | |
for cascade in cascade_files: | |
cascade_path = cv2.data.haarcascades + cascade | |
if not os.path.exists(cascade_path): | |
missing_cascades.append(cascade) | |
if missing_cascades: | |
print(f"β Missing OpenCV cascade files: {missing_cascades}") | |
print("π‘ Please reinstall OpenCV: pip install opencv-python") | |
return False | |
print("β OpenCV and required cascade files found!") | |
return True | |
except ImportError: | |
print("β OpenCV not found. Please install: pip install opencv-python") | |
return False | |
def check_optional_dependencies(): | |
"""Check for optional dependencies and provide info""" | |
optional_deps = { | |
'mediapipe': 'Enhanced facial landmark detection', | |
'google.generativeai': 'AI-powered voice alerts', | |
'scipy': 'Advanced mathematical computations' | |
} | |
available = [] | |
missing = [] | |
for dep, description in optional_deps.items(): | |
try: | |
__import__(dep) | |
available.append(f"β {dep} - {description}") | |
except ImportError: | |
missing.append(f"βͺ {dep} - {description}") | |
if available: | |
print("π¦ Available optional features:") | |
for item in available: | |
print(f" {item}") | |
if missing: | |
print("π¦ Optional features (install for enhanced functionality):") | |
for item in missing: | |
print(f" {item}") | |
def main(): | |
"""Main entry point""" | |
print("π Starting AI Driver Drowsiness Detection System...") | |
print("π§ Using OpenCV-based detection (no external model downloads required)") | |
if not check_opencv_installation(): | |
sys.exit(1) | |
check_optional_dependencies() | |
print("\nπ All core requirements satisfied!") | |
# Create and launch interface | |
try: | |
interface_manager = GradioWebRTCInterface() | |
demo = interface_manager.create_interface() | |
print("π Launching Gradio interface...") | |
print("π± The interface will be available in your browser") | |
print("π A public link will be generated for sharing") | |
demo.launch( | |
server_name="0.0.0.0", | |
server_port=7860, | |
share=True, | |
show_error=True, | |
enable_queue=True, | |
max_threads=10, | |
favicon_path=None | |
) | |
except Exception as e: | |
print(f"β Error launching interface: {e}") | |
print("π‘ Try running: pip install --upgrade gradio") | |
sys.exit(1) | |
if __name__ == "__main__": | |
main() | |