Giter VIP home page Giter VIP logo

overtrack-cv's Introduction

All Contributors PRs Welcome Discord chat

overtrack-cv

This is the local client code that handles Computer Vision/OCR for OverTrack, plus the game-specific processors that collect data for Apex Legends.

For more info on using OverTrack, visit overtrack.gg

overtrack-cv

This is the local client code that handles Computer Vision/OCR for OverTrack, plus the game-specific processors that collect data for Apex Legends.

For more info on using OverTrack, visit overtrack.gg

Development

Pre-reqs

  • Windows
  • Python 3.7 -- you can use chocolatey or another package manager, or go to python.org
    > choco install python --version=3.7.9
    
  • Poetry is used to manage the project's venv and dependencies. See installation instructions to install it via PowerShell.
  • Install dependencies and venv:
    > poetry install
    
  • That's it. As long as there were no errors, you're ready to go.

Local execution/testing

You can run the processors individually, and they will run against all the screenshots in their respective /samples directory.

  • open venv shell, or run via poetry
    > # To open a shell and then execute things
    > poetry shell
    > cd .\overtrack_cv\games\apex\processors\squad_summary
    > python squad_summary_processor.py
    > exit
    > # Use `poetry run` instead of launching a shell
    > cd .\overtrack_cv\games\apex\processors\squad_summary
    > poetry run python squad_summary_processor.py
    
  • when executing a processor, place any images you want processed into the samples directory in that processor directory. After executing, a popup will appear for each screenshot in order, showing you details of all the data identified on that image.

How it works

(shamelessly stolen from Muon on Discord, starting here)

The key entrypoint for the apex processing pipeline is /overtrack_cv/games/apex/default_pipeline.py#L32

A pipeline is a series of processors that take frames. Each processor is responsible for extracting something from the image and putting it into structured data on the frame.

The entire pipeline is run on each and every frame. We build a list of all frames for a game with their rich data added to them, and this is sent to the server where the data is processed into a game.

The pipeline concept captures the fact that often processors are exclusive, as they are tracking only during a specific game state (ex: There is no need to track player coordinates while on the menu screen) so these processors are children of a shortcircuit processor.

A good starting point for understanding how this all works is the map_loading processor, found here. All this one does is locate the map name on the map loading screen to determine which map the player is about to play on.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):


Simon Pinfold

๐Ÿ’ป ๐ŸŽจ

Dan Brahaney

๐Ÿ“– ๐Ÿ”ฃ

This project follows the all-contributors specification. Contributions of any kind welcome!

overtrack-cv's People

Contributors

synap5e avatar brahaney avatar allcontributors[bot] 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.