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.

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

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)
Video
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
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.

Mit LibreYOLO v1.5.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.