Tasks/Computer Vision/Video Understanding

Temporal Proposal Post-processing

Post-process action proposals with no retraining allowed

thumos_temporal_action_localization Computer Vision Video Understanding
instruction.mdthis is what the agent is given

You inherit a deliberately weak post-processor for anonymous temporal event proposals. Improve the reusable method to maximize equal-family mean temporal detection mAP; the submitted code is rerun once on a disjoint sealed generated bank for scoring.

Hard Constraints

  • Keep predict(feature_dir, metadata_path) -> list[dict] as the entry point.
  • Edit only /app/methods/main/solver.py and supporting Python files under /app/methods/main/.
  • Emit at most 50,000 proposals with exactly usable video_id, label, start, end, and score fields. Numeric fields must be finite, start >= 0, and end > start.
  • Keep the complete method package below 10 MiB, 128 regular files, 256 filesystem entries, and eight path components below methods/main/.
  • The sealed method receives one CPU, a 256 MiB address-space ceiling, at most 64 open files and 24 processes, and a 60-second wall-clock limit.
  • Read video and class identities from metadata_path. Do not assume particular IDs, labels, case counts, family assignments, paths, or private seeds.
  • Do not fetch external data or encode per-case answers. Submit one deterministic algorithm that operates only on the supplied proposal bank.

What You Have

  • /app/methods/main/solver.py: a weak fixed-threshold starter.
  • /app/public/metadata_public.json: opaque public sequence and class metadata.
  • /app/public/detector_proposals.json: the frozen public proposal stream.
  • /app/public/annotations_public.json: public ground truth for iteration.
  • /app/selfcheck.py: the official public evaluator, including equal-family breakdowns.

The feature_dir argument is retained for API compatibility and may be empty. The proposal file is located beside the metadata file.

What You Submit

Return a list of dictionaries containing {"video_id", "start", "end", "label", "score"}. General deterministic proposal filtering, calibration, suppression, fusion, boundary refinement, clustering, and constrained selection are allowed when they use only current-input metadata and proposal values.

Run python /app/selfcheck.py during development. Leave the best general method under /app/methods/main/; Harbor collects that directory as the submission artifact.

How It Is Judged

For each of four predeclared scenario families, the verifier computes mean average precision across temporal-IoU thresholds 0.30, 0.40, 0.50, 0.60, 0.70. It maps each family independently through the frozen baseline, human reference, and theoretical perfect-mAP endpoint, then averages the four family rewards equally. Higher raw mAP and higher reward are better.

Common Pitfalls

  • A rule that improves short events may damage long or densely duplicated events.
  • High-confidence fragments and background proposals can corrupt ranking even when recall looks strong.
  • Over-aggressive suppression can merge nearby events or destroy cross-class overlap.
  • Public-only case identifiers, family-specific branches, and hand-written outputs will not transfer to fresh sealed sequences.
  • Any malformed row, oversized artifact, exception, timeout, or unsafe filesystem entry fails closed to zero reward.

Metric

equal-family mean temporal detection mAP on the sealed bank · higher is better

mAP over tIoU 0.30/0.40/0.50/0.60/0.70 within a family, four families averaged equally

anchorheld-outreward
Bfrozen baseline post-processor0.588-0.636 by family0.00
Rhuman reference solution0.772-0.901 by family0.30
Utheoretical bound (perfect mAP)1.0001.00
normalisation
m <= B0
B < m <= R0.3 * (m - B) / (R - B)
R < m < U0.3 + 0.7 * (m - R) / (U - R)
m >= U1

m = this run's held-out metric  ·  B = frozen baseline post-processor  ·  R = human reference solution  ·  U = theoretical bound (perfect mAP)

B/R differ per family, U = 1 everywhere. Each family maps against its own row, then the four family rewards are averaged equally.

Rollouts

87 minwall clock
$22.66spend
29.6Mtokens
17versions, 17 kept
0.600 0.675 0.750 0.825 0.900 $0 $5 $10 $15 $20 cumulative spend on the run public self-check equal-family mAP, higher is better v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16
keptrevertedno scoreturning point
  1. v0Inherited starter: pass through every proposal scoring at least 0.300.5922522 min · $0.38
  2. v1Per-video, per-class greedy temporal NMS at IoU 0.45, all score levels keptRemove duplicates per video and class instead of filtering on the score floor.0.7309475 min · $0.88
  3. v2Score-weighted boundary consensus from same-class neighbors above IoU 0.300.7395857 min · $1.13
  4. v3Log support bonus 0.20*log1p(tight same-class count); NMS IoU 0.45 to 0.35Rank a proposal by how many tight same-class neighbors back it, not by detector score alone.0.87925611 min · $1.81
  5. v4Duplicate test by supporter Jaccard and support count, base IoU 0.250.88433515 min · $2.40
  6. v5Soft 0.15 penalty on overlap with an earlier selected same-class mode0.88667121 min · $3.71
  7. v6Support threshold 4 to 3 neighbors, log-support weight 0.20 to 0.250.88754625 min · $4.45
  8. v7Minimum support 2; support weight 0.60 and overlap penalty 0.650.89019129 min · $5.51
  9. v8Consensus intervals widened 1.15x about their centers, clipped to duration0.89151332 min · $6.20
  10. v9Standardized ranking corrections from support confidence and label context0.89260838 min · $7.62
  11. v10Support/overlap weights 0.70/0.80; penalty for competing-label overlap0.89300744 min · $8.88
  12. v11Lower-ranked fallback tier of raw proposals, primaries kept in rank bandsSpend the unused 50k row budget on strictly later rows, which can add recall but cannot reorder the primaries.0.8940849 min · $10.10
  13. v12Fallback extended to five scale/center boundary hypotheses, filled to 50k0.89504455 min · $11.76
  14. v13Support threshold adapts to cross-label congestion per video0.89551362 min · $14.70
  15. v14Primary boundary scale per video, 1.05+0.01*median length, clipped 1.0-1.50.89588665 min · $15.75
  16. v15Fallback source NMS retuned from IoU 0.80 to 0.200.89632280 min · $20.64
  17. v16Five further complementary fallback transforms fill the leftover capacity0.89655483 min · $22.06

No version was reverted. v0-v8 cost $6.20 of the $22.66; the last eight bought 0.004 public mAP for $14.43 and 45 of the 87 min.

On the hidden set

held-out metricreward
frozen baseline post-processor0.588-0.636 by family0.00
human reference solution0.772-0.901 by family0.30
theoretical bound (perfect mAP)1.0001.00
this run0.89310.4438