YOLOv3 et YOLOv3u
Aperçu
Ce document présente une vue d'ensemble de trois modèles de détection d'objets étroitement liés, à savoir YOLOv3, YOLOv3-Ultralytics et YOLOv3u.
-
YOLOv3 : Il s'agit de la troisième version de l'algorithme de détection d'objets You Only Look Once (YOLO). Développé à l'origine par Joseph Redmon, YOLOv3 a amélioré ses prédécesseurs en introduisant des fonctionnalités telles que les prédictions multi-échelles et trois tailles différentes de noyaux de détection.
-
YOLOv3u : Il s'agit d'une version mise à jour de YOLOv3-Ultralytics qui intègre la tête divisée sans ancrage et sans objectivité utilisée dans les modèles YOLOv8. YOLOv3u conserve la même colonne vertébrale et l'architecture de col que YOLOv3, mais avec la tête de détection mise à jour de YOLOv8.
Principales caractéristiques
-
YOLOv3 : A introduit l'utilisation de trois échelles différentes pour la détection, en tirant parti de trois tailles différentes de noyaux de détection : 13x13, 26x26 et 52x52. Cela a considérablement amélioré la précision de la détection pour les objets de différentes tailles. De plus, YOLOv3 a ajouté des fonctionnalités telles que les prédictions multi-étiquettes pour chaque boîte englobante et un meilleur réseau d'extraction de caractéristiques.
-
YOLOv3u : Ce modèle mis à jour intègre la tête divisée sans ancrage et sans objectivité de YOLOv8. En éliminant le besoin de boîtes d'ancrage prédéfinies et de scores d'objectivité, cette conception de tête de détection peut améliorer la capacité du modèle à détecter des objets de tailles et de formes variables. Cela rend YOLOv3u plus robuste et précis pour les tâches de détection d'objets.
Tâches et modes pris en charge
YOLOv3 est conçu spécifiquement pour détection d'objets tâches. Ultralytics prend en charge trois variantes de YOLOv3 : yolov3u
, yolov3-tinyu
et yolov3-sppu
. Le u
dans le nom indique qu'ils utilisent la tête sans ancrage de YOLOv8, contrairement à leur architecture d'origine qui est basée sur des ancres. Ces modèles sont réputés pour leur efficacité dans divers scénarios du monde réel, équilibrant précision et vitesse. Chaque variante offre des caractéristiques et des optimisations uniques, ce qui les rend adaptés à un large éventail d'applications.
Les trois modèles prennent en charge un ensemble complet de modes, assurant la polyvalence dans diverses étapes du déploiement du modèle et du développement. Ces modes incluent l'inférence, la validation, l'entraînement et l'exportation, offrant aux utilisateurs une boîte à outils complète pour une détection d'objets efficace.
Type de modèle | Poids pré-entraînés | Tâches prises en charge | Inférence | Validation | Entraînement | Exporter |
---|---|---|---|---|---|---|
YOLOv3(u) | yolov3u.pt |
Détection d'objets | ✅ | ✅ | ✅ | ✅ |
YOLOv3-Tiny(u) | yolov3-tinyu.pt |
Détection d'objets | ✅ | ✅ | ✅ | ✅ |
YOLOv3u-SPP(u) | yolov3-sppu.pt |
Détection d'objets | ✅ | ✅ | ✅ | ✅ |
Ce tableau offre une vue d'ensemble des capacités de chaque variante de YOLOv3, soulignant leur polyvalence et leur adéquation à diverses tâches et modes de fonctionnement dans les flux de travail de détection d'objets.
Exemples d'utilisation
Cet exemple fournit des exemples simples d'entraînement et d'inférence de YOLOv3. Pour une documentation complète sur ces modes et d'autres, consultez les pages de documentation Predict, Train, Val et Export.
Exemple
PyTorch pré-entraînés *.pt
ainsi que la configuration des modèles *.yaml
fichiers peuvent être passés aux YOLO()
class pour créer une instance de modèle en python :
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
Des commandes CLI sont disponibles pour exécuter directement les modèles :
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg
Citations et remerciements
Si vous utilisez YOLOv3 dans vos recherches, veuillez citer les articles originaux de YOLO et le référentiel Ultralytics YOLOv3 :
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}
Merci à Joseph Redmon et Ali Farhadi pour avoir développé le YOLOv3 original.
FAQ
Quelles sont les différences entre YOLOv3, YOLOv3-Ultralytics et YOLOv3u ?
YOLOv3 est la troisième itération de l'algorithme de détection d'objets YOLO (You Only Look Once) développé par Joseph Redmon, connu pour son équilibre entre la précision et la vitesse, utilisant trois échelles différentes (13x13, 26x26 et 52x52) pour les détections. YOLOv3-Ultralytics est l'adaptation d'Ultralytics de YOLOv3 qui ajoute la prise en charge de plus de modèles pré-entraînés et facilite la personnalisation du modèle. YOLOv3u est une variante améliorée de YOLOv3-Ultralytics, intégrant la tête divisée sans ancrage et sans objectivité de YOLOv8, améliorant la robustesse et la précision de la détection pour différentes tailles d'objets. Pour plus de détails sur les variantes, consultez la série YOLOv3.
Comment puis-je entraîner un modèle YOLOv3 en utilisant Ultralytics ?
L'entraînement d'un modèle YOLOv3 avec Ultralytics est simple. Vous pouvez entraîner le modèle en utilisant soit python, soit la CLI :
Exemple
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640
Pour des options et des directives d'entraînement plus complètes, consultez notre documentation sur le mode Train.
Qu'est-ce qui rend YOLOv3u plus précis pour les tâches de détection d'objets ?
YOLOv3u améliore YOLOv3 et YOLOv3-Ultralytics en intégrant la tête divisée sans ancrage et sans objectivité utilisée dans les modèles YOLOv8. Cette mise à niveau élimine le besoin de boîtes d'ancrage prédéfinies et de scores d'objectivité, améliorant ainsi sa capacité à détecter des objets de tailles et de formes variables plus précisément. Cela fait de YOLOv3u un meilleur choix pour les tâches de détection d'objets complexes et diversifiées. Pour plus d'informations, reportez-vous à la section Caractéristiques principales.
Comment puis-je utiliser les modèles YOLOv3 pour l'inférence ?
Vous pouvez effectuer une inférence en utilisant les modèles YOLOv3 soit par des scripts python, soit par des commandes CLI :
Exemple
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg
Consultez la documentation sur le mode Inference pour plus de détails sur l'exécution des modèles YOLO.
Quelles tâches sont prises en charge par YOLOv3 et ses variantes ?
YOLOv3, YOLOv3-Tiny et YOLOv3-SPP prennent principalement en charge les tâches de détection d'objets. Ces modèles peuvent être utilisés pour différentes étapes du déploiement et du développement de modèles, telles que l'inférence, la validation, la formation et l'exportation. Pour un ensemble complet de tâches prises en charge et des détails plus approfondis, consultez notre documentation sur les tâches de détection d'objets.
Où puis-je trouver des ressources pour citer YOLOv3 dans mes recherches ?
Si vous utilisez YOLOv3 dans vos recherches, veuillez citer les articles originaux de YOLO et le référentiel Ultralytics YOLOv3. Exemple de citation BibTeX :
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}
Pour plus de détails sur les citations, consultez la section Citations et remerciements.