Skip to content
Back to skills

Pope Negative Sampling

ASecurity

Select POPE absent-object negatives using random, popular, and adversarial strategies for object hallucination evaluation.

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
toolspythonbash

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill pope_negative_sampling --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pope Negative Sampling?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pope Negative Sampling
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-pope-negative-sampling/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-pope-negative-sampling)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: pope_negative_sampling
description: Select POPE absent-object negatives using random, popular, and adversarial strategies for object hallucination evaluation.
---

# POPE Negative Sampling

Use this skill when constructing POPE-style object hallucination probes from image object annotations. It should be used after records have been normalized to `{image, objects}` and before emitting negative yes/no questions.

Do not use this skill to answer LVLM questions or to compute final metrics. It only chooses absent objects and computes dataset statistics.

## Inputs

- A list of image records with `image` and `objects` fields.
- A current image's object list.
- A per-image history of already used object names.
- A strategy: `random`, `popular`, or `adversarial`.
- For adversarial sampling, the positive anchor object.
- Optional random seed for deterministic random selection.

## Outputs

- Dataset object frequencies.
- Object co-occurrence rankings.
- A selected negative object that is not present in the current image and not already used in the image history.

## Workflow

1. Normalize object strings by stripping whitespace and removing empties.
2. Build a vocabulary and global frequency count over all records.
3. Build co-occurrence rankings by counting other objects appearing in the same image.
4. For `random`, choose an eligible absent vocabulary item with the seeded random generator.
5. For `popular`, choose the most frequent eligible absent item.
6. For `adversarial`, choose the highest-ranked eligible co-occurring item for the anchor; if none is eligible, fall back to popular selection and record that it remains an absent-object probe.
7. Raise a clear error when no eligible absent object exists.

## Validation

Run:

```bash
python scripts/pope_negative_sampling.py --self-test
python tests/test_negative_sampling.py
```

The tests verify frequency counts, co-occurrence rankings, and the invariant that present objects are never selected as negatives.

## Limitations

The skill assumes object annotations are already available or have been generated by another component. It does not run segmentation or inspect images.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…