# 📦 Guide de Déploiement sur Hugging Face Spaces ## 🚀 Étapes de déploiement ### 1. Créer un compte Hugging Face - Allez sur https://huggingface.co - Créez un compte si vous n'en avez pas ### 2. Créer un nouveau Space - Cliquez sur votre profil → "New Space" - Donnez un nom à votre Space (ex: "courtside-cv-tennis") - Choisissez **Gradio** comme SDK - Choisissez la visibilité (Public ou Private) - Cliquez sur "Create Space" ### 3. Uploader les fichiers Vous avez deux options : #### Option A : Via l'interface web 1. Dans votre Space, cliquez sur "Files" → "Add file" → "Upload files" 2. Uploadez les fichiers suivants : - `app.py` - `requirements.txt` - `README.md` - `.gitignore` #### Option B : Via Git (recommandé) ```bash # Cloner votre Space git clone https://huggingface.co/spaces/VOTRE_USERNAME/VOTRE_SPACE_NAME cd VOTRE_SPACE_NAME # Copier vos fichiers cp /chemin/vers/app.py . cp /chemin/vers/requirements.txt . cp /chemin/vers/README.md . # Commit et push git add . git commit -m "Initial commit: CourtSide-CV Tennis Analysis" git push ``` ### 4. Configuration du Space Le Space va automatiquement : 1. Installer les dépendances depuis `requirements.txt` 2. Lancer `app.py` 3. Démarrer l'interface Gradio ⏱️ Le premier déploiement peut prendre 5-10 minutes. ### 5. Ajouter votre modèle custom (optionnel) Si vous avez un modèle YOLO custom pour les balles de tennis : 1. Uploadez votre fichier `best.pt` dans l'onglet "Files" 2. Modifiez dans `app.py` ligne 328 : ```python ball_model_path = 'best.pt' # Au lieu de 'yolov8m.pt' ``` ### 6. Configuration avancée (optionnel) Pour des performances optimales, vous pouvez configurer : #### Augmenter les ressources - Dans les paramètres du Space, passez à un hardware plus puissant (GPU si disponible) #### Ajouter des secrets Si vous avez des clés API ou tokens : - Allez dans "Settings" → "Repository secrets" - Ajoutez vos secrets ## 🔧 Personnalisation ### Modifier les paramètres par défaut Dans `app.py`, vous pouvez ajuster : ```python # Ligne 41-44 : Seuils de détection self.conf_thresh = 0.05 # Confiance minimale self.smooth_window = 5 # Fenêtre de lissage self.max_interpolate_gap = 30 # Gap max pour interpolation ``` ### Changer l'apparence Modifiez le thème Gradio ligne 325 : ```python theme=gr.themes.Soft() # Essayez aussi: Base(), Default(), Glass() ``` ## 🐛 Dépannage ### Le Space ne démarre pas 1. Vérifiez les logs dans l'onglet "Logs" 2. Assurez-vous que tous les packages dans `requirements.txt` sont compatibles 3. Vérifiez qu'il n'y a pas d'erreurs de syntaxe dans `app.py` ### Out of memory 1. Réduisez `max_duration` par défaut (ligne 317) 2. Réduisez `imgsz` dans les détections YOLO (lignes 54, 131, 223) 3. Demandez un hardware plus puissant dans les settings ### Détection de balle faible 1. Ajustez `conf_thresh` (ligne 41) 2. Utilisez un modèle YOLO custom entraîné sur des balles de tennis 3. Assurez-vous que vos vidéos sont de bonne qualité ## 📊 Limitations - **Durée** : Pour éviter les timeouts, limitez les vidéos à 60 secondes - **Résolution** : Les vidéos très haute résolution (4K) peuvent être lentes - **Gratuit** : Les Spaces gratuits ont des limitations de CPU/RAM ## 🎯 Prochaines étapes 1. **Modèle custom** : Entraînez un modèle YOLO spécifiquement sur des balles de tennis 2. **Statistiques avancées** : Ajoutez le comptage de coups, vitesse de balle, etc. 3. **Multi-caméras** : Supportez plusieurs angles de vue 4. **Export des données** : Exportez les trajectoires en JSON/CSV ## 📞 Support Si vous avez des questions : - 💬 Créez une Discussion sur votre Space Hugging Face - 🐛 Ouvrez une Issue sur GitHub - 📧 Contactez-moi directement --- Bon déploiement ! 🚀