Sample project
Low-light robot footage: 42 frames in, 14 usable out
Data processing


- Data
- Video · 960×540 frames
- Volume
- 42 frames (10.5 s at 4 fps)
- Status
- Sample project
The problem
Robot teams collect hours of footage that is too dark, too shaky or too repetitive to label well. Labeling all of it wastes money; throwing it away wastes data.
What we did
- Scored every frame for sharpness (variance of the Laplacian), brightness and near-duplication (difference hash)
- Removed 20 near-duplicates, 5 motion-blurred and 3 black frames
- Recovered 13 dark frames with normalisation, adaptive contrast (CLAHE) and light sharpening
- Logged the verdict and reason for every frame
Result
14 of 42 frames kept, 13 of them recovered from near-black, with a per-frame log of what was removed and why.
Every frame, scored

Sample output
The first rows of the per-frame log delivered with the cleaned set: brightness, sharpness and the verdict for every frame.
cleanup.csvexcerpt
frame,mean_luma,sharpness,verdict
f001,26.9,453.9,kept: enhanced
f002,27.9,497.9,rejected: near-duplicate
f008,8.3,49.0,rejected: motion blur
f009,5.4,4.2,rejected: blackSource footage: SAFFiR (US Navy / Office of Naval Research), public domain — 10.5 s, sampled at 4 fps. Frame scoring, filtering and enhancement by Annoroid. The US Navy does not endorse Annoroid.