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.
Origine
Florence-2 di Microsoft, MIT. Articolo, sorgente
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.

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

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"]) # 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
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.

Verificato con LibreYOLO v1.5.0. Le tabelle di supporto, i checkpoint e i dati dei benchmark in questa pagina vengono generati dalla libreria rilasciata e dai pesi pubblicati, non scritti a mano.