FCN
Ein dichter pixelweiser Klassifikator, der die vollständig verbundenen Schichten eines Detektors durch Faltungen ersetzt. Dadurch gibt er statt Boxen eine Klassenkarte mit voller Auflösung aus. LibreYOLO bietet ihn ausschließlich für die semantische Segmentierung an.
- Aufgaben
- semantic
- Größen
- r50, r101 at 520 px
- Installation
pip install libreyolo- Supportstufe
- Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
- Upstream
- FCN von PyTorch, BSD-3-Clause. Publikation, Quelle
- Lizenzen
- Code BSD-3-Clause, Gewichte BSD-3-Clause. Kommerzielle Nutzung
Installation
FCN benötigt kein optionales Zusatzpaket. Alle Importe sind in der Basisinstallation enthalten.
pip install libreyoloVorhersage
Die Gewichte werden bei der ersten Verwendung von Hugging Face heruntergeladen und lokal zwischengespeichert.
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) Klassen-IDsprint(mask.classes) # sortierte Klassen-IDs im Bildlibreyolo predict model=LibreFCNr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueDie semantische Segmentierung gibt eine Klassen-ID pro Pixel und keine Boxen
zurück. result.semantic_mask enthält daher ein Array der Form (H, W) in
.data und die Liste der im Bild vorkommenden Klassen-IDs in .classes.
conf, iou und max_det werden aus Gründen der API-Parität akzeptiert,
haben aber keine Wirkung: Das Modell weist jedem Pixel per Argmax eine Klasse
zu, ohne Confidence-Schwellenwert oder NMS-Schritt. Unter
Vorhersage findest du Quellen, Streaming und die Verarbeitung
von Ergebnissen.
Varianten
Es gibt zwei ResNet-Tiefen, beide mit einer festen Eingabe von 520 px. Der Inferenzgraph der Bibliothek ist das FCN mit dilatiertem ResNet von torchvision, nicht das VGG-basierte FCN-8s-Netzwerk mit Skip-Verbindungen aus der ursprünglichen Veröffentlichung.
LibreYOLO trainiert FCN nicht: train() löst für diese Familie den Fehler
NotImplementedError aus. Der oben verlinkte Support-Tier
kennzeichnet sie daher als reine Inferenzfamilie. Die beiden veröffentlichten
Checkpoints sind die eigenen, mit COCO trainierten Gewichte von torchvision,
die für den LibreYOLO-Loader konvertiert wurden.
Validierung
val() gibt metrics/mIoU und metrics/pixel_accuracy zurück. Diese werden
auf einem beliebigen Datensatz in dem Format gemessen, das du für das Training
verwendet hast.
from libreyolo import LibreYOLO model = LibreYOLO("LibreFCNr50.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mIoU"])print(metrics["metrics/pixel_accuracy"])libreyolo val model=LibreFCNr50.pt data=my-dataset.yamlExport
| Aufgabe | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| semantic | semantic to ONNX: unterstützt | semantic to TorchScript: unterstützt | semantic to ExecuTorch: nicht unterstützt | semantic to TensorRT: unterstützt | semantic to OpenVINO: unterstützt | semantic to Paddle: nicht unterstützt | semantic to MNN: nicht unterstützt | semantic to RKNN: nicht unterstützt | semantic to ncnn: nicht unterstützt | semantic to TFLite: nicht unterstützt | semantic to CoreML: nicht unterstützt | semantic to Core AI: nicht unterstützt |
Ein exportiertes Artefakt wird anhand seiner Dateiendung wieder über LibreYOLO()
geladen. Eine .onnx- oder .engine-Datei verhält sich daher wie ein Checkpoint
und gibt dasselbe Results-Objekt zurück. Export führt die
Argumente auf, die von den einzelnen Formaten akzeptiert werden.
from libreyolo import LibreYOLO model = LibreYOLO("LibreFCNr50.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreFCNr50.pt format=onnxlibreyolo export model=LibreFCNr50.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Die Factory entscheidet anhand der Dateiendung, daher wird ein Exportartefakt# wie jeder Checkpoint geladen und gibt dasselbe Results-Objekt zurück.model = LibreYOLO("LibreFCNr50.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)Checkpoints
Alle veröffentlichten Gewichtsdateien dieser Familie.
| Datei | Eingabe (px) | Lizenz der Gewichte |
|---|---|---|
| semantic | ||
| LibreFCNr50.pt | 520 | bsd-3-clause |
| LibreFCNr101.pt | 520 | bsd-3-clause |
Jede oben aufgeführte Datei ist heute in der LibreYOLO-Organisation verfügbar und wird bei der ersten Verwendung heruntergeladen.
Lizenzierung
Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.
Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.
- Originalarbeit
- FCN, PyTorch
- Upstream-Lizenz
- BSD-3-Clause
- Upstream-Quelle
- github.com/pytorch/vision
- LibreYOLO-Code
- MIT
- Gewichte
- BSD-3-Clause, erneut unter huggingface.co/LibreYOLO veröffentlicht
- Einordnung
- 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.