Change Detection
Change detection compares two photos of the same place taken at different times and keeps only what really changed, ignoring light and season shifts.
Why Does This Exist?
A single satellite picture tells you what is there. Cities, farms, and relief teams need what appeared, vanished, or flooded since last month. Eyeballing two dates fails at scale: a city tile holds millions of pixels, and sun angle plus crop growth repaint every field even when nothing important moved.
Change detection exists to turn a pair of repeat views into an honest change mask. Input is two coregistered images of the same ground plus their acquisition dates. Output is a per pixel label for changed versus stable, often with a change magnitude. The umbrella is remote sensing; the per date land labels come from satellite analysis and land cover. Motion cousins that track pixels between frames live in optical flow.
Use it when you have repeat passes of one place and a question about difference. Use single image classification when you have one date only.
Think of It Like This
Two dated tracings on a light table
You trace a street map onto thin paper in spring, then lay the tracing over a fresh autumn print on a light table. You pin two church corners so the sheets cannot slide, then circle only ink that misses its old line. Faded pencil from sun is not a new road.
Coregistration is pinning the corners. The difference threshold is your rule for how far ink must miss before you circle it. The analogy stops at automation: the model must also forgive shadows and crop cycles that you would forgive at a glance.
How It Actually Works
Start with coregistration: warp the second image onto the first so one pixel means one ground cell in both. Normalize for sun and atmosphere, often by matching stable surfaces. Then difference: per pixel change magnitude in gray levels or in a band index. Threshold splits the histogram into stable versus changed. Post steps clean speckle with a majority filter and drop tiny regions below a minimum mapping unit.
Worked example
Two gray patches share 9800 stable pixels and 200 flooded pixels. Stable pixels differ by about levels from sensor noise. Flooded pixels jump by about levels from water darkening. Pick . Stable pixels pass at . Flooded pixels fire at . The mask reports changed pixels. At m ground sampling each pixel covers square meters, so the flood covers square meters. Raise to and the flood vanishes from the map, which shows why the threshold is a policy choice, not a constant.
Watch Out For
Misregistration that paints edges as change
A shift of even one pixel makes every road edge and roof edge differ strongly. The symptom is thin change outlines tracing all straight features, with interiors stable. Fix it by checking coregistration on stable corners before differencing and by dilating the no change mask around strong gradients.
Seasonal change drowning the signal you want
Crops green up by levels between spring and summer, larger than a new shed at levels. A raw difference map reports the whole farm as changed. Fix it by differencing stable indices, masking crop cycles with land cover labels, or comparing same season dates.
The Quick Version
- Change detection takes two coregistered views and returns a changed versus stable mask.
- Coregistration plus radiometric normalization comes before any subtraction.
- Change magnitude plus a threshold makes the decision per pixel.
- The fixture finds flooded pixels at because .
- Report change in ground units and state alongside every map.