Files
Geniusia_v2/geniusia2/VISION_MODELS_IMPLEMENTATION.md
2026-03-05 00:20:25 +01:00

3.1 KiB

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

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

"llm": "qwen3-vl:8b"

Installation des Dépendances

# 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

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