YOLOv1

YOLOv1 ist der ursprüngliche Detektor von 2016, der der YOLO-Familie ihren Namen gab. Ein konvolutionales Netzwerk mit vollständig verbundenem Kopf sagt alle Begrenzungsrahmen und Klassenbewertungen in einem einzigen Durchlauf und ohne Anchor-Boxen vorher. LibreYOLO bewahrt ihn als eingefrorenes Exponat nur für die Inferenz.

Aufgaben
detection
Größen
t, b at 448 px
Installation
pip install libreyolo
Supportstufe
Museum, seit v. Eingefrorenes Ausstellungsstück. Nur Fehlerbehebungen.
Upstream
YOLOv1 von Joseph Redmon, Public domain (Darknet "YOLO LICENSE"). Publikation, Quelle
Lizenzen
Code MIT, Gewichte Public domain (Darknet "YOLO LICENSE"). Kommerzielle Nutzung

Installation

YOLOv1 benötigt neben dem Basispaket kein zusätzliches Extra.

bash
pip install libreyolo

Vorhersage

Diese Familie ist ausschließlich für die Inferenz vorgesehen. train() löst NotImplementedError aus, daher enthält diese Seite keinen Abschnitt zum Training. Vorhersage, Validierung und Export werden unterstützt. Die Gewichte werden bei der ersten Verwendung von Hugging Face heruntergeladen und lokal zwischengespeichert.

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

Das zurückgegebene Results-Objekt entspricht dem jeder anderen Familie, sodass der Wechsel zu einem anderen Detektor nur eine einzige Codezeile erfordert. Zwei Eigenschaften sind für diese Familie spezifisch. Der veröffentlichte Checkpoint wurde auf Pascal VOC (2007+2012) und nicht auf COCO trainiert. box.cls verweist daher auf die 20 VOC-Kategorien (aeroplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant, sheep, sofa, train, tvmonitor) statt auf die 80 COCO-Kategorien. Außerdem akzeptiert der vollständig verbundene Erkennungskopf jeweils nur ein Bild. Eine Liste von Quellen wird deshalb nacheinander verarbeitet und nicht als echter Batch ausgeführt. Unter Vorhersage findest du Informationen zu Quellen, Streaming und Ergebnisverarbeitung.

Validierung

val() gibt ein Dictionary mit metrics/-Schlüsseln für Precision, Recall, mAP 50 und mAP 50-95 zurück. Gemessen wird anhand eines Datensatzes im selben VOC-artigen Labelraum, auf dem der Checkpoint trainiert wurde.

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

Export

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

Ein exportiertes Artefakt wird über seine Dateiendung wieder durch LibreYOLO() geladen. Eine .onnx- oder .engine-Datei verhält sich daher wie ein Checkpoint und gibt dasselbe Results-Objekt zurück. Du kannst den Graphen auch in einer eigenständigen Laufzeitumgebung ohne installiertes LibreYOLO ausführen. Dann musst du Vor- und Nachverarbeitung selbst implementieren.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreYOLO1b.pt format=onnxlibreyolo export model=LibreYOLO1b.pt format=tensorrt half=True
Exportierte Datei verwenden
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Die Factory leitet anhand der Dateiendung weiter, daher wird ein exportiertes Artefakt# wie jeder Checkpoint geladen und gibt dasselbe Results-Objekt zurück.model = LibreYOLO("LibreYOLO1b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpoints

Alle für diese Familie veröffentlichten Gewichtsdateien.

DateiEingabe (px)Lizenz der Gewichte
Detection
LibreYOLO1b.pt448other

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
YOLOv1, Joseph Redmon
Upstream-Lizenz
Public domain (Darknet "YOLO LICENSE")
LibreYOLO-Code
MIT
Gewichte
Public domain (Darknet "YOLO LICENSE"), erneut unter huggingface.co/LibreYOLO veröffentlicht
Einordnung
Darknet's bundled NOTICE quotes its own license in full: "Darknet is public domain. Do whatever you want with it." That covers both the architecture and the pretrained weights LibreYOLO converts from it, with no attribution requirement and no restriction on commercial use. LibreYOLO's own code around this architecture is MIT. One thing to know before deploying this checkpoint: it is trained on Pascal VOC 2007+2012, not COCO, so it detects and names the 20 VOC categories rather than the 80 COCO ones.

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.