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:
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/.
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 # 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.
| Plik | Wejście (px) | Licencja wag |
|---|---|---|
| Detection | ||
| LibreOWLv2b16.pt | 960 | apache-2.0 |
| LibreOWLv2l14.pt | 1008 | apache-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 źródłowy projektu
- github.com/google-research/scenic/tree/main/scenic/projects/owl_vit
- 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.