DeepLabv3

Sieć segmentacji semantycznej, która łączy cechy z kilkoma współczynnikami dylatacji równolegle (łączenie piramid przestrzennych z dylatacją) przed sklasyfikowaniem każdego piksela. LibreYOLO dostarcza go wyłącznie do segmentacji semantycznej.

Zadania
semantic
Rozmiary
Instalacja
pip install libreyolo
Poziom obsługi
Tylko inferencja, od wersji v. Tylko predykcja, walidacja i eksport. Funkcje trenowania nie mają zastosowania.
Projekt źródłowy
DeepLabv3, autorzy: PyTorch, licencja: BSD-3-Clause. Publikacja, kod źródłowy
Licencje
Kod: BSD-3-Clause, wagi: BSD-3-Clause. Użycie komercyjne

Instalacja

DeepLabv3 nie wymaga opcjonalnego dodatku. Wszystkie importowane elementy znajdują się w instalacji bazowej.

bash
pip install libreyolo

Predykcja

Wagi pobierane są z Hugging Face przy pierwszym użyciu i zapisywane lokalnie w pamięci podręcznej. Dla tej rodziny wymagany jest przyrostek nazwy pliku -sem.

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) identyfikatory klasprint(mask.classes)      # posortowane identyfikatory klas obecne na obrazku
CLI
libreyolo predict model=LibreDeepLabv3r50-sem.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Segmentacja semantyczna zwraca jeden identyfikator klasy na piksel, a nie ramki. Pole result.semantic_mask.data zawiera tablicę (H, W), natomiast result.semantic_mask.classes listę identyfikatorów klas obecnych na obrazie. Argumenty conf, iou i max_det są akceptowane dla zgodności API, ale nie mają wpływu na wynik. Model przypisuje klasę do każdego piksela przez argmax, bez progu pewności ani etapu NMS. Zobacz stronę predykcji, aby poznać źródła, streaming i obsługę wyników.

Warianty

Trzy warianty backbone: ResNet-50 z dylatacją, ResNet-101 z dylatacją oraz MobileNetV3-Large z dylatacją. Jest to DeepLabv3, a nie DeepLabv3+, dlatego nie ma etapu dekodera ani udoskonalania CRF. Odpowiada to implementacji torchvision, a nie kodowi referencyjnemu publikacji.

LibreYOLO nie trenuje DeepLabv3. Metoda train() zgłasza NotImplementedError dla tej rodziny, którą poziom wsparcia oznacza jako przeznaczoną wyłącznie do inferencji. Trzy opublikowane checkpointy zawierają wagi torchvision COCO-with-VOC-label przekonwertowane dla modułu wczytującego LibreYOLO.

Walidacja

val() zwraca metrics/mIoU i metrics/pixel_accuracy, mierzone względem dowolnego zbioru danych w formacie, na którym trenowałeś.

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

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
semanticsemantic to ONNX: obsługiwanesemantic to TorchScript: obsługiwanesemantic to ExecuTorch: brak obsługisemantic to TensorRT: obsługiwanesemantic to OpenVINO: obsługiwanesemantic to Paddle: brak obsługisemantic to MNN: brak obsługisemantic to RKNN: brak obsługisemantic to ncnn: brak obsługisemantic to TFLite: brak obsługisemantic to CoreML: brak obsługisemantic to Core AI: brak obsługi

Wyeksportowany artefakt jest ponownie wczytywany przez LibreYOLO() na podstawie sufiksu pliku, dlatego plik .onnx lub .engine zachowuje się jak checkpoint i zwraca ten sam obiekt Results. Strona Eksport zawiera argumenty akceptowane przez każdy format.

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
Użyj wyeksportowanego pliku
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Trasy fabryczne na sufiksie pliku, więc wyeksportowany artefakt zostaje załadowany# jak każdy checkpoint i zwraca ten sam obiekt Results.model = LibreYOLO("LibreDeepLabv3r50-sem.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)

Checkpointy

Każdy opublikowany plik wag dla tej rodziny.

PlikWejście (px)Licencja wag
semantic
LibreDeepLabv3r50-sem.ptbsd-3-clause
LibreDeepLabv3r101-sem.ptbsd-3-clause
LibreDeepLabv3mv3-sem.ptbsd-3-clause

Każdy z powyższych plików jest obecnie dostępny w organizacji LibreYOLO i pobierany przy pierwszym użyciu.

Licencjonowanie

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
DeepLabv3, PyTorch
Licencja projektu źródłowego
BSD-3-Clause
Kod źródłowy projektu
github.com/pytorch/vision
Kod LibreYOLO
MIT
Wagi
BSD-3-Clause, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
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.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.