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.

  1. 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.

  2. YOLOv3u : Il s'agit d'une version mise à jour de YOLOv3-Ultralytics qui intègre la tête de division sans ancrage et sans objectness utilisée dans les modèles YOLOv8. YOLOv3u conserve la même architecture de backbone et de neck que YOLOv3, mais avec la detection head mise à jour de YOLOv8.

Bannière du modèle de détection d'objets YOLOv3

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 les prédictions multi-étiquettes pour chaque bounding box et un meilleur réseau d'extraction de caractéristiques.

  • YOLOv3u : Ce modèle mis à jour intègre la tête de division sans ancrage et sans objectness de YOLOv8. En éliminant le besoin de boîtes d'ancrage prédéfinies et de scores d'objectness, 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 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 signifie qu'ils utilisent la tête sans ancrage de YOLOv8, contrairement à leur architecture originale qui est basée sur les ancres. Ces modèles sont réputés pour leur efficacité dans divers scénarios réels, équilibrant précision et vitesse. Chaque variante offre des fonctionnalités et des optimisations uniques, les rendant adaptées à une gamme d'applications.

Tous les trois modèles prennent en charge un ensemble complet de modes, assurant une polyvalence à diverses é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èlePoids pré-entraînésTâches prises en chargeInférenceValidationEntraînementExportation
YOLOv3(u)yolov3u.ptDétection d'objets
YOLOv3-Tiny(u)yolov3-tinyu.ptDétection d'objets
YOLOv3u-SPP(u)yolov3-sppu.ptDétection d'objets

Ce tableau fournit un aperçu rapide des capacités de chaque variante de YOLOv3, soulignant leur polyvalence et leur adéquation à diverses tâches et modes opérationnels 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 YOLOv3. Pour la documentation complète sur ces modes et d'autres, consulte les pages de documentation Predict, Train, Val et Export.

Exemple

PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in 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, merci de citer les articles originaux de YOLO et le dépôt YOLOv3 d'Ultralytics :

Citation
@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 le développement du 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 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 par Ultralytics de YOLOv3 qui ajoute la prise en charge de davantage de modèles pré-entraînés et facilite la personnalisation des modèles. YOLOv3u est une variante améliorée de YOLOv3-Ultralytics, intégrant la tête de division sans ancrage et sans objectness de YOLOv8, améliorant la robustesse et la précision de la détection pour diverses tailles d'objets. Pour plus de détails sur les variantes, réfère-toi à 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. Tu peux entraîner le modèle en utilisant Python ou 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)

Pour des options et des directives d'entraînement plus complètes, visite notre documentation du 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 incorporant la tête de division sans ancrage et sans objectness 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'objectness, améliorant sa capacité à détecter des objets de tailles et de formes variées 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, réfère-toi à la section Fonctionnalités clés.

Comment puis-je utiliser les modèles YOLOv3 pour l'inférence ?

Tu peux effectuer l'inférence en utilisant les modèles YOLOv3 soit via des scripts Python, soit via 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")

Réfère-toi à la documentation du mode Inférence 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 diverses étapes du déploiement et du développement de modèles, telles que l'Inférence, la Validation, l'Entraînement et l'Export. 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.

Où puis-je trouver des ressources pour citer YOLOv3 dans mes recherches ?

Si tu utilises YOLOv3 dans tes recherches, merci de citer les articles originaux de YOLO et le dépôt YOLOv3 d'Ultralytics. 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, réfère-toi à la section Citations et remerciements.

Commentaires