⚾ Automatically overlaying pitch motion and trajectory with machine learning!
This work is now published in ACM ICMR 2021!
This project takes your baseball pitching clips and automatically generates the overlay. The input pitching clip could be directly from your phone or camera. The release point will be automatically detected by the program. This system will trace the trajectory and align all the videos to generate the overlay.
A fine-tuned YOLOv4 model is used to get the location of the ball. Then, I implemented SORT tracking algorithm to keep track of each individual ball. Lastly, I have applied some image registration techniques to deal with slight camera shift on each clip.
I'm still trying to improve it! Feel free to follow this project, also check out the Todo list.
💻 Getting Started
These instructions will get you a copy of the project, and generates your own pitching overlay clip!
Get a copy
Get a copy of this project by simply running the git clone command.
git clone https://github.com/chonyy/ML-auto-baseball-pitching-overlay.git
Prerequisites
Before running the project, we have to install all the dependencies from requirements.txt
pip install -r requirements.txt
Overlay!
Last, run the project with your own clips!
Try a sample
python pitching_overlay.py
Try with yout own clips
Place your pitching videos in a folder, then specify the path in the CLI.
python pitching_overlay.py --videos_folder "./videos/videos"
🔨 Project Structure
🎬 More Demo
☑️ Todo
- Implement image registration to deal with camera shift
- Build a demo web app for people to use it in realtime on web
- Enable custom parameter tuning
- Improve the visual effect
- Write a Medium post to explain the technical workflow
- Draw a structure diagram