A University Group Project by; 
Joel McCreery, Shona Burns, Dean Morrow, 
Rowan Smyth, Curtis Hastings & myself (Paul McCarron)

A basis for designing and programming a multiple object tracking algorithm 
in C++ using OpenCV

Real-Time Form Tracking
For use in free-weight exercises

As part of Third Year in our Master of Electrical and Electronic Engineering degree at Queen's University Belfast, it is required of all master’s students to take on the Engineering Entrepreneurship Module [ELE3044] and from this, the Validus was born.

The Engineering Entrepreneurship Module requires students to bring forward a new exciting product which could solve a problem experienced by people everyday. From this, we were then required to design and build a working prototype and pitch the idea in front of a panel of judged in addition to submitting both a business and technical report for grading.

This post provides a brief overview of the Validus and showcase’s a prototype in action.

The Personal Fitness Market

Everyday in the gym, users of free-weight equipment carry out unassisted workouts usually including compound exercises like squats and deadlifts. To many, this is great. They have a great understanding of the exercise and what correct form looks and feels like. However, there is a growing area of the gym whereby new users are looking to improve their fitness and so look towards these compound exercises. For many, this is their first time doing such, and usually try to progress too quickly whilst not ensuring their form is correct. Thus, they eventually either experience an injury or are just simply put off giving it an attempt.

So it was determined, both through the inception of the Validus and from market research, that users would be excited to use such a product that could, in essence, monitor their form in real-time and show them in a workout review, where and how they could improve. In addition, Personal Trainers were really excited by this product as it could help to improve their clients workouts by being able to quickly, and easily show them the corrections required.

In addition, the personal fitness market is massive, with gyms looking to have the leading edge over their competition, the Validus would give them this edge they desired.

"The Validus brings together both hardware and software
to provide the ultimate workout experience for gym users" [1]

Both Joel McCreery and myself became the CTO (Chief Technology Officers) for the project, mainly due to our experience from undertaking a number of software design based modules in previous years and it became our task to design and develop the algorithm for use in a live demonstration. Joel spent countless hours reading through medical papers on the subject to perfect what side-view correct form was for the squat, whilst I took this research and created the algorithm in a C++ windows application.

The basis of this project makes use of the Lucas Kanade function within OpenCV, allowing for the detection of multiple markers placed onto the users body (in this case green) to allow for real-time user tracking. From this, the data obtained could be fed back into the developed algorithm allowing for the overlay of information onto the user interface.

Live Demonstration

The prototype ended up functioning exactly how we wanted it to and as a result, we were able to put the idea across the panel of judges much more easily, in addition to having a better idea behind the Validus for the creation of our Business Plan and Technical Report. Below are some examples of the Validus' raw output in action.

The Validus can quickly detect correct form

The User has maintained their back in a neutral position and has correct form.

And when it's not so correct

The user has slightly arched their back, this can be dangerous when using weights and so the Validus has highlighted the problem area.

As can be seen, the prototype is very basic, however it was functional enough that it was able to show off the premise of the Validus and provide these real-time insights to not only the user, but also to the panel of judges who got to experience this live demo.

Project Files

As a group we have decided to allow for access to these documents, however we have not put them freely on the website. If you would like a copy, please click on the buttons below and I'll do my best to quickly send you over the files.

Project Code

I am currently working to clean up the code base, after which I will be releasing all of the project code as Open Source, as without the help of Open Source tutorials, guides and existing code, this project would not have been completed in the timeline we had available to ourselves.

Requirements:
OpenCV Version 2.4.13
Windows Development Environment for C++ Applications