界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

pope_protocol_builder

pope_protocol_builder

【数据与研究】Build POPE polling-question datasets from image object annotations and prompt templates.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: pope_protocol_builder description: Build POPE polling-question datasets from image object annotations and prompt templates.

POPE Protocol Builder

Use this skill when you need to turn annotation-style object records into POPE yes/no polling questions for object hallucination evaluation. It should be used before model inference and before answer evaluation.

Do not use this skill to choose metric thresholds, run LVLM inference, or score answers. It owns question construction and delegates absent-object selection to POPE negative sampling logic.

Inputs

  • Records with image and objects fields.
  • sample_num, the number of positive object probes per image.
  • Negative strategy: random, popular, or adversarial.
  • Prompt template containing one {} placeholder, such as Is there a {} in the image?.
  • Optional random seed.

Outputs

  • Question records with question_id, image, text, object, label, and strategy.
  • A balanced set of positive and negative probes for every retained image.
  • Optional JSONL file for downstream LVLM answering.

Workflow

  1. Normalize and filter records so only images with at least sample_num objects are retained.
  2. For each retained image, select sample_num positive objects from that image.
  3. Emit a yes question for each positive object.
  4. Call the negative sampler with the selected strategy, current image objects, and per-image history.
  5. Emit a matched no question for each selected absent object.
  6. Keep question IDs monotonic and preserve enough metadata for audit logs.

Validation

Run:

python scripts/pope_protocol_builder.py --self-test
python tests/test_protocol_builder.py

The tests check label balance, absent-object constraints, question IDs, and template text.

Limitations

The skill requires object annotations or segmentation outputs. It does not inspect images, run SEEM, or infer object lists.

我的收藏