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() | |