OWLv2

OWLv2 to detektor obiektów z otwartym słownikiem opracowany przez Google Research, który ocenia regiony obrazu względem embeddingów tekstowych z enkodera w stylu CLIP. LibreYOLO udostępnia go jako rodzinę wyłącznie do predykcji na poziomie detektorów z otwartym słownikiem.

Zadania
detection
Rozmiary
b16, l14 at 960 to 1008 px
Instalacja
pip install libreyolo
Poziom obsługi
Poziom siostrzany, od wersji v. Osobna część produktu z własną fabryką i kontraktem.
Projekt źródłowy
OWLv2, autorzy: Google Research, licencja: Apache-2.0. Publikacja, kod źródłowy
Licencje
Kod: MIT, wagi: Apache-2.0. Użycie komercyjne

Instalacja

OWLv2 jest wczytywany przez poziom detektorów z otwartym słownikiem w LibreYOLO, który wymaga dodatku openvocab:

bash
pip install "libreyolo[openvocab]"

Ten dodatek instaluje transformers i timm, biblioteki Hugging Face używane przez ten poziom.

Predykcja

OWLv2 nie jest checkpointem wczytywanym przez LibreYOLO za pomocą LibreYOLO(). Korzysta z pokrewnej fabryki LibreOpenVocab, która przy pierwszym użyciu pobiera snapshot Hugging Face i zapisuje go w pamięci podręcznej w weights/.

Python
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)
Domyślny słownik
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE # Pominięcie set_classes() zachowuje domyślny słownik COCO-80 tego poziomu.model = LibreOpenVocab("owlv2-l14")result = model.predict(SAMPLE_IMAGE, conf=0.1)print(result.names)

set_classes() ustawia trwały słownik tekstowy. Ponowne wywołanie zastępuje listę, a pominięcie zachowuje domyślne etykiety COCO-80. Każda etykieta jest umieszczana w stałym szablonie promptu przed przekazaniem do wieży tekstowej, zgodnie ze sposobem trenowania Owlv2ForObjectDetection z transformers.

OWLv2 nie ma progu tokenów tekstowych. Detekcje filtruje wyłącznie conf, a przekazanie text_threshold zgłasza błąd. Argument iou jest przyjmowany dla zgodności API, ale powoduje ostrzeżenie i nic nie robi, ponieważ nie jest tu uruchamiane tłumienie niemaksymalne. Argumenty imgsz i augment=True są odrzucane. Procesor transformers sam kontroluje zmianę rozmiaru, a augmentacja podczas testowania pozostaje poza zakresem tego poziomu. predict() dla jednego obrazu zwraca jeden obiekt Results, a nie listę. Katalog, listę obrazów lub stream=True ze źródłem wideo należy przekazać, aby uzyskać kilka wyników. Dla tej rodziny nie ma ścieżki CLI. libreyolo predict wczytuje przez LibreYOLO() wyłącznie checkpointy .pt, dlatego rodziny LibreOpenVocab uruchamia się z Pythona. Informacje o typach źródeł i streamingu zawiera strona predykcji.

Warianty

Dostępne są dwa checkpointy, b16 (base, rozmiar patcha 16) i l14 (large, rozmiar patcha 14). b16 jest domyślnym rozmiarem tego poziomu, gdy nie podano żadnego. Oba tworzą kopię lustrzaną oficjalnego wydania Google Research za pośrednictwem Owlv2ForObjectDetection z transformers, pobieraną jednorazowo do hostowanego przez LibreYOLO snapshotu Hugging Face, który zachowuje pliki źródłowe. Nie opublikowano jeszcze wyników dokładności ani opóźnienia tej rodziny.

Trenowanie, walidacja zbioru danych i eksport pozostają poza zakresem tego poziomu. train(), val() i export() zawsze zgłaszają NotImplementedError. Jest to wrapper przeznaczony wyłącznie do predykcji z opublikowanym checkpointem.

Checkpointy

Wszystkie opublikowane pliki wag dla tej rodziny.

PlikWejście (px)Licencja wag
Detection
LibreOWLv2b16.pt960apache-2.0
LibreOWLv2l14.pt1008apache-2.0

Każdy z powyższych plików jest obecnie dostępny w organizacji LibreYOLO i pobierany przy pierwszym użyciu.

Licencja

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
OWLv2, Google Research
Licencja projektu źródłowego
Apache-2.0
Kod LibreYOLO
MIT
Wagi
Apache-2.0, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
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.

Cytowanie

@article{minderer2023scaling,
  title={Scaling Open-Vocabulary Object Detection},
  author={Matthias Minderer, Alexey Gritsenko, Neil Houlsby},
  journal={NeurIPS},
  year={2023},
}

Skopiowano z bloku cytowania autorów w github.com/google-research/scenic/blob/main/scenic/projects/owl_vit/README.md#references.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.