Grounding DINO
Grounding DINO è un rilevatore di oggetti open-set, sviluppato da IDEA Research, che valuta un'immagine rispetto a un prompt in testo libero invece che rispetto a una lista di classi fissa. LibreYOLO lo avvolge come famiglia di sola predizione nel suo livello di rilevatori a vocabolario aperto.
- Task
- detection
- Dimensioni
- t, b at 800 px
- Installa
pip install libreyolo- Livello di supporto
- Livello parallelo, dalla v. Un'interfaccia di prodotto separata, con una propria factory e un proprio contratto.
- Licenze
- Codice MIT, pesi Apache-2.0. Uso commerciale
Installazione
Grounding DINO si carica attraverso il livello dei rilevatori a vocabolario
aperto di LibreYOLO, che richiede l'extra openvocab:
pip install "libreyolo[openvocab]"Quell'extra porta con sé transformers e timm, le librerie di Hugging Face
che questo livello richiama.
Predizione
Grounding DINO non è un checkpoint che LibreYOLO carica con LibreYOLO(). Si
carica con la factory gemella LibreOpenVocab, che al primo utilizzo scarica
uno snapshot di Hugging Face e lo mette in cache sotto 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 filtra per punteggio del box, text_threshold per il punteggio# dei token della frase decodificata. Se non impostati valgono 0.25.result = model.predict(SAMPLE_IMAGE, conf=0.25, text_threshold=0.3)print(result.names)set_classes() imposta un vocabolario testuale persistente: chiamalo di nuovo
per sostituire la lista, oppure saltalo per tenere le etichette COCO-80
predefinite. Grounding DINO decodifica frasi in forma libera dal proprio output
testuale e le rimappa da sé su quel vocabolario, vince una corrispondenza
esatta normalizzata, si accetta una corrispondenza su token interi, e una frase
ambigua o senza corrispondenza viene scartata invece che indovinata, così
school bus non finisce mai mappato su bus o school da soli. Un vocabolario
abbastanza lungo da superare il limite di token dell'encoder di testo viene
diviso in più prompt, eseguito come passate forward separate e riunito in un
unico insieme di rilevamenti limitato da max_det.
iou viene accettato per compatibilità di API ma emette un avviso e non fa
nulla, dato che qui non c'è niente che esegua la non-maximum suppression.
imgsz e augment=True vengono rifiutati del tutto: il ridimensionamento
spetta al processor di transformers, e la test-time augmentation è fuori
dallo scopo di questo livello. predict() su una singola immagine restituisce
un solo Results, non una lista; passa una cartella, una lista di immagini o
stream=True per una sorgente video per averne diversi. Non esiste una strada
da CLI per questa famiglia, libreyolo predict carica solo checkpoint .pt
attraverso LibreYOLO(), quindi le famiglie LibreOpenVocab si eseguono da
Python. Vedi predizione per i tipi di sorgente e lo streaming.
Varianti
Due checkpoint, t e b. t è la dimensione predefinita di questo livello
quando non se ne indica nessuna. Entrambi rispecchiano la release ufficiale di
IDEA Research attraverso GroundingDinoForObjectDetection di transformers,
scaricata una volta sola in uno snapshot Hugging Face ospitato da LibreYOLO che
conserva i file originali. Per questa famiglia non sono ancora pubblicati
numeri di accuratezza o di latenza.
L'addestramento, la validazione su dataset e l'esportazione sono tutti fuori
dallo scopo di questo livello: train(), val() ed export() sollevano tutti
NotImplementedError senza condizioni. Questo è un wrapper di sola predizione
attorno a un checkpoint pubblicato.
Checkpoint
Tutti i file di pesi pubblicati per questa famiglia.
| File | Ingresso (px) | Licenza dei pesi |
|---|---|---|
| Detection | ||
| LibreGroundingDINOt.pt | 800 | apache-2.0 |
| LibreGroundingDINOb.pt | 800 | apache-2.0 |
Oggi tutti i file elencati sopra sono presenti nell<link>organizzazione LibreYOLO</link> e vengono scaricati al primo utilizzo.
Licenze
Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.
Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.
- Lavoro originale
- Grounding DINO, IDEA Research
- Licenza upstream
- Apache-2.0
- Sorgente upstream
- github.com/IDEA-Research/GroundingDINO
- Codice LibreYOLO
- MIT
- Pesi
- Apache-2.0, ripubblicati su huggingface.co/LibreYOLO
- Interpretazione
- 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.
Citazione
@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}
}Copiato dal blocco di citazione degli autori disponibile su github.com/IDEA-Research/GroundingDINO#black_nib-citation.