Swing On
This Application is created for Boston University
Electrical and Computer Engineering, Senior Design 2021-2022
Video
SwingOn is a mobile app that shows visualization of body joints in real-time. Deep learning neural network and data visualization is used analyze the body joints and give feedback to the user.
This is a two semesters senior design project.
Tools
SwiftUI
python
Machine Learning
Data analysis & Visualization
Roles
Project Manager
Programmer
Role
I am a project manager. I communicate and deliver information between the clients and the team. I also make sure the team's progress is on track and all the work satisfy the requirements. I made the block diagram, gantt chart and user interface diagram showing below.
I also worked on using machine learning algorithm to analyze the data of the body joints. I did the video and image processing, which I split the video and analyze it frame.
User's Experience
The SwingOn smartphone app tracks the motion of the golfers, so they can analyze their swing and receive feedback conveniently on the golf course or driving range. The analysis is performed in real-time on live and pre-recorded videos uploaded from the user’s Photo Library or iCloud Files. The SwingOn app uses pre-trained machine learning models to detect and draw the golfer’s body points. These points are used to compute their centroid and measure their balance. Instant feedback will also be provided after analysis to give the user better insight into improving their swing in the future. SwingOn was created to make golf more accessible for people of all backgrounds and experience levels.
Schedule - Gantt chart
This shows the different stages of the development process.
Features
This project is a combination of software development, data analysis, visualization and video/image processing.
Software development
SwiftUI is used to develop the app
Data analysis
CoreML is used to integrate machine learning models into app.
Pre-trained Deep-learning Neural Network: PoseNet is used to take a processed camera image as the input and outputs body key-points
Unsupervised learning algorithm K-mean clustering is used to classify a swing as good or bad
Video/image processing
A video is split into frames
Each frame are feed into the machine learning algorithm.
Block Diagram
It illustrates the relationships of the app’s principal modules and functions.
User Interface
This is the screens the users can see on the app.