Bagaimana cara Melatih Kumpulan Data Kustom dengan YOLOv5?

Bagaimana cara Melatih Kumpulan Data Kustom dengan YOLOv5?

Node Sumber: 1953267

Pengantar

Kami telah melihat beberapa istilah keren untuk AI dan pembelajaran mendalam, seperti model pra-pelatihan, pembelajaran transfer, dll. Izinkan saya mendidik Anda dengan teknologi yang digunakan secara luas dan salah satu yang paling penting dan efektif: Pembelajaran transfer dengan YOLOv5.

You Only Look Once, atau YOLO adalah salah satu metode identifikasi objek berbasis deep learning yang paling banyak digunakan. Dengan menggunakan kumpulan data khusus, artikel ini akan menunjukkan cara melatih salah satu variasi terbarunya, YOLOv5.

Tujuan Pembelajaran 

  1. Artikel ini akan fokus terutama pada pelatihan model YOLOv5 pada implementasi dataset kustom.
  2. Kita akan melihat apa itu model pra-pelatihan dan melihat apa itu pembelajaran transfer.
  3. Kami akan memahami apa itu YOLOv5 dan mengapa kami menggunakan YOLO versi 5.

Jadi, tanpa membuang waktu, mari kita mulai prosesnya

Daftar Isi

  1. Model Pra-Terlatih
  2. Transfer Belajar
  3. Apa dan Mengapa YOLOv5?
  4. Langkah-langkah yang Terlibat Dalam Pembelajaran Transfer
  5. Organisasi
  6. Beberapa Tantangan Yang Dapat Anda Hadapi
  7. Kesimpulan

Model pra-terlatih

Anda mungkin pernah mendengar ilmuwan data menggunakan istilah "model pra-terlatih" secara luas. Setelah menjelaskan apa yang dilakukan model / jaringan pembelajaran mendalam, saya akan menjelaskan istilahnya. Model pembelajaran mendalam adalah model yang berisi berbagai lapisan yang ditumpuk bersama untuk melayani satu tujuan, seperti klasifikasi, deteksi, dll. Jaringan pembelajaran mendalam belajar dengan menemukan struktur rumit dalam data yang diberikan kepada mereka dan menyimpan bobot dalam file yang kemudian digunakan untuk melakukan tugas serupa. Model yang telah dilatih sebelumnya adalah model Deep Learning yang sudah dilatih. Artinya, mereka sudah dilatih tentang kumpulan data besar yang berisi jutaan gambar.

Berikut ini caranya TensorFlow situs web mendefinisikan model pra-terlatih: Model pra-terlatih adalah jaringan tersimpan yang sebelumnya dilatih pada kumpulan data besar, biasanya pada tugas klasifikasi gambar berskala besar.

Beberapa sangat dioptimalkan dan sangat efisien model pra-terlatih tersedia di internet. Model yang berbeda digunakan untuk melakukan tugas yang berbeda. Beberapa model terlatih adalah VGG-16, VGG-19, YOLOv5, YOLOv3, dan Resnet 50.

Model mana yang akan digunakan bergantung pada tugas yang ingin Anda lakukan. Misalnya, jika saya ingin melakukan an deteksi objek tugas, saya akan menggunakan model YOLOv5.

Transfer Belajar

Transfer Belajar adalah teknik terpenting yang memudahkan tugas seorang data scientist. Melatih model adalah tugas yang berat dan memakan waktu; jika model dilatih dari awal, biasanya tidak memberikan hasil yang baik. Bahkan jika kita melatih model yang mirip dengan model pra-pelatihan, kinerjanya tidak akan seefektif itu, dan perlu waktu berminggu-minggu untuk melatih model. Sebagai gantinya, kita dapat menggunakan model yang telah dilatih sebelumnya dan menggunakan bobot yang sudah dipelajari dengan melatihnya pada kumpulan data khusus untuk melakukan tugas serupa. Model-model ini sangat efisien dan halus dalam hal arsitektur dan kinerja, dan mereka telah mencapai puncaknya dengan tampil lebih baik di berbagai kontes. Model-model ini dilatih pada jumlah data yang sangat besar, menjadikannya lebih beragam dalam pengetahuan.

Jadi pembelajaran transfer pada dasarnya berarti mentransfer pengetahuan yang diperoleh dengan melatih model pada data sebelumnya untuk membantu model belajar lebih baik dan lebih cepat untuk melakukan tugas yang berbeda namun serupa.

Misalnya menggunakan YOLOv5 untuk deteksi objek, tetapi objek tersebut adalah sesuatu selain data objek yang digunakan sebelumnya.

Apa dan Mengapa YOLOv5?

YOLOv5 adalah model pra-terlatih yang mewakili Anda hanya melihat sekali versi 5 digunakan untuk deteksi objek waktu nyata dan telah terbukti sangat efisien dalam hal akurasi dan waktu inferensi. Ada versi lain dari YOLO, tetapi seperti yang diperkirakan, YOLOv5 bekerja lebih baik daripada versi lain. YOLOv5 cepat dan mudah digunakan. Itu didasarkan pada kerangka PyTorch, yang memiliki komunitas lebih besar dari Yolo v4 Darknet.

Yolov5

Sekarang kita akan melihat arsitektur YOLOv5.

Strukturnya mungkin terlihat membingungkan, tetapi tidak masalah karena kita tidak harus melihat arsitekturnya melainkan langsung menggunakan model dan bobotnya.

Dalam pembelajaran transfer, kami menggunakan kumpulan data khusus yaitu, data yang belum pernah dilihat model sebelumnya ATAU data yang modelnya tidak dilatih. Karena model sudah dilatih pada kumpulan data yang besar, kami sudah memiliki bobotnya. Kita sekarang dapat melatih model untuk sejumlah zaman pada data yang ingin kita kerjakan. Pelatihan diperlukan karena model telah melihat data untuk pertama kalinya dan akan membutuhkan beberapa pengetahuan untuk melakukan tugas tersebut.

Langkah-langkah yang Terlibat dalam Pembelajaran Transfer

Pembelajaran transfer adalah proses yang sederhana, dan kita dapat melakukannya dalam beberapa langkah sederhana:

  1. Persiapan data
  2. Format yang tepat untuk anotasi
  3. Ubah beberapa lapisan jika Anda mau
  4. Latih ulang model untuk beberapa iterasi
  5. Validasi/Uji

Persiapan data

Persiapan data dapat memakan waktu jika data yang Anda pilih agak besar. Persiapan data berarti menganotasi gambar, yaitu proses di mana Anda memberi label pada gambar dengan membuat kotak di sekitar objek pada gambar. Dengan melakukan ini, koordinat objek yang ditandai akan disimpan dalam sebuah file yang kemudian akan diumpankan ke model untuk pelatihan. Ada beberapa situs web, seperti masuk akal.ai dan roboflow.com, yang dapat membantu Anda memberi label pada data. 

Inilah cara Anda dapat membuat anotasi data untuk model YOLOv5 di makesense.ai.

1. Mengunjungi https://www.makesense.ai/. 

2. Klik mulai di kanan bawah layar.

Yolov5

3. Pilih gambar yang ingin Anda beri label dengan mengklik kotak yang disorot di tengah.

Muat gambar yang ingin Anda anotasi dan klik deteksi objek.
Yolov5

4. Setelah memuat gambar, Anda akan diminta membuat label untuk berbagai kelas dataset Anda.

Saya mendeteksi pelat nomor kendaraan, jadi satu-satunya label yang akan saya gunakan adalah "Plat Nomor". Anda dapat membuat lebih banyak label hanya dengan menekan enter dengan mengklik tombol '+' di sisi kiri kotak dialog.

Setelah Anda membuat semua label, klik mulai proyek.

Yolov5

Jika ada label yang terlewat, Anda dapat mengeditnya nanti dengan mengklik tindakan, lalu edit label.

5. Mulailah membuat kotak pembatas di sekitar objek dalam gambar. Latihan ini mungkin sedikit menyenangkan pada awalnya, tetapi dengan data yang sangat besar, ini bisa melelahkan.

kotak berlari

6. Setelah memberi anotasi pada semua gambar, Anda perlu menyimpan file yang akan berisi koordinat kotak pembatas beserta kelasnya.

Jadi Anda perlu menuju ke tombol tindakan dan mengklik anotasi ekspor jangan lupa untuk mencentang opsi 'Paket zip yang berisi file dalam format YOLO', karena ini akan menyimpan file dalam format yang benar seperti yang diperlukan dalam model YOLO.

Model YOL

7. Ini adalah langkah penting, jadi ikuti dengan hati-hati.

Setelah Anda memiliki semua file dan gambar, buat folder dengan nama apa saja. Klik pada folder tersebut dan buat dua folder lagi dengan nama gambar dan label di dalam folder tersebut. Jangan lupa beri nama folder yang sama seperti di atas, karena model secara otomatis mencari label setelah Anda memasukkan jalur pelatihan dalam perintah.

Untuk memberi Anda gambaran tentang folder tersebut, saya telah membuat folder bernama 'CarsData' dan di folder itu membuat dua folder – 'gambar' dan 'label.'

yolov5.dll

Di dalam dua folder tersebut, Anda harus membuat dua folder lagi bernama 'train' dan 'val'. Di folder gambar, Anda dapat membagi gambar sesuai keinginan Anda, tetapi Anda harus berhati-hati saat memisahkan label, karena label harus sesuai dengan gambar yang telah Anda pisahkan

8. Sekarang buat file zip dari folder tersebut dan unggah ke drive sehingga kita dapat menggunakannya di colab.

Organisasi

Sekarang kita akan sampai pada bagian implementasi, yang sangat sederhana namun rumit. Jika Anda tidak tahu persis file apa yang harus diubah, Anda tidak akan bisa melatih model pada kumpulan data khusus. 

Jadi, inilah kode yang harus Anda ikuti untuk melatih model YOLOv5 pada kumpulan data khusus

Saya sarankan Anda menggunakan google colab untuk tutorial ini karena juga menyediakan GPU yang memberikan komputasi lebih cepat.

1. !git klon https://github.com/ultralytics/yolov5
Ini akan membuat salinan repositori YOLOv5 yang merupakan repositori GitHub yang dibuat oleh ultralytics.

2. cd yolov5
Ini adalah perintah shell baris perintah yang digunakan untuk mengubah direktori kerja saat ini ke direktori YOLOv5.

3. !pip install -r persyaratan.txt
Perintah ini akan menginstal semua paket dan pustaka yang digunakan dalam melatih model.

4. !unzip '/content/drive/MyDrive/CarsData.zip'
Buka zip folder yang berisi gambar dan label di google colab

Inilah langkah yang paling penting…

Anda sekarang telah melakukan hampir semua langkah dan perlu menulis satu baris kode lagi yang akan melatih model, tetapi, sebelum itu, Anda perlu melakukan beberapa langkah lagi dan mengubah beberapa direktori untuk memberikan jalur set data kustom Anda dan latih model Anda pada data tersebut.

Inilah yang perlu Anda lakukan.

Setelah melakukan 4 langkah di atas, Anda akan memiliki folder yolov5 di google colab Anda. Buka folder yolov5, dan klik folder 'data'. Sekarang Anda akan melihat folder bernama 'coco128.yaml'. 

yolov5.dll

Lanjutkan dan unduh folder ini.

Setelah folder diunduh, Anda perlu membuat beberapa perubahan dan mengunggahnya kembali ke folder yang sama dengan tempat Anda mengunduhnya.

Sekarang mari kita lihat konten file yang telah kita unduh, dan akan terlihat seperti ini.

yolov5.dll

Kami akan menyesuaikan file ini sesuai dengan kumpulan data dan anotasi kami.

Kami telah membuka ritsleting kumpulan data di colab, jadi kami akan menyalin jalur kereta dan gambar validasi kami. Setelah menyalin jalur gambar kereta, yang akan berada di folder kumpulan data dan terlihat seperti ini '/content/yolov5/CarsData/images/train', tempelkan di file coco128.yaml, yang baru saja kita unduh.

Lakukan hal yang sama dengan gambar uji dan validasi.

Sekarang setelah kita selesai dengan ini, kita akan menyebutkan jumlah kelas seperti 'nc:1'. Jumlah kelas dalam hal ini hanya 1. Selanjutnya kita akan menyebutkan nama seperti yang ditunjukkan pada gambar di bawah ini. Hapus semua kelas lain dan bagian yang dikomentari, yang tidak diperlukan, setelah itu file kita akan terlihat seperti ini.

Yolo

Simpan file ini dengan nama yang Anda inginkan. Saya telah menyimpan file dengan nama customPath.yaml dan sekarang mengunggah file ini kembali ke colab di tempat yang sama di mana coco128.yaml berada. 

Sekarang kita selesai dengan bagian pengeditan dan siap untuk melatih model.

Jalankan perintah berikut untuk melatih model Anda untuk beberapa interaksi pada kumpulan data khusus Anda.

Jangan lupa untuk mengubah nama file yang telah Anda unggah ('customPath.yaml). Anda juga dapat mengubah jumlah zaman yang diinginkan untuk melatih model. Dalam hal ini, saya akan melatih model hanya untuk 3 zaman.

5. !python train.py –img 640 –batch 16 –zaman 10 –data /content/yolov5/customPath.yaml –bobot yolov5s.pt

Ingatlah jalur tempat Anda mengunggah folder. Jika jalur diubah, maka perintah tidak akan berfungsi sama sekali.

Setelah Anda menjalankan perintah ini, model Anda akan memulai pelatihan dan Anda akan melihat sesuatu seperti ini di layar Anda.

Yolo

Yolo

Setelah semua zaman selesai, model Anda dapat diuji pada gambar apa pun.

Anda dapat melakukan beberapa penyesuaian lagi di file detect.py pada apa yang ingin Anda simpan dan apa yang tidak Anda sukai, pendeteksian di mana pelat nomor terdeteksi, dll.

6. !python terdeteksi.py –weight /content/yolov5/runs/train/exp/weights/best.pt –sumber path_of_the_image

Anda dapat menggunakan perintah ini untuk menguji prediksi model pada beberapa gambar.

Beberapa Tantangan Yang Bisa Anda Hadapi

Meskipun langkah-langkah yang dijelaskan di atas sudah benar, ada beberapa masalah yang dapat Anda hadapi jika tidak mengikutinya dengan tepat. 

  1. Jalan yang salah: Ini bisa menjadi sakit kepala atau masalah. Jika Anda telah memasuki jalur yang salah di suatu tempat dalam melatih gambar, tidak mudah untuk mengidentifikasinya, dan Anda tidak akan dapat melatih model.
  2. Format label yang salah: Ini adalah masalah umum yang dihadapi orang-orang saat melatih YOLOv5. Model hanya menerima format di mana setiap gambar memiliki file teksnya sendiri dengan format yang diinginkan di dalamnya. Seringkali, file berformat XLS atau satu file CSV diumpankan ke jaringan, mengakibatkan kesalahan. Jika Anda mengunduh data dari suatu tempat, alih-alih memberi anotasi pada setiap gambar, mungkin ada format file berbeda tempat label disimpan. Berikut adalah artikel untuk mengonversi format XLS ke format YOLO. (tautan setelah artikel selesai).
  3. Tidak menamai file dengan benar: Tidak menamai file dengan benar akan menyebabkan kesalahan lagi. Perhatikan langkah-langkah saat memberi nama folder dan hindari kesalahan ini.

Kesimpulan

Dalam artikel ini, kami mempelajari apa itu pembelajaran transfer dan model pra-pelatihan. Kami mempelajari kapan dan mengapa menggunakan model YOLOv5 dan cara melatih model pada kumpulan data khusus. Kami melalui setiap langkah, mulai dari menyiapkan kumpulan data hingga mengubah jalur dan akhirnya memasukkannya ke jaringan dalam implementasi teknik, dan memahami langkah-langkahnya secara menyeluruh. Kami juga melihat masalah umum yang dihadapi saat melatih YOLOv5 dan solusinya. Saya harap artikel ini membantu Anda melatih YOLOv5 pertama Anda pada kumpulan data khusus dan Anda menyukai artikel ini.

Stempel Waktu:

Lebih dari Analisis Vidhya