OMDet-Turbo
OMDet-Turbo to detektor obiektów z otwartym słownikiem czasu rzeczywistego opracowany przez Om AI Lab, który rozdziela embeddingi klas od promptu zadania językowego. LibreYOLO udostępnia go jako rodzinę wyłącznie do predykcji na poziomie detektorów z otwartym słownikiem.
- Zadania
- detection
- Rozmiary
- t at 640 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
- OMDet-Turbo, autorzy: Om AI Lab, licencja: Apache-2.0. Publikacja, kod źródłowy
- Licencje
- Kod: MIT, wagi: Apache-2.0. Użycie komercyjne
Instalacja
OMDet-Turbo 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. Backbone Swin modelu OMDet-Turbo jest wczytywany przez wrapper
TimmBackbone z transformers.
Predykcja
OMDet-Turbo 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("omdet-turbo")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.3)for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("omdet-turbo")model.set_classes(["traffic light", "bicycle"]) # OMDet-Turbo jest jedyną rodziną tego poziomu, która respektuje iou=. Jej# własne przetwarzanie końcowe przyjmuje próg tłumienia jako argument,# domyślnie 0.5, gdy iou= nie zostanie ustawione.result = model.predict(SAMPLE_IMAGE, conf=0.3, iou=0.7)print(result.names, len(result))set_classes() ustawia trwały słownik tekstowy. Ponowne wywołanie całkowicie
zastępuje listę, a pominięcie zachowuje domyślne etykiety COCO-80. Pusty wynik
jest poprawnym rezultatem, a nie błędem. W przeciwieństwie do Grounding DINO,
OMDet-Turbo oddziela embeddingi klas od promptu zadania językowego, dlatego
przetwarzanie końcowe transformers zwraca etykiety mapowane bezpośrednio na
odpytywaną listę klas, bez etapu rozstrzygania fraz.
OMDet-Turbo nie ma progu tokenów tekstowych. Detekcje filtruje wyłącznie conf,
a przekazanie text_threshold zgłasza błąd. Jest to jedyna rodzina tego poziomu,
która uruchamia własne tłumienie niemaksymalne wewnątrz
post_process_grounded_object_detection, dlatego iou jest tutaj respektowane,
a nie ignorowane z ostrzeżeniem. 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ępny jest jeden checkpoint, t, jedyny rozmiar tego poziomu. Jest kopią
lustrzaną omlab/omdet-turbo-swin-tiny-hf przy przypiętej rewizji źródłowej,
utworzoną za pośrednictwem OmDetTurboForObjectDetection z transformers.
Plik wag w kopii lustrzanej jest identyczny bajt po bajcie ze źródłowym
snapshotem. 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 | ||
| LibreOMDetTurbot.pt | 640 | 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
- OMDet-Turbo, Om AI Lab
- Licencja projektu źródłowego
- Apache-2.0
- Kod źródłowy projektu
- github.com/om-ai-lab/OmDet
- Kod LibreYOLO
- MIT
- Wagi
- Apache-2.0, ponownie opublikowane w huggingface.co/LibreYOLO
- Interpretacja
- 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 OMDet-Turbo model source of its own: LibreOMDetTurbo calls the Apache-2.0 `transformers` implementation, `OmDetTurboForObjectDetection`, directly. The mirrored checkpoint is a byte-identical copy of `omlab/omdet-turbo-swin-tiny-hf` at a pinned upstream revision, verified against a recorded SHA-256 checksum before it is used.
Cytowanie
@article{zhao2024real,
title={Real-time Transformer-based Open-Vocabulary Detection with Efficient Fusion Head},
author={Zhao, Tiancheng and Liu, Peng and He, Xuan and Zhang, Lu and Lee, Kyusong},
journal={arXiv preprint arXiv:2403.06892},
year={2024}
}Skopiowano z bloku cytowania autorów w github.com/om-ai-lab/OmDet#citation.