EfficientDet

EfficientDet associe un backbone EfficientNet à un réseau pyramidal de caractéristiques bidirectionnel répété (BiFPN) et met à l'échelle conjointement la profondeur, la largeur et la résolution sur cinq tailles. LibreYOLO le fournit comme détecteur en inférence seule.

Tâches
detection
Tailles
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
EfficientDet par Google Research, Apache-2.0. Article, source
Licences
Code Apache-2.0, poids Apache-2.0. Usage commercial

Installation

EfficientDet ne demande aucun extra optionnel. Tout ce qu'il importe fait partie de l'installation de base.

bash
pip install libreyolo

Prédire

Les poids sont téléchargés depuis Hugging Face au premier usage, puis mis en cache localement.

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

L'objet Results renvoyé est celui que renvoient toutes les familles, si bien que passer à un autre détecteur ne demande qu'une ligne de changement. EfficientDet décode des candidats à base d'ancres puis applique une non-maximum suppression classe par classe, si bien que conf, iou et max_det ont tous un effet réel ici. Voir la prédiction pour les sources, le streaming et le traitement des résultats.

Variantes

Cinq tailles, de D0 à D4. Chaque palier associe un backbone EfficientNet plus grand à un BiFPN plus profond et plus large ainsi qu'à une tête de prédiction plus profonde, si bien que le nombre de paramètres et le calcul augmentent de concert, selon la règle de compound scaling de l'article.

Valider

val() renvoie un dictionnaire de clés metrics/ couvrant la précision, le rappel, la mAP 50 et la mAP 50-95, mesurées sur n'importe quel dataset dans le format avec lequel vous avez entraîné.

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

Exporter

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

Un artefact exporté se recharge via LibreYOLO() d'après l'extension de son fichier, si bien qu'un fichier .onnx ou .engine se comporte comme un checkpoint et renvoie le même Results.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreEfficientDetd0.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreEfficientDetd0.pt format=onnxlibreyolo export model=LibreEfficientDetd0.pt format=tensorrt half=True
Utiliser le fichier exporté
from libreyolo import LibreYOLO # La factory s'appuie sur l'extension du fichier, donc un artefact# exporté se charge comme un checkpoint et renvoie le même Results.model = LibreYOLO("LibreEfficientDetd0.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpoints

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

FichierEntrée (px)Licence des poids
Detection
LibreEfficientDetd0.ptapache-2.0
LibreEfficientDetd1.ptapache-2.0
LibreEfficientDetd2.ptapache-2.0
LibreEfficientDetd3.ptapache-2.0
LibreEfficientDetd4.ptapache-2.0

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
EfficientDet, Google Research
Licence du projet d'origine
Apache-2.0
Code de LibreYOLO
MIT
Poids
Apache-2.0, republiés sur huggingface.co/LibreYOLO
Interprétation
Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code. LibreYOLO's D0-D4 checkpoints are converted from Google's official TensorFlow-trained release assets through the Apache-2.0 rwightman/efficientdet-pytorch project; those release assets carry no separate per-checkpoint license, so redistribution here rests on Apache-2.0 implied by the releasing project, the same basis rwightman/efficientdet-pytorch itself uses for its own converted weights.

Les checkpoints D0-D4 de LibreYOLO sont convertis via le projet rwightman/efficientdet-pytorch, sous licence Apache-2.0, qui reflète lui-même les poids officiels entraînés sous TensorFlow de google/automl sans modifier les tenseurs appris. Aucun code source du projet zylo117/Yet-Another-EfficientDet-Pytorch, sous licence LGPL, n'a été consulté ni utilisé.

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.