Teknologian jakaminen

YOLOv10 kouluttaa omaa tietojoukkoaan (liikennemerkkien tunnistus)

2024-07-12

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

Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän

Esipuhe

Aiheeseen liittyvä johdanto

  • YOLOv10:n rakensivat Tsinghuan yliopiston tutkijat Ultralytics Python -paketin pohjalta. Se esitteli uuden menetelmän reaaliaikaiseen kohteen havaitsemiseen ja ratkaisi aiempien YOLO-versioiden jälkikäsittelyn ja malliarkkitehtuurin puutteet. Eliminoimalla ei-maksimaalisen vaimennuksen (NMS) ja optimoimalla eri mallikomponentit YOLOv10 saavuttaa huippuluokan suorituskyvyn ja vähentää merkittävästi laskennallisia kustannuksia. Laajat kokeet osoittavat sen erinomaisen tarkkuuden ja latenssin kompromissin useilla mallimitoilla.
  • [1] YOLOv10 lähdekoodin osoite:https://github.com/THU-MIG/yolov10.git
  • [2] YOLOv10 paperiosoite:https://arxiv.org/abs/2405.14458
    Lisää kuvan kuvaus tähän
  • Yleiskatsaus
    Reaaliaikaisen objektien tunnistuksen tarkoituksena on ennustaa tarkasti kohteiden luokka ja sijainti kuvissa, joilla on pieni latenssi. YOLO-sarja on ollut tämän tutkimuksen eturintamassa suorituskyvyn ja tehokkuuden välisen tasapainonsa ansiosta. Riippuvuus NMS:stä ja arkkitehtoniset tehottomuudet estävät kuitenkin optimaalisen suorituskyvyn. YOLOv10 ratkaisee nämä ongelmat ottamalla käyttöön johdonmukaisen kaksoistehtävän nms-vapaaseen koulutukseen ja yleisen tehokkuuteen perustuvan mallin suunnittelustrategian.
  • Arkkitehtuuri
    YOLOv10:n arkkitehtuuri perustuu aiempien YOLO-mallien vahvuuksiin ja tuo mukanaan useita keskeisiä innovaatioita. Mallin arkkitehtuuri koostuu seuraavista osista:
    • Runko: YOLOv10:n runko vastaa ominaisuuksien purkamisesta käyttämällä CSPNetin (Cross Stage Partial Network) parannettua versiota gradienttivirran parantamiseksi ja laskennan redundanssin vähentämiseksi.
    • Kaula: Kaula on suunniteltu yhdistämään eri asteikkojen piirteet ja välittämään ne päähän. Se sisältää PAN-kerroksen (Path Aggregation Network) tehokkaaseen monimuotoiseen ominaisuuksien yhdistämiseen.
    • Yhdestä moneen pää: Luo useita ennusteita kullekin kohteelle harjoitusprosessin aikana, tarjoaa monipuolisia valvontasignaaleja ja parantaa oppimistarkkuutta.
    • Yksi yhteen pää: Luo parhaan ennusteen kullekin kohteelle päättelyn aikana, mikä eliminoi NMS:n tarpeen, mikä vähentää latenssia ja lisää tehokkuutta.
  • Avainominaisuudet
    • NMS-vapaa koulutus: Hyödynnä johdonmukaista kaksoisallokaatiota eliminoidaksesi NMS:n tarpeen ja vähentääksesi päättelyviivettä.
    • Kokonaisvaltainen mallisuunnittelu: Jokainen komponentti on täysin optimoitu tehokkuuden ja tarkkuuden näkökulmasta, mukaan lukien kevyt luokituspää, spatiaalinen kanava irrotettu alasnäytteistys ja sijoitusohjauslohkosuunnittelu.
    • Parannetut malliominaisuudet: Yhdistää suuren ytimen konvoluutio- ja osittaiset itsetarkkailumoduulit suorituskyvyn parantamiseksi ilman merkittäviä laskentakustannuksia.
  • Mallivaihtoehdot: YOLOv10:tä on saatavana useissa eri malleissa, jotka täyttävät erilaiset sovellustarpeet:
    • YOLOv10-N: Nanoversio erittäin resurssirajoitteisiin ympäristöihin.
    • YOLOv10-S: Pieni versio tasapainottaa nopeutta ja tarkkuutta.
    • YOLOv10-M: Keskikokoinen versio yleiskäyttöön (sopii moneen eri tarkoitukseen tai käyttöön).
    • YOLOv10-B: Tasapainotettu versio suurennetulla leveydellä lisää tarkkuutta.
    • YOLOv10-L: Suuri versio parempaan tarkkuuteen lisääntyneiden laskentaresurssien kustannuksella.
    • YOLOv10-X: Erittäin suuri versio maksimaalisen tarkkuuden ja suorituskyvyn saavuttamiseksi.
      Lisää kuvan kuvaus tähän

Edellytykset

laboratorioympäristö

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

Asennusympäristö

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

Lisää kuvan kuvaus tähän

Lisää kuvan kuvaus tähän

projektin osoite

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

Windows

Tulkaahttps://github.com/THU-MIG/yolov10.gitLataa lähdekoodin zip-paketti verkkosivustolta.

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

Käytä YOLOv10:tä kouluttaaksesi oman tietojoukkosi liikennemerkkien havaitsemiseen

Valmistele tiedot

Tässä artikkelissa käytetty tietojoukko on ilmainenlataa linkki:https://download.csdn.net/download/FriendshipTang/88045378

Lisää kuvan kuvaus tähän

suorittaa koulutusta

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

Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän

Tehdä ennustuksia

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

Lisää kuvan kuvaus tähän

Lisää kuvan kuvaus tähän
Lisää kuvan kuvaus tähän

todentaminen

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

Lisää kuvan kuvaus tähän

viittauksia

[1] YOLOv10 lähdekoodin osoite:https://github.com/THU-MIG/yolov10.git
[2] YOLOv10 paperiosoite:https://arxiv.org/abs/2405.14458