Berbagi teknologi

YOLOv10 melatih kumpulan datanya sendiri (deteksi rambu lalu lintas)

2024-07-12

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

Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini

Kata pengantar

Pengenalan terkait

  • YOLOv10 dibuat oleh para peneliti dari Universitas Tsinghua berdasarkan paket Ultralytics Python. YOLOv10 memperkenalkan metode baru deteksi target real-time dan mengatasi kekurangan pasca-pemrosesan dan arsitektur model pada versi YOLO sebelumnya. Dengan menghilangkan penekanan non-maksimum (NMS) dan mengoptimalkan berbagai komponen model, YOLOv10 mencapai kinerja tercanggih sekaligus mengurangi overhead komputasi secara signifikan. Eksperimen ekstensif menunjukkan akurasi dan trade-off latensi yang unggul pada berbagai skala model.
  • [1] Alamat kode sumber YOLOv10:https://github.com/THU-MIG/yolov10.git
  • [2] Alamat kertas YOLOv10:https://arxiv.org/abs/2405.14458
    Masukkan deskripsi gambar di sini
  • Ringkasan
    Tujuan dari deteksi objek real-time adalah untuk memprediksi secara akurat kategori dan lokasi objek dalam gambar dengan latensi rendah. Seri YOLO menjadi yang terdepan dalam penelitian ini karena keseimbangan antara kinerja dan efisiensi. Namun, ketergantungan pada NMS dan inefisiensi arsitektur menghambat kinerja optimal. YOLOv10 mengatasi masalah ini dengan memperkenalkan tugas ganda yang konsisten untuk pelatihan bebas nms dan strategi desain model yang didorong oleh efisiensi-akurasi secara keseluruhan.
  • Arsitektur
    Arsitektur YOLOv10 dibangun berdasarkan kekuatan model YOLO sebelumnya sekaligus memperkenalkan beberapa inovasi utama. Arsitektur model terdiri dari komponen-komponen berikut:
    • Tulang Punggung: Tulang punggung di YOLOv10 bertanggung jawab untuk ekstraksi fitur, menggunakan versi CSPNet (Cross Stage Partial Network) yang disempurnakan untuk meningkatkan aliran gradien dan mengurangi redundansi komputasi.
    • Leher: Leher dirancang untuk menyatukan fitur-fitur skala yang berbeda dan menyampaikannya ke kepala. Ini mencakup lapisan PAN (Jaringan Agregasi Jalur) untuk penggabungan fitur multi-skala yang efektif.
    • One-to-Many Head: Menghasilkan beberapa prediksi untuk setiap objek selama proses pelatihan, memberikan sinyal pengawasan yang kaya dan meningkatkan akurasi pembelajaran.
    • One-to-One Head: Menghasilkan prediksi terbaik untuk setiap objek selama inferensi untuk menghilangkan kebutuhan NMS, sehingga mengurangi latensi dan meningkatkan efisiensi.
  • Fitur Utama
    • Pelatihan Bebas NMS: Manfaatkan alokasi ganda yang konsisten untuk menghilangkan kebutuhan akan NMS dan mengurangi latensi inferensi.
    • Desain Model Holistik: Setiap komponen dioptimalkan sepenuhnya dari perspektif efisiensi dan akurasi, termasuk kepala klasifikasi ringan, downsampling pemisahan saluran spasial, dan desain blok panduan peringkat.
    • Kemampuan Model yang Ditingkatkan: Menggabungkan konvolusi inti besar dan modul perhatian mandiri parsial untuk meningkatkan kinerja tanpa biaya komputasi yang signifikan.
  • Varian Model: YOLOv10 hadir dalam berbagai model untuk memenuhi kebutuhan aplikasi yang berbeda:
    • YOLOv10-N: Versi nano untuk lingkungan yang sangat terbatas sumber dayanya.
    • YOLOv10-S: Versi kecil menyeimbangkan kecepatan dan akurasi.
    • YOLOv10-M: Versi medium untuk penggunaan tujuan umum (cocok untuk berbagai tujuan atau penggunaan).
    • YOLOv10-B: Versi seimbang dengan lebar yang ditingkatkan untuk akurasi yang lebih tinggi.
    • YOLOv10-L: Versi besar untuk akurasi lebih tinggi dengan mengorbankan peningkatan sumber daya komputasi.
    • YOLOv10-X: Versi ekstra besar untuk akurasi dan kinerja maksimum.
      Masukkan deskripsi gambar di sini

Prasyarat

lingkungan laboratorium

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

Lingkungan Instalasi

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

Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

alamat proyek

Bahasa Indonesia: Sistem Operasi Bahasa Indonesia: Sistem Operasi 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

Jendela

silakan datanghttps://github.com/THU-MIG/yolov10.gitUnduh paket zip kode sumber dari situs 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

Gunakan YOLOv10 untuk melatih kumpulan data Anda sendiri untuk deteksi rambu lalu lintas

Siapkan datanya

Kumpulan data yang digunakan dalam artikel ini gratistautan unduhan:https://download.csdn.net/download/FriendshipTang/88045378

Masukkan deskripsi gambar di sini

melakukan pelatihan

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

Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini

membuat prediksi

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

Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini

mengautentikasi

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

Masukkan deskripsi gambar di sini

referensi

[1] Alamat kode sumber YOLOv10:https://github.com/THU-MIG/yolov10.git
[2] Alamat kertas YOLOv10:https://arxiv.org/abs/2405.14458