YOLOv1
YOLOv1 est le détecteur original de 2016 qui a donné son nom à la famille YOLO : un seul réseau convolutionnel doté d'une tête entièrement connectée prédit toutes les bounding boxes et tous les scores de classes en une passe, sans ancres. LibreYOLO le conserve comme pièce historique figée, réservée à l'inférence.
- Tâches
- detection
- Tailles
- t, b at 448 px
- Installer
pip install libreyolo- Niveau de support
- Musée, depuis v. Pièce figée. Corrections de bugs uniquement.
- Licences
- Code MIT, poids Public domain (Darknet "YOLO LICENSE"). Usage commercial
Installer
YOLOv1 ne nécessite aucun extra au-delà du package de base.
pip install libreyoloPrédire
Cette famille est réservée à l'inférence\u00a0: train() lève
NotImplementedError, cette page ne comporte donc aucune section Entraîner.
La prédiction, la validation et l'export sont tous pris en charge. Les poids
sont téléchargés depuis Hugging Face à la première utilisation et mis en
cache localement.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO1b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreYOLO1b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueL'objet Results renvoyé est celui de toutes les familles, le remplacement du
détecteur ne demande donc de modifier qu'une ligne. Deux aspects sont propres
à cette famille. Le checkpoint publié est entraîné sur Pascal VOC (2007+2012),
et non sur COCO. box.cls indexe donc les 20 catégories VOC (aeroplane,
bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog,
horse, motorbike, person, pottedplant, sheep, sofa, train, tvmonitor) plutôt
que les 80 catégories COCO. De plus, la tête de détection entièrement
connectée accepte une seule image à la fois. Une liste de sources est ainsi
traitée en boucle et non comme un véritable batch. Consultez la
prédiction pour les sources, le streaming et la gestion des
résultats.
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 un dataset utilisant le même
espace d'étiquettes de type VOC que celui sur lequel le checkpoint a été
entraîné.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO1b.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 : pris en charge |
Un artefact exporté se recharge dans LibreYOLO() grâce au suffixe de son
fichier. Un fichier .onnx ou .engine se comporte donc comme un checkpoint
et renvoie les mêmes Results. Vous pouvez également exécuter le graphe dans
un runtime nu, sans installer LibreYOLO, mais vous devez alors écrire vous-même
le prétraitement et le post-traitement.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreYOLO1b.pt format=onnxlibreyolo export model=LibreYOLO1b.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # La fabrique détermine le chemin selon le suffixe du fichier ; un artefact exporté se charge# donc comme tout checkpoint et renvoie le même objet Results.model = LibreYOLO("LibreYOLO1b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Tous les fichiers de poids publiés pour cette famille.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| Detection | ||
| LibreYOLO1b.pt | 448 | other |
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
- YOLOv1, Joseph Redmon
- Licence du projet d'origine
- Public domain (Darknet "YOLO LICENSE")
- Source du projet d'origine
- github.com/pjreddie/darknet
- Code de LibreYOLO
- MIT
- Poids
- Public domain (Darknet "YOLO LICENSE"), republiés sur huggingface.co/LibreYOLO
- Interprétation
- 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. One thing to know before deploying this checkpoint: it is trained on Pascal VOC 2007+2012, not COCO, so it detects and names the 20 VOC categories rather than the 80 COCO ones.