|
Download pixel/README.md from RekaAI/Reka-Inverse-Dynamics-Model: direct link, hf CLI and curl.
- Browser
- Download file 2.55 kB
-
https://huggingface.co/RekaAI/Reka-Inverse-Dynamics-Model/resolve/main/pixel/README.md
- Command line
-
hf download hf://RekaAI/Reka-Inverse-Dynamics-Model/pixel/README.md
-
curl -L -o README.md https://huggingface.co/RekaAI/Reka-Inverse-Dynamics-Model/resolve/main/pixel/README.md
2.55 kB
metadata
license: apache-2.0
library_name: pytorch
pipeline_tag: video-classification
tags:
- inverse-dynamics
- camera-motion
- counter-strike-2
IDM pixel model (Z1-106k-full)
This model predicts camera motion from raw video frames. It has no optical-flow stage.
- Keys: W, A, S, D, Shift (one probability per frame).
- Rotation: yaw and pitch in degrees, per frame.
How it works
video -> 128x128 RGB -> IMPALA CNN per frame -> temporal attention -> keys + yaw/pitch per frame
ImageNet norm 3 blocks, 64/128/128 2 layers, width 512
- The model has 9,836,063 parameters.
- The rotation head is a hybrid: a bin classifier plus a residual. Yaw has 13 bins. Pitch has 11 bins. The result is the bin centre plus the residual.
- The script cuts the video into 128-frame windows and averages any overlap. A video with fewer than 16 frames gives no prediction.
Use
pip install torch av opencv-python safetensors numpy
python inference.py clip.mp4
The script prints JSON with one row per frame:
key_probabilities, keys_pressed (threshold 0.5), yaw_deg and pitch_deg.
Files
| File | Content |
|---|---|
model.safetensors |
Weights only. Float32. The CNN keys are stored as cnn.blocks.*. |
config.json |
Architecture and windowing. |
inference.py |
Standalone script. No internal imports. |
Results
| Test set | Turn | Three-way |
|---|---|---|
| Real videos | 51.1 † | 30.8 † |
| Action-camera footage | 76.0 † | 58.3 † |
| Counter-Strike 2 | 70.9 † | 77.5 † |
- † means the number comes from a write-up. It has no run log yet. Treat it as unconfirmed.
- The internal eval report shows about 0% on out-of-distribution real-world and marketplace footage.
Limits
- The model trained on Counter-Strike 2 renders only.
- It does not work on real-world footage. Use the flow model for that.
- The 128x128 resize squashes 16:9 frames to a square. The training data did the same.
- The training window was 150 frames. The reference inference code used 128. This folder uses 128.
num_heads(8) is not stored in the checkpoint. It is the default of the training code. The weights load withstrict=True, and the output matches the original code exactly.
License
- The weights and
inference.pyuse the Apache License 2.0. SeeLICENSEin the repository root. - The models trained on Counter-Strike 2 gameplay captures. This repository holds no game assets, no clips and no training data.
- The terms of the evaluation datasets are not checked.