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.pyand supporting Python files under/app/methods/main/. - Emit at most 50,000 proposals with exactly usable
video_id,label,start,end, andscorefields. Numeric fields must be finite,start >= 0, andend > 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.