Pengenalan gambar YOLOv8 luar biasa, tetapi melatih model adalah tugas penting yang tidak boleh Anda abaikan.

YOLOv8 adalah algoritma deteksi objek real-time yang banyak digunakan di bidang deteksi objek. Ini adalah bagian dari seri You Only Look Once (YOLO) yang dikembangkan oleh Ultralytics. Algoritme melacak, mendeteksi, mengelompokkan instance, memperkirakan pose, dan mengklasifikasikan objek dalam gambar dan video. Ini bertujuan untuk menjadi lebih cepat dan lebih akurat daripada algoritma pendahulunya.

Menggunakan YOLOv8 pada kumpulan data eksperimental seperti CIFAR-10 dan CIFAR-100 seringkali lebih mudah untuk proyek Proof-of-Concept (POC) daripada pada kumpulan data dunia nyata yang memerlukan kumpulan data yang disesuaikan.

Tutorial ini akan memandu Anda melalui langkah-langkah yang terlibat dalam melatih YOLOv8 tentang data kustom.

Menyiapkan Lingkungan Python

Mulailah dengan menginstal lingkungan pengembangan untuk proyek, ikuti petunjuk di bawah ini.

  1. Pergi ke terminal dan buat direktori baru bernama yolov8project:
    mkdir yolov8project
  2. Arahkan ke direktori proyek dan membuat lingkungan virtual:
    cd yolov8proyek
    python -m venv env
  3. Kemudian, aktifkan lingkungan virtual.
    # Di Windows
    env/Script/aktifkan

    # Di Linux / macOS
    sumber env/bin/aktifkan

    Untuk menjalankan kode, Anda perlu menginstal Ultralytics, library untuk deteksi objek dan segmentasi gambar. Ini juga merupakan ketergantungan YOLOv8. Instal menggunakan pip dengan menjalankan perintah di bawah ini.
    pip instal ultralytics
  4. Perintah ini menginstal model terlatih YOLOv8, yolov8n.pt. Uji model dengan menjalankan perintah di bawah untuk melakukan deteksi dengan bobot yang telah dilatih sebelumnya pada gambar atau video pilihan Anda masing-masing menggunakan YOLOv8.
    #deteksi gambar
    tugas yolo = mode deteksi = model prediksi = yolov8n.pt sumber = "jalur/ke/gambar.png"

    #deteksi video
    tugas yolo = mode deteksi = model prediksi = yolov8n.pt sumber = "jalur/ke/video.mp4"

    Jika semuanya bekerja dengan sempurna, hasilnya akan tersedia di yolov8project direktori di berjalan/mendeteksi/exp subdirektori.

Mempersiapkan Kumpulan Data Khusus Anda

Langkah-langkah untuk menyiapkan dataset kustom Anda meliputi pengumpulan data, pelabelan data, dan pemisahan data (pelatihan, pengujian, validasi).

Pengumpulan data

Ini adalah proses mengumpulkan sekumpulan gambar yang memiliki objek yang ingin dideteksi. Pastikan untuk menggunakan gambar berkualitas tinggi, fokus, dan objek terlihat jelas. Anda dapat menggunakan berbagai alat untuk mengumpulkan gambar, seperti Gambar Google, Flickr, atau kamera Anda sendiri. Jika Anda tidak memiliki kumpulan data gambar, gunakan kumpulan data dari openimages basis data. Artikel ini akan menggunakan gambar keamanan lokasi konstruksi kumpulan data dari Kaggle.

Pelabelan Data

Setelah mengumpulkan gambar Anda, Anda perlu memberi label pada gambar tersebut. Ini berarti mengidentifikasi objek di setiap gambar dan kotak pembatasnya. Ada beberapa alat yang tersedia untuk membantu Anda melabeli data Anda, seperti LabelImg, CVAT, dan Roboflow. Semua alat ini gratis untuk digunakan.

Memisahkan Data

Untuk melatih model machine learning, Anda harus membagi data menjadi set pelatihan dan pengujian. Coba gunakan rasio pembagian 70%-30% saat menggunakan data dalam jumlah besar. Jika tidak, pertahankan 80%-20% untuk menghindari overfitting atau underfitting model Anda.

Menggunakan folder terpisah, untuk memisahkan data Anda secara acak ke dalam rangkaian pelatihan, pengujian, dan validasi dengan rasio pemisahan yang Anda inginkan.

Mengonfigurasi YOLOv8 untuk Kumpulan Data Anda

Setelah memberi label pada data Anda, lanjutkan untuk mengonfigurasi YOLOv8 untuk kumpulan data khusus Anda. Ini melibatkan pembuatan file konfigurasi yang menentukan hal berikut:

  • Jalur ke data pelatihan Anda.
  • Jalur ke data validasi Anda.
  • Jumlah kelas yang ingin Anda deteksi.

Buat file config.yaml untuk menyimpan konfigurasi:

jalur:(Himpunan datadirektorijalur)
kereta:(keretaHimpunan datamapjalur)
tes:(tesHimpunan datamapjalur)
sah:(validasiHimpunan datamapjalur)

# Kelas
nc:5# ganti berdasarkan jumlah kelas dataset Anda

# Nama kelas
# ganti semua nama kelas dengan nama kelas Anda sendiri
nama:['kelas1','kelas2','kelas3','kelas4','kelas5']

Membuat file konfigurasi adalah cara yang berguna untuk menyusun dan menyimpan parameter penting untuk model visi komputer Anda. Pastikan untuk memperbarui file config.yaml sesuai dengan sifat dan struktur dataset Anda.

Pastikan untuk menggunakan jalur yang benar untuk set data Anda karena melatih model sepenuhnya bergantung pada file konfigurasi.

Melatih YOLOv8 tentang Data Kustom

Setelah Anda membuat file konfigurasi, mulailah melatih YOLOv8. Gunakan alat baris perintah YOLOv8 untuk melatih model Anda. Alat baris perintah mengambil beberapa parameter, seperti jalur ke file konfigurasi, jumlah zaman, dan ukuran gambar sebagai berikut:

yolo task=detect mode=train model=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640

Ada beberapa bagian dari perintah ini.

tugas menetapkan jenis tugas: deteksi, segmentasi, atau klasifikasikan. mode mewakili tindakan: latih, prediksi, val, ekspor, lacak, atau tolok ukur. model adalah model yang akan digunakan, dalam hal ini, yolov8n.pt. Anda juga dapat menggunakan yolov8s/yolov8l/yolov8x.

zaman mewakili jumlah putaran pelatihan (10). imgsz mewakili ukuran gambar (640). Ukuran gambar harus selalu disetel ke kelipatan 32.

Berikut adalah contoh keluaran yang dapat Anda harapkan:

Waktu yang digunakan untuk pelatihan bergantung pada ukuran dataset Anda, jumlah epoch, dan jumlah kelas yang ingin Anda deteksi. Setelah proses pelatihan selesai, Anda akan memiliki model YOLOv8 terlatih yang akan Anda gunakan untuk mendeteksi objek dalam gambar dan video.

Setelah pelatihan selesai, lakukan inferensi dengan bobot baru, best.pt

tugas yolo = mode deteksi = prediksi model = "runs/train/weights/best.pt" source="image.png"

Arahkan ke run/train/exp/weights/best.pt direktori untuk mengakses bobot yang dilatih khusus. YOLOv8 akan menyimpan gambar yang diprediksi di berjalan/mendeteksi/exp subdirektori.

Mengevaluasi Performa Model

Anda dapat mengevaluasi performa model YOLOv8 menggunakan perintah berikut yang mengevaluasi model pada kumpulan gambar uji:

yolo val model=yolov8n.pt data=path/ke/config.yaml batch=1 imgsz=640

Hasil yang diharapkan adalah sebagai berikut:

Proses evaluasi akan menghasilkan berbagai metrik, seperti presisi, recall, dan skor F1. Metrik presisi mengukur persentase objek yang terdeteksi dengan benar. Metrik penarikan mengukur persentase objek yang terdeteksi oleh YOLOv8. Skor F1 adalah rata-rata tertimbang dari metrik presisi dan daya ingat.

Menerapkan Model YOLOv8 Khusus Anda

Uji kinerja model YOLOv8 Anda.

yolo detect predict model=path/to/best.pt source='path/to/image.jpg'

Outputnya adalah sebagai berikut:

Kemudian, simpan bobot model ke dalam file.

model ekspor yolo = jalur/ke/best.pt format = onnx

Gunakan file tersebut untuk memuat model ke dalam aplikasi Anda dan gunakan untuk mendeteksi objek secara real time. Jika Anda menerapkan model ke a layanan awan, gunakan layanan cloud untuk mendeteksi objek dalam gambar dan video yang ada di layanan tersebut.

Bawa Pulang YOLOv8

Tim Ultralytics terus menyempurnakan model seri YOLO. Ini menjadikan mereka pemimpin industri dalam teknologi deteksi objek dan bidang visi komputer.

YOLOv8 adalah model yang disempurnakan yang dapat Anda gunakan untuk menangani berbagai jenis proyek visi komputer.