FCN

Un classifieur dense pixel par pixel qui remplace les couches entièrement connectées d'un détecteur par des convolutions, si bien qu'il produit une carte de classes en pleine résolution au lieu de boîtes. LibreYOLO le fournit uniquement pour la segmentation sémantique.

Tâches
semantic
Tailles
r50, r101 at 520 px
Installer
pip install libreyolo
Niveau de support
Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
Origine
FCN par PyTorch, BSD-3-Clause. Article, source
Licences
Code BSD-3-Clause, poids BSD-3-Clause. Usage commercial

Installation

FCN ne demande aucun extra optionnel. Tout ce qu'il importe fait partie de l'installation de base.

bash
pip install libreyolo

Prédire

Les poids sont téléchargés depuis Hugging Face au premier usage, puis mis en cache localement.

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) ids de classeprint(mask.classes)      # ids de classe présents dans l'image, triés
CLI
libreyolo predict model=LibreFCNr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

La segmentation sémantique renvoie un id de classe par pixel, pas des boîtes, si bien que result.semantic_mask porte un tableau (H, W) sur .data et la liste des ids de classe présents dans l'image sur .classes. conf, iou et max_det sont acceptés par parité d'API mais n'ont aucun effet : le modèle attribue une classe à chaque pixel par argmax, sans seuil de confiance ni étape de NMS. Voir la prédiction pour les sources, le streaming et le traitement des résultats.

Variantes

Deux profondeurs de ResNet, toutes deux avec une entrée fixe de 520 px. Le graphe d'inférence de la bibliothèque est le FCN à ResNet dilaté de torchvision, pas le réseau FCN-8s à base de VGG du papier d'origine, avec ses skip connections.

LibreYOLO n'entraîne pas FCN : train() lève NotImplementedError pour cette famille, ce que le niveau de support ci-dessus signale comme inférence seule. Les deux checkpoints publiés sont les poids torchvision entraînés sur COCO, convertis pour le chargeur de LibreYOLO.

Valider

val() renvoie metrics/mIoU et metrics/pixel_accuracy, mesurés sur n'importe quel dataset au format sur lequel vous avez entraîné.

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

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
semanticsemantic to ONNX : pris en chargesemantic to TorchScript : pris en chargesemantic to ExecuTorch : non pris en chargesemantic to TensorRT : pris en chargesemantic to OpenVINO : pris en chargesemantic to Paddle : non pris en chargesemantic to MNN : non pris en chargesemantic to RKNN : non pris en chargesemantic to ncnn : non pris en chargesemantic to TFLite : non pris en chargesemantic to CoreML : non pris en chargesemantic to Core AI : non pris en charge

Un artefact exporté se recharge via LibreYOLO() selon son extension de fichier, si bien qu'un fichier .onnx ou .engine se comporte comme un checkpoint et renvoie le même Results. L'export liste les arguments que chaque format accepte.

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
Utiliser le fichier exporté
from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory s'appuie sur l'extension du fichier, donc un artefact# exporté se charge comme un checkpoint et renvoie le même Results.model = LibreYOLO("LibreFCNr50.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)

Checkpoints

Tous les fichiers de poids publiés de cette famille.

FichierEntrée (px)Licence des poids
semantic
LibreFCNr50.pt520bsd-3-clause
LibreFCNr101.pt520bsd-3-clause

Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.

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
FCN, PyTorch
Licence du projet d'origine
BSD-3-Clause
Source du projet d'origine
github.com/pytorch/vision
Code de LibreYOLO
MIT
Poids
BSD-3-Clause, republiés sur huggingface.co/LibreYOLO
Interprétation
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.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.