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:

bash
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/.

Python
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)
Niestandardowy próg NMS
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.

PlikWejście (px)Licencja wag
Detection
LibreOMDetTurbot.pt640apache-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.

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.