FCN

Un classificatore denso pixel per pixel che sostituisce i layer fully connected di un detector con delle convoluzioni, così da produrre una mappa di classi a piena risoluzione invece dei box. LibreYOLO lo distribuisce solo per la segmentazione semantica.

Task
semantic
Dimensioni
r50, r101 at 520 px
Installa
pip install libreyolo
Livello di supporto
Solo inferenza, dalla v. Solo predizione, validazione ed esportazione. Le funzionalità di addestramento non si applicano.
Origine
FCN di PyTorch, BSD-3-Clause. Articolo, sorgente
Licenze
Codice BSD-3-Clause, pesi BSD-3-Clause. Uso commerciale

Installazione

FCN non richiede nessun extra opzionale. Tutto ciò che importa è già nell'installazione di base.

bash
pip install libreyolo

Predizione

I pesi vengono scaricati da Hugging Face al primo utilizzo e restano nella cache locale.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreFCNr50.pt")result = model(SAMPLE_IMAGE, save=True) mask = result.semantic_maskprint(mask.data.shape)   # (H, W) id delle classiprint(mask.classes)      # id delle classi presenti nell'immagine, ordinati
CLI
libreyolo predict model=LibreFCNr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

La segmentazione semantica restituisce un id di classe per pixel, non dei bounding box, quindi result.semantic_mask porta un array (H, W) in .data e la lista degli id di classe presenti nell'immagine in .classes. conf, iou e max_det sono accettati per parità di API ma non hanno alcun effetto: il modello assegna una classe a ogni pixel per argmax, senza soglia di confidenza né passo di NMS. Vedi predizione per sorgenti, streaming e gestione dei risultati.

Varianti

Due profondità di ResNet, entrambe con input fisso a 520 px. Il grafo di inferenza della libreria è l'FCN con ResNet dilatata di torchvision, non la rete FCN-8s basata su VGG con skip connection del paper originale.

LibreYOLO non addestra FCN: train() solleva NotImplementedError per questa famiglia, cosa che il livello di supporto qui sopra segnala come solo inferenza. I due checkpoint pubblicati sono i pesi di torchvision addestrati su COCO, convertiti per il loader di LibreYOLO.

Validazione

val() restituisce metrics/mIoU e metrics/pixel_accuracy, misurati su qualsiasi dataset nel formato con cui hai addestrato.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreFCNr50.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mIoU"])print(metrics["metrics/pixel_accuracy"])
CLI
libreyolo val model=LibreFCNr50.pt data=my-dataset.yaml

Esportazione

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
semanticsemantic to ONNX: supportatosemantic to TorchScript: supportatosemantic to ExecuTorch: non supportatosemantic to TensorRT: supportatosemantic to OpenVINO: supportatosemantic to Paddle: non supportatosemantic to MNN: non supportatosemantic to RKNN: non supportatosemantic to ncnn: non supportatosemantic to TFLite: non supportatosemantic to CoreML: non supportatosemantic to Core AI: non supportato

Un artefatto esportato si ricarica con LibreYOLO() in base al suffisso del file, quindi un file .onnx o .engine si comporta come un checkpoint e restituisce lo stesso Results. Esportazione elenca gli argomenti accettati da ogni formato.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreFCNr50.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreFCNr50.pt format=onnxlibreyolo export model=LibreFCNr50.pt format=tensorrt half=True
Usare il file esportato
from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory smista in base al suffisso del file, quindi un artefatto# esportato si carica come qualsiasi checkpoint e restituisce lo stesso# oggetto Results.model = LibreYOLO("LibreFCNr50.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)

Checkpoint

Tutti i file di pesi pubblicati per questa famiglia.

FileIngresso (px)Licenza dei pesi
semantic
LibreFCNr50.pt520bsd-3-clause
LibreFCNr101.pt520bsd-3-clause

Oggi tutti i file elencati sopra sono presenti nell<link>organizzazione LibreYOLO</link> e vengono scaricati al primo utilizzo.

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
FCN, PyTorch
Licenza upstream
BSD-3-Clause
Sorgente upstream
github.com/pytorch/vision
Codice LibreYOLO
MIT
Pesi
BSD-3-Clause, ripubblicati su huggingface.co/LibreYOLO
Interpretazione
BSD-3-Clause is a permissive license, so this code and these weights can be used in commercial and closed-source products. It asks you to keep the copyright notice, license text and a non-endorsement clause with any copy you redistribute. LibreYOLO's inference graph is torchvision's dilated-ResNet FCN, not the original VGG-based FCN-8s skip-fusion network from the paper. The two published checkpoints are torchvision's official COCO-trained weights; their separate LibreYOLO Hugging Face mirrors carry BSD-3-Clause on an implied basis disclosed by torchvision rather than an explicit checkpoint-specific grant, and torchvision's own documentation notes that pretrained-model terms can depend on the training data, leaving that determination to the user.

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.