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.
- 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.
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.
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"]) # 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
- Source du projet d'origine
- huggingface.co/microsoft/Florence-2-large
- 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.