Grounding DINO

Grounding DINO est un détecteur d'objets open-set, développé par IDEA Research, qui évalue une image face à un prompt en texte libre plutôt que face à une liste de classes figée. LibreYOLO l'intègre comme une famille en prédiction seule dans son niveau des détecteurs à vocabulaire ouvert.

Tâches
detection
Tailles
t, b at 800 px
Installer
pip install libreyolo
Niveau de support
Niveau parallèle, depuis v. Une interface produit distincte avec sa propre factory et son propre contrat.
Origine
Grounding DINO par IDEA Research, Apache-2.0. Article, source
Licences
Code MIT, poids Apache-2.0. Usage commercial

Installation

Grounding DINO se charge via le niveau des détecteurs à vocabulaire ouvert de LibreYOLO, qui a besoin de l'extra openvocab :

bash
pip install "libreyolo[openvocab]"

Cet extra installe transformers et timm, les bibliothèques Hugging Face que ce niveau appelle.

Prédire

Grounding DINO n'est pas un checkpoint que LibreYOLO charge via LibreYOLO(). Il se charge via la factory sœur LibreOpenVocab, qui télécharge un snapshot Hugging Face au premier usage et le met en cache dans weights/.

Python
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("grounding-dino-t")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.25)for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
Seuil de texte
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("grounding-dino-b")model.set_classes(["remote control", "school bus"]) # conf filtre par score de boîte, text_threshold par le score de# token de la phrase décodée. Les deux valent 0.25 par défaut.result = model.predict(SAMPLE_IMAGE, conf=0.25, text_threshold=0.3)print(result.names)

set_classes() définit un vocabulaire de texte persistant : rappelez-la pour remplacer la liste, ou omettez-la pour conserver les étiquettes COCO-80 par défaut. Grounding DINO décode des phrases en forme libre depuis sa propre sortie texte et les remappe lui-même sur ce vocabulaire, une correspondance normalisée exacte l'emporte, une correspondance sur un token entier est acceptée, et une phrase ambiguë ou sans correspondance est écartée plutôt que devinée, si bien que school bus n'est jamais associé à bus ou school seuls. Un vocabulaire assez long pour dépasser la limite de tokens de l'encodeur de texte est découpé en plusieurs prompts, exécutés comme autant de passes avant distinctes, puis fusionnés en un seul ensemble de détections plafonné par max_det.

iou est accepté par compatibilité d'API mais émet un avertissement et ne fait rien, puisque rien ici n'exécute de non-maximum suppression. imgsz et augment=True sont refusés d'emblée : le processeur transformers gère le redimensionnement, et l'augmentation au moment du test est hors périmètre pour ce niveau. predict() sur une seule image renvoie un unique Results, pas une liste ; passez un répertoire, une liste d'images, ou stream=True pour une source vidéo afin d'en obtenir plusieurs. Il n'y a pas de chemin CLI pour cette famille, libreyolo predict ne charge que les checkpoints .pt via LibreYOLO(), donc les familles LibreOpenVocab s'utilisent depuis Python. Voir la prédiction pour les types de sources et le streaming.

Variantes

Deux checkpoints, t et b. t est la taille par défaut de ce niveau quand aucune n'est indiquée. Tous deux reprennent la version officielle d'IDEA Research via le GroundingDinoForObjectDetection de transformers, téléchargé une fois dans un snapshot Hugging Face hébergé par LibreYOLO qui préserve les fichiers d'origine. Aucun chiffre d'exactitude ou de latence n'est encore publié pour cette famille.

L'entraînement, la validation sur dataset et l'export sont tous hors périmètre pour ce niveau : train(), val() et export() lèvent tous NotImplementedError sans condition. Il s'agit d'un wrapper en prédiction seule autour d'un checkpoint publié.

Checkpoints

Tous les fichiers de poids publiés de cette famille.

FichierEntrée (px)Licence des poids
Detection
LibreGroundingDINOt.pt800apache-2.0
LibreGroundingDINOb.pt800apache-2.0

Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
Grounding DINO, IDEA Research
Licence du projet d'origine
Apache-2.0
Source du projet d'origine
github.com/IDEA-Research/GroundingDINO
Code de LibreYOLO
MIT
Poids
Apache-2.0, republiés sur huggingface.co/LibreYOLO
Interprétation
Apache-2.0 is a permissive license, so this checkpoint can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. LibreYOLO vendors no Grounding DINO model source of its own: LibreGroundingDINO calls the Apache-2.0 `transformers` implementation, `GroundingDinoForObjectDetection`, directly, and downloads the official checkpoint into a LibreYOLO-hosted mirror repository that preserves the upstream snapshot files.

Citation

@article{liu2023grounding,
  title={Grounding dino: Marrying dino with grounded pre-training for open-set object detection},
  author={Liu, Shilong and Zeng, Zhaoyang and Ren, Tianhe and Li, Feng and Zhang, Hao and Yang, Jie and Li, Chunyuan and Yang, Jianwei and Su, Hang and Zhu, Jun and others},
  journal={arXiv preprint arXiv:2303.05499},
  year={2023}
}

Copié depuis le bloc de citation des auteurs sur github.com/IDEA-Research/GroundingDINO#black_nib-citation.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.