Partage de technologie

YOLOv10 entraîne son propre ensemble de données (détection des panneaux de signalisation)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici

Préface

Introduction connexe

  • YOLOv10 a été construit par des chercheurs de l'Université Tsinghua sur la base du package Ultralytics Python. Il a introduit une nouvelle méthode de détection de cible en temps réel et a résolu les lacunes du post-traitement et de l'architecture du modèle dans les versions précédentes de YOLO. En éliminant la suppression non maximale (NMS) et en optimisant divers composants du modèle, YOLOv10 atteint des performances de pointe tout en réduisant considérablement les frais de calcul. Des expériences approfondies démontrent son compromis supérieur en matière de précision et de latence à plusieurs échelles de modèle.
  • [1] Adresse du code source YOLOv10:https://github.com/THU-MIG/yolov10.git
  • [2] Adresse papier YOLOv10:https://arxiv.org/abs/2405.14458
    Insérer la description de l'image ici
  • Aperçu
    Le but de la détection d'objets en temps réel est de prédire avec précision la catégorie et l'emplacement des objets dans les images avec une faible latence. La série YOLO a été à l'avant-garde de cette recherche grâce à son équilibre entre performance et efficacité. Cependant, la dépendance à l’égard du NMS et les inefficacités architecturales entravent les performances optimales. YOLOv10 résout ces problèmes en introduisant une double tâche cohérente pour une formation sans NMS et une stratégie globale de conception de modèles axée sur l'efficacité et la précision.
  • Architecture
    L'architecture de YOLOv10 s'appuie sur les points forts des modèles YOLO précédents tout en introduisant plusieurs innovations clés. L'architecture du modèle se compose des composants suivants :
    • Backbone : Le backbone de YOLOv10 est responsable de l'extraction des fonctionnalités, en utilisant une version améliorée de CSPNet (Cross Stage Partial Network) pour améliorer le flux de gradient et réduire la redondance de calcul.
    • Cou : Le cou est conçu pour rassembler des caractéristiques de différentes échelles et les transmettre à la tête. Il comprend une couche PAN (Path Aggregation Network) pour une fusion efficace de fonctionnalités multi-échelles.
    • Tête un à plusieurs : génère plusieurs prédictions pour chaque objet pendant le processus de formation, fournissant des signaux de supervision riches et améliorant la précision de l'apprentissage.
    • Tête un-à-un : génère la meilleure prédiction pour chaque objet lors de l'inférence afin d'éliminer le besoin de NMS, réduisant ainsi la latence et augmentant l'efficacité.
  • Principales caractéristiques
    • Formation sans NMS : tirez parti d’une double allocation cohérente pour éliminer le besoin de NMS et réduire la latence d’inférence.
    • Conception de modèle holistique : chaque composant est entièrement optimisé du point de vue de l'efficacité et de la précision, y compris la tête de classification légère, le sous-échantillonnage découplé des canaux spatiaux et la conception des blocs de guidage de classement.
    • Capacités de modèle améliorées : combine des modules de convolution à grand noyau et d'auto-attention partielle pour améliorer les performances sans coût de calcul important.
  • Variantes de modèles : YOLOv10 est disponible dans une variété de modèles pour répondre aux différents besoins des applications :
    • YOLOv10-N : version Nano pour les environnements extrêmement limités en ressources.
    • YOLOv10-S : La petite version équilibre vitesse et précision.
    • YOLOv10-M : Version moyenne pour un usage général (adapté à de nombreuses fins ou utilisations différentes).
    • YOLOv10-B : Version équilibrée avec largeur augmentée pour une plus grande précision.
    • YOLOv10-L : Version étendue pour une plus grande précision au prix de ressources de calcul accrues.
    • YOLOv10-X : Version extra-large pour une précision et des performances maximales.
      Insérer la description de l'image ici

Conditions préalables

environnement de laboratoire

torch==2.0.1
torchvision==0.15.2
onnx==1.14.0
onnxruntime==1.15.1
pycocotools==2.0.7
PyYAML==6.0.1
scipy==1.13.0
onnxsim==0.4.36
onnxruntime-gpu==1.18.0
gradio==4.31.5
opencv-python==4.9.0.80
psutil==5.9.8
py-cpuinfo==9.0.0
huggingface-hub==0.23.2
safetensors==0.4.3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Environnement d'installation

pip install ultralytics
# 或者
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple # 国内清华源,下载速度更快
  • 1
  • 2
  • 3

Insérer la description de l'image ici

Insérer la description de l'image ici

adresse du projet

Linux

git clone https://github.com/THU-MIG/yolov10.git

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
Cloning into 'yolov10'...
remote: Enumerating objects: 4583, done.
remote: Counting objects: 100% (4583/4583), done.
remote: Compressing objects: 100% (1270/1270), done.
remote: Total 4583 (delta 2981), reused 4576 (delta 2979), pack-reused 0
Receiving objects: 100% (4583/4583), 23.95 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (2981/2981), done.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

les fenêtres

s'il te plaît vienshttps://github.com/THU-MIG/yolov10.gitTéléchargez le package zip du code source sur le site Web.

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5

Utilisez YOLOv10 pour entraîner votre propre ensemble de données à la détection des panneaux de signalisation

Préparer les données

L'ensemble de données utilisé dans cet article est gratuitlien de téléchargement:https://download.csdn.net/download/FriendshipTang/88045378

Insérer la description de l'image ici

mener une formation

yolo detect train data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=yolov10n.yaml epochs=100 batch=4 imgsz=640 device=0
  • 1

Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici
Insérer la description de l'image ici

faire des prédictions

yolo predict model=runsdetecttrain4weightsbest.pt source=E:/mytest/datasets/Road_Sign_VOC_and_YOLO_datasets/testset/images
  • 1

Insérer la description de l'image ici

Insérer la description de l'image ici
Insérer la description de l'image ici

authentifier

yolo detect val data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=runsdetecttrain4weightsbest.pt batch=4 imgsz=640 device=0
  • 1

Insérer la description de l'image ici

les références

[1] Adresse du code source YOLOv10:https://github.com/THU-MIG/yolov10.git
[2] Adresse papier YOLOv10:https://arxiv.org/abs/2405.14458