Analisis tembakan bola basket dan pose menembak dengan pembelajaran mesin!
Ini adalah aplikasi bertenaga AI yang berfokus pada deteksi objek untuk menganalisis tembakan bola basket. Aplikasi ini memungkinkan pengguna mengunggah video bola basket untuk dianalisis atau mengirimkan permintaan POST ke API. Hasilnya mencakup analisis bidikan dan pose secara detail berdasarkan data deteksi objek. Proyek ini menggunakan OpenPose untuk menghitung titik kunci tubuh dan metrik lainnya.
AI Basketball Analysis memanfaatkan kecerdasan buatan untuk memecah tembakan bola basket dengan mendeteksi pergerakan pemain, akurasi tembakan, dan data pose. Ia menggunakan kerangka OpenPose yang populer untuk estimasi pose manusia. Baik Anda seorang pengembang atau analis olahraga, proyek ini membantu mengeksplorasi bagaimana AI dapat mengotomatiskan dan meningkatkan analisis bola basket.
Penting : Proyek ini hanya untuk penggunaan penelitian nonkomersial , karena menggunakan lisensi OpenPose. Harap tinjau LISENSI untuk detailnya.
Jika Anda baru mengenal estimasi pose manusia, lihat artikel ringkasan ini yang menguraikan konsep utama OpenPose.
Untuk mendapatkan salinan proyek, jalankan perintah berikut:
git clone https://github.com/chonyy/AI-basketball-analisis.git
Sebelum menjalankan proyek, pastikan semua dependensi yang diperlukan telah diinstal dengan menjalankan:
instalasi pip -r persyaratan.txt
Catatan : Proyek ini memerlukan GPU dengan dukungan CUDA untuk menjalankan OpenPose secara efisien, terutama untuk analisis video.
Setelah semuanya siap, Anda dapat menghosting proyek secara lokal dengan perintah sederhana:
aplikasi python.py
Ini akan meluncurkan aplikasi secara lokal, tempat Anda dapat mengunggah video atau gambar bola basket untuk dianalisis.
Jika Anda memilih untuk tidak menjalankan proyek secara lokal, Anda dapat mencoba alternatif berikut:
Berkat hardik0, Anda dapat bereksperimen dengan AI Basketball Analysis di Google Colab tanpa memerlukan GPU Anda sendiri:
Proyek ini juga tersedia di Heroku, namun perhatikan bahwa komputasi berat seperti TensorFlow dapat menyebabkan kesalahan waktu tunggu di Heroku karena sumber daya yang terbatas. Untuk performa terbaik, disarankan untuk menjalankan aplikasi secara lokal.
Berikut rincian komponen utama proyek ini:
app.py : File utama untuk menjalankan aplikasi web.
/statis : Berisi semua aset statis seperti gambar, CSS, dan JavaScript.
/models : Direktori yang berisi model terlatih untuk deteksi objek.
/scripts : Skrip utilitas untuk pemrosesan data dan pelatihan model.
Analisis tembakan bola basket dari video input, tentukan tembakan yang berhasil dan meleset. Titik kunci dalam berbagai warna mewakili:
Biru : Bola basket terdeteksi dalam status normal
Ungu : Tembakan yang tidak dapat ditentukan
Hijau : Tembakan berhasil
Merah : Tembakan meleset
Dengan menggunakan OpenPose, proyek ini menganalisis sudut siku dan lutut pemain selama melakukan tembakan, membantu menentukan sudut dan waktu pelepasan.
Fitur ini memvisualisasikan deteksi tembakan, menunjukkan tingkat kepercayaan dan koordinat untuk setiap deteksi.
Proyek ini menyertakan REST API untuk deteksi, memungkinkan Anda mengirimkan gambar melalui permintaan POST dan menerima respons JSON dengan titik kunci yang terdeteksi dan data lainnya.
POST /deteksi_json
KUNCI : gambar
NILAI : Gambar masukan
Model ini didasarkan pada arsitektur Faster R-CNN , yang dilatih pada kumpulan data COCO . Untuk detail selengkapnya, lihat Kebun Binatang Model TensorFlow.
Transisikan model ke YOLOv4 untuk performa yang lebih baik.
Menerapkan algoritma pelacakan SORT untuk memfilter deteksi palsu.
Tingkatkan fitur visualisasi untuk hasil yang lebih jelas.
Optimalkan efisiensi untuk integrasi aplikasi web yang lebih baik.
Kami menyambut kontribusi dari komunitas! Inilah cara Anda dapat terlibat:
Cabangkan repositori
Buat cabang : git checkout -b feature/your-feature-name
Komit perubahan Anda : git commit -m 'Add some feature'
Dorong ke cabang : git push origin feature/your-feature-name
Buka Permintaan Tarik
Untuk informasi lebih lanjut tentang berkontribusi, kunjungi Make A Pull Request.