Florence-2
Florence-2 ist Microsofts Vision-Foundation-Modell. Statt einen festen Erkennungs-Head zu durchlaufen, wird es mit einem Aufgaben-Token gepromptet. LibreYOLO bindet es als Open-Vocabulary-Objektdetektor ein: Übergib die Klassenliste bei der Vorhersage.
- Aufgaben
- detection
- Größen
- base, large at 768 px
- Installation
pip install libreyolo- Supportstufe
- Geschwisterstufe, seit v. Eine separate Produktoberfläche mit eigener Factory und eigenem Vertrag.
- Upstream
- Florence-2 von Microsoft, MIT. Publikation, Quelle
- Lizenzen
- Code MIT, Gewichte MIT. Kommerzielle Nutzung
Installation
Florence-2 gehört zum VLM-as-Detector-Tier von LibreYOLO. Dieses besitzt eine
eigene Factory und eine getrennte Produktoberfläche neben den
Checkpoint-basierten Familien. Es benötigt das Zusatzpaket vlm.
pip install "libreyolo[vlm]"Vorhersage
Die Gewichte werden bei der ersten Verwendung von Hugging Face heruntergeladen
und lokal zwischengespeichert. LibreYOLO lädt die erneute Veröffentlichung des
Checkpoints durch florence-community statt des ursprünglichen Repositorys
microsoft/Florence-2-* herunter. Den Grund dafür findest du unter
Lizenzierung.
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)from libreyolo import LibreVLM model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"]) # Jede von der Bibliothek unterstützte Quelle: Datei, Ordner, URL, Webcam-Index,# RTSP-Stream oder eine .streams-Listefor result in model.predict("clip.mp4", stream=True, save=True): print(len(result.boxes))Diese Familie wird über die Factory LibreVLM() und nicht über LibreYOLO()
geladen. VLM-Familien deklarieren keinen Checkpoint-Loader. Das auf anderen
Modellseiten beschriebene Routing über die Dateiendung gilt daher nicht.
set_classes() legt das Vokabular fest, nach dem Florence-2 im Bild suchen
soll. Es bleibt wirksam, bis du es erneut festlegst, und gilt somit für jeden
späteren Aufruf von predict() oder track(). Das zurückgegebene Results
enthält boxes in derselben Form wie jede andere Familie. Jede Erkennung trägt
jedoch dieselbe Platzhalter-Confidence. Die Filterung mit conf ist daher eine
Alles-oder-nichts-Entscheidung statt einer Rangfolge. iou hat keine Wirkung:
Der Florence-2-Wrapper erstellt die Erkennungsliste direkt aus der geparsten
Ausgabe des Aufgaben-Tokens und führt keinen Deduplizierungsschritt aus.
chat() löst hier NotImplementedError aus, weil Florence-2 mit dem
Aufgaben-Token <OPEN_VOCABULARY_DETECTION> statt mit einem Chat-Template
gesteuert wird. Die CLI von LibreYOLO unterstützt diesen Tier nicht. Es gibt
keine Form libreyolo predict model=... dafür. Unter
Vorhersage findest du Quellen, Streaming und die Verarbeitung
von Ergebnissen.
Varianten
Es gibt zwei Größen, Florence-2-base und Florence-2-large, beide mit 768 px.
Sie werden als LibreVLM("florence-2-base") oder
LibreVLM("florence-2-large") geladen. LibreYOLO hat noch keinen Benchmark
zum Vergleich ihrer Accuracy veröffentlicht.
LibreYOLO trainiert, validiert oder exportiert Florence-2 nicht. train(),
val() und export() lösen bei jeder Familie dieses Tiers den Fehler
NotImplementedError aus (siehe Support-Tier oben). Führe das Fine-Tuning von
Florence-2 upstream durch und lade die erzeugten Gewichte, wenn du ein fest
integriertes eigenes Vokabular benötigst. Prüfe die Ausgabe von predict()
visuell statt mit einem COCO-artigen Validierungsdurchlauf, weil jede Erkennung
dieselbe Platzhalter-Confidence trägt.
Lizenzierung
Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.
Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.
- Originalarbeit
- Florence-2, Microsoft
- Upstream-Lizenz
- MIT
- Upstream-Quelle
- huggingface.co/microsoft/Florence-2-large
- LibreYOLO-Code
- MIT
- Gewichte
- MIT, von den Autoren verbreitet. LibreYOLO hostet oder spiegelt sie nicht.
- Einordnung
- 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.
Zitieren
@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}
}Aus dem Zitierblock der Autoren unter huggingface.co/microsoft/Florence-2-large#bibtex kopiert.