BjaeverMetrics is an advanced football analysis program designed for IF Frem Bjæverskov. It is used by coaches for advanced statistic to build winning strategies.
Run pip install -r requirement.txt
Install dependencies:
pip install -r requirements.txtStart the local API and frontend:
uvicorn bjaevermetrics_app:app --reload --host 127.0.0.1 --port 8000Open http://127.0.0.1:8000 in the browser.
The local app serves frontend/, receives video uploads at POST /api/analyze,
runs the pipeline on the local machine, stores results in SQLite, and shows saved
matches through GET /api/matches.
BJEAVERMETRICS/
├── .venv/
├── .gitignore
├── pyproject.toml
├── requirements.txt
├── requirements-dev.txt
├── README.md
│
├── configs/
│ ├── default.yaml # default runtime config
│ └── test.yaml # overrides for --test mode
│
├── data/ # gitignored (large files)
│ ├── raw/ # original Veo MP4s
│ ├── annotated/ # your labeled frames for fine-tuning - training data/benchmarking data
│ ├── interim/ # detections.json, tracking.json per match
│ ├── processed/ # final stats.json/parquet
│ └── models/ # best.pt, pretrained weights
│
├── src/
│ └── fodbold/ # your package
│ ├── init.py
│ ├── config.py # load + validate config
│ ├── cli.py # argparse/typer logic (called by main.py)
│ │
│ ├── io/
│ │ ├── init.py
│ │ ├── video.py # OpenCV reader, frame iterator
│ │ └── metadata.py # holdnavne, halvleg, hjemme/ude
│ │
│ ├── detection/
│ │ ├── init.py
│ │ └── detector.py # YOLO wrapper
│ │
│ ├── tracking/
│ │ ├── init.py
│ │ └── tracker.py # ByteTrack/BoT-SORT wrapper
│ │
│ ├── stats/
│ │ ├── init.py
│ │ ├── possession.py
│ │ ├── touches.py
│ │ └── passes.py
│ │
│ └── pipeline.py # orchestrates the stages
│
├── tests/
│ ├── init.py
│ ├── test_video.py
│ ├── test_detector.py
│ └── fixtures/ # tiny test clips
│
├── notebooks/ # spikes, model comparisons, exploration
│
│
├── scripts/ # one-off utilities
│
│
└── main.py # thin CLI wrapper → src/fodbold/cli.py