stzhao's picture
|
download
raw
3.31 kB
# UCF101 Data Processing & Analysis
## Download model weights locally
```bash
/mnt/posttrain/zhaoshitian/models/RAE-collections
# https://huggingface.co/nyu-visionx/RAE-collections
/mnt/posttrain/zhaoshitian/models/dinov2-with-registers-base
# https://huggingface.co/facebook/dinov2-with-registers-base
/mnt/posttrain/zhaoshitian/models/vit-mae-base
# https://huggingface.co/facebook/vit-mae-base
/mnt/posttrain/zhaoshitian/models/siglip2-base-patch16-256
# https://huggingface.co/google/siglip2-base-patch16-256
/mnt/posttrain/zhaoshitian/models/FLUX.2-klein-4B/vae/ae_bfl_format.safetensors
# https://huggingface.co/black-forest-labs/FLUX.2-klein-4B
```
## Raw dataset preparation & preprocess with vidaforge
Download data from: https://opendatalab.com/OpenDataLab/UCF101
Expected raw UCF101 dataset root:
```bash
/mnt/posttrain/zhaoshitian/datasets/ucf101/OpenDataLab___UCF101/raw/data
```
```bash
uv run bash /home/sz128/projects/video-velocity-model/data_processing/scripts/vidaforge/stage1_ingestion/run_step1_probe.sh
uv run bash /home/sz128/projects/video-velocity-model/data_processing/scripts/vidaforge/stage1_ingestion/run_step2_screen.sh
uv run bash /home/sz128/projects/video-velocity-model/data_processing/scripts/vidaforge/stage1_ingestion/run_step3_transcode.sh
# detect the scene in raw videos with transnetv2
uv run bash /home/sz128/projects/video-velocity-model/data_processing/scripts/vidaforge/stage2_segmentation/run_step1_detect.sh
uv run bash /home/sz128/projects/video-velocity-model/data_processing/scripts/vidaforge/stage2_segmentation/run_step2_clip.sh
```
## UCF101 postprocessing
The preprocessing script reads official UCF101 split files, encodes video frames into RAE latent space, and optionally decodes them back into reconstruction videos.
It now supports three local RAE backbones plus the FLUX.2 autoencoder:
- `dinov2`
- `mae`
- `siglip2`
- `flux2_ae`
`RAE-collections` is used for RAE decoder checkpoints and latent normalization stats, while the three encoder backbones are loaded from the local model directories above. `flux2_ae` uses the FLUX.2 AE checkpoint directly for both encoding and decoding.
Default inputs:
```bash
/mnt/posttrain/zhaoshitian/datasets/ucf101/OpenDataLab___UCF101/raw/data/UCF101
/mnt/posttrain/zhaoshitian/datasets/ucf101/OpenDataLab___UCF101/raw/data/UCF101TrainTestSplits-RecognitionTask.zip
```
Run the full preprocessing job with the different backbones:
```bash
bash scripts/run_data_process_dinov2.sh
bash scripts/run_data_process_mae.sh
bash scripts/run_data_process_siglip2.sh
bash scripts/run_data_process_flux2ae.sh
```
Backbone defaults:
```bash
dinov2 -> encoder_input_size=224
mae -> encoder_input_size=256
siglip2 -> encoder_input_size=256
flux2_ae -> encoder_input_size=256
```
If `--image-size` is not specified, the script uses the selected backbone's default input size automatically.
Default outputs:
Each processed video writes:
- latent file: `<class_name>/<video_name>_patch_tokens.npz`
- reconstruction video: `<class_name>/<video_name>.mp4`
The latent `.npz` contains:
- `features`: `(T, C, H, W)`; for `dinov2`/`mae`/`siglip2`, usually `(T, 768, 16, 16)`; for `flux2_ae` at the default 256 crop, `(T, 128, 16, 16)`
- `timesteps`: `(T,)`
Here `T` is the number of decoded video frames.

Xet Storage Details

Size:
3.31 kB
·
Xet hash:
7d6ce877c7cbbcf1f14d6b45880ec10aeb5d400d41dbb86ebbf9798c3f7a00c4

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.