DeepLabv3

Un réseau de segmentation sémantique qui agrège les caractéristiques à plusieurs taux de dilatation en parallèle (atrous spatial pyramid pooling) avant de classer chaque pixel. LibreYOLO le fournit uniquement pour la segmentation sémantique.

Tâches
semantic
Tailles
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
DeepLabv3 par PyTorch, BSD-3-Clause. Article, source
Licences
Code BSD-3-Clause, poids BSD-3-Clause. Usage commercial

Installation

DeepLabv3 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. Le suffixe -sem dans le nom de fichier est obligatoire pour cette famille.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDeepLabv3r50-sem.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=LibreDeepLabv3r50-sem.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 bounding boxes, 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

Trois backbones : ResNet-50 dilaté, ResNet-101 dilaté et MobileNetV3-Large dilaté. Il s'agit de DeepLabv3, pas de DeepLabv3+, donc il n'y a ni étape de decoder ni raffinement par CRF, ce qui suit l'implémentation de torchvision plutôt que le code de référence du papier lui-même.

LibreYOLO n'entraîne pas DeepLabv3 : train() lève NotImplementedError pour cette famille, ce que le niveau de support ci-dessus signale comme inférence seule. Les trois checkpoints publiés sont les poids torchvision entraînés sur COCO avec les étiquettes de VOC, 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("LibreDeepLabv3r50-sem.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mIoU"])print(metrics["metrics/pixel_accuracy"])
CLI
libreyolo val model=LibreDeepLabv3r50-sem.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("LibreDeepLabv3r50-sem.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreDeepLabv3r50-sem.pt format=onnxlibreyolo export model=LibreDeepLabv3r50-sem.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("LibreDeepLabv3r50-sem.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
LibreDeepLabv3r50-sem.ptbsd-3-clause
LibreDeepLabv3r101-sem.ptbsd-3-clause
LibreDeepLabv3mv3-sem.ptbsd-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
DeepLabv3, 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 ASPP head over its ResNet-50, ResNet-101 and MobileNetV3-Large backbones; it is DeepLabv3, not DeepLabv3+, so there is no decoder or CRF, and the paper's training-only auxiliary FCN classifier is excluded. The three published checkpoints are torchvision's official COCO-with-VOC-label 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.