Introducting Microsoft Hyperlapse

Hello everyone,

Usually the ISG site is filled with posts that apply to business processes and to various sysadmins, but every once in a while, we like to throw in some fun things.

Most people know Microsoft as the company behind Windows, Exchange, Lync, Office, Azure, and every joke possible on slashdot. However, the skunkworks at Microsoft also get to take part in some very fun and interesting projects that have nothing to do with operating systems or office products.

Hyperlapse is one of those projects.  Expand the post to learn more for it's really quite amazing!



The basic idea of hyperlapse is to take a first-person video (one that you might have recorded with a Go-Pro strapped to your head), and make it interesting. Nobody wants to watch a 3 hour bike ride in real time, and nobody wants to watch it with the insane amount of camera shake that usually accompanies the traditional sped up timelapse.

Here's a quick video from Microsoft showing it in action:



As you can see, the difference is staggering. It almost looks like a video game with how smooth it is. As much as the smoothness is pleasing to the eye, my only problem with it is that you lose some of that sense of speed. Of course, this was only a demo video, so I'm sure that once this is available for everyone, people will make some fantastic videos.

So how does it work, and how is it different from a traditional timelapse video? Traditionally, most timelapse videos that you see are a compilation of pictures taken at a certain interval, and then played back at either 24 or 30 frames per second. You can have a DSLR setup to take a picture of something every 1 second, or every 5 seconds (or any interval, really, depending on what kind of look you are going for), and then when it is played back, the result is a sped up video of the sequence of events. (Personally, I'm a huge fan of timelapses of various star systems)

Timelapses done in first person cameras are a bit different. Your standard Go-Pro will record your video at 24 frames per second, and then your software will pluck every 10th frame, and play those back at 24 FPS. The result is a 10x sped up video. However, due to natural head motions, the video will look quite jerky. Some stabilization can be applied, but since you are only using every Nth frame, the software can only do so much to line up the video.

Hyperlapse is a bit different. Instead of plucking every Nth frame and sticking it in a video timeline, it does a lot more analysis of the video in order to achieve that result.  Basically, it does a deep analysis of the video and constructs a 3D model of the place you went. It then takes the erratic path of your camera and creates a virtual path through the video.


As you can see in the image to the left, the gray tunnel looking thing is the actual path your head/camera took while recording the video. It looks pretty erratic, with lots of changes in all directions.

If you take a look at the red line, that is Microsoft's algorithm figuring out the best and smoothest path that the video SHOULD take.

After that path is figured out, the software takes each frame of video and analyzes it further. It then creates a rendered image that is composed of the common parts of the frames all nice and smoothed out.

For a more technical explanation that shows this more clearly, take a look at the following video:







The official Microsoft site is here: http://research.microsoft.com/en-us/um/redmond/projects/hyperlapse/ and they even provide a nice 30MB PDF with all the technical details that are way above my head.

Looks very cool, and I can't wait to see the apps they come out with and the projects people create using this technology.

Labels: , ,