Instructions to use makactuary/bjj-bottom-posture with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Scikit-learn
How to use makactuary/bjj-bottom-posture with Scikit-learn:
from huggingface_hub import hf_hub_download import joblib model = joblib.load( hf_hub_download("makactuary/bjj-bottom-posture", "sklearn_model.joblib") ) # only load pickle files from sources you trust # read more about it here https://skops.readthedocs.io/en/stable/persistence.html - Notebooks
- Google Colab
- Kaggle
BJJ bottom-player posture from a two-person 3D skeleton
Predicts the bottom player's posture (supine, turned in, seated). Input: one GrappleMap keyframe (2 players x 23 joints x 3D). Features are all within-player and between-player joint distances plus joint heights, so they do not depend on where the athletes are, which way they face, or which player is listed first.
Trained on positions from GrappleMap by Eelis van der Weegen (public domain), via the grapplemap-bjj-graph dataset. Labels are GrappleMap's own tags; positions with more than one candidate tag are left out (351 positions: supine 243, turned_in 64, seated 44).
Evaluation
GrappleMap contains many variants of the same position, so positions were split by the first word of their name: 25% held out, model selected by GroupKFold(5) on the rest.
| Macro-F1 | |
|---|---|
| Grouped 5-fold CV (random_forest), main estimate | 0.80 ± 0.05 |
| Single held-out split (103 positions) | 0.87 (accuracy 0.89; majority-class baseline 0.75) |
The held-out split happened to be easier than average; read the cross-validated figure first.
| Class | F1 on the held-out split |
|---|---|
| supine | 0.93 |
| turned_in | 0.69 |
| seated | 1.00 |
Limitations
- GrappleMap is a hand-authored technique map, not recorded matches; the model has not been tested on real footage or on 2-D video poses.
- Small classes and a few hundred positions: estimates vary by split (see the ± above).
- Name-based grouping reduces but does not remove leakage between closely related positions.
Usage
import joblib
from huggingface_hub import hf_hub_download
model = joblib.load(hf_hub_download("makactuary/bjj-bottom-posture", "model.joblib"))
# features(keyframe) from grapplemap_models.py in https://github.com/000MAK/quantix-martial-arts-engine
Trained with scikit-learn 1.9.1. Code: grapplemap_models.py (MIT).
- Downloads last month
- -