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.
- 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.
pip install libreyoloPrédire
Les poids sont téléchargés depuis Hugging Face au premier usage, puis mis en cache localement.
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)libreyolo predict model=LibreEfficientDetd0.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueL'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é.
from libreyolo import LibreYOLO model = LibreYOLO("LibreEfficientDetd0.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreEfficientDetd0.pt data=my-dataset.yamlExporter
| Tâche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX : pris en charge | Detection to TorchScript : pris en charge | Detection to ExecuTorch : pris en charge | Detection to TensorRT : pris en charge | Detection to OpenVINO : pris en charge | Detection to Paddle : non pris en charge | Detection to MNN : non pris en charge | Detection to RKNN : non pris en charge | Detection to ncnn : pris en charge | Detection to TFLite : non pris en charge | Detection to CoreML : non pris en charge | Detection 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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreEfficientDetd0.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreEfficientDetd0.pt format=onnxlibreyolo export model=LibreEfficientDetd0.pt format=tensorrt half=Truefrom 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.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| Detection | ||
| LibreEfficientDetd0.pt | apache-2.0 | |
| LibreEfficientDetd1.pt | apache-2.0 | |
| LibreEfficientDetd2.pt | apache-2.0 | |
| LibreEfficientDetd3.pt | apache-2.0 | |
| LibreEfficientDetd4.pt | apache-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
- Source du projet d'origine
- github.com/rwightman/efficientdet-pytorch
- 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é.