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.
- 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 :
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/.
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)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.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| Detection | ||
| LibreGroundingDINOt.pt | 800 | apache-2.0 |
| LibreGroundingDINOb.pt | 800 | apache-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.