Bagikan melalui


Melatih model deteksi objek dengan TensorFlow

Setelah mengonfigurasi TensorFlow, kami akan menggunakan arsitektur YOLO untuk melatih model deteksi objek. YOLO adalah jaringan neural yang memprediksi kotak pembatas dan probabilitas kelas dari gambar dalam satu evaluasi. Model YOLO dapat memproses lebih dari 60 bingkai per detik, menjadikannya arsitektur yang bagus untuk mendeteksi objek dalam video. Anda dapat menemukan informasi selengkapnya tentang cara kerja YOLO di sini.

Menggunakan YOLO

Pertama, unduh file sampel YOLO ini, yang berisi skrip pembantu untuk memulai.

Saat menggunakan YOLO, kami memiliki 3 opsi:

  1. Gunakan bobot model yang telah dilatih sebelumnya untuk YOLO. Model yang telah dilatih sebelumnya telah dilatih pada himpunan data besar dengan 80 kelas (kategori) untuk objek sehari-hari seperti bus, orang, sandwich, dll. Jika Anda ingin mengunduh model YOLO yang telah dilatih sebelumnya dalam format ONNX, Anda dapat melakukannya di sini. Kemudian, Anda dapat melanjutkan ke tahap akhir tutorial ini untuk mempelajari cara mengintegrasikan model tersebut ke dalam aplikasi.

  2. Menerapkan pembelajaran transfer dengan himpunan data kustom. Pembelajaran transfer adalah metode untuk menggunakan model terlatih sebagai titik awal untuk melatih model yang memecahkan tugas yang berbeda tetapi terkait. Tutorial ini akan menggunakan bobot YOLO yang telah dilatih sebelumnya dengan 80 kelas untuk melatih model dengan 20 kelas dengan himpunan data VOC. Jika Anda ingin membuat himpunan data Anda sendiri dengan kelas kustom, lihat instruksi di sini.

  3. Latih YOLO dari awal. Teknik ini tidak disarankan, karena sangat sulit untuk bertemu. Kertas YOLO asli melatih darknet pada imagenet (berisi ratusan ribu foto) sebelum melatih seluruh jaringan juga.

Terapkan pembelajaran transfer pada bobot YOLO yang telah dilatih sebelumnya ke himpunan data VOC:

Mari kita lanjutkan dengan opsi kedua, dan terapkan pembelajaran transfer dengan langkah-langkah berikut.

  1. Di jendela miniconda, navigasikan ke direktori sampel yolo dan jalankan perintah berikut untuk menginstal semua paket pip yang diperlukan untuk YOLO.

pip install -r requirements.txt

  1. Jalankan skrip penyiapan untuk mengunduh data dan bobot yang telah dilatih sebelumnya

python setup.py

  1. Mengubah himpunan data. Lihat tools/voc2012.py untuk implementasi - format ini didasarkan pada API deteksi objek tensorflow. Banyak bidang tidak diperlukan, tetapi di sini telah diisi untuk kompatibilitas dengan API resmi.
python tools/voc2012.py \
  --data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
  --split train \
  --output_file ./data/voc2012_train.tfrecord

python tools/voc2012.py \
  --data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
  --split val \
  --output_file ./data/voc2012_val.tfrecord
  1. Latih modelnya. Jalankan perintah berikut:
python convert.py
python detect.py --image ./data/meme.jpg # Sanity check

python train.py \
	--dataset ./data/voc2012_train.tfrecord \
	--val_dataset ./data/voc2012_val.tfrecord \
	--classes ./data/voc2012.names \
	--num_classes 20 \
	--mode fit --transfer darknet \
	--batch_size 16 \
	--epochs 10 \
	--weights ./checkpoints/yolov3.tf \
	--weights_num_classes 80 

Anda sekarang memiliki model yang dilatih kembali dengan 20 kelas, siap digunakan.

Langkah berikutnya

Sekarang setelah kita membuat model TensorFlow, kita perlu mengonversinya ke format ONNX untuk digunakan dengan WINDOWS Pembelajaran Mesin API.