Skip to content

Computer vision tracking for OverTrack.gg - Apex legends tracking and CV library

License

Notifications You must be signed in to change notification settings

overtrack-gg/overtrack-cv

Repository files navigation

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!

About

Computer vision tracking for OverTrack.gg - Apex legends tracking and CV library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages