The Technology Behind Hyperlapse from Instagram
instagram-engineering.tumblr.com
instagram-engineering.tumblr.com
Also note that they are using entirely different methods. Microsoft's approach analyzes the content of individual frames to model the camera's position and rotation in 3D space while Instagram uses the iPhone's gyroscope.
[1] https://news.ycombinator.com/item?id=8227321
[2] http://en.m.wikipedia.org/wiki/Hyperlapse
via https://news.ycombinator.com/item?id=8227330
edit: On a side note, I'd like to point out that each approach has very interesting merits:
Microsoft's method can be applied to any video file, but requires more substantial CPU usage. Since instagram isn't analyzing video content, but instead cropping the input video based on gyroscope data, it requires much less processing time and can be done on the fly on a mobile device.
Microsoft's method can even render an entire scene from its 3D model (see their mountain climbing example where the helmet-mounted camera looks in an entirely different direction) while Instagram's method crops input video frames based on gyroscope data. This makes Microsoft's method more robust, but much less practical on a mobile device. Each method makes different trade-offs.
My impression of Microsoft Research is that they are like PARC: doing a lot of impressive research that rarely gets turned into compelling products.
The Kinect was a big payoff from MSR. What are some others?
As a research division, they are expected to focus on long plays by developing enabling technologies. Packaging that prototype in a simple mobile app for use by hundreds of thousands of people, for free, wouldn't move the needle very much for MS as an organization.
I'm not trying to defend MS/MSR, just trying to be pragmatic. It's up to MS leadership to incorporate cutting edge research into meaningful products.
Edit: you can also make Deep Zoom images offline in the Image Composite Editor, but that's been around for a long time. https://research.microsoft.com/en-us/um/redmond/groups/ivm/I...
The same team also delivered F#, which might have a large impact on keeping .Net competitive. Not only because features trickle down into C# (like async). But also because there may be lots of people only staying on .Net due to having a good language option. (That's just my own impression. I'd personally leave .Net without F#. I'm probably overestimating the impact.)
There's some additional interesting information in the paper's corresponding video overview[3]. For instance, it also does rolling shutter correction by treating each row of the video as separate time periods, computing a separate warp for each.
There's also an early version of the source code available on github: https://github.com/alexgo1/Video-Stabilization
[1] http://graphics.stanford.edu/papers/stabilization/karpenko_g...
[2] http://luma.io/
When I reached the office and stopped the recording, the app would just hang with the text "Processing".. I left it processing for about 4 hours, with no progressbar or anything like it. I ended up giving up, closing the application and rebooting the iPhone. When I launched the program again, it had an error similar to "something bad happened" with a couple of options..
I don't think I'll try be using this program again.
I'm not even sure what this response has to do with the hacker mentality...
I wonder how troublesome it is to keep the gyro stream and the frame stream in sync.
A MS like product that is general purpose or GoPro and others start integrating gyroscopes into their products to take advantage of this similar technology.
The MS presentation really resonated with me since I do take a lot of video from my mountain biking trips but much of it is not interesting or hard to watch. I don't think I'll ever strap my iPhone to my chest so I'd like an action cam setup that can also deliver these types of videos.
In any case, this 'hyperlapse' processing is cool and I want to use it (just not on instagram).
Also, why try it in poor lighting? 90% of video/photography is about having appropriate lighting.
This bypasses that.