Jump to content
Kev

AI basketball analysis

Recommended Posts

analysis.gif

 

This is an artificial intelligence application built on the concept of object detection. Analyze basketball shots by digging into the data collected from object detection. We can get the result by simply uploading files to the web App, or submitting a POST request to the API. Please check the features below. There are more features coming up! Feel free to follow.

 

All the data for the shooting pose analysis is calculated by implementing OpenPose. Please note that this is an implementation only for noncommercial research use only. Please read the LICENSE, which is exaclty same as the CMU's OpenPose License.

 

If your are interested in the concept of human pose estimation, I have written a research paper summary of OpenPose. Check it out!

 

Getting Started

These instructions will get you a copy of the project up and running on your local machine.

 

Get a copy

Get a copy of this project by simply running the git clone command.

git clone https://github.com/chonyy/AI-basketball-analysis.git

 

Prerequisites

Before running the project, we have to install all the dependencies from requirements.txt

pip install -r requirements.txt

 

Please note that you need a GPU with proper CUDA setup to run the video analysis, since a CUDA device is required to run OpenPose.

 

Hosting

Last, get the project hosted on your local machine with a single command.

python app.py

 

index_page.PNG

 

Alternatives

This project is also hosted on Heroku. However, the heavy computation of TensorFlow may cause Timeout error and crash the app (especially for video analysis). Therefore, hosting the project on your local machine is more preferable.

 

Please note that the shooting pose analysis won't be running on the Heroku hosted website, since a CUDA device is required to run OpenPose.

 

Project Structure

structure.png

 

Features

This project has three main features, shot analysis, shot detection, detection API.

 

Shot and Pose analysis

Shot counting

 

analysis_result.PNG

 

Counting shooting attempts and missing, scoring shots from the input video. Detection keypoints in different colors have different meanings listed below:

  • Blue: Detected basketball in normal status
  • Purple: Undetermined shot
  • Green: Shot went in
  • Red: Miss

 

Pose analysis

 

curry_pose.gif

 

Implementing OpenPose to calculate the angle of elbow and knee during shooting.

 

68747470733a2f2f322e62702e626c6f6773706f

 

Release angle and release time are calculated by all the data collected from shot analysis and pose analysis. Please note that there will be a relatively big error for the release time since it was calculated as the total time when the ball is in hand.

 

Shot detection

 

detection.PNG

 

Detection will be shown on the image. The confidence and the coordinate of the detection will be listed below.

 

Detection API

 

API.PNG

 

Get the JSON response by submitting a POST request to (./detection_json) with "image" as KEY and input image as VALUE.

 

Detection model

 

68747470733a2f2f6a6b6a756e672d6176742e67

 

The object detection model is trained with the Faster R-CNN model architecture, which includes pretrained weight on COCO dataset. Taking the configuration from the model architecture and train it on my own dataset.

 

Future plans

  1. Host it on azure web app service.
  2. Improve the efficiency, making it executable on web app services.

 

Download: AI-basketball-analysis-master.zip

 

or

git clone https://github.com/chonyy/AI-basketball-analysis.git

 

Source

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...