GoProSLAM – Why action cameras work well with monocular SLAM
Historically, monocular SLAM systems tend to get developed and tested using high-end cameras with global shutters. While these usually yield impressive results, the recent market boom of action cameras introduces some properties that are hard to find in the traditional camera market, especially without breaking the bank.
High field of view: an action camera doesn’t live up to its name if it can’t see the action! Large fields of view ensure there is more of the environment available to track.
High resolution: large field of view comes at a cost in that it pushes objects away from the camera, reducing the amount of the sensor they occupy, which makes features hard to measure accurately. Luckily action cameras are all about high-definition. 4K isn’t something that can be found cheaply in a professional vision camera.
High frame-rate: the higher the framerate, the smoother the tracking. Tracking actually gets easier since the frame-to-frame difference is smaller. Action cameras easily exceed 100fps. What’s more, while these cameras typically have a rolling shutter, it is essentially non-perceivable due to the high framerate and wide-angle lens.
Colour: because pointclouds and dense reconstructions are boring in greyscale.
High-dynamic range with fast autoexposure: dramatically under- or overexposed regions will be harder to track.
On a whim, we grabbed a GoPro and captured some videos. A quick calibration later and it was hooked up to the Kudan SLAM system. We chose to use 720p at 60fps for a nice balance of image quality and performance. As it turns out, 1280x720 colour at 60fps is a lot of data to process, but we had just finished our latest round of optimisations so nothing bogged down.
Not bad for 15 minutes work! One interesting thing to note is that the rectilinear GoPro video data looks weird; I guess everyone is used to the fisheye. Rumour has it that there is a way to synchronise multiple GoPros, so stay tuned for a stereo version!