Spaces:
Sleeping
Sleeping
| """ | |
| Main application file for FoodViT | |
| Entry point for the food classification application | |
| """ | |
| import os | |
| import sys | |
| import argparse | |
| from pathlib import Path | |
| # Add current directory to path for imports | |
| sys.path.append(os.path.dirname(os.path.abspath(__file__))) | |
| from config import APP_CONFIG | |
| from interface.gradio_app import launch_interface | |
| from utils.predictor import predictor | |
| def check_dependencies(): | |
| """Check if all required dependencies are available""" | |
| required_packages = [ | |
| 'torch', | |
| 'transformers', | |
| 'gradio', | |
| 'PIL', | |
| 'cv2', | |
| 'albumentations', | |
| 'numpy' | |
| ] | |
| missing_packages = [] | |
| for package in required_packages: | |
| try: | |
| __import__(package) | |
| except ImportError: | |
| missing_packages.append(package) | |
| if missing_packages: | |
| print(f"Missing required packages: {', '.join(missing_packages)}") | |
| print("Please install them using: pip install -r requirements.txt") | |
| return False | |
| return True | |
| def main(): | |
| """Main function to run the application""" | |
| parser = argparse.ArgumentParser(description="FoodViT - Food Classification Application") | |
| # Remove host, port, share arguments for Hugging Face Spaces | |
| parser.add_argument( | |
| "--debug", | |
| action="store_true", | |
| help="Enable debug mode" | |
| ) | |
| args = parser.parse_args() | |
| print("=" * 50) | |
| print("FoodViT - Food Classification Application") | |
| print("=" * 50) | |
| print("Checking dependencies...") | |
| if not check_dependencies(): | |
| sys.exit(1) | |
| print("β All dependencies available") | |
| print("Initializing model...") | |
| if not predictor.initialize(): | |
| print("β Failed to initialize model") | |
| sys.exit(1) | |
| print("β Model initialized successfully") | |
| model_info = predictor.get_model_info() | |
| if "error" not in model_info: | |
| print(f"β Model loaded on {model_info['device']}") | |
| print(f"β Total parameters: {model_info['total_parameters']:,}") | |
| print("\nStarting Gradio interface...") | |
| try: | |
| # Launch the interface with default settings for Spaces | |
| launch_interface() | |
| except KeyboardInterrupt: | |
| print("\nApplication stopped by user") | |
| except Exception as e: | |
| print(f"Error running application: {e}") | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| main() |