OWLv2
OWLv2 è un rilevatore di oggetti a vocabolario aperto, sviluppato da Google Research, che valuta le regioni dell'immagine rispetto agli embedding testuali di un encoder in stile CLIP. LibreYOLO lo avvolge come famiglia di sola predizione nel suo livello di rilevatori a vocabolario aperto.
- Task
- detection
- Dimensioni
- b16, l14 at 960 to 1008 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
OWLv2 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
OWLv2 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("owlv2-b16")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.1)for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreOpenVocab, SAMPLE_IMAGE # Saltare set_classes() mantiene il vocabolario COCO-80 predefinito del livello.model = LibreOpenVocab("owlv2-l14")result = model.predict(SAMPLE_IMAGE, conf=0.1)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. Ogni etichetta viene avvolta in un template di prompt fisso prima
di arrivare alla torre testuale, in linea con il modo in cui
Owlv2ForObjectDetection di transformers è stato addestrato.
OWLv2 non ha una soglia sui token di testo: solo conf filtra i rilevamenti, e
passare text_threshold solleva un errore. 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, b16 (base, patch size 16) e l14 (large, patch size 14).
b16 è la dimensione predefinita di questo livello quando non se ne indica
nessuna. Entrambi rispecchiano la release ufficiale di Google Research
attraverso Owlv2ForObjectDetection 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 | ||
| LibreOWLv2b16.pt | 960 | apache-2.0 |
| LibreOWLv2l14.pt | 1008 | 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
- OWLv2, Google Research
- Licenza upstream
- Apache-2.0
- Sorgente upstream
- github.com/google-research/scenic/tree/main/scenic/projects/owl_vit
- Codice LibreYOLO
- MIT
- Pesi
- Apache-2.0, ripubblicati su huggingface.co/LibreYOLO
- Interpretazione
- Apache-2.0 is a permissive license, so these checkpoints 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 OWLv2 model source of its own: LibreOWLv2 calls the Apache-2.0 `transformers` implementation, `Owlv2ForObjectDetection`, directly, and downloads the official checkpoints into a LibreYOLO-hosted mirror repository that preserves the upstream snapshot files.
Citazione
@article{minderer2023scaling,
title={Scaling Open-Vocabulary Object Detection},
author={Matthias Minderer, Alexey Gritsenko, Neil Houlsby},
journal={NeurIPS},
year={2023},
}Copiato dal blocco di citazione degli autori disponibile su github.com/google-research/scenic/blob/main/scenic/projects/owl_vit/README.md#references.