Ultralytics YOLO27 :
Get Started

YOLOv3 et YOLOv3u#

Présentation#

Ce document présente un aperçu de trois modèles de détection d’objets étroitement liés : 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). 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.

  2. YOLOv3-Ultralytics : Il s’agit de l’implémentation de YOLOv3 par Ultralytics avec PyTorch, maintenue dans le dépôt ultralytics/yolov3. Elle conserve l’architecture d’origine basée sur des ancres, tout en ajoutant davantage de modèles préentraînés et en facilitant la personnalisation.

  3. YOLOv3u : Il s’agit d’une version mise à jour de YOLOv3-Ultralytics qui intègre la tête divisé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 utilise 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 : A introduit l’utilisation de trois échelles différentes pour la détection, en s’appuyant sur trois tailles de noyaux de détection : 13x13, 26x26 et 52x52. Cela a considérablement amélioré la précision de détection des 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 ancres et sans score d’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 variées. YOLOv3u est ainsi 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 dans le nom indique que ces modèles utilisent la tête sans ancres de YOLOv8, contrairement à leur architecture d’origine basée sur des ancres. Ces modèles sont réputés pour leur efficacité dans divers scénarios réels, où ils offrent un équilibre entre précision et vitesse. Chaque variante propose des fonctionnalités et des optimisations spécifiques, qui la rendent adaptée à de nombreuses applications.

Les trois modèles prennent en charge un ensemble complet de modes, ce qui les rend polyvalents aux différentes étapes du déploiement de modèles et du développement. Ces modes comprennent l’inférence, la validation, l’entraînement et l’exportation, offrant aux utilisateurs une boîte à outils complète pour réaliser efficacement des tâches de détection d’objets.

Type de modèlePoids préentraînésTâches prises en chargeEntraînementValidationInférenceExport
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 donne un aperçu des capacités de chaque variante de YOLOv3 et met en évidence leur polyvalence ainsi que leur adéquation à différentes tâches et à différents modes opérationnels dans les flux de travail de détection d’objets.

Exemples d'utilisation#

Cet exemple présente 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 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

# Charger un modèle YOLOv3u préentraîné sur COCO
model = YOLO("yolov3u.pt")

# Afficher les informations du modèle (facultatif)
model.info()

# Entraîner le modèle sur le jeu de données d'exemple COCO8 pendant 100 époques
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Effectuer une inférence avec le modèle YOLOv3u sur l’image 'bus.jpg'
results = model("path/to/bus.jpg")

Citations et remerciements#

Si tu utilises YOLOv3 dans tes recherches, cite les articles originaux sur YOLO ainsi que 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 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 réputé pour son équilibre entre précision et vitesse, et utilise trois échelles différentes (13x13, 26x26 et 52x52) pour la détection. YOLOv3-Ultralytics est l’adaptation de YOLOv3 par Ultralytics ; elle 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 divisée sans ancres et sans score d’objectness de YOLOv8, ce qui améliore la robustesse et la précision de détection pour les objets de différentes tailles. Pour en savoir plus 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
    
    # Charger un modèle YOLOv3u préentraîné sur COCO
    model = YOLO("yolov3u.pt")
    
    # Entraîner le modèle sur le jeu de données d'exemple COCO8 pendant 100 époques
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Pour découvrir davantage d’options et de recommandations pour l’entraînement, consulte la documentation du mode Train.

  • YOLOv3u améliore YOLOv3 et YOLOv3-Ultralytics en intégrant la tête divisée sans ancres et sans score d’objectness utilisée dans les modèles YOLOv8. Cette amélioration élimine le besoin de boîtes d’ancrage prédéfinies et de scores d’objectness, ce qui renforce sa capacité à détecter plus précisément des objets de tailles et de formes variées. YOLOv3u est ainsi un meilleur choix pour les tâches de détection d’objets complexes et variées. Pour en savoir plus, consulte la section Fonctionnalités clés.

  • Tu peux effectuer l’inférence avec les modèles YOLOv3 à l’aide de scripts Python ou de commandes CLI :

    Exemple
    from ultralytics import YOLO
    
    # Charger un modèle YOLOv3u préentraîné sur COCO
    model = YOLO("yolov3u.pt")
    
    # Effectuer une inférence avec le modèle YOLOv3u sur l’image 'bus.jpg'
    results = model("path/to/bus.jpg")

    Consulte la documentation du mode Inference pour en savoir plus 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 à différentes étapes du déploiement de modèles et du développement, notamment pour 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 plus de détails, 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 ainsi que 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 en savoir plus sur les citations, consulte la section Citations et remerciements.

Commentaires