Florence-2

Florence-2 est le modèle de fondation visuel de Microsoft, piloté par un token de tâche plutôt que par une tête de détection figée. LibreYOLO l'enveloppe en détecteur d'objets à vocabulaire ouvert : fournissez la liste de classes au moment de la prédiction.

Tâches
detection
Tailles
base, large at 768 px
Installer
pip install libreyolo
Niveau de support
Niveau parallèle, depuis v. Une interface produit distincte avec sa propre factory et son propre contrat.
Origine
Florence-2 par Microsoft, MIT. Article, source
Licences
Code MIT, poids MIT. Usage commercial

Installation

Florence-2 appartient au niveau « VLM comme détecteur » de LibreYOLO, une surface produit distincte des familles à base de checkpoints, avec sa propre factory. Il demande l'extra vlm.

bash
pip install "libreyolo[vlm]"

Prédire

Les poids sont téléchargés depuis Hugging Face au premier usage, puis mis en cache localement. LibreYOLO télécharge le checkpoint réhébergé par florence-community plutôt que le dépôt d'origine microsoft/Florence-2-* ; voir la section Licence pour savoir pourquoi.

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)
Vidéo
from libreyolo import LibreVLM model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"]) # Toute source acceptée par la bibliothèque : fichier, dossier, URL,# index de webcam, flux RTSP ou liste .streamsfor result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

Cette famille se charge via la factory LibreVLM(), et non LibreYOLO() : les familles VLM ne déclarent aucun chargeur de checkpoint, si bien que le routage par suffixe de fichier décrit sur les autres pages de modèles ne s'applique pas ici. set_classes() définit le vocabulaire que Florence-2 doit chercher dans l'image ; il est rémanent, donc il reste actif pour tous les appels predict()/track() suivants jusqu'à ce que vous le redéfinissiez. L'objet Results renvoyé porte des boxes de la même forme que dans n'importe quelle autre famille, mais chaque détection porte la même confiance de remplissage, si bien que le filtrage par conf est tout ou rien plutôt qu'un classement, et iou n'a aucun effet : le wrapper de Florence-2 construit la liste des détections directement à partir de la sortie analysée du token de tâche, sans étape de déduplication. chat() lève ici NotImplementedError, car Florence-2 est piloté par le token de tâche <OPEN_VOCABULARY_DETECTION> et non par un template de chat. Le CLI de LibreYOLO ne couvre pas ce niveau : il n'existe pas de forme libreyolo predict model=... pour lui. Voir la prédiction pour les sources, le streaming et le traitement des résultats.

Variantes

Deux tailles : Florence-2-base et Florence-2-large, toutes deux en 768 px, chargées avec LibreVLM("florence-2-base") ou LibreVLM("florence-2-large"). LibreYOLO n'a pas publié de benchmark comparant leur exactitude.

LibreYOLO n'entraîne, ne valide ni n'exporte Florence-2 : train(), val() et export() lèvent tous NotImplementedError pour chaque famille de ce niveau (voir le niveau de prise en charge ci-dessus). Faites du fine-tuning de Florence-2 en amont et chargez les poids obtenus si vous avez besoin d'un vocabulaire personnalisé figé dans le modèle ; contrôlez la sortie de predict() à l'œil plutôt qu'avec une passe de validation à la COCO, puisque chaque détection porte la même confiance de remplissage.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
Florence-2, Microsoft
Licence du projet d'origine
MIT
Code de LibreYOLO
MIT
Poids
MIT, distribués par leurs auteurs. LibreYOLO ne les héberge pas et n'en fournit pas de miroir.
Interprétation
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.

Citation

@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}
}

Copié depuis le bloc de citation des auteurs sur huggingface.co/microsoft/Florence-2-large#bibtex.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.