YOLOv3
YOLOv3 ist der Darknet-53-Detektor, der mehrskalige Vorhersagen und unabhängige logistische Klassifikatoren in die YOLO-Reihe einführte. LibreYOLO bewahrt ihn als eingefrorenes Exponat nur für die Inferenz in den Größen Tiny, Base und SPP.
- Aufgaben
- detection
- Größen
- t, b, spp at 416 to 608 px
- Installation
pip install libreyolo- Supportstufe
- Museum, seit v. Eingefrorenes Ausstellungsstück. Nur Fehlerbehebungen.
- Upstream
- YOLOv3 von Joseph Redmon, Public domain (Darknet "YOLO LICENSE"). Publikation, Quelle
- Lizenzen
- Code MIT, Gewichte Public domain (Darknet "YOLO LICENSE"). Kommerzielle Nutzung
Installation
YOLOv3 benötigt neben dem Basispaket kein zusätzliches Extra.
pip install libreyoloVorhersage
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.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO3b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreYOLO3b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Die SPP-Variante fügt vor den Erkennungsköpfen einen Spatial-Pyramid-Pooling-Block# hinzu und wird mit ihrer eigenen nativen Eingabegröße ausgeführt.model = LibreYOLO("LibreYOLO3spp.pt")result = model(SAMPLE_IMAGE)Das zurückgegebene Results-Objekt entspricht dem jeder anderen Familie, sodass der Wechsel zu einem anderen Detektor nur eine einzige Codezeile erfordert. conf filtert anhand des Konfidenzschwellenwerts, iou anhand des NMS-Schwellenwerts. Die Filterung wird für jede Skala ausgeführt, bevor die Boxen aller drei Köpfe zusammengeführt werden. 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 anhand jedes Datensatzes im für die Validierung verwendeten Format.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO3b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO3b.pt data=my-dataset.yamlExport
| Aufgabe | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: unterstützt | Detection to TorchScript: unterstützt | Detection to ExecuTorch: unterstützt | Detection to TensorRT: unterstützt | Detection to OpenVINO: unterstützt | Detection to Paddle: nicht unterstützt | Detection to MNN: nicht unterstützt | Detection to RKNN: nicht unterstützt | Detection to ncnn: unterstützt | Detection to TFLite: nicht unterstützt | Detection to CoreML: nicht unterstützt | Detection 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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO3b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreYOLO3b.pt format=onnxlibreyolo export model=LibreYOLO3b.pt format=tensorrt half=Truefrom 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("LibreYOLO3b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Alle für diese Familie veröffentlichten Gewichtsdateien.
| Datei | Eingabe (px) | Lizenz der Gewichte |
|---|---|---|
| Detection | ||
| LibreYOLO3t.pt | 416 | other |
| LibreYOLO3b.pt | 416 | other |
| LibreYOLO3spp.pt | 608 | other |
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
- YOLOv3, Joseph Redmon
- Upstream-Lizenz
- Public domain (Darknet "YOLO LICENSE")
- Upstream-Quelle
- github.com/pjreddie/darknet
- 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.