Faster R-CNN

Faster R-CNN erkennt Objekte mit einem Region Proposal Network, das einen zweistufigen Klassifikator speist. Diese Architektur machte Regionsvorschläge zu einem Bestandteil desselben trainierten Netzwerks statt zu einem separaten Schritt. LibreYOLO portiert die torchvision-Implementierung für die Objekterkennung.

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

Installation

Faster R-CNN 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("LibreFasterRCNNl.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreFasterRCNNl.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. conf und iou legen die Schwellenwerte für Confidence und NMS fest. Im Gegensatz zu einem Query-basierten Detektor behält Faster R-CNN seinen Upstream-NMS-Schritt bei. Unter Vorhersage findest du Quellen, Streaming und die Verarbeitung von Ergebnissen.

Varianten

Es gibt vier Größen. Jede ist eine andere torchvision-Konfiguration und keine skalierte Version derselben Konfiguration: n verwendet MobileNetV3-Large bei einer Eingabe von 320 px, s dasselbe Backbone bei 800 px, m ResNet-50 mit einer Feature Pyramid und l die v2-Überarbeitung. Letztere ersetzt den Head von m durch einen tieferen Region-Proposal-Head und einen Box-Head mit vier Faltungen. n und s tauschen Accuracy gegen ein leichteres Backbone.

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("LibreFasterRCNNl.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreFasterRCNNl.pt data=my-dataset.yaml

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: unterstütztDetection to TorchScript: nicht unterstütztDetection to ExecuTorch: nicht unterstütztDetection to TensorRT: nicht unterstütztDetection to OpenVINO: nicht 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

Faster R-CNN lässt sich nur nach ONNX und mit Batch-Größe 1 exportieren. Der exportierte Graph enthält weiterhin den Upstream-Schritt zur Größenänderung. LibreYOLO erzwingt daher unabhängig vom übergebenen Wert dynamic=True, damit der Graph für nicht quadratische Quellen 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("LibreFasterRCNNl.pt")model.export(format="onnx", imgsz=800)
CLI
libreyolo export model=LibreFasterRCNNl.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("LibreFasterRCNNl.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpoints

Alle veröffentlichten Gewichtsdateien dieser Familie.

DateiEingabe (px)Lizenz der Gewichte
Detection
LibreFasterRCNNn.pt320bsd-3-clause
LibreFasterRCNNs.pt800bsd-3-clause
LibreFasterRCNNm.pt800bsd-3-clause
LibreFasterRCNNl.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
Faster R-CNN, 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 four published checkpoints used for parity testing are 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 each 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{renNIPS15fasterrcnn,
    Author = {Shaoqing Ren and Kaiming He and Ross Girshick and Jian Sun},
    Title = {Faster {R-CNN}: Towards Real-Time Object Detection
             with Region Proposal Networks},
    Booktitle = {Advances in Neural Information Processing Systems ({NIPS})},
    Year = {2015}
}

Aus dem Zitierblock der Autoren unter github.com/rbgirshick/py-faster-rcnn#citing-faster-r-cnn 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.