Ultralytics YOLO27 :

YOLOv3 et YOLOv3u#

Présentation#

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.

  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 améliore ses prédécesseurs en introduisant notamment des prédictions multi-échelles et trois tailles différentes de noyaux de détection.

  2. YOLOv3-Ultralytics : C'est l'implémentation PyTorch d'Ultralytics de YOLOv3, maintenue dans le dépôt ultralytics/yolov3. Elle conserve l'architecture originale basée sur les ancres tout en ajoutant davantage de modèles pré-entraînés et une personnalisation simplifiée.

  3. 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 score d’objectness utilisée dans les modèles YOLOv8. YOLOv3u conserve la même architecture de backbone et de neck que YOLOv3, mais avec la tête de détection mise à jour de YOLOv8.

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

Fonctionnalités clés#

  • YOLOv3 : 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 des objets de tailles différentes. 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 séparée sans ancres et sans score d’objectness de YOLOv8. En supprimant la nécessité de boîtes d’ancrage et de scores d’objectness prédéfinis, 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 variées. 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 détection d’objets. Ultralytics prend en charge trois variantes de YOLOv3 : yolov3u, yolov3-tinyu et yolov3-sppu. Le u présent dans le nom signifie que ces modèles utilisent la tête sans ancres de YOLOv8, contrairement à leur architecture d’origine fondée sur des ancres. Ces modèles sont réputés pour leur efficacité dans divers scénarios réels, en équilibrant précision et vitesse. Chaque variante offre des fonctionnalités et des optimisations uniques, ce qui les rend adaptées à un large éventail d’applications.

Les trois modèles prennent en charge un ensemble complet de modes, garantissant leur polyvalence à différentes étapes du déploiement et du développement des modèles. Ces modes comprennent l’inférence, la validation, l’entraînement et l’exportation, offrant ainsi une boîte à outils complète pour effectuer efficacement la détection d’objets.

Type de modèlePoids préentraînésTâches prises en chargeEntraînementValidationInférenceExportation
YOLOv3(u)yolov3u.ptDétection d’objets
YOLOv3-Tiny(u)yolov3-tinyu.ptDétection d’objets
YOLOv3-SPP(u)yolov3-sppu.ptDétection d’objets

Ce tableau offre une vue d’ensemble des capacités de chaque variante de YOLOv3, en mettant en évidence leur polyvalence et leur adéquation à différentes tâches et différents 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 consulter la documentation complète sur ces modes et les autres modes, consulte les pages de documentation Predict, Train, Val et Export.

Exemple

Les modèles *.pt préentraînés avec PyTorch, ainsi que les fichiers de configuration *.yaml, peuvent être transmis à 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 YOLO d’origine ainsi que le dépôt Ultralytics YOLOv3 :

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 d’avoir développé le YOLOv3 d’origine.

FAQ#

  • 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. Il est connu pour son équilibre entre précision et vitesse, et utilise 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 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 qui intègre la tête séparée sans ancres et sans score d’objectness de YOLOv8, améliorant ainsi la robustesse et la précision de la détection pour des objets de tailles variées. Pour plus de détails sur les variantes, consulte la série YOLOv3.

  • L’entraînement d’un modèle YOLOv3 avec Ultralytics est simple. Tu peux entraîner le modèle avec 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 découvrir davantage d’options et de recommandations concernant l’entraînement, consulte notre documentation du mode Train.

  • YOLOv3u améliore YOLOv3 et YOLOv3-Ultralytics en intégrant la tête séparée sans ancres et sans score d’objectness utilisée dans les modèles YOLOv8. Cette mise à niveau élimine la nécessité de boîtes d’ancrage et de scores d’objectness prédéfinis, améliorant sa capacité à détecter plus précisément des objets de tailles et de formes variées. 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 des inférences avec les modèles YOLOv3 à l’aide de scripts Python ou de 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")

    Consulte la documentation du mode Inference 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. Tu peux utiliser ces modèles à différentes étapes du déploiement et du développement des modèles, comme l’inférence, la validation, l’entraînement et l’exportation. Pour consulter la liste complète des tâches prises en charge et obtenir davantage de détails, consulte notre documentation sur les tâches de détection d’objets.

  • Si tu utilises YOLOv3 dans tes recherches, cite les articles YOLO d’origine ainsi que 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.

Commentaires