Grounding DINO

Grounding DINO to detektor obiektów ze zbiorem otwartym opracowany przez IDEA Research, który ocenia obraz względem swobodnego promptu tekstowego zamiast stałej listy klas. LibreYOLO udostępnia go jako rodzinę wyłącznie do predykcji na poziomie detektorów z otwartym słownikiem.

Zadania
detection
Rozmiary
t, b at 800 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
Grounding DINO, autorzy: IDEA Research, licencja: Apache-2.0. Publikacja, kod źródłowy
Licencje
Kod: MIT, wagi: Apache-2.0. Użycie komercyjne

Instalacja

Grounding DINO 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

Grounding DINO 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("grounding-dino-t")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.25)for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
Próg tekstowy
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("grounding-dino-b")model.set_classes(["remote control", "school bus"]) # conf filtruje według wyniku ramki, a text_threshold według wyniku tokenu# zdekodowanej frazy. Oba mają domyślnie 0.25, gdy nie zostaną ustawione.result = model.predict(SAMPLE_IMAGE, conf=0.25, text_threshold=0.3)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. Grounding DINO dekoduje swobodne frazy z własnego wyjścia tekstowego i samodzielnie mapuje je z powrotem na ten słownik. Wygrywa dokładne znormalizowane dopasowanie, akceptowane jest dopasowanie całego tokenu, a niejednoznaczna lub niedopasowana fraza jest odrzucana zamiast zgadywana. Dlatego school bus nigdy nie jest mapowane wyłącznie na bus ani school. Słownik na tyle długi, że przekracza limit tokenów enkodera tekstowego, jest dzielony na kilka promptów uruchamianych w osobnych przebiegach w przód i ponownie łączonych w jeden zbiór detekcji ograniczony przez max_det.

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, t i b. t jest domyślnym rozmiarem tego poziomu, gdy nie podano żadnego. Oba tworzą kopię lustrzaną oficjalnego wydania IDEA Research za pośrednictwem GroundingDinoForObjectDetection 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
LibreGroundingDINOt.pt800apache-2.0
LibreGroundingDINOb.pt800apache-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
Grounding DINO, IDEA 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 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 Grounding DINO model source of its own: LibreGroundingDINO calls the Apache-2.0 `transformers` implementation, `GroundingDinoForObjectDetection`, directly, and downloads the official checkpoint into a LibreYOLO-hosted mirror repository that preserves the upstream snapshot files.

Cytowanie

@article{liu2023grounding,
  title={Grounding dino: Marrying dino with grounded pre-training for open-set object detection},
  author={Liu, Shilong and Zeng, Zhaoyang and Ren, Tianhe and Li, Feng and Zhang, Hao and Yang, Jie and Li, Chunyuan and Yang, Jianwei and Su, Hang and Zhu, Jun and others},
  journal={arXiv preprint arXiv:2303.05499},
  year={2023}
}

Skopiowano z bloku cytowania autorów w github.com/IDEA-Research/GroundingDINO#black_nib-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.