Technical Field Note #06 · October 2026
How Head Rotation Blurs Egocentric Video | Origin Data Lab
Sharpness loss per pixel of gyro-predicted blur, rotation limits per exposure time, and an IMU-based blur flag — measured on a head-mounted stereo rig and a body-worn phone
Every egocentric frame is exposed while the wearer moves. We measured how much that costs on 3,600 frames from a head-mounted stereo camera with per-frame exposure times (median 10.04 ms) and 3,957 frames from two phone captures of cooking tasks. Gyro-predicted blur tracked measured sharpness (Spearman ρ = -0.62); sharpness fell to 77% of nearby still frames at 0.75–1 px and 61% at 1.5–2 px. A gyro-only flag identified frames that lost more than 40% sharpness with AUC 0.92 on the rig and 0.88–0.93 on the phones. All values were re-computed from the source recordings for this release.
Problem
Blur Is the Quality Loss Nobody Reports
Egocentric datasets report resolution, frame rate and IMU rate. They rarely report how many frames were smeared by the wearer’s own head motion — even though blur removes the edges and corners that hand tracking, object detection, visual-inertial odometry and learned visual features depend on.
b_{px} = \omega_{\circ/s}\cdot t_{exp}\cdot f_{px/\circ}
Data
Two Cameras, Three Recordings
| Recording | Frames | Image | Exposure recorded | IMU |
|---|---|---|---|---|
| Stereo rig (head-mounted) | 3,600 | 1600×1200, 30 fps | Yes, median 10.04 ms | 501.7 Hz, same clock |
| Phone · knife prep | 1,979 | 1920×1080, 30 fps | No | 410.6 Hz, +188 ms aligned |
| Phone · seasoning | 1,978 | 1920×1080, 30 fps | No | 410.6 Hz, +200 ms aligned |
Method
Predicting Blur From the Gyroscope
Gyro samples inside each frame’s exposure window give the mean angular velocity; a map fitted to optical flow (R² = 0.974) projects it to pixels.
ω̄ = mean(gyro[t_exp_start : t_exp_start + t_exp]) # rad/s, 3 axes
blur_px = | A · ω̄ | · t_exp # A: 2×3 map, px per rad
rule of thumb: blur_px ≈ ω[°/s] · t_exp[s] · f[px/°]
For the phones, exposure time is not recorded, so results are reported against rotation rate directly (±16.7 ms gyro window after the +188/+200 ms video–IMU alignment).
Results
Sharpness Falls Steadily From the First Pixel

| Predicted blur | Frames | Median rotation | Relative sharpness | Relative FAST corners |
|---|---|---|---|---|
| 0–0.25 px | 1,052 | 3 °/s | 1.03 | 1.01 |
| 0.25–0.5 px | 1,158 | 5 °/s | 0.93 | 0.97 |
| 0.5–0.75 px | 534 | 8 °/s | 0.85 | 0.92 |
| 0.75–1 px | 279 | 11 °/s | 0.77 | 0.86 |
| 1–1.5 px | 292 | 15 °/s | 0.71 | 0.83 |
| 1.5–2 px | 129 | 21 °/s | 0.61 | 0.80 |
| 2–3 px | 114 | 29 °/s | 0.57 | 0.70 |
| 3–6 px | 42 | 45 °/s | 0.34 | 0.56 |
Phone vs Head-Mounted Rig
More Pixels per Degree, More Blur per Degree

| Rotation rate | Stereo rig (head) | Phone · knife prep | Phone · seasoning |
|---|---|---|---|
| 0–5 °/s | 1.00 | 1.00 | 0.99 |
| 5–10 °/s | 0.88 | 0.80 | 0.88 |
| 10–20 °/s | 0.73 | 0.56 | 0.63 |
| 20–40 °/s | 0.60 | 0.31 | 0.37 |
| 40–80 °/s | 0.34 | 0.15 | 0.23 |
| 80+ °/s | — | 0.05 | 0.05 |
| Frames above 20 °/s | 6.8% | 13% | 22% |
| Frames above 40 °/s | 0.9% | 4.7% | 10% |
| 99th percentile rotation | 40 °/s | 121 °/s | 144 °/s |
Where Blur Lives
The Worst Frames Cluster in Non-Task Head Turns

In Production
Capture Settings and a Gyro-Based Blur Flag
| Exposure | 1 px blur · 8.4 px/° | 3 px blur · 8.4 px/° | 1 px blur · 20 px/° | 3 px blur · 20 px/° |
|---|---|---|---|---|
| 2 ms | 59 °/s | 178 °/s | 25 °/s | 75 °/s |
| 4 ms | 30 °/s | 89 °/s | 12 °/s | 38 °/s |
| 8 ms | 15 °/s | 45 °/s | 6 °/s | 19 °/s |
| 10 ms | 12 °/s | 36 °/s | 5 °/s | 15 °/s |
| 16 ms | 7 °/s | 22 °/s | 3 °/s | 9 °/s |
\omega_{1px} = \frac{1}{t_{exp}\, f_{px/\circ}}Evidence Status
What Is Verified, Estimated or Not Evaluated
| Claim | Status |
|---|---|
| Gyro→image map fit R² = 0.974 | Verified (reproduced from source recordings) |
| Spearman ρ = -0.62 (predicted blur vs relative sharpness) | Verified (reproduced) |
| Sharpness and corner retention by blur bin | Verified (reproduced) |
| Gyro blur flag AUC 0.92 / 0.88–0.93 | Verified (reproduced) |
| 8.42 px/° at the image centre | Verified in Field Note #04 (mode-matched calibration); used here as an input |
| Camera–IMU offset −1.1 ms (rig), +188/+200 ms (phone) | Estimated (video–gyro fitting, Field Notes #03 and M1 validation) |
| Phone ≈17–22 px/° | Estimated (focal length back-computed from video–gyro fitting) |
| Phone loses more sharpness per degree because of more pixels per degree | Interpretation |
| Effect on a specific model, rolling-shutter skew, translation blur | Not evaluated |
Reproducibility
Re-running the Analysis
python analysis/summarize_from_csv.py analysis/data/stereo_rig_frames.csv analysis/data/phone_frames.csv analysis/results_fn06.json
# full pipeline from the (non-public) source recordings:
python analysis/reproduce_fn06.py config.json OUTPUT_DIR
Limitations
- The gyroscope sees only camera motion; blur from fast hands and tools is not predicted.
- Laplacian variance and FAST corner counts on H.264 video are proxies; the effect on a specific model must be measured in that model’s pipeline.
- One head-mounted session (120 s) and two phone sessions (66 s each) with different operators and tasks; rig-vs-phone differences are observations, not controlled comparisons.
- Rolling-shutter skew and translation blur are not modelled.
- Phone exposure time was not recorded; phone results are reported against rotation rate only.
- Frames without a low-motion reference within ±3 s are excluded from relative sharpness (113 frames in the seasoning recording).
Frequently asked questions
How much motion blur is acceptable in egocentric training video?
In our head-mounted stereo capture, median sharpness was 77% of nearby still frames at 0.75–1 px of predicted blur and 61% at 1.5–2 px, while detectable corners fell less (86% and 80%). A practical starting point is to flag frames above about 1.5 px for review and agree a task-specific threshold with the buyer.
How fast can a head-mounted camera rotate before frames blur?
Blur length is rotation rate × exposure time × pixels per degree. With a 10 ms exposure and 8.4 px per degree, 1 px of blur occurs at about 12 °/s; our measurement put 1 px at 11–15 °/s. A camera with about 20 px per degree reaches 1 px at about 5 °/s for the same exposure.
Can an IMU detect blurred video frames?
Yes, for blur caused by camera motion. Gyro rate integrated over each frame’s exposure separated frames that lost more than 40% sharpness with an AUC of 0.92 on the stereo capture and 0.88–0.93 on two phone captures. It cannot see blur from fast-moving hands or tools.
Does a phone or a head-mounted camera blur more?
In our captures the phone lost sharpness faster per degree per second, consistent with its roughly 2–2.6× more pixels per degree, and its wearer rotated faster: 13%–22% of phone frames exceeded 20 °/s versus 6.8% for the head-mounted rig. Tasks and operators differed, so this is an observation, not a controlled comparison.
What exposure time should be used for egocentric robot-learning capture?
As short as lighting allows. Halving the exposure halves blur length at the same rotation. When the device reports per-frame exposure time, store it, because it is needed to predict blur from the gyro.
Can the per-frame results be reproduced?
Yes. The public per-frame CSV files and the included script recompute every aggregate in this note; the full pipeline was re-run from the source recordings and matched all 120 previously published values exactly.
Physical AI Data Collection
Explore real-world capture programs for challenging motion conditions.