RetinaNet

RetinaNet est un détecteur à une étape entraîné avec la focal loss, qui réduit le poids des négatifs faciles afin qu'une grille dense d'ancres conserve une bonne exactitude sans étape distincte de proposition. LibreYOLO porte l'implémentation torchvision pour la détection.

Tâches
detection
Tailles
r50, r50v2 at 800 px
Installer
pip install libreyolo
Niveau de support
Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
Origine
RetinaNet par PyTorch, BSD-3-Clause. Article, source
Licences
Code BSD-3-Clause, poids BSD-3-Clause. Usage commercial

Installer

RetinaNet ne nécessite aucun extra facultatif. Tous ses imports figurent dans l'installation de base.

bash
pip install libreyolo

Prédire

Les poids sont téléchargés depuis Hugging Face à la première utilisation et mis en cache localement.

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

L'objet Results renvoyé est le même pour toutes les familles, remplacer le détecteur ne demande donc de modifier qu'une ligne. conf et iou définissent les seuils de confiance et de NMS ; RetinaNet conserve son étape NMS amont sur la grille dense d'ancres. Consultez la prédiction pour les sources, le streaming et le traitement des résultats.

Variantes

Deux tailles sont proposées, toutes deux avec ResNet-50 et une pyramide de caractéristiques : r50 utilise la tête originale, tandis que r50v2 la remplace par une tête GroupNorm et un bloc P6 plus large alimenté par la dernière étape du backbone au lieu de la sortie FPN.

Valider

val() renvoie un dictionnaire de clés metrics/ couvrant la précision, le rappel, la mAP 50 et la mAP 50-95, mesurés sur tout dataset dans le format utilisé pour l'entraînement.

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

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX : pris en chargeDetection to TorchScript : non pris en chargeDetection to ExecuTorch : non pris en chargeDetection to TensorRT : non pris en chargeDetection to OpenVINO : non pris en chargeDetection to Paddle : non pris en chargeDetection to MNN : non pris en chargeDetection to RKNN : non pris en chargeDetection to ncnn : non pris en chargeDetection to TFLite : non pris en chargeDetection to CoreML : non pris en chargeDetection to Core AI : non pris en charge

RetinaNet s'exporte uniquement vers ONNX, avec un batch de 1. RetinaNet redimensionne les images vers une entrée variable qui conserve les proportions. LibreYOLO force donc dynamic=True quelle que soit la valeur fournie, afin que le graphe reste valide pour des sources de formes différentes. Un fichier .onnx exporté se recharge par LibreYOLO() à partir de son suffixe de fichier et renvoie le même objet Results.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRetinaNetr50v2.pt")model.export(format="onnx", imgsz=800)
CLI
libreyolo export model=LibreRetinaNetr50v2.pt format=onnx imgsz=800
Utiliser le fichier exporté
from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory utilise le suffixe du fichier : un artefact exporté se charge# comme tout checkpoint et renvoie le même objet Results.model = LibreYOLO("LibreRetinaNetr50v2.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpoints

Tous les fichiers de poids publiés pour cette famille.

FichierEntrée (px)Licence des poids
Detection
LibreRetinaNetr50.pt800bsd-3-clause
LibreRetinaNetr50v2.pt800bsd-3-clause

Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
RetinaNet, PyTorch
Licence du projet d'origine
BSD-3-Clause
Source du projet d'origine
github.com/pytorch/vision
Code de LibreYOLO
MIT
Poids
BSD-3-Clause, republiés sur huggingface.co/LibreYOLO
Interprétation
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 two 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.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.