a / DEPLOYMENT_GUIDE.md
David-dsv
Initial commit: CourtSide-CV Tennis Analysis
998d63b
# 📦 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 ! 🚀