YOLOv3 et YOLOv3u#
Présentation#
Ce document présente un aperçu 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). Initialement développé 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 séparée sans ancres et sans objectivité utilisée dans les modèles YOLOv8. YOLOv3u conserve le même backbone et la même architecture de cou que YOLOv3, mais avec la detection head mise à jour de YOLOv8.

Fonctionnalités clés#
-
YOLOv3 : A introduit l'utilisation de trois échelles différentes pour la détection, en exploitant trois tailles différentes de noyaux de détection : 13x13, 26x26 et 52x52. Cela a considérablement amélioré la précision de détection pour les objets de différentes tailles. De plus, YOLOv3 a ajouté des fonctionnalités telles que des prédictions multi-étiquettes pour chaque bounding box et un meilleur réseau extracteur de caractéristiques.
-
YOLOv3u : Ce modèle mis à jour intègre la tête fractionnée sans ancrage et sans score d'objet de YOLOv8. En éliminant le besoin de boîtes d'ancrage prédéfinies et de scores d'objet, cette conception de tête de détection améliore la capacité du modèle à détecter des objets de tailles et de formes variables. Cela rend YOLOv3u plus robuste et plus 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 les tâches de object detection. 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 ancres 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 fonctionnalités et des optimisations uniques, les rendant adaptées à une gamme d'applications.
Les trois modèles prennent en charge un ensemble complet de modes, garantissant une polyvalence dans les différentes étapes du model deployment et du développement. Ces modes incluent Inference, Validation, Training et Export, 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 | Entraînement | Validation | Inférence | Exporter (Export) |
|---|---|---|---|---|---|---|
| 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 donne un aperçu rapide des capacités de chaque variante de YOLOv3, mettant en évidence leur polyvalence et leur adéquation à diverses tâches et modes opérationnels dans les workflows de détection d'objets.
Exemples d'utilisation#
Cet exemple fournit des exemples simples d'entraînement et d'inférence avec YOLOv3. Pour toute la documentation sur ces modes et d'autres, consultez les pages de documentation Predict, Train, Val et Export.
Des modèles pré-entraînés PyTorch *.pt ainsi que des fichiers de configuration *.yaml peuvent être passés à la classe YOLO() 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")Citations et remerciements#
Si tu utilises YOLOv3 dans tes recherches, cite les articles originaux sur YOLO et le dépôt 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 d'avoir développé YOLOv3 à l'origine.
FAQ#
YOLOv3 est la troisième itération de l'algorithme de object detection YOLO (You Only Look Once) développé par Joseph Redmon, connu pour son équilibre entre accuracy et vitesse, utilisant trois échelles différentes (13x13, 26x26 et 52x52) pour les détections. YOLOv3-Ultralytics est l'adaptation de YOLOv3 par Ultralytics qui ajoute la prise en charge de modèles pré-entraînés supplémentaires et facilite la personnalisation des modèles. YOLOv3u est une variante améliorée de YOLOv3-Ultralytics, intégrant la tête séparée sans ancres et sans objectivité de YOLOv8, ce qui améliore la robustesse et la précision de la détection pour différentes tailles d'objets. Pour plus de détails sur les variantes, consulte la section Série YOLOv3.
YOLOv3u améliore YOLOv3 et YOLOv3-Ultralytics en incorporant la tête séparée sans ancres 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 sa capacité à détecter des objets de tailles et de formes variables avec plus de précision. Cela fait de YOLOv3u un meilleur choix pour les tâches de détection d'objets complexes et diversifiées. Pour plus d'informations, consulte la section Fonctionnalités clés.
Tu peux effectuer une inférence à l'aide des modèles YOLOv3 par le biais de scripts Python ou de commandes CLI :
Exemplefrom 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")Consulte la documentation sur le mode Inférence pour plus de détails sur l'exécution des modèles YOLO.
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, l'Entraînement et l'Exportation. Pour un ensemble complet de tâches prises en charge et des détails plus approfondis, visite notre documentation sur les tâches de détection d'objets.
Si tu utilises YOLOv3 dans tes recherches, cite les articles originaux sur YOLO et le dépôt Ultralytics YOLOv3. Exemple de citation BibTeX :
Citation@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, consulte la section Citations et Remerciements.
L'entraînement d'un modèle YOLOv3 avec Ultralytics est simple. Tu peux entraîner le modèle en utilisant Python ou la CLI :
Pour des options d'entraînement et des directives plus complètes, visite notre documentation sur le mode Train.