[IMPORTANT NOTE: as of 2:30PM we have exhausted 100% of our free API calls to RoboFlow, therefore the demo link will no longer be functional, we are working on migrating the model to a different account, however, if you do want to try out the model, you can find the link here: https://demo.roboflow.com/boxing-lelg6/3?publishable_key=rf_CFHw2gPQVUTlHw7Yym2QaXbfKNn2]

Technical Demo: https://youtu.be/NMSXPtNEJII

Business Demo: https://youtu.be/aC4HOoE3gCU

Pitch Deck: https://www.canva.com/design/DAGMnns8Zsg/knD1f4b6wiV1Ttwfypq-0g/edit?utm_content=DAGMnns8Zsg&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton

Inspiration

One of our team members, Josh is an avid boxing fan who has also has been training for about 2 years. Through his time following the sport, he has experienced immense frustration due to poor judging decisions and blatant corruption. CounterPunch is part of an initiative to improve the sport by increasing transparency.

What it does

Our model utilises computer vision to count the number of punches thrown and total punches landed. This helps to ensure the accuracy of punch counts during a match. Since we decided on launching in the local boxing market, we also include boxer match statistics for training sessions, all this is accessed on the users local device.

## How we built it Front-end: Vite React Back-end: Flask DB: SQLite ML Tools: OpenCV, RoboFlow

Challenges we ran into

  • No pre existing trained model
  • No pre annotated datasets: We had to manually annotate over 1000 images. Some of which were taken ourselves.
  • Rendering: Our code was not written in CUDA which deterred us from being able to leverage GPU processing which would have significantly increased our real time processing capabilities.
  • Lack of resources: A lot of time was spent on technical issues with github and azure.
  • Time constraint: We could not optimise the data by taking multiple angles, lighting, backgrounds and we could not account for edge cases such as differentiating between punches landed on gloves v punches landed on body/head.
  • Roadblock when it came to linking the front and back end.

Accomplishments that we're proud of

  • We managed to produce a model with 80% precision and 67% recall
  • We managed to deploy both the front and back end.
  • Fully functional app!
  • Variety of working features, working database to store client information

What we learned

  • Computer vision: None of us had prior knowledge. We learnt how important good quality training data is.
  • CORS troubleshooting
  • How to work more with rest APIs

What's next for CounterPunch

  • Implement websocket APIs instead of rest APIs for better realtime data transmission.
  • Inclusion of more diverse combat sport training data.
  • Taking into account other boxing criterions (e.g. an index to track who move forwards more for ring generalship scoring)
  • Using other forms of data to improve accuracy of model (e.g. sound to track significance of punch)
  • Fighter tracking so we can accurately discern which fighter has thrown what and on who

Built With

Share this project:

Updates