About

Blood volume changes with each heartbeat, and that changes how much light your skin absorbs. The change is far too small to see, but a camera can measure it. This is remote photoplethysmography.

The pipeline

  1. 1. Face and region detection

    MediaPipe FaceLandmarker locates the forehead and both cheeks each frame.

  2. 2. Skin sampling

    Non-skin and clipped pixels are rejected; the remainder is averaged to one RGB triple.

  3. 3. POS projection

    Plane-Orthogonal-to-Skin combines the three channels into a pulse waveform that is robust to illumination change.

  4. 4. Detrend and band-pass

    A moving-average baseline is removed, then a zero-phase second-order Butterworth filter keeps 0.7–3.5 Hz.

  5. 5. Spectral estimate

    Hann window, 1024-point FFT, parabolic interpolation around the peak — sub-bin resolution matters, as one bin is 1.8 BPM at 30 FPS.

What has been checked

Read the privacy notes before opening the console.