a / DEPLOYMENT_GUIDE.md
David-dsv
Initial commit: CourtSide-CV Tennis Analysis
998d63b

A newer version of the Gradio SDK is available: 6.1.0

Upgrade

📦 Guide de Déploiement sur Hugging Face Spaces

🚀 Étapes de déploiement

1. Créer un compte Hugging Face

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

# 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 :
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 :

# 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 :

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