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:
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/.
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)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.
| Plik | Wejście (px) | Licencja wag |
|---|---|---|
| Detection | ||
| LibreGroundingDINOt.pt | 800 | apache-2.0 |
| LibreGroundingDINOb.pt | 800 | 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
- Grounding DINO, IDEA Research
- Licencja projektu źródłowego
- Apache-2.0
- Kod źródłowy projektu
- github.com/IDEA-Research/GroundingDINO
- 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.