[UPDATE]: Repo ini berfungsi sebagai kode driver untuk penelitian saya. Saya baru saja lulus kuliah, dan saya sangat sibuk mencari peran magang / fellowship penelitian sebelum akhirnya melamar master. Saya tidak akan punya waktu untuk melihat masalah untuk saat ini. Terima kasih.
Repositori ini berisi kode untuk detektor objek berdasarkan YOLOV3: peningkatan tambahan, diimplementasikan di Pytorch. Kode ini didasarkan pada kode resmi Yolo V3, serta port pytorch dari kode asli, oleh Marvis. Salah satu tujuan kode ini adalah untuk meningkatkan port asli dengan menghapus bagian -bagian yang berlebihan dari kode (kode resmi pada dasarnya adalah perpustakaan pembelajaran mendalam yang penuh, dan termasuk hal -hal seperti model urutan, yang tidak digunakan dalam Yolo). Saya juga mencoba menjaga kode tetap minim, dan mendokumentasikannya sebaik mungkin.
Jika Anda ingin memahami cara mengimplementasikan detektor ini sendiri dari awal, maka Anda dapat melalui seri tutorial 5-bagian yang sangat terperinci ini yang saya tulis di Paperspace. Sempurna untuk seseorang yang ingin pindah dari keterampilan Pytorch pemula ke pemula.
Menerapkan Yolo V3 dari awal
Sampai sekarang, kode hanya berisi modul deteksi, tetapi Anda harus mengharapkan modul pelatihan segera. :)
Menggunakan Pytorch 0.3 akan merusak detektor.
Klon, dan cd ke direktori repo. Hal pertama yang perlu Anda lakukan adalah mendapatkan file bobot kali ini, untuk V3, penulis telah memasok bobot hanya untuk Coco di sini, dan tempat
File bobot ke direktori repo Anda. Atau, Anda bisa mengetik (jika Anda berada di Linux)
wget https://pjreddie.com/media/files/yolov3.weights
python detect.py --images imgs --det det
--images Flag mendefinisikan direktori untuk memuat gambar dari, atau satu file gambar (itu akan mengetahuinya), dan --det adalah direktori untuk menyimpan gambar. Pengaturan lain seperti ukuran batch (menggunakan -bendera --bs ), kepercayaan diri objek dapat diubah dengan bendera yang dapat dilihat.
python detect.py -h
Anda dapat mengubah resolusi gambar input dengan bendera --reso . Nilai default adalah 416. Nilai apa pun yang Anda pilih, ingat itu harus kelipatan 32 dan lebih besar dari 32 . Hal -hal aneh akan terjadi jika Anda tidak melakukannya. Anda telah diperingatkan.
python detect.py --images imgs --det det --reso 320
Untuk ini, Anda harus menjalankan file, video_demo.py dengan -bendera video yang menentukan file video. File video harus dalam format .avi karena OpenCV hanya menerima OpenCV sebagai format input.
python video_demo.py --video video.avi
Pengaturan tweakable dapat dilihat dengan bendera -H.
Untuk mempercepat inferensi video, Anda dapat mencoba menggunakan file video_demo_half.py sebagai gantinya yang melakukan semua inferensi dengan float setengah presisi 16-bit alih-alih float 32-bit. Saya belum melihat perbaikan besar, tetapi saya mengaitkannya dengan memiliki kartu yang lebih tua (Tesla K80, Kepler Arch). Jika Anda memiliki salah satu kartu dengan dukungan Fast Float16, cobalah, dan jika memungkinkan, benchmarknya.
Sama seperti modul video, tetapi Anda tidak perlu menentukan file video karena umpan akan diambil dari kamera Anda. Lebih tepatnya, umpan akan diambil dari apa yang diakui OpenCV, sebagai kamera 0. Resolusi gambar default adalah 160 di sini, meskipun Anda dapat mengubahnya dengan bendera reso .
python cam_demo.py
Anda dapat dengan mudah mengubah kode untuk menggunakan bobot bobot yang berbeda, tersedia di situs web YOLO
Catatan: Fitur skala telah dinonaktifkan untuk refactoring yang lebih baik.
Yolo V3 membuat deteksi di berbagai skala, yang masing -masing wakil dalam mendeteksi objek dengan ukuran yang berbeda tergantung pada apakah mereka menangkap fitur kasar, fitur berbutir halus atau sesuatu di antaranya. Anda dapat bereksperimen dengan skala ini dengan --scales flag.
python detect.py --scales 1,3