FCOS

FCOS erkennt Objekte pixelweise, statt eine Menge vordefinierter Anchor Boxes zu verwenden. An jeder Position der Feature Map sagt es eine Box und einen Centerness-Score vorher. LibreYOLO portiert die torchvision-Implementierung für die Objekterkennung.

Aufgaben
detection
Größen
r50 at 800 px
Installation
pip install libreyolo
Supportstufe
Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
Upstream
FCOS von PyTorch, BSD-3-Clause. Publikation, Quelle
Lizenzen
Code BSD-3-Clause, Gewichte BSD-3-Clause. Kommerzielle Nutzung

Installation

FCOS benötigt kein optionales Zusatzpaket. Alle Importe sind in der Basisinstallation enthalten.

bash
pip install libreyolo

Vorhersage

Die Gewichte werden bei der ersten Verwendung von Hugging Face heruntergeladen und lokal zwischengespeichert.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreFCOSr50.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreFCOSr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Das zurückgegebene Results-Objekt entspricht dem aller anderen Familien. Der Wechsel zu einem anderen Detektor erfordert daher nur eine Änderung in einer Zeile. Wenn du das Modell ohne Schwellenwertargumente aufrufst, werden die veröffentlichten Standardwerte von FCOS angewendet: conf=0.2, iou=0.6 und max_det=100. Übergib einen der drei Werte, um ihn zu überschreiben. FCOS behält einen abschließenden NMS-Schritt über seine pixelweisen Vorhersagen bei. Unter Vorhersage findest du Quellen, Streaming und die Verarbeitung von Ergebnissen.

Varianten

Es gibt eine Größe: ResNet-50 mit einer Feature Pyramid. Dies ist die einzige von dieser Familie erkannte Variante.

Validierung

val() gibt ein Dictionary mit metrics/-Schlüsseln für Precision, Recall, mAP 50 und mAP 50-95 zurück. Diese werden auf einem beliebigen Datensatz in dem Format gemessen, das du für das Training verwendet hast.

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

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: unterstütztDetection to TorchScript: unterstütztDetection to ExecuTorch: nicht unterstütztDetection to TensorRT: nicht unterstütztDetection to OpenVINO: unterstütztDetection to Paddle: nicht unterstütztDetection to MNN: nicht unterstütztDetection to RKNN: nicht unterstütztDetection to ncnn: nicht unterstütztDetection to TFLite: nicht unterstütztDetection to CoreML: nicht unterstütztDetection to Core AI: nicht unterstützt

FCOS lässt sich nach ONNX, TorchScript und OpenVINO exportieren. FCOS behält das Seitenverhältnis der Quelle bei, bevor der Graph ausgeführt wird. Für die ONNX- und OpenVINO-Pfade erzwingt LibreYOLO daher unabhängig vom übergebenen Wert dynamic=True, damit der Graph für aufgefüllte Eingabeformen gültig bleibt. Eine exportierte .onnx-Datei wird anhand ihrer Endung wieder über LibreYOLO() geladen und gibt dasselbe Results-Objekt zurück.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreFCOSr50.pt")model.export(format="onnx", imgsz=800)model.export(format="torchscript", imgsz=800)
CLI
libreyolo export model=LibreFCOSr50.pt format=onnx imgsz=800
Exportierte Datei verwenden
from 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("LibreFCOSr50.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpoints

Alle veröffentlichten Gewichtsdateien dieser Familie.

DateiEingabe (px)Lizenz der Gewichte
Detection
LibreFCOSr50.pt800bsd-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
FCOS, PyTorch
Upstream-Lizenz
BSD-3-Clause
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 can be used in commercial and closed-source products with no obligation on your own application code. It asks only that you keep the copyright notice and disclaimer with any copy you redistribute, and it carries no patent grant. The published checkpoint used for parity testing is not distributed in the LibreYOLO source tree: torchvision's own documentation notes that a pretrained model's terms may depend on its training data, so the Hugging Face mirror ships the BSD text on that implied basis and repeats the caveat rather than issuing an explicit checkpoint-specific grant.

Zitieren

@inproceedings{tian2019fcos,
  title   =  {{FCOS}: Fully Convolutional One-Stage Object Detection},
  author  =  {Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
  booktitle =  {Proc. Int. Conf. Computer Vision (ICCV)},
  year    =  {2019}
}

@article{tian2021fcos,
  title   =  {{FCOS}: A Simple and Strong Anchor-free Object Detector},
  author  =  {Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
  booktitle =  {IEEE T. Pattern Analysis and Machine Intelligence (TPAMI)},
  year    =  {2021}
}

Aus dem Zitierblock der Autoren unter github.com/tianzhi0549/FCOS#citations kopiert.

Mit LibreYOLO v1.5.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.