Giter Site home page Giter Site logo

nvsriram / keepervision Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 141.54 MB

ECE Final Year Design Project: Using computer vision, image processing, and machine learning, KeeperVision physically guides goalkeepers in real-time to the best position to defend against any incoming shots.

Home Page: https://uwaterloo.ca/capstone-design/project-abstracts/2024-capstone-design-projects/2024-electrical-computer-engineering-capstone-designs#40

License: MIT License

Python 100.00%
aws-rds-mysql aws-s3 computer-vision flask machine-learning yolov8

keepervision's Introduction

banner

πŸ’‘Motivation

Soccer is the most popular sport with hundreds of millions of players and fans around the world. Many times, a key save can be the difference between winning and losing a game. KeeperVision is a training tool which aims to help goalkeepers in tackling their greatest hurdle - positioning. Using computer vision, image processing, and machine learning, KeeperVision physically guides goalkeepers in real-time to the best position to defend against any incoming shots.

πŸš€ Demo

KeeperVision-demo.mp4

🌐 API Reference

api/register/<username>

GET
Response OK Code Content
βœ… 200
{"id": <player_id>}
❌ 404
{"message": "Player <username> does not exist."}
POST
Body
{"email": <email>}
Response OK Code Content
βœ… 200
{"id": <player_id>}
❌ 400
{"message": "<some error message like duplicate key Integrity error>"}

api/session/<username>

GET
Response OK Code Content
βœ… 200
{"player_id": <player_id>, "session_stats": <list of session_stats in desc order of session_end>}
❌ 404
{"message": "Player <username> does not exist."}
POST
Body
{"session_stats": <session_stats JSON with all the fields>}
Files File Name Description
initial_image Image file containing goalkeeper's initial position before session starts
final_image Image file containing goalkeeper's final position at the end of session
Response OK Code Content
βœ… 200
{"id": <session_id>}
❌ 400
{"message": "<some error message like duplicate key Integrity error>"}
❌ 404
{"message": "Player <username> does not exist."}

api/predict

POST
Files File Name Description
image Image file to be processed
Response OK Code Content
βœ… 200
{"idx": <idx corresponding to direction to move>, "x": <offset in x direction>, "y": <offset in y direction>}

πŸ“ˆ Block Diagram

Block Diagram 2

πŸ’» Instructions on running locally

  1. Ensure python is installed
  2. Run pip install -r requirements.txt to install all dependencies
    NOTE: Recommended to use venv before installing dependencies. See below for details on how to set it up
  3. Run the Flask app using python app.py. This will run the app on debug mode on the server's IP
    NOTE: Ensure the Flask app and the client are in the same WLAN to be able to connect to the server's IP as it is otherwise considered a private IP address

[Optional] To use venv:

  1. Run python -m venv <path-to-env> to create virtual environment

  2. To activate the virtual environment:

    • If on Windows, run: <path-to-env>/Scripts/activate
    • If on MacOS, run: source <path-to-env>/bin/activate
  3. Run Step 2 to install all dependencies

keepervision's People

Contributors

nvsriram avatar sumanth-subba avatar

Stargazers

Januston avatar

Watchers

Kostas Georgiou avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.