All Projects → chonyy → Ai Basketball Analysis

chonyy / Ai Basketball Analysis

Licence: other
🏀🤖🏀 AI web app and API to analyze basketball shots and shooting pose.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ai Basketball Analysis

Lightnet
🌓 Bringing pjreddie's DarkNet out of the shadows #yolo
Stars: ✭ 322 (-44.67%)
Mutual labels:  artificial-intelligence, object-detection, yolo
Ml Auto Baseball Pitching Overlay
⚾🤖⚾ Automatic baseball pitching overlay in realtime
Stars: ✭ 200 (-65.64%)
Mutual labels:  artificial-intelligence, object-detection, pose-estimation
Yolov3 pytorch
Full implementation of YOLOv3 in PyTorch
Stars: ✭ 570 (-2.06%)
Mutual labels:  object-detection, yolo
Practical Deep Learning Book
Official code repo for the O'Reilly Book - Practical Deep Learning for Cloud, Mobile & Edge
Stars: ✭ 441 (-24.23%)
Mutual labels:  artificial-intelligence, object-detection
Tfjs Yolo Tiny
In-Browser Object Detection using Tiny YOLO on Tensorflow.js
Stars: ✭ 465 (-20.1%)
Mutual labels:  object-detection, yolo
Trainyourownyolo
Train a state-of-the-art yolov3 object detector from scratch!
Stars: ✭ 399 (-31.44%)
Mutual labels:  object-detection, yolo
Dataset synthesizer
NVIDIA Deep learning Dataset Synthesizer (NDDS)
Stars: ✭ 417 (-28.35%)
Mutual labels:  object-detection, pose-estimation
Myvision
Computer vision based ML training data generation tool 🚀
Stars: ✭ 453 (-22.16%)
Mutual labels:  object-detection, yolo
Rectlabel Support
RectLabel - An image annotation tool to label images for bounding box object detection and segmentation.
Stars: ✭ 338 (-41.92%)
Mutual labels:  object-detection, yolo
Gluon Cv
Gluon CV Toolkit
Stars: ✭ 5,001 (+759.28%)
Mutual labels:  object-detection, pose-estimation
Yolo3 4 Py
A Python wrapper on Darknet. Compatible with YOLO V3.
Stars: ✭ 504 (-13.4%)
Mutual labels:  object-detection, yolo
Tracking With Darkflow
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow
Stars: ✭ 515 (-11.51%)
Mutual labels:  object-detection, yolo
Multi Camera Live Object Tracking
Multi-camera live traffic and object counting with YOLO v4, Deep SORT, and Flask.
Stars: ✭ 375 (-35.57%)
Mutual labels:  object-detection, yolo
Sianet
An easy to use C# deep learning library with CUDA/OpenCL support
Stars: ✭ 353 (-39.35%)
Mutual labels:  artificial-intelligence, object-detection
Ssd Tensorflow
Single Shot MultiBox Detector in TensorFlow
Stars: ✭ 4,066 (+598.63%)
Mutual labels:  object-detection, yolo
Yoloface
Deep learning-based Face detection using the YOLOv3 algorithm (https://github.com/sthanhng/yoloface)
Stars: ✭ 339 (-41.75%)
Mutual labels:  artificial-intelligence, yolo
Aidlearning Framework
🔥🔥AidLearning is a powerful mobile development platform, AidLearning builds a linux env supporting GUI, deep learning and visual IDE on Android...Now Aid supports OpenCL (GPU+NPU) for high performance acceleration...Linux on Android or HarmonyOS
Stars: ✭ 4,537 (+679.55%)
Mutual labels:  artificial-intelligence, object-detection
Deep Sort Yolov4
People detection and optional tracking with Tensorflow backend.
Stars: ✭ 306 (-47.42%)
Mutual labels:  object-detection, yolo
Yolov5 ncnn
🍅 Deploy NCNN on mobile phones. Support Android and iOS. 移动端NCNN部署,支持Android与iOS。
Stars: ✭ 535 (-8.08%)
Mutual labels:  object-detection, yolo
Tensorflow object tracking video
Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition
Stars: ✭ 491 (-15.64%)
Mutual labels:  object-detection, yolo

🏀 Analyze basketball shots and shooting pose with machine learning!

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

Alternatives

Google Colab

Thanks to hardik0. Now we can play around with it without a GPU machine!

Heroku

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

Features

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

Shot and Pose analysis

Shot counting

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

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

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 will be shown on the image. The confidence and the coordinate of the detection will be listed below.

Detection API

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

Detection model

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

  • [ ] Change the model to a more efficient YOLOv4
  • [ ] Implement SORT Tracking algorithm to filter out false detection
  • [ ] Improve the visual effect
  • [ ] Improve the efficiency, making it executable on web app services.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].