BookNotesSlidesP-sets Syllabusdraft · v0.2.49.1
◀▲⌂▶
💬Comments welcome. To leave a note, select any text and click the note / highlight button that pops up — or open the panel with the tab at the top-right (‹). Notes are visible only inside our private review group.
💡 In a hurry? Jump to this chapter’s 1 big lesson ↓

38.3 Motion and video magnification⧉

The human visual system has limited spatio-temporal sensitivity, but many signals that fall below that threshold are perfectly real and perfectly informative. Human skin reddens slightly with each heartbeat as blood pulses through the capillaries, a color change usually too faint for the eye to register, yet it carries your pulse rate. A tall building sways a few millimeters in the wind; a crane, a bridge, a guitar string each tremble at frequencies and amplitudes the eye smooths away. A sleeping infant's chest rises by a hair with every breath. None of this is invisible because the light is missing. A camera can record these changes as small variations in pixel values, provided its exposure, frame rate, noise level, and compression preserve them. It is invisible because the changes are small and we are not built to see small. The goal of this chapter is to amplify subtle temporal variation in ordinary video: take a video and amplify the variations the eye misses until they are plain to see, turning the camera into an instrument that reveals motion and color change otherwise beyond human perception.

The chapter uses a distinction from fluid dynamics: Eulerian versus Lagrangian. There are two ways to watch a moving fluid. The Lagrangian view rides along with a particle: you pick a parcel of water and follow it as it travels, asking where it goes. The Eulerian view stands still: you fix a point in space and watch what flows through it, asking how the velocity at that location changes over time. The same fork confronts anyone who wants to amplify motion in video. The Lagrangian approach tracks features as they move from frame to frame (compute the Chapter 12.8, Optical flow), then redraw each feature at an exaggerated displacement. It works, and it was the first approach Liu et al. 2005, but it inherits all the difficulty of tracking: occlusions, featureless regions, and the brittleness of estimating motion at every pixel. The Eulerian approach refuses to track at all. Sit at a fixed pixel, treat its value over time as a one-dimensional signal, and amplify the temporal variations in that signal. It needs no correspondence, no flow, and no warping, spatial decomposition followed by temporal signal processing at fixed image locations. That choice is what makes Eulerian video magnification simple, fast, and the centerpiece of this chapter.

💡 Big lesson (Eulerian beats Lagrangian for small change)

When the change you want to amplify is small, do not track it. Fix your viewpoint and process the time series at each pixel. Tracking (Lagrangian) is general but brittle: it needs correspondence, which fails on occlusion and texture-less regions. Amplifying-in-place (Eulerian) trades that generality for robustness and speed, and for small motions the trade is favorable: a linear, per-pixel pipeline that parallelizes easily and needs no motion estimation at all. The cost is that the approximation is only valid for small amplitudes and limited amplification; push it too far and it breaks (next sections). Choose the Eulerian frame whenever the signal is subtle and the budget is tight.

fig-eulerian-vs-lagrangian
Figure 38.3.1. The two ways to watch motion. Left (Lagrangian): track a feature as it moves and redraw it at an exaggerated displacement. Follow the particle. This needs per-pixel correspondence (optical flow) and breaks on occlusion and featureless regions. Right (Eulerian): stand at a fixed pixel, plot its value as a one-dimensional time series, band-pass it to isolate the variation of interest, scale that variation by $\alpha$, and add it back. Watch what flows through the location. No tracking, no warping; just per-pixel signal processing. Borrowed from fluid dynamics, the Eulerian frame is what makes motion magnification simple and robust for small changes. After Wu et al. 2012.

38.3.1 The Lagrangian precursor: track, then exaggerate⧉

The obvious approach came first. Motion Magnification Liu, Torralba, Freeman, Durand and Adelson 2005 is the Lagrangian route in full: run Chapter 12.8, Optical flow to recover each feature's tiny displacement $\delta(t)$, cluster the trajectories into coherent layers, scale the displacement $\delta(t)\to(1+\alpha)\,\delta(t)$, and warp the frame to re-render the exaggerated movement. It is physically explicit and intuitive. You measure how far each thing moved and draw it moving farther. It is also fragile: it inherits every failure mode of optical flow, including occlusion, the aperture problem, and sub-pixel error, and estimating tiny motions accurately is precisely the regime where flow is weakest. It is general in principle but brittle in practice, and it cannot touch a pure color change (a pulse) because there is no point to follow. This is the method the Eulerian frame was invented to escape.

Video 38.3.1. Video: Motion Magnification, the Lagrangian precursor: track features, cluster them into layers, amplify their displacement, and re-render to exaggerate otherwise-invisible motions. Liu, Torralba, Freeman, Durand and Adelson 2005 (Liu et al. 2005).
fig-motion-mag-1
Figure 38.3.2. Lagrangian motion magnification. An input clip whose structural motion is too small to see, beside the output in which the tracked features' displacements have been scaled up by $(1+\alpha)$ and re-rendered, so the otherwise-invisible movement becomes plainly visible. After Liu et al. 2005.
fig-motion-mag-2
Figure 38.3.3. The Lagrangian pipeline. Features are tracked to recover each point's tiny displacement $\delta(t)$, the displacements are grouped into layers and amplified to $(1+\alpha)\,\delta(t)$, and the frame is warped to render the exaggerated motion. After Liu et al. 2005.
fig-motion-mag-9
Figure 38.3.4. Reading motion in the space–time volume. A slice through the $(x,y,t)$ video volume shows the trajectory of a feature as a near-vertical sheet whose tiny lean is the small motion; magnification exaggerates that lean. After Liu et al. 2005.

38.3.2 Eulerian video magnification: amplify the time series at each pixel⧉

Start with the easiest version, amplifying a color change, because there the Eulerian recipe is almost too simple to believe. Point a camera at someone's face, hold it steady, and consider a single pixel on their cheek. Plot its value over time and you get a nearly-flat line with a tiny ripple: the ambient color, plus a minuscule periodic reddening synchronized to the heartbeat. The pulse is in that ripple, maybe a fraction of a percent of the signal, utterly swamped. To reveal it:

  1. Pick the band you care about. A pulse at 60 beats per minute is a 1 Hz signal. Choose a band that covers the rates expected in this recording, rather than imposing one narrow band on every person. Build a temporal bandpass filter tuned to that range and run it along each pixel's time series. The filter passes the heartbeat ripple and rejects out-of-band drift and noise; lighting variation, motion, and noise within the selected band remain. This is ordinary one-dimensional signal processing, the Chapter 6.3, Fourier-domain habit of isolating a frequency band, applied along the time axis instead of space.
  2. Amplify it. Multiply the band-passed signal by a factor $\alpha$, say $\alpha = 100$, and add it back to the original. The pixel's mean color is unchanged; only its tiny periodic excursion is now $1+\alpha=101$ times its original amplitude for an ideal unit-gain passband.
  3. Reconstruct. Do this at every pixel and play the video back. The face now visibly flushes and pales in time with the pulse. A signal that was below perception is now unmistakable, and you can read the heart rate straight off the screen (peak-detect the amplified trace and count).

That is the entire algorithm for color magnification: per-pixel temporal bandpass, scale, add back. There is one practical refinement. The pulse signal is spatially smooth (a whole region of cheek reddens together) while the noise is spatially fine, so we first spatially blur or downsample the frame, pooling pixels into a coarse pyramid level, before temporal filtering. Averaging over a neighborhood raises the signal-to-noise ratio (the √N averaging of Chapter 13.2, Denoising by averaging) while sacrificing spatial detail; this is useful when the desired color change is spatially smooth. This is where the linear pyramid of Chapter 6.6, Pyramids and wavelets enters: decompose each frame into spatial-frequency bands, temporally filter and amplify each band, and collapse the pyramid back. Coarse bands carry the clean low-frequency signal; we can amplify them hard and the fine, noisy bands gently or not at all (Figure 38.3.5).

fig-evm-pipeline
Figure 38.3.5. The Eulerian video magnification pipeline. Each frame is first decomposed into spatial-frequency bands with a linear (Laplacian) pyramid, where pooling pixels raises SNR for the smooth signal of interest. Within each band, every pixel's value is a time series that is band-pass filtered to the temporal frequencies of interest (e.g. 0.8–1 Hz for pulse), multiplied by a per-band amplification $\alpha$, and added back. The amplified bands are recombined (the $\Sigma$ collapse) into the output video. The whole pipeline is linear and per-pixel: no motion estimation, no tracking. After Wu et al. 2012.
Video 38.3.2. Video: Eulerian Video Magnification for Revealing Subtle Changes in the World. Amplifying subtle per-pixel color and motion changes (a pulse, a breath) with no tracking. Wu, Rubinstein, Shih, Guttag, Durand and Freeman 2012 (Wu et al. 2012).

38.3.3 Why amplifying brightness amplifies motion⧉

Color magnification is intuitive because we directly scale the color change. The same operation, amplifying a brightness variation in place, also amplifies motion, even though we never tracked anything or moved a single pixel. It rests on the same first-order link between intensity and motion that underlies Chapter 12.8, Optical flow.

Here is the principle, in one dimension. Consider an edge, an intensity profile $I(x)$ that ramps from dark to light, and suppose between two frames the whole profile shifts by a tiny amount $\delta$. The new frame is $I(x - \delta)$. For a small shift, the first-order Taylor expansion says

$$ I(x - \delta) \;\approx\; I(x) \;-\; \delta\,\frac{\partial I}{\partial x}. $$

Read it in words: a small spatial motion $\delta$ shows up, at a fixed location $x$, as a small temporal change in brightness equal to $-\delta$ times the local image gradient. The motion and the brightness wiggle are the same thing to first order, which is exactly the brightness-constancy relation of optical flow. Now do the Eulerian move: take that temporal brightness change $-\delta\,\partial I/\partial x$, multiply it by $\alpha$, and add it to the already shifted frame. The reconstructed signal becomes

$$ I(x) \;-\; (1+\alpha)\,\delta\,\frac{\partial I}{\partial x} \;\approx\; I\big(x - (1+\alpha)\,\delta\big). $$

The amplified frame looks just like the original profile shifted by $(1+\alpha)\,\delta$, so the motion has been magnified by the factor $(1+\alpha)$, without our ever estimating $\delta$ or warping anything. We amplified a brightness ripple at a fixed pixel and got an exaggerated motion for free, because for small displacements the two are linearly interchangeable. This is why the Eulerian method works: it converts the hard geometric problem of motion amplification into the easy signal problem of brightness amplification (Figure 38.3.6).

fig-evm-motion-from-brightness
Figure 38.3.6. Why amplifying brightness amplifies motion. An intensity edge $I(x)$ shifts by a tiny amount $\delta$ between frames. By first-order Taylor expansion, that motion appears at a fixed pixel as a brightness change $-\delta\,\partial I/\partial x$, so motion and temporal brightness variation are the same thing to first order (brightness constancy). Amplifying that brightness variation by $(1+\alpha)$ and adding it back reconstructs the edge shifted by $(1+\alpha)\delta$, so the motion is magnified, with no tracking and no warping. The approximation holds only while $\delta$ is small relative to the spatial wavelength $\lambda$; beyond that the Taylor term is no longer accurate and the amplified edge breaks up. After Wu et al. 2012.

The same derivation tells us where it breaks, and we should not gloss over it (this is the method's central limitation). The Taylor expansion is only good while the displacement $\delta$ is small compared to the spatial wavelength $\lambda$ of the image structure, small compared to how fast the brightness varies in space. Amplify too hard, or apply the method to a motion that is already not-so-small, and $(1+\alpha)\,\delta$ outruns the linear regime: the added term no longer equals a clean shift, and the edge breaks up into ringing, halos, and amplified noise rather than moving cleanly. There is therefore a limit: the usable amplification $\alpha$ depends on the spatial wavelength $\lambda$, beyond which the intensity-based method degrades. Sharp, high-frequency structure (small $\lambda$) tolerates the least amplification; smooth, blurry structure (large $\lambda$) the most. The fix for this limit is the next section's subject.

38.3.4 Phase-based magnification: move the motion into phase⧉

The intensity method amplifies $\delta\,\partial I/\partial x$, a quantity that mixes the motion $\delta$ with the image's own contrast $\partial I/\partial x$, so noise (which also has a gradient) gets amplified alongside signal, and the small-displacement assumption is tight. Phase-based video motion processing Wadhwa et al. 2013 reduces these problems by changing what we amplify. The key fact comes from the same place as the Fourier shift theorem: when a signal translates, the amplitude of its frequency components is unchanged and the entire motion is carried in their phase. Shift a sinusoid and you don't change how big it is, only where its peaks fall, which is its phase. So instead of amplifying a brightness difference, measure the local phase and amplify the phase variation over time.

Concretely, decompose each frame with a complex steerable pyramid, a Chapter 6.6, Pyramids and wavelets whose sub-bands are localized in space, scale, and orientation and come with a local phase at every pixel (like a local Fourier transform). A small local motion shows up as a small change in that local phase over time. Now run the Eulerian recipe on the phase signal: band-pass the temporal phase variation, multiply by $\alpha$, and resynthesize the pyramid with the phases shifted. For a locally sinusoidal component, phase shift represents translation. Adding $\alpha$ times the filtered phase variation gives a total factor of $1+\alpha$ for motion in the passband. Phase wrapping, low-amplitude bands, occlusions, and motion beyond the spatial support still limit this approximation.

This buys two real improvements. First, less noise: the method keeps sub-band amplitudes unchanged instead of multiplying their fluctuations. Phase estimates are still noisy when contrast is weak, so amplitude-weighted smoothing and reliable-band selection matter. Second, larger amplifications before breakup: working in phase respects the structure of translation better than the first-order intensity approximation, so you can push $\alpha$ much higher before edges fall apart. The cost is more computation: a complex, oriented, multi-scale pyramid instead of a plain Laplacian one, but the quality gain is large enough that phase-based processing is the method of choice when the budget allows. (A faster, real-time variant uses a Riesz-pyramid approximation of the same idea Wadhwa et al. 2014.)

Video 38.3.3. Video: Phase-Based Video Motion Processing. Magnifying motion from the phase of a complex steerable pyramid, far cleaner than amplifying intensity. Wadhwa, Rubinstein, Durand and Freeman 2013 (Wadhwa et al. 2013).
fig-video-magnification-demo
Figure 38.3.7. Try it yourself. Choose one of the classic Wu/Wadhwa clips, such as baby, baby 2 and baby blanket (pulse and breathing), face and face 2 (pulse), crane, guitar, balance, camera and subway (tiny motion), each loading with a sensible default band and amplification, or upload your own steady video. Set the temporal band with two cutoff frequencies and an amplification $\alpha$, and toggle between linear (intensity) and phase-based magnification. Watch the linear method reveal a pulse cheaply but halo and buzz when pushed hard, and the phase-based method stay clean at much larger $\alpha$, which makes the chapter's trade-off visible in the browser.

38.3.5 What it reveals: vital signs, structures, materials, modes⧉

With a near-free microscope for temporal change, the applications fall out by choosing which temporal band to amplify and where to point the camera.

Vital signs, contactlessly. Tuned to an appropriate band, color magnification can reveal pulse-related changes in facial video without an electrode touching the skin. Demonstrations have compared recovered rates with contact measurements; agreement depends on motion, lighting, skin visibility, and camera quality. This is the basis of remote photoplethysmography Poh et al. 2010 (rPPG), recovering vital signs from an ordinary webcam. Tuned to the breathing band it reads respiration. This is medicine's interest in the method: monitoring the fragile (premature infants, burn patients) where contact sensors are awkward or harmful.

Structural and material analysis. Point the camera at a building, a crane, or a bridge and amplify the sub-hertz band, and the structure's gentle sway under wind and traffic becomes visible. This gives a non-contact way to watch how a structure deflects and where it is stiff or slack. Amplify a guitar's body or a wine glass and you can see it ring. Quantitative displacement measurement also needs image-scale calibration and a valid motion model; knowing the display amplification $\alpha$ alone does not give displacement in millimeters.

Vibration modes. Drive an object at its resonant frequencies and different parts move in characteristic patterns, the modal shapes illustrated by Chladni plates (sand on a vibrating plate collecting at the still nodal lines) and with laser interferometry. Motion magnification reveals these modes passively, from ordinary video, by amplifying each resonant temporal band in turn and watching which regions of the object move together and which stay nodal. This is the bridge to the next chapter: an object's tiny, mode-shaped vibrations, made visible here, also carry sound, and recovering that sound from the same kind of micro-motion is the visual microphone.

fig-evm-pulse-result
Figure 38.3.8. Eulerian magnification at work. Top: color magnification (≈0.8–1 Hz, $\alpha\approx100$) makes a face visibly flush and pale with each heartbeat; peak-detecting the amplified trace recovers a pulse rate that matches a contact EKG, so the vital sign is read with no sensor on the skin. Bottom: motion magnification (sub-hertz to tens-of-hertz bands) reveals otherwise invisible movement, such as a wrist's pulse (radial/ulnar), a crane or building swaying, a string or wine glass ringing at its resonant mode. The recovered motion is quantitative (we set $\alpha$), so the same video serves as a measurement of vital signs, structural deflection, and vibration modes. After Wu et al. 2012 and Wadhwa et al. 2013.
fig-eulerian-video-magnification
Figure 38.3.9. Eulerian video magnification on real footage, the color (pulse) result. An ordinary video of a face, band-passed at the heart-rate frequency and amplified ($\alpha\approx100$), makes the otherwise-invisible flush and pallor of each heartbeat plainly visible; the per-pixel temporal trace yields a pulse rate with no contact sensor. After Wu et al. 2012.
fig-motion-magnification
Figure 38.3.10. Eulerian video magnification on real footage, the motion result. Amplifying the sub-hertz temporal band of a video of a sleeping baby makes its otherwise-invisible breathing clearly visible, and the same processing exaggerates a structure's sway or a resonant ring, all with no tracking or warping, just amplified per-pixel temporal variation. After Wu et al. 2012.
Video 38.3.4. Video: Revealing Invisible Changes in the World. A reel of Eulerian video-magnification results: a face flushing with the pulse, a wrist's beat, a breathing baby, and structures swaying, all pulled from ordinary video by amplifying per-pixel temporal variation (Wu et al. 2012).

By refusing to track and instead doing per-pixel signal processing, motion magnification trades generality for a method that is linear, fast, and robust in exactly the regime that matters, small and subtle change, at the price of a small-amplitude approximation that phase-based processing then loosens. It is a near-perfect instance of the book's measure-then-process stance: when the camera preserves enough of the small temporal signal, processing can make it visible. The next chapter takes the same instrument and listens to it.


Recap: big lessons of this chapter

💡 Big lesson (Eulerian beats Lagrangian for small change)

When the change you want to amplify is small, do not track it. Fix your viewpoint and process the time series at each pixel. Tracking (Lagrangian) is general but brittle: it needs correspondence, which fails on occlusion and texture-less regions. Amplifying-in-place (Eulerian) trades that generality for robustness and speed, and for small motions the trade is favorable: a linear, per-pixel pipeline that parallelizes easily and needs no motion estimation at all. The cost is that the approximation is only valid for small amplitudes and limited amplification; push it too far and it breaks (next sections). Choose the Eulerian frame whenever the signal is subtle and the budget is tight.