# 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