The Tennis Serve Analysis App is a mobile application designed to revolutionize the way tennis players analyze and improve their serves. Leveraging machine learning algorithms and computer vision techniques, the app provides users with personalized feedback, instant comparisons with professional players, and valuable insights into their serve mechanics.
Please starβ the repo if you like what you seeπ.
(or)
-
Launch the app on your mobile device.
-
Input your height and playing hand (left handed or right handed).
-
Upload a side serve video that you want to analyze.
-
View the analysis, including maximum,minimum and average joint angles and ball speed comparisons with a professional player (for now the players included are Roger Federer, Rafael Nadal and Fabio Fognini).
-
𦡠Pose Estimation: Utilizes MoveNet, a machine learning model, to estimate key points in the user's serve, including joints such as elbows, shoulders, and knees.
-
π§ Professional Player Comparison: Allows users to compare their serve with a professional player of equivalent height, providing visual overlays and angle comparisons.
-
π₯ Ball Tracking: Employs AutoML Vision for ball detection and tracking, calculating the speed of the ball after impact.
-
π₯ User Feedback: Provides real-time feedback on joint angles, enabling users to understand their technique and receive suggestions for improvement.
-
π Data-Driven Progress Tracking: Enables users to track their progress over time, helping them monitor improvements and refine their training strategies.
Name | Usage |
---|---|
image_picker | For helpful image functions |
video_player | To play,pause, slow down the selected analysis video |
ffmpeg_kit_flutter | To convert the video into individual frames for analysis |
path_provider | To access the temporary storage for the extracted images |
image | To process the extracted images from selected analysis video |
tflite_flutter | To run tensorflow lite models |
tflite_flutter_helper | Helper Functions for Machine Learning |
lottie | To display animations |
flutter_svg | To display svg images |
flutter_riverpod | Used for State Management |
collection | Useful helper functions for List Data Type |
flutter_lints | For linting |
Copyright (c) 2024 Aditya R GNU GPLv3 LICENCE
Tennis icons created by kerismaker - Flaticon
Special thanks to the developers of MoveNet and AutoML Vision for their contributions to pose estimation and ball tracking in this app.