← Viewer

Research · October 2026

A reproducible, low-cost model for sparse-camera interpolation

Public traffic cameras publish one still image about every two seconds. This project is building an inference pipeline that generates the frames between those stills. The pipeline should be reproducible from pinned inputs and cost a few cents per interval.

0.5 fpsTypical rate of a public traffic camera.Source stills, 352 × 240
~25 pxTypical pedestrian height. Most walkers move more than their own height between stills.Measured masks
26%Average interval error from using receipt time instead of the capture time stored in each JPEG.60 decoded JPEGs
61–82%Reduction in refinement pixels from processing only the moving region.Nominal list prices

Goal

The input is two or more stills from a fixed camera, and the output is the frames between them. Moving people and vehicles should keep a solid shape and follow a physically possible path. All other pixels should come from real observations. Each observed frame, including the camera's timestamp overlay, must be reproduced exactly at its position in the sequence.

Two stills record an object's position at two times. They do not record its path, its pose in between, or when another object passed in front of it. The pipeline estimates these, and every generated frame is labelled as an estimate.

Reproducible

Inputs are pinned by SHA-256 hash, and recipes are validated before rendering. Refinement uses zero noise and a fixed seed. A verification replay must reproduce each published frame exactly.

Low cost

Only moving regions are synthesized. Accepted outputs are reused rather than regenerated. Deterministic steps run on a CPU, and any GPU step is limited to the smallest crop that contains motion.

Labelled

Observed pixels and timestamps are kept exact, and generated frames are marked. When the pipeline cannot match an object between two stills, it holds the observed frame instead of generating a path.

Source data and why standard interpolation fails

Most frame interpolation research targets dense video, where objects are large and move a few pixels between frames. The traffic cameras used here provide one 352 × 240 JPEG about every two seconds, with compression artifacts and irregular timing. Pedestrians are about 20–30 px tall, and many move farther than their own height between stills.

Walkers take about one stride per second, so a two-second gap contains about two strides. The leg positions at the two endpoints are often nearly the same, and models that interpolate between them produce legs that freeze or move backward. Walking motion between stills can only be estimated.

Current video models also work at a coarser resolution than these objects. One latent token covers about 16 × 16 px in Wan2.1 and 32 × 32 px in LTX, so a pedestrian spans one or two tokens. The model has to generate limbs and clothing from its training data, which causes color drift. A 2026 keyframe benchmark reported “melting, dissolving, or fluid-like artifacts” from the best open model under fast motion (KeyFrame-Compass).

The tests here showed the same problems. About thirteen interpolation and video-generation systems were tested. Failures included pedestrians fading into the road, reversed cars, added vehicles, clothing color changes and frozen poses. On heldout frames, a crossfade had a whole-image error of 11.29, against 11.25–11.27 for the best interpolator.

Pipeline

A fixed camera records the same background in thousands of frames, so the background can be measured instead of generated. The remaining task is to find moving objects, match each one between stills, and move it across the known background. In a busy frame, people cover about 3% of the pixels, so generation is limited to a small part of each frame.

The scene reconstruction pipelineObserved images and receipt times feed motion and occlusion estimation, then constrained foreground synthesis, then review and export.Observed inputsMotion + occlusionLocal synthesisReview + exportpixels / times / hashespaths / support / depthpose / source appearanceanchors / HUD / evidence
Stages of the pipeline. A completed model request does not approve a clip; approval happens at review.
  1. Capture and timing. Store the raw JPEG bytes and read the capture time embedded in each file. Receipt time is kept only as a record of when the file arrived.
  2. Background plates. Build plates from many observations, grouped by time of day and lighting, with a map of how often each pixel was seen clear. Mask regions that change on their own, such as screens and signals.
  3. Foreground layers. Detect moving objects by comparing each frame with the plate, confirm them with a detector, and refine the masks with box-prompted segmentation. Bodies are rendered opaque, gaps between legs are kept, and the full outline of a partly hidden object is stored separately from its visible mask.
  4. Geometry and matching. Map image points to the ground plane. Match objects within one camera using speed limits, lane direction, size and color. An ambiguous match is marked unknown.
  5. Motion and rendering. Vehicles move as rigid layers along their lanes. Pedestrians use a simple walk cycle, labelled as an estimate. Generated video can supply candidate pixels for foreground objects only.
  6. Detail refinement. Refine only the region that contains motion, with zero noise and a fixed seed, and place it back at its exact coordinates.
  7. Anchor restoration and checks. Insert the exact observed frames and timestamp overlay at each anchor, and check them before encoding.
  8. Evaluation and labelling. Score each object rather than the whole frame, compare against simple baselines, and label every generated frame.

A background plate is reliable where the scene is static. A per-pixel median fails where an object occupies a pixel in more than half the frames. Median methods also degrade under lighting change: average gray-level error rises from about 1.4–3.0 on basic scenes to 15–20, while low-rank methods stay near 2.8 (comparison).

Scene elementRecovered by a many-frame plate?Handling
Road, quiet sidewalks, facades, lane letteringYes, as real pixelsRobust median or clustering per time-of-day group
Pixels occupied more than half the timeNo; the median failsLow-occupancy hours, semantic masking, or a crowd layer
Screens, signals, flagsNo; they change on their ownMask the region and fill it from the nearest real frame
Exposure and white-balance changesPartlyPer-frame gain and offset against the plate
Daylight changes, building shadows, nightOnly within a time groupSeparate plates by time of day and lighting
Cast shadows, headlights, reflectionsNo; they move with objectsInclude them in the moving object's layer
Parked cars, standing peopleBecome part of the plateNo action; they do not move
Camera timestamp overlayNever estimatedCopied from the source frame
Occlusion is different from a shrinking bodyA complete dark figure moves behind an grey foreground rectangle. Its hidden outline stays the same size, even though fewer dark pixels remain visible.Complete supportLess visible, same bodyFront object
Illustration, not a measured segmentation. The hidden part of the outline is still part of the object.

Published trackers have been evaluated down to about one frame per second. At that rate, matching that relies only on motion degrades sharply, and matching based on re-identification performs much better in crowds (StableTrack). These cameras run at half that rate, so some objects in crowded scenes will not be matchable. A ground-plane homography from a few marked points adds two constraints: walking speed between 0 and 3 m/s, and lane directions that rule out reversed cars.

Objects are matched only within one camera over a few seconds, and the matches are discarded after rendering. The pipeline does not identify people, link them across cameras or store appearance embeddings.

Results so far

Generation limited to foreground masks

Full-scene video proposals contain useful information about how people walk, but they also add vehicles that were not there. Using a proposal only as a source of foreground pixels, filtered by reviewed masks, excluded every added vehicle. Limiting generation to moving regions also removed the street warping and damaged road lettering seen with whole-frame methods.

Observed start, full-scene motion proposal with an invented passing van, accepted foreground masks, and the localized composite
From left: the observed start, a full-scene proposal that adds a passing van, the accepted foreground masks, and the localized composite. None of the van’s pixels are used.

Mask stability

Changes in mask size can look like a body shrinking or growing. Normalizing each object's masks to a shared template and combining masks across neighboring frames reduced frame-to-frame area changes from 35% to at most 2.54%. Pedestrian masks keep the gap between the legs; filling the outline closes that gap.

Background repair

When an object moves, the area it covered must be filled with background. Patches copied from a distant observation had different lighting, including another vehicle's headlights. Patches from the nearest clear observation matched the surrounding lighting.

Changes at observed frames

Where two generated intervals meet at an observed frame, a person's pose and clothing can change abruptly. At the two joins tested, the mean frame-to-frame change was 3.45 and 5.72 on a 0–255 scale, compared with about 0.42 between neighboring frames. The difference was already present in the raw generator output, before masking and refinement.

Three registered rows compare raw generation, refinement and the published composite before and after the same observed anchor
Raw generation, refinement and the published composite across one observed frame. The difference is already present in the raw output. Open the image for a closer view.

The next test is a bridge clip that includes motion before and after the join, with the observed frame fixed in the middle. This requires keyframe or inpainting control in the model. A short optical-flow correction around the observed frame is a cheaper first test, but it cannot reconcile two different poses.

Separate intervals can disagree about speed at BABCDProposed: share motion context across the joinObservation B stays fixed inside the bridge
Planned bridge clip covering motion before and after the join. This experiment has not been run yet.

Timing

Each frame contains the camera's capture time, to one hundredth of a second, in a JPEG comment or EXIF field. Receipt times differ from the true intervals by 26% on average. The original three-second poller skipped every other camera refresh, so intervals recorded as three seconds were alternating two- and four-second gaps. One benchmark interval recorded as 1.48 s lasted 2.07 s, which overstated a pedestrian's speed by about 40%.

Upscaling

Direct 8× upscaling of still frames added texture that was not in the source and merged small figures with street furniture. Upscaling an accepted 4× result by a further 2× with zero noise avoided these problems and reused the earlier result. Still-image quality and motion quality are evaluated separately.

Cost

Generating one three-second interval currently costs about $1.10 in inference at published list prices. These figures are estimates, not invoices.

Stage, per three-second intervalNominal cost
Full-scene motion proposal$0.42
Separate local proposal for an entering object$0.42
Two segmentation runsAbout $0.10
Moving-region detail refinementAbout $0.07–0.16, compared with $0.40 for the full frame

Most of this cost is video generation. In the planned pipeline, the background comes from measured plates, and vehicles and pedestrians are rendered deterministically on a CPU. The only paid step is then an optional GPU refinement of a small crop.

  • Moving regions only. Refining only the moving region instead of the full frame reduced output pixels by 61–82% in the reviewed intervals.
  • Reuse of accepted results. Upscaling from an accepted 4× result cost about half a cent per frame, because the first stage was not repeated.
  • Self-hosting. A planned benchmark will compare self-hosted refinement with hosted inference on matched, pinned crops, with a five-dollar pilot limit and a quality check. No results are recorded yet.

Reproducibility

Each published interval is defined by a recipe, so it can be regenerated and checked.

  • Pinned inputs. Each source image has a SHA-256 hash. Upstream model code is pinned to specific commits, and the research runner checks weight hashes.
  • Recipe validation. The renderer rejects invalid boxes, repeated mask IDs, misspelled fields and incomplete sequences before writing any image.
  • Deterministic refinement. Detail refinement uses zero noise and a fixed seed.
  • Replay. A verification replay reproduced all 73 frames of an interval exactly, and a mask-consensus helper reproduced all 73 of its masks.
  • Anchor checks. Before encoding, the observed endpoint frames and the previous timestamp overlay are compared pixel by pixel.
  • Delivery. Published files are copied from a manifest that pins each file's size and hash. A missing or corrupt file stops the build.

License note: ABC-Inter is licensed CC BY-NC-ND 4.0, and the SPEED repository has no license file. Modified upstream code and weights are not included in this repository.

Evaluation and labelling

Whole-frame metrics do not rank these methods correctly. People cover a small part of the frame, so removing a person and filling in the street can improve whole-image error, SSIM and LPIPS. FVD changes very little under temporal corruption (Ge et al., CVPR 2024).

Evaluation is therefore per object: foreground-masked error, detection recall, objects with no source in the observed frames, counts by class, centroid error, consistency of object identity, and change in static regions. Each method is compared with simpler baselines in this order: holding the last frame, crossfade, the background plate with linearly moved layers, optical flow, learned interpolation and generation. A method is published only if it outperforms the plate-and-layers baseline without adding people.

Dense fixed-camera datasets such as MOT17, MOT20 and UA-DETRAC can be subsampled to two-second gaps and reduced to 352 × 240 with JPEG compression. This provides real intermediate frames and ground-truth tracks for scoring.

Generated frames need labels that stay attached when a clip is shared. EU AI Act transparency rules have applied since August 2, 2026, and cover realistic depictions of real places (European Commission). Platforms often remove metadata, so each generated frame carries a visible label, and recorded and generated spans are marked differently on the timeline. This is not legal advice.

Related work

The methods below differ in what they support. A model that predicts only the midpoint cannot produce frames at other times, and a diffusion timestep does not correspond to a video timestamp. Nonlinear motion controls cannot correct a wrong match between endpoints. A model that accepts a list of frames does not necessarily use all of them together.

WorkDateUseful ideaWhat can actually run
DSG-GIOctober 9, 2026Progressive destination conditioning and semantic/geometric alignment to reduce driftThe paper says code will be released. No executable official release was verified.
ABC-InterSeptember 20, 2026Explicit quadratic Bézier motion controls, including externally supplied controlsOfficial code/weights tested at pinned commit ccdf96b970d5d0782c42ec25d89aa74b8364496e. CPU ports were used only in the research workspace.
MGMVFIAugust 24, 2026Motion-guided feature serializationOfficial repository contained only a README when checked. Accepted at ECCV 2026; still README-only on October 19.
SNM-VFIAugust 13, 2026Four-frame nonlinear flow, occlusion confidence, flow-guided diffusion and selective fusionNo official executable implementation was verified. The architecture is a useful reference for our own pipeline. An ECCV 2026 workshop paper; training-free on RAFT and the SVD-based Generative Inbetweening weights.
SPEEDJuly 17, 2026One-step synthesis directly in pixel spaceOfficial code, pinned 40fadbe85c88cc6e4015062389da464fd7e85ab9, and weights execute on CPU with the existing native attention fallback. The repository has no LICENSE file, so its code cannot safely be vendored.
Amodal SAMApril 22, 2026Complete object shape should be separated from the visible, occluded maskRelevant architectural evidence; not a model tested on our footage.
FC-VFIMarch 5, 2026Fidelity conditioning and semantic motion guidanceNo executable official release was verified in this search. Published at ICASSP 2026.
LDF-VFIJanuary 2026Joint sequence conditioning using an autoregressive diffusion transformerOfficial code, pinned 61b34d2379df8a313e8e4cb467cc2f74c52b45d7, and weights. The joint CPU benchmark completed: all 17 frames were reviewed and both intervals rejected. See reproduction and limitations. A v2 of the paper was posted on March 30, 2026.

Other 2025–2026 work relevant to this pipeline:

WorkDateUseful ideaStatus and fit
KeyFrame-CompassJuly 2026Benchmark of nine keyframe-conditioned video systems on 386 samplesLTX-2.3 adhered to keyframes best but showed “melting, dissolving, or fluid-like artifacts” under fast motion. This matches the artifacts in these tests.
TGIMarch 2026Training-free inbetweening on Wan2.1-FLF2V-14B (CVPR 2026)Code released without a LICENSE file; GPU-only.
MASSJune 2026Large-motion VFI along flow-guided curved trajectories (ECCV 2026)Improves matching but still warps and blends; not aimed at objects under 40 px.
Multiple-hypothesis flowAugust 2026Keeps top-K correspondences to reduce ghosting from wrong matchesUseful only to refine a match that association has already made.
Go-with-the-TrackJune 2026Multi-reference, track-anchored compositing and motion (SIGGRAPH 2026)Apache-2.0 code; needs a GPU. It can take both endpoint images as references, which makes it the most suitable optional refiner.
FlexComposerJuly 2026Separates an object's own motion from its global displacementUses the same separation as the layered approach here; no runnable code was verified.
StableTrackNovember 2025Re-ID-driven association evaluated at 1 HzHOTA 63.5 on MOT20 at 1 Hz against 15.4–37.4 for Kalman/IoU baselines; no code link found.
LoRFTJuly 2026Road-aligned vehicle trajectory reconstruction from fixed camerasCode and annotations released; 11% lower displacement error than the strongest baseline.
BeyondMasksAugust 2026Object-removal benchmark including shadows and reflections (ECCV 2026)Reports systematic failures in removing shadows and reflections. A measured plate avoids most of this problem.

Roadmap

WhenStepDone when
01 · NowRead the embedded capture time and store raw JPEG bytes. Keep receipt time as a record only.Every capture has a capture time.
02 · NowRepeat heldout tests at capture-time fractions, using samples that include every camera refresh.Heldout reports are regenerated.
03 · NowStop new whole-frame model trials and further upscaling until steps 04–08 are complete.Steps 04–08 are complete.
04 · NextCapture several days per camera, including day, dusk, night and rain, with a stated retention limit.Plate coverage by frame count is published.
05 · NextBuild background plates with registration, time-of-day groups, per-frame gain and offset, coverage maps and masks for changing regions.Plate error on heldout frames is reported.
06 · NextDetect foreground by comparison with the plate, a detector and box-prompted segmentation. Derive transparency and shadows from the plate.Detection recall is reported for day and night.
07 · NextMark each camera's ground plane, lane directions, sidewalks and fixed obstructions.Calibrations are checked against standing pedestrians.
08 · NextBuild the evaluation set: baselines and per-object metrics on subsampled dense datasets.A results table is published on this page.
09 · ThenMatch objects within each camera, smooth their paths, and mark unmatched objects as unknown.Identity switches and the share of unknown objects are reported.
10 · ThenRelease the deterministic renderer: rigid vehicle layers, and pedestrian layers with a walk cycle, fixed colors and short crossfades at observed frames.It outperforms crossfade on per-object metrics and passes visual review.
11 · Before releaseAdd visible labels to generated frames and mark generated spans on the timeline. Label enhanced stills as well.Labels are visible without user interaction.
12 · OptionalIf the rendered layers look artificial, add a GPU refinement step on small crops, subject to the same checks.It outperforms step 10 on the same metrics.

If the deterministic renderer does not outperform a crossfade on per-object metrics, the viewer will continue to show the observed frames without generated motion.

Detailed records

This page is a summary. The detailed records are: