SAM 3

SAM 3 estende SAM con un prompt di concetto testuale oltre ai soliti punti e box, così una frase come "yellow school bus" restituisce tutte le istanze corrispondenti. LibreYOLO supporta il suo percorso su immagini tramite una factory LibreSAM dedicata, separata dalla factory di detector LibreYOLO().

Task
instance segmentation
Dimensioni
large at 1008 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
SAM 3 di Meta FAIR, SAM License (Meta custom, gated). Articolo, sorgente
Licenze
Codice MIT, pesi SAM License (Meta custom, gated). Uso commerciale

Installazione

SAM 3 richiede l'extra sam, che porta con sé transformers e timm.

bash
pip install "libreyolo[sam]"

I pesi sono ad accesso limitato: visita huggingface.co/facebook/sam3, accetta la SAM License di Meta, poi esegui hf auth login (oppure imposta HF_TOKEN) prima del primo download. LibreYOLO registra un avviso di licenza la prima volta che scarica questa famiglia.

Predizione

LibreSAM(...) (oppure il LibreSAM3(...) specifico della famiglia) è un punto di ingresso separato da LibreYOLO(...): restituisce un segmentatore guidato da prompt invece di un detector, perché qui un forward pass non ha senso senza un prompt. Non esiste un comando CLI libreyolo predict per questa famiglia; usa l'API Python. È supportata solo l'inferenza su immagini; i modelli video di SAM 3 restano fuori dall'ambito di questa pagina.

Prompt di punto e di box
from libreyolo import LibreSAM, SAMPLE_IMAGE # "sam3" è l'unica taglia ("large"); alias: "sam3", "sam-3", "sam3-large".model = LibreSAM("sam3") # Un prompt di punto: [x, y] in coordinate in pixel, label 1 = primo piano.result = model.predict(SAMPLE_IMAGE, points=[640, 420], labels=[1])print(result.masks.xy)      # un poligono per mascheraprint(result.boxes.xyxy)    # box aderente derivato dalla maschera # Un prompt di box invece di un punto.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700])
Prompt di testo (concetto)
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # Trova tutte le istanze che corrispondono alla frase, non un solo oggetto.# text= è mutuamente esclusivo con points, bboxes, labels e masks.result = model.predict(SAMPLE_IMAGE, text="a person")print(result.names)         # {0: "a person"}print(result.boxes.conf)    # il punteggio di rilevamento PCS per istanza
Codifica una volta, lancia molti prompt
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # L'encoder di immagini è la parte costosa. set_image() lo esegue una# volta; ogni chiamata a predict() successiva riusa l'embedding in cache.# Una chiamata con text= ricodifica internamente, dato che il tracker e# l'encoder di segmentazione per concetto non condividono la cache.model.set_image(SAMPLE_IMAGE)a = model.predict(points=[640, 420], labels=[1])b = model.predict(bboxes=[300, 200, 900, 700])model.reset_image()

Il percorso di punto e box coincide con il resto della famiglia SAM: un prompt di punto accetta [x, y] per un oggetto o [[x, y], ...] per più oggetti, labels marca ogni punto con 1 (primo piano) o 0 (sfondo) e un prompt di box prende [x1, y1, x2, y2] o una lista di box. Su questo percorso conf filtra in base alla qualità predetta della maschera (IoU), non a una confidenza di rilevamento.

Il percorso text= è ciò che SAM 3 aggiunge: una stringa di concetto restituisce tutte le istanze corrispondenti nell'immagine tramite la Promptable Concept Segmentation, e non può essere combinata con punti, box, labels o maschere. Lì conf è il punteggio di rilevamento PCS invece dell'IoU della maschera; lasciarlo al valore predefinito applica la soglia di 0.3 propria del modello, e conf=0.0 tiene tutti i candidati. Il names restituito associa l'id di classe 0 alla stringa di concetto richiesta, dato che altrimenti una maschera guidata da prompt non ha un insieme fisso di classi. device= sposta il modello e, se è attiva una sessione set_image(), il suo embedding in cache. train(), val(), export() e track() sollevano tutti NotImplementedError per questa famiglia: in LibreYOLO SAM 3 è solo di predizione, e il tracking video resta fuori ambito. Vedi predizione per i tipi di sorgente.

Varianti

Un'unica taglia, large, con input fisso a 1008 px. SAM 3.1 non è supportato: la sua implementazione porta con sé una licenza personalizzata che non può essere inclusa in questo repository MIT, e la versione di Transformers da cui dipende LibreYOLO non carica ancora il formato del suo checkpoint.

Licenza

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
SAM 3, Meta FAIR
Licenza upstream
SAM License (Meta custom, gated)
Codice LibreYOLO
MIT
Pesi
SAM License (Meta custom, gated), distribuiti dai rispettivi autori. LibreYOLO non li ospita né ne mantiene una copia.
Interpretazione
The SAM License is Meta's own agreement, not an OSI-approved license like MIT or Apache-2.0. It grants a worldwide, royalty-free license to use, reproduce, distribute and create derivative works, and does not itself say the weights are non-commercial. It does add terms Apache and MIT do not: publications that use the results must acknowledge SAM Materials, reverse engineering is prohibited, use is subject to export-control and sanctions compliance, filing IP litigation against Meta over the materials terminates your license, and Meta may amend the agreement. Weights are gated on facebook/sam3 on Hugging Face: you must accept the terms there and authenticate before downloading. LibreYOLO calls SAM 3 through the Apache-2.0 Transformers implementation and vendors none of Meta's model source, but does not redistribute the weights themselves; read the license yourself before relying on it commercially.

LibreYOLO non ospita una propria copia dei pesi di SAM 3 e non li ridistribuisce. LibreSAM("sam3") scarica direttamente dal repository facebook/sam3 di Meta ad accesso limitato su Hugging Face, che richiede di accettare la SAM License di Meta e di autenticarsi prima del primo download.

Citazione

@misc{carion2025sam3segmentconcepts,
      title={SAM 3: Segment Anything with Concepts},
      author={Nicolas Carion and Laura Gustafson and Yuan-Ting Hu and Shoubhik Debnath and Ronghang Hu and Didac Suris and Chaitanya Ryali and Kalyan Vasudev Alwala and Haitham Khedr and Andrew Huang and Jie Lei and Tengyu Ma and Baishan Guo and Arpit Kalla and Markus Marks and Joseph Greer and Meng Wang and Peize Sun and Roman Rädle and Triantafyllos Afouras and Effrosyni Mavroudi and Katherine Xu and Tsung-Han Wu and Yu Zhou and Liliane Momeni and Rishi Hazra and Shuangrui Ding and Sagar Vaze and Francois Porcher and Feng Li and Siyuan Li and Aishwarya Kamath and Ho Kei Cheng and Piotr Dollár and Nikhila Ravi and Kate Saenko and Pengchuan Zhang and Christoph Feichtenhofer},
      year={2025},
      eprint={2511.16719},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2511.16719},
}

Copiato dal blocco di citazione degli autori disponibile su github.com/facebookresearch/sam3#citing-sam-3.

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.