Aleksander Buk
The analysis of sports performance has become increasingly important both in professional sports and amateur settings, providing teams and players with valuable insights into improving decision-making and overall performance.
In volleyball, key actions such as receptions play a crucial role in determining the outcome of a rally, yet analysing these actions manually from video footage is time-consuming and subjective.
This project aims to address and solve this challenge by developing an automated system for volleyball video analysis that can detect, track and evaluate reception events.
I play volleyball, and the time it takes me to review footage of my gameplay and calculate statistics take up a huge portion of my time. The aim of this project was to explore my interest in AI and Machine Learning, while saving me time by allowing an algorithm to analyse my gameplay from an uploaded video, and compute statistics that I could easily visualise on the page. These statistics would help me find weak spots in my serve recieve and help me better understand my mistakes.
I developed a Dockerized microservices application that allows users to upload a video and process it through two separate object-tracking pipelines. Each pipeline generates CSV output files, which are then used by the front end to calculate and display relevant statistics.
Through this project, I explored AI and machine learning pipelines, including transformer-based and one-shot models, as well as video processing techniques using computer vision. I also gained hands-on experience with Docker Compose by separating each service into its own isolated environment. Additionally, I used FastAPI to manage the orchestration of video uploads, processing workflows, and CSV file transfers over HTTPS.
As this was my first major project involving Python, I also developed a strong foundation in the language while learning how to apply it in a production-style application.