View on GitHub

ScanNet

ScanNet iOS Scanner App

The scanner app acquires RGB-D scans using a structure.io sensor, stores color, depth and IMU data on local memory and then uploads to the data staging server for processing.

Prerequisites for compilation

Build

Data Formats

Metadata file (*.txt):

colorWidth = 1296
colorHeight = 968
depthWidth = 640
depthHeight = 480
fx_color = 1170.187988
fy_color = 1170.187988
mx_color = 647.750000
my_color = 483.750000
fx_depth = 571.623718
fy_depth = 571.623718
mx_depth = 319.500000
my_depth = 239.500000
colorToDepthExtrinsics = 0.999977 0.004401 0.005230 -0.037931 -0.004314 0.999852 -0.016630 -0.003321 -0.005303 0.016607 0.999848 -0.021860 -0.000000 0.000000 -0.000000 1.000000
deviceId = AA408AE6-80BB-4E45-B6BA-5ECC8C17FB2F
deviceName = iPad One
sceneLabel = 0001
sceneType = Bedroom / Hotel
numDepthFrames = 1912
numColorFrames = 1912
numIMUmeasurements = 4185

Depth data (*.depth): Compressed stream of depth frames from Structure.io sensor. Please refer to the depth2pgm code for an example of how to parse the data.

Color data (*.h264): An H.264 encoded stream of color frames from the iPad camera. Can be converted to sequences of images using ffmpeg through commands such as: ffmpeg -i id.h264 %6d.color.png.

Camera data (*.cam): Stream of iPad camera settings containing exposure information. TODO: Format details

IMU data (*.imu): IMU data is a raw binary format consisting of:

--- Repeats approx. 53 times per second ---
[8-byte capture device up-time sec. represented in double precision IEEE 754 little-endian]
[8-byte x rotation rate (Radians/s, double, RHR)]
[8-byte y rotation rate (Radians/s, double, RHR)]
[8-byte z rotation rate (Radians/s, double, RHR)]
[8-byte x user-caused acceleration vector (G, double, device's reference frame)]
[8-byte y user-caused acceleration vector (G, double, device's reference frame)]
[8-byte z user-caused acceleration vector (G, double, device's reference frame)]
[8-byte x magnetic field (microtesla, double)]
[8-byte y magnetic field (microtesla, double)]
[8-byte z magnetic field (microtesla, double)]
[8-byte roll (Radians, double)]
[8-byte pitch (Radians, double)]
[8-byte yaw (Radians, double)]
[8-byte x gravity vector (G, double, device's reference frame)]
[8-byte y gravity vector (G, double, device's reference frame)]
[8-byte z gravity vector (G, double, device's reference frame)]
----- REPEAT ------

For more information about the IMU data refer to the iOS (CMDeviceMotion API)[https://developer.apple.com/library/prerelease/ios/documentation/CoreMotion/Reference/CMDeviceMotion_Class/index.html].