cine-tech-bench-eval
CineTechBench: A Benchmark for Cinematographic Technique Understanding and Generation — Wang et al. (2025) (arXiv:2505.15145, 2025)
What this evaluates
Evaluates multimodal large language models and video generation models on fine-grained cinematographic understanding (shot scale, angle, composition, camera movement, lighting, color, focal length) and camera movement generation from video clips.
Datasets
Metrics
accuracy (primary) — range: percent
- Percentage of correctly answered multiple-choice questions for static and dynamic cinematographic dimensions.
BLEU@4 — range: percent
- 4-gram overlap between generated description and ground truth.
METEOR — range: percent
- Harmonic mean of unigram precision and recall with synonym/stem matching.
ROUGE-L — range: percent
- Longest common subsequence overlap between generated and reference descriptions.
CAPability-F1 — range: [0, 1]
- F1-score derived from hit rate (HR), average precision (AP), and average recall (AR) based on the benchmark's cinematographic taxonomy.
RotErr — range: other
- Rotation error between generated and original camera trajectory, estimated via MonST3R.
TransErr — range: other
- Translation error between generated and original camera trajectory, estimated via MonST3R.
CamMC — range: other
- Camera motion consistency metric quantifying trajectory deviation.
CLIP-IS — range: [0, 1]
- CLIP-based frame similarity score measuring visual consistency between generated and original frames.
Input / output format
Input: Understanding: image or video clip paired with a question about a specific cinematographic technique. Generation: first frame, optionally last frame, and textual description of the desired camera movement.
Output: Understanding: text answer (multiple-choice selection or open-ended description). Generation: a video clip.
Scoring recipe
def score_understanding(preds, golds):
acc = sum(1 for p, g in zip(preds, golds) if p == g) / len(golds)
bleu = compute_bleu(golds, preds)
meteor = compute_meteor(golds, preds)
rouge = compute_rouge_l(golds, preds)
cap_f1 = compute_cap_f1(golds, preds) # HR, AP, AR based on taxonomy
return {'accuracy': acc, 'BLEU@4': bleu, 'METEOR': meteor, 'ROUGE-L': rouge, 'CAPability-F1': cap_f1}
def score_generation(gen_videos, orig_videos):
traj_gen = estimate_trajectory(gen_videos) # MonST3R
traj_orig = estimate_trajectory(orig_videos)
rot_err = compute_rotation_error(traj_gen, traj_orig)
trans_err = compute_translation_error(traj_gen, traj_orig)
cammc = compute_cam_mc(traj_gen, traj_orig)
clip_is = compute_clip_similarity(gen_videos, orig_videos)
return {'RotErr': rot_err, 'TransErr': trans_err, 'CamMC': cammc, 'CLIP-IS': clip_is}
Common pitfalls
- Models frequently misclassify lighting directions (e.g., confusing Side Light with Back Light) and struggle with complex camera rotations.
- Reference-based n-gram metrics (BLEU/ROUGE) poorly capture fine-grained cinematographic descriptions; CAPability metrics are strongly recommended for generation evaluation.
- Video generation models often reverse rotation direction or fail to generate roll movements despite achieving correct translation errors.
Evidence (verbatim from paper)
For question-answering tasks, we report overall accuracy as well as accuracy broken down by each cinematography dimension. For description generation tasks, we use four reference-based metrics. Three of these—BLEU, METEOR, and ROUGE—are based on n-gram overlap. To address this, we additionally incorporate evaluation metrics from the CAPability benchmark based on our taxonomy, which reliably assess both the correctness and thoroughness of MLLM-generated descriptions using hit rate (HR), average precision (AP), average recall (AR) and F1-score. In this section, we use video generation models to reconstruct the camera movement in the original film clip by inputting the first frame, the last frame (if applicable), and textual description. Following prior work, we quantify trajectory similarity between the generated and the original video clips via three metrics: rotation error (RotErr), translation error (TransErr), CamMC. We use MonST3R to estimate the camera trajectory of the generated and original movie clip. Finally, we also report a CLIP-based frame similarity score (CLIP-IS) to capture visual consistency.
Citation
@misc{wang2025cine techbench,
title={CineTechBench: A Benchmark for Cinematographic Technique Understanding and Generation},
author={Wang et al. (2025)},
year={2025},
note={arXiv:2505.15145}
}
1---2name: cine-tech-bench-eval3description: Evaluates multimodal large language models and video generation models on fine-grained cinematographic understanding (shot scale, angle, composition, camera movement, lighting, color, focal length) and camera movement generation from video clips. Use when the user wants to benchmark on CineTechBench, or asks about evaluating this task. Reports accuracy.4---56# cine-tech-bench-eval78> CineTechBench: A Benchmark for Cinematographic Technique Understanding and Generation — Wang et al. (2025) (arXiv:2505.15145, 2025)910## What this evaluates1112Evaluates multimodal large language models and video generation models on fine-grained cinematographic understanding (shot scale, angle, composition, camera movement, lighting, color, focal length) and camera movement generation from video clips.1314## Datasets1516- **CineTechBench** — total 720; splits: test (720); repo https://github.com/PRIS-CV/CineTechBench1718## Metrics1920- `accuracy` **(primary)** — range: percent21 - Percentage of correctly answered multiple-choice questions for static and dynamic cinematographic dimensions.22- `BLEU@4` — range: percent23 - 4-gram overlap between generated description and ground truth.24- `METEOR` — range: percent25 - Harmonic mean of unigram precision and recall with synonym/stem matching.26- `ROUGE-L` — range: percent27 - Longest common subsequence overlap between generated and reference descriptions.28- `CAPability-F1` — range: [0, 1]29 - F1-score derived from hit rate (HR), average precision (AP), and average recall (AR) based on the benchmark's cinematographic taxonomy.30- `RotErr` — range: other31 - Rotation error between generated and original camera trajectory, estimated via MonST3R.32- `TransErr` — range: other33 - Translation error between generated and original camera trajectory, estimated via MonST3R.34- `CamMC` — range: other35 - Camera motion consistency metric quantifying trajectory deviation.36- `CLIP-IS` — range: [0, 1]37 - CLIP-based frame similarity score measuring visual consistency between generated and original frames.3839## Input / output format4041**Input**: Understanding: image or video clip paired with a question about a specific cinematographic technique. Generation: first frame, optionally last frame, and textual description of the desired camera movement.4243**Output**: Understanding: text answer (multiple-choice selection or open-ended description). Generation: a video clip.4445## Scoring recipe4647```python48def score_understanding(preds, golds):49 acc = sum(1 for p, g in zip(preds, golds) if p == g) / len(golds)50 bleu = compute_bleu(golds, preds)51 meteor = compute_meteor(golds, preds)52 rouge = compute_rouge_l(golds, preds)53 cap_f1 = compute_cap_f1(golds, preds) # HR, AP, AR based on taxonomy54 return {'accuracy': acc, 'BLEU@4': bleu, 'METEOR': meteor, 'ROUGE-L': rouge, 'CAPability-F1': cap_f1}5556def score_generation(gen_videos, orig_videos):57 traj_gen = estimate_trajectory(gen_videos) # MonST3R58 traj_orig = estimate_trajectory(orig_videos)59 rot_err = compute_rotation_error(traj_gen, traj_orig)60 trans_err = compute_translation_error(traj_gen, traj_orig)61 cammc = compute_cam_mc(traj_gen, traj_orig)62 clip_is = compute_clip_similarity(gen_videos, orig_videos)63 return {'RotErr': rot_err, 'TransErr': trans_err, 'CamMC': cammc, 'CLIP-IS': clip_is}64```6566## Common pitfalls6768- Models frequently misclassify lighting directions (e.g., confusing Side Light with Back Light) and struggle with complex camera rotations.69- Reference-based n-gram metrics (BLEU/ROUGE) poorly capture fine-grained cinematographic descriptions; CAPability metrics are strongly recommended for generation evaluation.70- Video generation models often reverse rotation direction or fail to generate roll movements despite achieving correct translation errors.7172## Evidence (verbatim from paper)7374> For question-answering tasks, we report overall accuracy as well as accuracy broken down by each cinematography dimension. For description generation tasks, we use four reference-based metrics. Three of these—BLEU, METEOR, and ROUGE—are based on n-gram overlap. To address this, we additionally incorporate evaluation metrics from the CAPability benchmark based on our taxonomy, which reliably assess both the correctness and thoroughness of MLLM-generated descriptions using hit rate (HR), average precision (AP), average recall (AR) and F1-score. In this section, we use video generation models to reconstruct the camera movement in the original film clip by inputting the first frame, the last frame (if applicable), and textual description. Following prior work, we quantify trajectory similarity between the generated and the original video clips via three metrics: rotation error (RotErr), translation error (TransErr), CamMC. We use MonST3R to estimate the camera trajectory of the generated and original movie clip. Finally, we also report a CLIP-based frame similarity score (CLIP-IS) to capture visual consistency.7576## Citation7778```bibtex79@misc{wang2025cine techbench,80 title={CineTechBench: A Benchmark for Cinematographic Technique Understanding and Generation},81 author={Wang et al. (2025)},82 year={2025},83 note={arXiv:2505.15145}84}85```8687- arXiv: 2505.15145