Florence-2

Florence-2 to bazowy model wizyjny Microsoft, sterowany tokenem zadania zamiast stałą głowicą detekcji. LibreYOLO udostępnia go jako detektor obiektów z otwartym słownikiem: listę klas podaje się podczas predykcji.

Zadania
detection
Rozmiary
base, large at 768 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
Florence-2, autorzy: Microsoft, licencja: MIT. Publikacja, kod źródłowy
Licencje
Kod: MIT, wagi: MIT. Użycie komercyjne

Instalacja

Florence-2 należy do poziomu VLM jako detektor w LibreYOLO, osobnej powierzchni produktu od rodzin opartych na checkpointach, z własną fabryką. Wymaga dodatku vlm.

bash
pip install "libreyolo[vlm]"

Predykcja

Przy pierwszym użyciu wagi są pobierane z Hugging Face i zapisywane w lokalnej pamięci podręcznej. LibreYOLO pobiera ponownie opublikowany checkpoint florence-community zamiast oryginalnego repozytorium microsoft/Florence-2-*. Przyczynę wyjaśnia sekcja Licencja.

Python
from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"])result = model.predict(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
Wideo
from libreyolo import LibreVLM model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"]) # Dowolne źródło obsługiwane przez bibliotekę: plik, folder, adres URL, indeks kamery,# strumień RTSP lub lista .streamsfor result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

Ta rodzina jest wczytywana przez fabrykę LibreVLM(), a nie LibreYOLO(). Rodziny VLM nie deklarują loadera checkpointów, dlatego opisany na innych stronach modeli wybór ścieżki na podstawie rozszerzenia pliku nie ma tu zastosowania. set_classes() ustawia słownik, o którego znalezienie na obrazie proszony jest Florence-2. Ustawienie jest trwałe i obowiązuje we wszystkich późniejszych wywołaniach predict()/track(), dopóki nie zostanie ponownie zmienione. Zwracany obiekt Results zawiera boxes w takim samym kształcie jak w pozostałych rodzinach, ale każda detekcja ma ten sam zastępczy wskaźnik pewności. Filtrowanie przez conf działa więc na zasadzie wszystko albo nic, a iou nie ma wpływu na wynik. Wrapper Florence-2 tworzy listę detekcji bezpośrednio z przetworzonego wyjścia tokenu zadania, bez etapu usuwania duplikatów. chat() zgłasza tutaj NotImplementedError, ponieważ Florence-2 jest sterowany tokenem zadania <OPEN_VOCABULARY_DETECTION>, a nie szablonem czatu. CLI LibreYOLO nie obsługuje tego poziomu. Nie istnieje dla niego forma libreyolo predict model=.... Więcej informacji o źródłach, streamingu i obsłudze wyników zawiera strona predykcji.

Warianty

Dostępne są dwa rozmiary, Florence-2-base i Florence-2-large, oba przy 768 px, wczytywane jako LibreVLM("florence-2-base") lub LibreVLM("florence-2-large"). LibreYOLO nie opublikowało benchmarku porównującego ich dokładność.

LibreYOLO nie trenuje, nie waliduje ani nie eksportuje Florence-2. Wywołania train(), val() i export() zgłaszają NotImplementedError dla każdej rodziny na tym poziomie (zobacz poziom obsługi powyżej). Jeśli potrzebny jest niestandardowy słownik zapisany w wagach, należy dostroić Florence-2 w projekcie źródłowym i wczytać powstałe wagi. Wynik predict() trzeba sprawdzić wzrokowo zamiast uruchamiać walidację w stylu COCO, ponieważ każda detekcja ma ten sam zastępczy wskaźnik pewności.

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
Florence-2, Microsoft
Licencja projektu źródłowego
MIT
Kod LibreYOLO
MIT
Wagi
MIT, rozpowszechniane przez autorów. LibreYOLO ich nie hostuje ani nie udostępnia kopii.
Interpretacja
MIT is a permissive license, so these weights can be used in commercial and closed-source products, provided the copyright notice and license text travel with any copy you redistribute. LibreYOLO downloads the florence-community re-upload of the checkpoint (florence-community/Florence-2-base and florence-community/Florence-2-large) rather than the original microsoft/Florence-2-* repositories, because those ship with custom remote code that no longer loads on current transformers releases. florence-community republishes the same weights through the native Florence2ForConditionalGeneration class, also under MIT, so nothing about the license changes.

Cytowanie

@article{xiao2023florence,
  title={Florence-2: Advancing a unified representation for a variety of vision tasks},
  author={Xiao, Bin and Wu, Haiping and Xu, Weijian and Dai, Xiyang and Hu, Houdong and Lu, Yumao and Zeng, Michael and Liu, Ce and Yuan, Lu},
  journal={arXiv preprint arXiv:2311.06242},
  year={2023}
}

Skopiowano z bloku cytowania autorów w huggingface.co/microsoft/Florence-2-large#bibtex.

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.