Florence-2
Florence-2 è il modello fondazionale di visione di Microsoft, che si guida con un token di task invece di passare per una testa di rilevamento fissa. LibreYOLO lo avvolge come rilevatore di oggetti a vocabolario aperto: la lista di classi si indica al momento della predizione.
- Task
- detection
- Dimensioni
- base, large at 768 px
- Installa
pip install libreyolo- Livello di supporto
- Livello parallelo, dalla v. Un'interfaccia di prodotto separata, con una propria factory e un proprio contratto.
- Licenze
- Codice MIT, pesi MIT. Uso commerciale
Installazione
Florence-2 appartiene al livello VLM-come-detector di LibreYOLO, una superficie
di prodotto separata dalle famiglie basate su checkpoint e con una factory
propria. Richiede l'extra vlm.
pip install "libreyolo[vlm]"Predizione
I pesi vengono scaricati da Hugging Face al primo utilizzo e restano nella cache
locale. LibreYOLO scarica il re-upload del checkpoint pubblicato da
florence-community invece del repository originale microsoft/Florence-2-*;
vedi Licenze per il motivo.
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"]) # Qualsiasi sorgente accettata dalla libreria: file, cartella, URL,# indice della webcam, stream RTSP o una lista .streamsfor result in model.predict("clip.mp4", stream=True, save=True): print(len(result.boxes))Questa famiglia si carica con la factory LibreVLM(), non con LibreYOLO(): le
famiglie VLM non dichiarano nessun caricatore di checkpoint, quindi il routing
per suffisso di file descritto nelle altre pagine dei modelli qui non si applica.
set_classes() definisce il vocabolario che si chiede a Florence-2 di trovare
nell'immagine; è persistente, quindi resta in vigore in tutte le chiamate
successive a predict()/track() finché non lo imposti di nuovo. L'oggetto
Results restituito porta boxes nella stessa forma di qualsiasi altra
famiglia, ma ogni rilevamento porta la stessa confidenza segnaposto, quindi
filtrare per conf è tutto o niente invece che un ordinamento, e iou non ha
effetto: il wrapper di Florence-2 costruisce la lista dei rilevamenti
direttamente a partire dall'output del token di task già parsato, senza nessun
passaggio di deduplicazione. Qui chat() solleva NotImplementedError, perché
Florence-2 si guida con il token di task <OPEN_VOCABULARY_DETECTION> e non con
un template di chat. La CLI di LibreYOLO non copre questo livello: non esiste una
forma libreyolo predict model=... per esso. Vedi predizione
per sorgenti, streaming e gestione dei risultati.
Varianti
Due dimensioni: Florence-2-base e Florence-2-large, entrambe a 768 px, caricate
come LibreVLM("florence-2-base") o LibreVLM("florence-2-large"). LibreYOLO
non ha pubblicato nessun benchmark che confronti l'accuratezza tra le due.
LibreYOLO non addestra, non valida e non esporta Florence-2: train(), val() e
export() sollevano tutti NotImplementedError per ogni famiglia di questo
livello (vedi il livello di supporto qui sopra). Fai fine-tuning di Florence-2
upstream e carica i pesi risultanti se ti serve un vocabolario personalizzato
integrato; controlla a occhio l'output di predict() invece di una passata di
validazione in stile COCO, dato che ogni rilevamento porta la stessa confidenza
segnaposto.
Licenze
Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.
Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.
- Lavoro originale
- Florence-2, Microsoft
- Licenza upstream
- MIT
- Sorgente upstream
- huggingface.co/microsoft/Florence-2-large
- Codice LibreYOLO
- MIT
- Pesi
- MIT, distribuiti dai rispettivi autori. LibreYOLO non li ospita né ne mantiene una copia.
- Interpretazione
- 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.
Citazione
@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}
}Copiato dal blocco di citazione degli autori disponibile su huggingface.co/microsoft/Florence-2-large#bibtex.