STRAP is a dataset of region–text annotations produced by a single structured pass of a frozen multimodal LLM. The model gets three inputs per image: the image, a fixed text prompt, and a fixed JSON schema for the output. It returns one machine-readable record that localizes and describes each object, their interactions, and the image as a whole. Decoding is constrained to the schema, so every record parses without post-editing.
STRAP covers 2M web images: 1M from CC3M and 1M from DataComp-1B, two datasets commonly used to train contrastive VLMs. Only their images are used, never their captions. The MLLM model is the openly available Qwen3.6-35B-A3B, so the run is exactly reproducible. The cost is one MLLM pass per image — the pipeline scales to far larger corpora. The prompt and schema are released with the dataset.
Any MLLM that can follow an output schema can generate STRAP records. The model is frozen: no fine-tuning, no iterative prompting, no post-processing. Commercial APIs and local inference frameworks alike support schema-constrained decoding, so the pipeline is a single pass end-to-end.
Standard large-scale region-annotation pipelines chain multiple models into a cascade, either top-down or bottom-up. Both directions share two costs before their individual limits even come up: the stages have to be glued together with hyperparameters — score thresholds, NMS settings, matching rules — and every hand-off is a chance to bind a description to the wrong region.
Top-down: captions → grounding
Caption the image, then ground the noun phrases with a separate detector.
Bottom-up: detections → region descriptions
Detect or segment regions first, then describe each one independently.
STRAP — one structured pass
A single frozen MLLM emits every field together, constrained to the schema.
We compared two MLLMs against Visual Genome ground truth: GPT-5.4 (closed API) and Qwen3.6-35B-A3B (open weights, ~35B parameters, runs locally on a single 40 GB A100 GPU). The open model localizes better; the closed one is slightly ahead on semantics. While a promptable segmenter like SAM3 can mitigate the localization limitations of GPT-5.4 (or extend Qwen annots with masks), the cost makes the choice clear: a paid API is prohibitively expensive for 2M images. STRAP is therefore generated with Qwen3.6-35B-A3B, which also makes the run exactly reproducible.
Each record carries two kinds of fields. All fields of one object share an object id, so each stays bound to its region.
A short summary of the image, the scene context, and the interactions between objects.
For each object: a normalized bounding box, a basic-level label, coarser and finer hierarchy levels, and a caption-style description of the region.
The basic level is the one people name by default — dog rather than animal or retriever. The coarser and finer hierarchy levels sit on either side of it, giving each object a three-level semantic hierarchy.
1
2
{ "image_summary": "A dynamic action shot of a horse race, featuring several jockeys on their horses galloping towards the viewer. …", "scene_context": "An outdoor horse racing track during a race, with a blurred background of spectators and track infrastructure.", "objects": [ { "id": 1, "basic_label": "jockey", "salience": 0.95, "visibility": "fully_visible", "brief_description": "Jockey in lime green and blue silks riding a dark horse in the foreground.", "location": { "bounding_box": [0.60, 0.07, 0.85, 0.88], … }, "hierarchy": { "coarser_levels": [{ "label": "person", … }, { "label": "human", … }], … }, "intrinsic_parts": ["head", "torso", "left_arm", "right_arm", "left_hand", …], "associated_items": [{ "item": "light green helmet", "relation": "worn_on", "covers": ["head"], … }, …], "text_on_object": [{ "text": "AIR MURYS", … }], … }, { "id": 2, "basic_label": "horse", "salience": 0.9, … }, … 7 more objects ], "interactions": [ { "object_ids": [1, 2], "kind": "riding", "note": "Jockey 1 is riding horse 2.", … }, … ], … }
Excerpt of a real record. Abridged from the record for the horse-race example in the gallery (CC3M image 003111502); ellipses mark elided fields. The exact prompt and JSON schema are released with the dataset and shown in full in the examples gallery.
The schema is designed to cover a wide range of object-centric data — from hierarchy, pose and state to multi-object interactions and OCR — spanning common use cases. It is not fixed: the community can easily extend the annotation pipeline to other use cases by adapting the prompt and the output schema.
Real web images with their complete STRAP records — boxes, labels, descriptions and scene context — exactly as the MLLM model produced them.
Open the Annotation GalleryImages come from two standard contrastive-VLM training corpora: CC3M (1M) and DataComp-1B (1M). STRAP uses only their images — every word of text in the dataset is generated by the MLLM model.
cc3m | datacomp | |
|---|---|---|
| Images (rows) | 1,000,000 | 1,000,000 |
| Annotated objects | 6,229,195 | 4,121,158 |
| Objects per image (mean) | 6.2 | 4.1 |
| Image source | CC3M | DataComp-1B |
| Primary join key | tsv_index (row in Google's CC3M TSV) | uid (DataComp-1B sample ID) |
| MLLM model | Qwen3.6-35B-A3B — the same open model for both subsets | |
Join keys. STRAP ships annotations only. Each record carries the key of its source sample, so the images are fetched from CC3M or DataComp-1B and joined locally.
The release also includes the annotation pipeline itself. Point it at data of your choice, adapt the prompt, and use any MLLM that supports structured JSON output.
We introduce SEAR-VLM, which turns a pretrained vision–language model (VLM) into a region encoder by conditioning its pooling head on the query region. Each image is encoded once, after which the supplied boxes or masks restrict pooling attention over its cached patch tokens to produce embeddings in the pretrained image–text space.
To supply its supervision, we introduce the STRAP (STRuctured Annotations single Pass) dataset. A single pass of an open-weight multimodal LLM (MLLM) returns a machine-readable record that jointly localizes and describes the objects in each image, avoiding multi-stage annotation pipelines. We annotate 2M web images with no human labels.
When finetuning only the pooling head, SEAR-SigLIP2 improves over the frozen SigLIP2 readout on five fine-grained benchmarks by 15.6 percentage points on average, and by 11.8 percentage points on seven open-vocabulary region-recognition benchmarks. We also apply SEAR-VLM to DINOv3 and CLIP, outperforming all prior CLIP-based baselines.
If you use this work, please cite:
@article{janouskova2026sear,
author = {Janouskova, Klara and Moravcikova, Zuzana and Kisel, Nikita and Matas, Jiri},
journal = {arXiv preprint},
title = {SEAR-VLM: Semantic Embedding for Any Region Learned with Structured MLLM Annotations},
year = {2026}
}