Initial commit
This commit is contained in:
115
geniusia2/VISION_MODELS_IMPLEMENTATION.md
Normal file
115
geniusia2/VISION_MODELS_IMPLEMENTATION.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# Implémentation des Modèles de Vision
|
||||
|
||||
## Modèles Implémentés
|
||||
|
||||
### 1. OWL-v2 (Open-World Localization v2)
|
||||
- **Source**: Google Research / HuggingFace
|
||||
- **Modèle**: `google/owlv2-base-patch16-ensemble`
|
||||
- **Capacités**: Détection d'objets open-vocabulary (peut détecter n'importe quel objet décrit en texte)
|
||||
- **Avantages**: Très flexible, bonne précision
|
||||
- **Inconvénients**: Plus lent que YOLO
|
||||
|
||||
### 2. Grounding DINO
|
||||
- **Source**: IDEA Research / HuggingFace
|
||||
- **Modèle**: `IDEA-Research/grounding-dino-tiny`
|
||||
- **Capacités**: Détection d'objets avec grounding textuel
|
||||
- **Avantages**: Bon équilibre vitesse/précision
|
||||
- **Inconvénients**: Nécessite des prompts bien formulés
|
||||
|
||||
### 3. YOLO-World
|
||||
- **Source**: Ultralytics
|
||||
- **Modèle**: `yolov8s-worldv2.pt`
|
||||
- **Capacités**: Détection ultra-rapide avec vocabulaire ouvert
|
||||
- **Avantages**: Très rapide, temps réel
|
||||
- **Inconvénients**: Moins précis sur des objets UI complexes
|
||||
|
||||
## Configuration
|
||||
|
||||
Dans `config.py`, le modèle principal est configuré :
|
||||
```python
|
||||
"models": {
|
||||
"vision": "owl-v2", # Modèle principal
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
## Fallback Automatique
|
||||
|
||||
Le système essaie les modèles dans cet ordre :
|
||||
1. Modèle principal configuré (owl-v2 par défaut)
|
||||
2. Grounding DINO
|
||||
3. YOLO-World
|
||||
|
||||
Si un modèle échoue ou ne trouve rien, le suivant est automatiquement essayé.
|
||||
|
||||
## Utilisation avec Qwen3-VL
|
||||
|
||||
Le système utilise **Qwen3-VL:8b** via Ollama pour :
|
||||
- Analyser les screenshots
|
||||
- Générer des descriptions d'actions
|
||||
- Raisonnement visuel sur les tâches
|
||||
|
||||
Configuration dans `config.py` :
|
||||
```python
|
||||
"llm": "qwen3-vl:8b"
|
||||
```
|
||||
|
||||
## Installation des Dépendances
|
||||
|
||||
```bash
|
||||
# Transformers pour OWL-v2 et Grounding DINO
|
||||
pip install transformers torch
|
||||
|
||||
# Ultralytics pour YOLO-World
|
||||
pip install ultralytics
|
||||
|
||||
# Ollama doit être installé séparément
|
||||
# https://ollama.ai/
|
||||
```
|
||||
|
||||
## Téléchargement des Modèles
|
||||
|
||||
Les modèles sont téléchargés automatiquement au premier usage :
|
||||
- OWL-v2 : ~1.5 GB
|
||||
- Grounding DINO : ~600 MB
|
||||
- YOLO-World : ~50 MB
|
||||
|
||||
## Performance
|
||||
|
||||
| Modèle | Vitesse | Précision | Mémoire GPU |
|
||||
|--------|---------|-----------|-------------|
|
||||
| OWL-v2 | Lent (~2s) | Excellente | ~4 GB |
|
||||
| Grounding DINO | Moyen (~1s) | Bonne | ~2 GB |
|
||||
| YOLO-World | Rapide (~0.1s) | Moyenne | ~1 GB |
|
||||
|
||||
## Exemple d'Utilisation
|
||||
|
||||
```python
|
||||
from core.utils.vision_utils import VisionUtils
|
||||
import numpy as np
|
||||
|
||||
# Initialiser
|
||||
vision = VisionUtils()
|
||||
|
||||
# Détecter un bouton
|
||||
frame = np.array(...) # Screenshot
|
||||
detections = vision.detect("button", frame)
|
||||
|
||||
# Avec modèle spécifique
|
||||
detections = vision.detect("icon", frame, model="yolo")
|
||||
```
|
||||
|
||||
## Résolution des Problèmes
|
||||
|
||||
### Erreur: "'list' object has no attribute 'dtype'"
|
||||
✅ **Résolu** : Les arguments de `detect()` étaient inversés. Maintenant corrigé.
|
||||
|
||||
### Modèle ne se charge pas
|
||||
- Vérifier la connexion internet (téléchargement initial)
|
||||
- Vérifier l'espace disque disponible
|
||||
- Vérifier que CUDA est disponible si GPU utilisé
|
||||
|
||||
### Détections vides
|
||||
- Essayer avec un prompt plus descriptif
|
||||
- Le système essaiera automatiquement les autres modèles
|
||||
- Vérifier que l'élément est visible dans le screenshot
|
||||
Reference in New Issue
Block a user