Machine Learning for Jiu Jitsu

Automata Learning Lab · Beginner ·📐 ML Fundamentals ·3y ago

Key Takeaways

This video covers the application of machine learning fundamentals to improve Jiu Jitsu skills

Full Transcript

in this video I'm going to share how I tried using machine learning to get better at Jiu Jitsu now Jiu Jitsu is a martial art that's been getting a lot of popularity over the last few years due to its applicability in real world combat as well as providing a lot of health benefits now I've been practicing it for over 10 years and it's been one of the greatest sources of enjoyment in my life along with doing machine learning so I decided to investigate if I could use my machine learning skills to get better at Jiu Jitsu now what did I do to understand that we first need to understand what pose estimation is and also what Jiu Jitsu is let's start with pose estimation pose estimation or Post tracking is a technique of detecting and tracking a person's body by detecting certain key points that match the joints of the body now you can use techniques like these to analyze movement in real time okay cool but what about Jujitsu Jiu Jitsu is a martial arts center around the idea of subduing an opponent through a series of pins joint blocks and chokes focuses on grappling and ground fighting techniques and its essential principle is that a weaker person can subdue a larger opponent by using leverage and technique okay so why use Post tracking for jiu jitsu one key aspect of getting better at Jiu Jitsu regards being able to execute perfect technique and perfect technique requires a lot of repetition and consistent appropriate feedback however it's often the case that people might not have access to an expert and a student can get the specific feedback it needs to get better at a certain technique it might be hard for them to learn and develop and it's in this gap of feedback that I think techniques like post-tracking could play a very important role the idea being that you can execute a movement in front of the camera and then use Post tracking to give you some sort of feedback about the level of correctness of the technique you're trying to learn okay but why did I do this to understand that we have to understand one thing about Jiu-Jitsu there's a common trend of people leaning towards their preferences in the beginning of their Journey which can hugely impact them in other areas of their Jiu Jitsu game if they get stuck executing the same strategy over and over in a way that's what happened to me I used to fight a lot as a guard player which has to do with a predominant culture that incentivizes starting your grappling bouts from your knees or sitting down because we built an entire sport around conceding bottom position now being a predominantly guard player negatively impacted my development in Jiu Jitsu because I lacked knowledge on how to take people to the ground and that ignited a fire in me to start studying and practicing Judo and wrestling techniques however I don't know any Judo or wrestling experts nor do I live close to a high level Judo or wrestling gym but I really wanted to learn foundational movements in Judo in wrestling that's where Post tracking comes into play I decided to use something called media pipe which is Google's open source project for facilitating the application of machine learning to live in streaming media to analyze my execution of a specific movement in Judo called the uchimata in essence here's what I did first I created some videos with the pose estimation overlay in order to get a sense for how well the model was capturing my movement then I created real-time plots of the XYZ coordinates of my feed while executing the movement then I created traces that represented the execution of a move at a given time these traces gave me sort of a signature for how my feet moves when I'm executing the movement and then I compare the traces with the traces of the elite player executing the same movement here we can start seeing some differences between the reference Trace representing the elite player movement and the trace is generated by me here we see while the elite player does a straight step into a turn generating an almost half circle with the speed I on the other hand have this curvature appearance to my initial step inside and do not create this half circle when throwing my leg into the air can be associated with flexibility and just overall lack of knowledge for how to execute movement properly now while the Elite player generates a Wide Circle when moving his leg up I create a shallow Circle almost like an ellipse I found these preliminary results to be quite nice because they indicated that despite the limitations of the comparison wonking Dodge differences between the signature shape of the movement's execution just by observing traces like these besides that I wanted to see if I could make comparisons regarding the speed with which the moves were performed to analyze that I visualized the real-time motion of the coordinates of the body in real time putting the plots of me and the expert side by side to see how off was my timing or to see what kind of differences I could Dodge the issue here is that we have two temporal sequences with different speeds and with different duration so we needed first to align these shoe sequences I wasn't sure what technique to use here so I talked to Aaron a buddy of mine that works at the Chevalier Neuroscience Institute in Lisbon and he eliminated an option for me Dynamic time warping Dynamic time warping is a technique used to measure the similarity between two temporal sequences that have different lengths the essential idea is that you have two time series they have some pattern you wish to analyze so you attempt to align them by applying a few rules that allow you to calculate the optimal match between the two sequences to use Dynamic time warping I did the following first I normalize the values to have them in the same range rather than in pixel resolution and then I use the python implementation of the DTW algorithm the outputs I get here are the distance which refers to the euclidean distance between the two temporal sequences and the path which is a mapping between the indexes of the two temporal sequences after being aligned now I can use the output in the path variable to create a plot with both sequences aligned I can say this plot specifically gave me a lot of insight but it did help emphasize the difference between the shapes of the true movements second thing I did with this was to try to use the euclidean distance from the DTW algorithm as a metric for the success of an attempt to execute the movement I wanted something that could represent being closer and closer to the correct execution of the move so here I'm showing the clips I generated from the videos where I try to execute a movement each of these traces represent a single execution of a move which now can be compared to a reference Trace that I created in a similar fashion so now I can Loop over these tracings representing my attempts to execute the move and see how they compare to the reference Trace across a few training sessions now the first thing I noticed here is this up and down pattern of the metric which I could only explain by the fact that some of the tracings that I obtained refer to the foot coming down rather than up while executing the movement however the cool thing about this is that the scores for the tracings even seem to improve a little bit or at least stay consistent at around 20 which isn't the measure for neocleading distance between the two temporal sequences now I can say I could conclusively interpret these numbers but I found quite interesting that an approach like this will be converted into a measurable metric that compares the quality of the move with respect to another if I can make the condition of the recording a bit more uniform they also improve how I collect the tracings for the execution of individual moves now right now my showings are a bit mixed on the one hand I think this approach is promising because these traces clearly capture some meaningful information about the execution of a move however there are many challenges to make this approach fully automated there are also challenges regarding how to provide proper feedback when correcting moves that are as complex as the move that I try to analyze in this video however by analyzing the traces and using techniques like the dynamic time warping to align true temporal sequences that have different durations I was able to manually gather some insight about how to improve the movement of by feet when executing this particular move so overall I think this approach was kind of cool although I would need to work a bit more on it in order to get something that's actually useful however I do think this is an interesting direction from martial arts in general to start exploring techniques like Post tracking boost estimation as good complementary tools to help with development of systems that can provide useful feedback to people trying to learn certain types of techniques if you like this video don't forget to like And subscribe and see you next time cheers

Original Description

#machinelearning #datascience #ai #artificialintelligence #jiujitsu In this video I’ll talk about how I tried using Machine Learning to get better at Jiu-Jitsu. - My article on Towards Data Science about this topic: https://towardsdatascience.com/machine-learning-for-jiu-jitsu-94a0b44f57ab?sk=7e0321bb43a60610511bf7f8165ec18d - Subscribe!: https://www.youtube.com/channel/UCu8WF59Scx9f3H1N_FgZUwQ - Join Medium: https://lucas-soares.medium.com/membership - Tiktok: https://www.tiktok.com/@enkrateialucca?lang=en - Twitter: https://twitter.com/LucasEnkrateia - LinkedIn: https://www.linkedin.com/in/lucas-soares-969044167/ Some affiliate links for productivity. - Kindle Oasis: https://amzn.to/3IUtaOh - Seagate Portable 2TB External Hard Drive HDD: https://amzn.to/3QSZ8wd - Sony WH-1000XM5 Wireless with Noise Cancelling: https://amzn.to/3HfJvM8 Music from www.epidemicsound.com
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Automata Learning Lab · Automata Learning Lab · 38 of 60

1 A Quick Tutorial on NLP Basics
A Quick Tutorial on NLP Basics
Automata Learning Lab
2 Automating your Digital Morning Routine with Python
Automating your Digital Morning Routine with Python
Automata Learning Lab
3 Exploring Problem Solving with Python and Jupyter Notebook #1
Exploring Problem Solving with Python and Jupyter Notebook #1
Automata Learning Lab
4 Summarize Papers with Python and GPT-3
Summarize Papers with Python and GPT-3
Automata Learning Lab
5 An Experiment Tracking Tutorial with Mlflow and Keras
An Experiment Tracking Tutorial with Mlflow and Keras
Automata Learning Lab
6 Automating Google Forms Submissions with Python
Automating Google Forms Submissions with Python
Automata Learning Lab
7 Productivity Tracking With Python and the Notion API
Productivity Tracking With Python and the Notion API
Automata Learning Lab
8 When your Machine Learning Model Fails Do This ;p
When your Machine Learning Model Fails Do This ;p
Automata Learning Lab
9 Machine Learning Tip#1 Practical Deep Learning Course
Machine Learning Tip#1 Practical Deep Learning Course
Automata Learning Lab
10 Machine Learning Tips: Deep Learning Monitor
Machine Learning Tips: Deep Learning Monitor
Automata Learning Lab
11 Machine Learning Tips#5 MLOPs specialization in Coursera #machinelearning
Machine Learning Tips#5 MLOPs specialization in Coursera #machinelearning
Automata Learning Lab
12 Automatically Changing Desktop Wallpaper with Python and the Nasa Image API
Automatically Changing Desktop Wallpaper with Python and the Nasa Image API
Automata Learning Lab
13 Building an Image Classifier to Filter Out Unused Images From Your Photo Album with Machine Learning
Building an Image Classifier to Filter Out Unused Images From Your Photo Album with Machine Learning
Automata Learning Lab
14 Automating VS Code Snippets with Python
Automating VS Code Snippets with Python
Automata Learning Lab
15 How to Set Up a Machine Learning Environment with Conda and Pip-Tools
How to Set Up a Machine Learning Environment with Conda and Pip-Tools
Automata Learning Lab
16 9 Google Search Tips for Machine Learning
9 Google Search Tips for Machine Learning
Automata Learning Lab
17 Thinking Tools
Thinking Tools
Automata Learning Lab
18 Automating Car Search with Python and Data Science
Automating Car Search with Python and Data Science
Automata Learning Lab
19 Generating Images from Text with Stable Diffusion and Hugging Face
Generating Images from Text with Stable Diffusion and Hugging Face
Automata Learning Lab
20 A Practical Introduction to Data Science using the Spaceship Titanic Dataset from Kaggle
A Practical Introduction to Data Science using the Spaceship Titanic Dataset from Kaggle
Automata Learning Lab
21 Jiu Jitsu App with Python and Streamlit
Jiu Jitsu App with Python and Streamlit
Automata Learning Lab
22 2 Apps for Coding In The Ipad Pro
2 Apps for Coding In The Ipad Pro
Automata Learning Lab
23 From Tensorflow to Pytorch?
From Tensorflow to Pytorch?
Automata Learning Lab
24 Building an Audio Transcription App with OpenAI Whisper and Streamlit
Building an Audio Transcription App with OpenAI Whisper and Streamlit
Automata Learning Lab
25 Productivity Tracking with Python Short Summary
Productivity Tracking with Python Short Summary
Automata Learning Lab
26 Automating Expense Reports with Python
Automating Expense Reports with Python
Automata Learning Lab
27 ChatGPT, Angry Pandas and AI Code
ChatGPT, Angry Pandas and AI Code
Automata Learning Lab
28 7 Strategies To Learn Anything Using ChatGPT
7 Strategies To Learn Anything Using ChatGPT
Automata Learning Lab
29 Building a Thought Summarization App with Whisper and GPT3
Building a Thought Summarization App with Whisper and GPT3
Automata Learning Lab
30 Visualize a Neural Net Learning Polynomial Functions
Visualize a Neural Net Learning Polynomial Functions
Automata Learning Lab
31 Automating Notion with Python
Automating Notion with Python
Automata Learning Lab
32 Pose Tracking for Jiu Jitsu - Update #jiujitsu #machinelearning
Pose Tracking for Jiu Jitsu - Update #jiujitsu #machinelearning
Automata Learning Lab
33 Update to my Pose Tracking for Jiu Jitsu Project #machinelearning #jiujitsu #ai #deeplearning
Update to my Pose Tracking for Jiu Jitsu Project #machinelearning #jiujitsu #ai #deeplearning
Automata Learning Lab
34 ChatGPT API Released by OpenAI
ChatGPT API Released by OpenAI
Automata Learning Lab
35 ChatGPT API Response Format #machinelearning #ai #datascience
ChatGPT API Response Format #machinelearning #ai #datascience
Automata Learning Lab
36 Beyond Stable Diffusion with Composer | Automata Learning Lab Paper Series #1
Beyond Stable Diffusion with Composer | Automata Learning Lab Paper Series #1
Automata Learning Lab
37 Beyond Diffusion Models with Composer #machinelearning #ai
Beyond Diffusion Models with Composer #machinelearning #ai
Automata Learning Lab
Machine Learning for Jiu Jitsu
Machine Learning for Jiu Jitsu
Automata Learning Lab
39 Prompt Engineering Basics #machinelearning #gpt4 #chatgpt
Prompt Engineering Basics #machinelearning #gpt4 #chatgpt
Automata Learning Lab
40 Visual ChatGPT: Integrating Images with ChatGPT Paper Series#2
Visual ChatGPT: Integrating Images with ChatGPT Paper Series#2
Automata Learning Lab
41 Visual ChatGPT #machinelearning #ai #artificialintelligence
Visual ChatGPT #machinelearning #ai #artificialintelligence
Automata Learning Lab
42 LERF - Language Embeddings + NERF for Querying 3D Spaces #machinelearning #ai
LERF - Language Embeddings + NERF for Querying 3D Spaces #machinelearning #ai
Automata Learning Lab
43 Summarize Papers with Python and ChatGPT
Summarize Papers with Python and ChatGPT
Automata Learning Lab
44 Large Language Models can use Tools Now! #artificialintelligence #machinelearning #ai
Large Language Models can use Tools Now! #artificialintelligence #machinelearning #ai
Automata Learning Lab
45 Sparks of AGI in GPT4? #machinelearning #ai #agi #artificialintelligence
Sparks of AGI in GPT4? #machinelearning #ai #agi #artificialintelligence
Automata Learning Lab
46 Toolformer: LLMs can use Tools! #chatgpt #llms #gpt4 #gpt3 #artificialintelligence
Toolformer: LLMs can use Tools! #chatgpt #llms #gpt4 #gpt3 #artificialintelligence
Automata Learning Lab
47 Talking to Your Notes with LangChain #artificialintelligence #llms #gpt4 #chatgpt
Talking to Your Notes with LangChain #artificialintelligence #llms #gpt4 #chatgpt
Automata Learning Lab
48 How to Talk to a PDF using LangChain and ChatGPT
How to Talk to a PDF using LangChain and ChatGPT
Automata Learning Lab
49 Query Your Own Notes With LangChain
Query Your Own Notes With LangChain
Automata Learning Lab
50 HuggingGPT #machinelearning #artificialintelligence #huggingface #gpt4 #chatgpt
HuggingGPT #machinelearning #artificialintelligence #huggingface #gpt4 #chatgpt
Automata Learning Lab
51 Do as I Can Not as I Say Paper #artificialintelligence #llms #reinforcementlearning
Do as I Can Not as I Say Paper #artificialintelligence #llms #reinforcementlearning
Automata Learning Lab
52 Automating Anki Flashcards with OpenAI and GPT-4
Automating Anki Flashcards with OpenAI and GPT-4
Automata Learning Lab
53 Building A PDF Summarization App with  Gradio and LangChain
Building A PDF Summarization App with Gradio and LangChain
Automata Learning Lab
54 Auto-GPT #artificialintelligence #gpt4 #llms #autogpt
Auto-GPT #artificialintelligence #gpt4 #llms #autogpt
Automata Learning Lab
55 DocGPT - Chat with Github #artificialintelligence #gpt4 #chatgpt
DocGPT - Chat with Github #artificialintelligence #gpt4 #chatgpt
Automata Learning Lab
56 LLMs for Research and Planning #artificialintelligence #gpt4 #llms
LLMs for Research and Planning #artificialintelligence #gpt4 #llms
Automata Learning Lab
57 How I Use ChatGPT for Interactive Language Learning
How I Use ChatGPT for Interactive Language Learning
Automata Learning Lab
58 Building an Audio Transcription App with Gradio and Whisper
Building an Audio Transcription App with Gradio and Whisper
Automata Learning Lab
59 Summarizing and Querying Multiple Papers with LangChain
Summarizing and Querying Multiple Papers with LangChain
Automata Learning Lab
60 Mojo - The New AI Programming Language?
Mojo - The New AI Programming Language?
Automata Learning Lab

Related Reads

📰
Why Your Betas Explode: The Hidden Geometry of Multicollinearity
Discover how multicollinearity affects regression coefficients and learn to identify its hidden geometry
Towards Data Science
📰
Best current tools for Multi-Objective Surrogate-Based Optimization (MOSBO) on heterogeneous study data meta-analysis?[P]
Learn to apply Multi-Objective Surrogate-Based Optimization (MOSBO) for heterogeneous study data meta-analysis using tools like PyMOO, Platypus, and Scipy
Reddit r/MachineLearning
📰
Quantum Computing: The Future of Advanced Computing
Learn the basics of quantum computing and its potential to revolutionize advanced computing
Medium · Machine Learning
📰
Powering AI in Logistics with High-Quality Data Annotation
Learn how high-quality data annotation powers AI in logistics and why it matters for digital transformation
Medium · Machine Learning
Up next
QR Decomposition is Just Gram-Schmidt with Receipts
DataMListic
Watch →