| # 📦 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 ! 🚀 | |