CameraBench

本页内容

CameraBench(卡内基梅隆)问的是视频模型会不会理解镜头运动——推、摇、移以及一套与摄影师共同设计、再经专家标注的分类法。四个指标族:

  • 二分类 — camera_motion_average_precision 与 camera_motion_roc_auc。
  • VQA — 关于镜头的是 / 否与问题准确率。
  • 检索 — 按文本、图像与组检索匹配的运动。
  • 描述 — caption 质量。GPT 评判为可选(OPENAI_API_KEY,--no-gpt 关闭)。

camerabench_average 是可用官方指标族的均值。在 WorldFoundry 里,同一套标签也可给镜头控制生成当种子;那是下游用法,不是隐藏榜单。

论文:CameraBench。项目:linzhiqiu.github.io/papers/camerabench。代码:sy77777en/CameraBench,打分栈 linzhiqiu/t2v_metrics。数据:syCen/CameraBench(CC-BY-4.0)。

WorldFoundry 聚合已准备的 score_dir 文件或导入官方 JSON。VLM / SfM 打分仍在上游。共享几何栈:camera_geometry_stack(VGGT、MoGe、UniDepth、RAFT)。

论文官方 Teaser:在多样视频类型中理解相机运动。
论文官方 Teaser:在多样视频类型中理解相机运动。

评测维度

  • 镜头运动二分类
    类型任务

    在专家标注的镜头运动原语上计算平均精度与 ROC AUC。

  • 镜头运动 VQA
    类型任务

    关于镜头运动的是/否与问题准确率。

  • 镜头运动检索
    类型任务

    按文本、图像与组检索匹配的镜头运动。

  • 镜头描述
    类型任务

    镜头运动描述的 caption 质量。GPT 评判为可选。

数据组成

  • 规模

    CMU CameraBench 测试集(syCen/CameraBench):专家标注的镜头运动视频,含二分类、VQA、检索与描述四个指标族。

  • 来源

    syCen/CameraBench · github.com · github.com

  • 模态

    video · camera · text

  • 许可证

    cc-by-4.0

  • 说明

    WorldFoundry 聚合已准备的分数文件或导入官方 JSON。VLM / SfM 打分仍在上游。

指标

指标

  • camera_motion_average_precision
    方向越高越好

    CameraBench 二分类平均精度均值(mAP)。

  • camera_motion_roc_auc
    方向越高越好

    CameraBench 二分类 ROC AUC。

  • camera_vqa_accuracy
    方向越高越好

    CameraBench 是/否二元与问题准确率的均值。

  • camera_retrieval_accuracy
    方向越高越好

    CameraBench 文本、图像与组检索得分的均值。

  • camera_caption_score
    方向越高越好

    官方 CameraBench caption 评测输出的平均描述得分。

  • camerabench_average
    方向越高越好

    可用官方 CameraBench 指标族的均值。

    主指标CameraBench Average

Leaderboard

官方实时榜,嵌在本页。不是 WorldFoundry 跑分。 sy77777en.github.io/CameraBench.

sy77777en.github.io · 实时打开实时榜

如何运行

导入官方 JSON(严格覆盖):

WORLDFOUNDRY_CAMERABENCH_STRICT=1 worldfoundry-eval zoo benchmark-run \
  --benchmark-id camerabench \
  --mode official-validation \
  --official-results-path <official_results.json> \
  --benchmark-data-root <camerabench_data_root> \
  --output-dir tmp/camerabench/official-validation \
  --json

聚合已准备的分数目录:

WORLDFOUNDRY_CAMERABENCH_STRICT=1 worldfoundry-eval zoo benchmark-run \
  --benchmark-id camerabench \
  --mode official-validation \
  --score-dir <score_dir> \
  --benchmark-data-root <camerabench_data_root> \
  --output-dir tmp/camerabench/score-dir \
  --json
hf download syCen/CameraBench --repo-type dataset \
  --local-dir cache/worldfoundry/data/hfd_datasets/syCen/CameraBench

--task 可限制到一个指标族。环境变量:WORLDFOUNDRY_CAMERABENCH_DATA_ROOT、WORLDFOUNDRY_CAMERABENCH_RESULTS_PATH、WORLDFOUNDRY_CAMERABENCH_SCORE_DIR。

仓内指针:worldfoundry/data/benchmarks/tasks/external/camerabench.yaml。

产物包括 scorecard.json(主键 camerabench_average)、存在时的 camera_predictions.jsonl、以及 raw_metric_table.jsonl。

官方两阶段协议

CameraBench 把方法相关打分和方法无关指标拆开。WorldFoundry 是第二阶段:聚合已准备的 score_dir 或导入官方 JSON。第一阶段(Qwen-2.5-VL、MegaSAM 或自研方法)仍在上游。只替换第一阶段,下面的 JSON 合同保持不变。

官方脚本用的视频来自 syCen/Videos4CameraBnech(上游拼写如此)。典型数据根:

<data_root>/
  binary_classification/
  vqa_and_retrieval/          # 每个 skill 一个目录
  caption_data.json
  videos/                     # 可选的本地视频副本

第一阶段模型拉权重时可能需要 HF_TOKEN。

二分类

划分:

  • 平移:Move_Up、Move_Down、Move_In、Move_Out、Move_Left、Move_Right
  • 旋转:Pan_Left、Pan_Right、Roll_Clockwise、Roll_Counterclockwise、Tilt_Down、Tilt_Up
  • 变焦:Zoom_In、Zoom_Out
  • 静止:Static

自动发现 vqa_scores_*.json(自定义方法也可用 classification_scores_*.json)。记录格式:

{
  "metadata": {
    "method_type": "Your_Method_Name",
    "model_name": "your_model_name",
    "checkpoint": "optional_checkpoint_path",
    "split_name": "Move_Down",
    "generation_timestamp": "2025-01-XX"
  },
  "scores": [
    {
      "sample_id": "0",
      "video_path": "path/to/video.mp4",
      "question": "Is the camera moving downward?",
      "ground_truth_label": "yes",
      "method": "your_method_identifier",
      "score": 0.85,
      "error": null
    }
  ]
}

VQA 与检索

技能:complex_description、confusable_motion、has_motion、motion_and_steadiness、motion_direction、motion_speed、only_motion、scene_dynamics、tracking_shot。

自动发现 vqa_retrieval_scores_*.json。官方评测可 --mode vqa、--mode retrieval 或两者。记录格式:

{
  "metadata": {
    "method_type": "Your_Method_Name",
    "model_name": "your_model_name",
    "skill_name": "confusable_motion",
    "task_name": "backward_camera_only_vs_backward_ground_only",
    "split_name": "confusable_motion"
  },
  "scores": [
    {
      "sample_id": "0",
      "pos_video": "path/to/positive_video.mp4",
      "neg_video": "path/to/negative_video.mp4",
      "pos_question": "Is the camera moving backward?",
      "neg_question": "Is the ground moving backward?",
      "method": "your_method_identifier",
      "yes_scores": {
        "pos_text_pos_image": 0.85,
        "pos_text_neg_image": 0.23,
        "neg_text_pos_image": 0.31,
        "neg_text_neg_image": 0.78
      },
      "no_scores": {
        "pos_text_pos_image": 0.15,
        "pos_text_neg_image": 0.77,
        "neg_text_pos_image": 0.69,
        "neg_text_neg_image": 0.22
      },
      "error": null
    }
  ]
}

描述

自动发现 caption_results_*.json。GPT-4o 评判需要 OPENAI_API_KEY;WorldFoundry --no-gpt 可跳过。记录格式:

{
  "metadata": {
    "method_type": "Your_Method_Name",
    "model_name": "your_model_name"
  },
  "captions": [
    {
      "sample_id": "0",
      "video_path": "path/to/video.mp4",
      "question": "Describe the camera motion in this video.",
      "reference_answer": "The camera pans left while moving forward",
      "method": "your_method_identifier",
      "generated_caption": "The camera is panning to the left and moving forward smoothly",
      "error": null
    }
  ]
}

第一阶段失败应捕获并写成 error 字符串。样本计数(总数 / 成功 / 失败)由文件推导,不要手写。唯一 id 由 model_name、checkpoint、split_name 生成。

← 返回 Benchmark Hub