TinyMLx Course 3: [Post 1] - Call for TinyML edX Projects, Guidelines

Hello from Australia :wave: :australia: ! I finished the TinyML Professional Certificate and am excited to continue my journey! I’d like to propose a project I’ve been working on in my spare time.

1. Project name
The “IoT Stallion” - providing feedback to boxers on their techniques.

2. Team member names, roles (as applicable)
Me (Anthony Joseph)

3. Project summary - a description in a sentence or two (at most)
I would like to support boxers (or potentially any athlete) with their training by providing them with feedback on their technique via wearable devices programmed with TinyML models.

4. Longer project description
Boxers and athletes in general often have challenges with maintaining their technique especially without formal coaching. Poor technique can lead to reduced effectiveness to temporary and permanent injuries due to joint and muscle damage. Therefore, there’s an incentive to ensure that one is following proper technique when exercising or training.

Other passive forms of motion tracking are either extremely invasive (for example, motion capture used in film and television) or vulnerable to interference or raise privacy concerns (for example, video cameras tracking an athlete’s movement). Fitness trackers have become a commonplace item for measuring movement and health vitals: balancing privacy concerns with motion tracking capabilities. The size and power consumption of these sensors also allow for tracking movement in a minimally-invasive way.

Ultimately, I would like to study the minimum amount of sensors and data required to give an athlete enough feedback on their technique.

I have a background in embedded software development and have been recently learning about TinyML to further my embedded software development skills and learn about machine learning in a personally entertaining context.

The name of this project: “IoT Stallion” is a reference to the Rocky/Creed film series: the main character Rocky Balboa’s fight nickname is “the Italian Stallion”. Much like the sports drama film series documents the journey of a boxer reaching the worldwide heavyweight champion, I feel this case study is training an IoT device with TinyML to support a boxer’s training.

5. References (including other code or data), sources of inspiration
There’s a variety of fitness trackers right now on the market, including for boxers. However, I’d like to do investigate “cooperative TinyML”: can we use the output from multiple sensors to give insights. For example, I would like to give a boxer feedback if they are punching while having their other arm protecting their body.
I did present an overview of some of the research I’ve been doing on this concept at the tinyML Asia 2020 Video Poster session, but that used Edge Impulse with only an accelerometer. I wanted to do the TinyML professional certificate to properly understand how these machine learning models work and get further inspiration on how I could work with more sensors in an analytically-correct way.

6. Descriptions of the following, at whatever depth you feel is appropriate:

a. Hardware to be utilized
The Arduino Nano 33 BLE sense as a primary sensor with a LiPoly battery, haptic motor, Neopixel ring and external flash storage. I would like to use two Nano 33 BLE Sense’s (one for each hand) and send either the raw motion data or results from a pretrained model to a central IoT device. I’m planning on using the Seeedstudio Wio Terminal as it has an onboard LCD display, push buttons and batteries in a simple package.

b. Data collection
I plan on training models with my punching. I’m curious to see how well the model would handle boxers of different genders, physical strength, hand speed etc, especially knowing what I know after the “magic wand” chapter.

c. Preprocessing
In the first instance, I would manually measure and label the data I obtain from the sensors. In the future I would like to have a proper system built to collect data and have the data classified by a trainer watching my technique, so in addition to knowing what type of punch, I would know whether the punch was “good” or “bad”.

d. Model design
The model design would follow the “magic wand”, gesture recognition paradigm. The interesting part I’d like to explore is whether the gesture recognition can detect the difference between a boxer at rest, versus a boxer actively guarding: in both cases the arm is stationary, but oriented in a particular way.

e. Optimizations
Optimizations is an aspect I’d like to explore in this case study.

f. In system inference
In-system inference would be similar to the “magic wand” gesture recognition, albeit with the “guarding” use case.

7. Issues or roadblocks you envision and potential solutions
The only major issue I foresee with this is trying to maximise the amount of feedback I can give to an athlete (for example, haptic and visual feedback) without degrading the system performance.

8. The top unresolved question(s) you have at this point
What is the most energy-efficient and fastest way I can perform these cross-device inferences.

3 Likes