Menu
Everything underneath
Frame corpus for AI training
JPEG stills from cameras on a working network, in taxi and rideshare cabins, at airport curbs, on casino and retail floors and at street-level displays. An index lists every still with its screen, capture time, market and venue, and each still our vision model described carries its one-line scene description and the model's whole response: the audience it read, what else it saw and its ad-fit verdict. Real lighting, weather, glare, motion blur and crowds, day and night.
The question it answers
Where do I get real in-cabin, curbside and venue imagery at scale?
4.2 million
stills
37,941
new stills a day in October
3.8 million
with a scene description
Measured over the corpus from May 5 to October 11, 2026.
The dataset
- Grain
- One image per capture.
- Cadence
- New stills every day. A delivery is one file per still and one index of them.
- History
- From May 5, 2026.
- Format
- JPEG images and a Parquet index.
- Delivered to
- Your S3 bucket, your GCS bucket, or a time-limited download link, with a manifest and a schema.
- Method
- How each measure is produced and how to add rows up: the measurement methodology.
What buyers do with it
- In-cabin monitoring: occupancy, posture and seatbelt context in real cabins.
- Perception for autonomous vehicles and robotaxis: curb, street and transit scenes.
- Multimodal pretraining and evaluation, with image and text pairs out of the box.
The table
Read from the export registry each time this site is built.
camera_frame_corpus
One image per capture, from May 5, 2026- Grain
- One row per call_id.
- Delivery
- One file per image, as JPEG images and a Parquet index.
- Basis
- Measured.
- Definition
- Version 3.
| Column | Type | What it holds |
|---|---|---|
call_id | string | The frame's identity: the cloud vision call it was captured for. The delivered JPEG is named by it. |
screen_id | string | Trillboards screen id of the camera that captured the frame. Null: The call carried no screen id. |
called_at | timestamp | When the frame was sent for analysis, UTC. |
captured_at | timestamp | When the camera captured the frame, UTC. Null: Not recorded: the device shutter time is recorded from 2026-08-13; called_at is the nearest time. |
capture_mode | string | What triggered the capture (e.g. periodic_scene, face_triggered). Null: Not recorded (before 2026-09-24, or captured off-device). |
capture_reason | string | Why the device captured it (e.g. periodic_scene_baseline, face_detected). Null: Not recorded (as capture_mode). |
profile_id | string | Sensing profile the call ran under (e.g. transit_hub_v1). Null: A legacy frame (the eval prefix records none). |
model | string | Vision model that analysed the frame and wrote its caption. Null: A legacy frame. |
model_version | string | That model's version. Null: Not recorded, or a legacy frame. |
object_key | string | Path of the stored JPEG in our private media store (vision-frames-private/YYYY/MM/DD/<call_id>.jpg; vision-evals/ for the legacy frames). |
image_sha256 | string | SHA-256 (hex) of the stored JPEG, recorded when the frame was written. Null: Not recorded: the stored hash is written from 2026-08-20; the delivered file's own hash is in the index the rail writes. |
caption | string | The model's description of the scene in the frame (its scene_description). Null: The call carried no scene description: a failed or truncated cloud call, a frame an edge model analysed on the device (model local-vlm), or a legacy frame. |
caption_response | string | The model's whole response for the frame, as JSON text: its scene description with the audience classes, extra observations, social attention, ad-fit verdict and every other key it returned (2,853 characters on average over the 1,833 whole responses of 2026-10-10 12:00-13:00 UTC; the scene description alone averages 80). Null: The call's response is not whole JSON (a failed or truncated cloud call), or a legacy frame. |
country | string | Country of the screen's registered location. Null: The screen has no registered country. |
state | string | State or province of the screen's registered location. Null: The screen has no registered state. |
dma_code | string | Nielsen DMA code of the screen's registered location. Null: Outside the US, or not geocoded. |
dma_name | string | DMA name. Null: As dma_code. |
venue_category | string | The screen's registered venue category (transit = a vehicle cabin). Null: Not classified. |
venue_type | string | The screen's registered venue type. Null: Not classified. |
Request a sample
Tell us the markets and the weeks you want. The sample is cut from production by the same export that makes the full delivery.
Request a sampleAll datasets · Next: Place activity, hourly