$ show jerredchen/image-as-an-imu
This repository implements the research paper 'Image as an IMU: Estimating Camera Motion from a Single Motion-Blurred Image'. It provides code for training a neural network to estimate camera motion (rotation and translation) from a single motion-blurred image, using synthetic data generated from ScanNet++ and real-world fine-tuning data. The repository includes utilities for processing data from the StrayScanner iOS app, evaluating baselines (COLMAP, DROID-SLAM, MASt3R), and running real-time demos. The core contribution is a model that predicts optical flow, depth, and camera pose from a blurred image, then resolves motion direction ambiguity via photometric consistency checks.
The LLM identified 1 files worth highlighting for reuse:
The find_closest_timestamps_indices function aligns timestamps from two different sensor streams by finding the closest sensor timestamp for each frame timestamp. It is self-contained, uses only NumPy, and is reused across multiple evaluation scripts (COLMAP, DROID, MASt3R, IAAI) and the StrayScanner processing pipeline. This solves a common problem in sensor data synchronization with minimal computational overhead.