Hacker News new | past | comments | ask | show | jobs | submit login
An Algorithm to Extract Looping GIFs from Videos (zulko.github.io)
277 points by StylifyYourBlog on Feb 11, 2015 | hide | past | favorite | 25 comments



We will say that a video segment loops well when its first and last video frames are very similar.

It's a reasonable approximation. However really perfect loops have not only matching positions of the objects but perfect speeds too. I would calculate optical flows and compare them at the first and the last frames too and somehow put it into the distance function.

One example: this algorithm would find the half period of a pendulum perfectly loop. Taking optical flows into account would fix this.


Yes. For instance, suppose a point-like object is moving on a flat plane, in a repeating figure eight path. The ideal repetition unit is one cycle of the entire figure eight. But by the frame similarity heuristic, we will find that the cross in the figure eight creates two identical positions which give rise to a half-cycle of the figure eight also being considered viable. In this half cycle, the point abruptly changes direction at the cusp of a tear-drop path.


I don't think it can be generalized like that, what if you want to loop a bouncing ball and start the loop at the moment the ball hits the floor?


Note that it is only possible to make a video looping if the entropy does not increase visibly in it.



I was hoping Microsoft would turn this into a product.

They did bring Cliplets[1] and eventually the Cinemagraph app for Windows Phones[2], but neither of those have any intelligence to them.

The only benefit they provide over a video editor is that you can paint a mask to specify the area of the video to loop. The loops still turn out jumpy, unless you do all the manual work, as mentioned in the article itself.

[1] http://research.microsoft.com/en-us/um/redmond/projects/clip...

[2] http://www.windowsphone.com/en-us/store/app/lumia-cinemagrap...


The automated video looping paper is a fascinating one… much better … however it's patented. Anybody knows what is the position of Microsoft about the patents they own and describe in their research paper ?


You could try contacting them through Twitter about that


I have done that, their email is on their papers … no reply


Chrome blocked me from downloading loopFindr as malicious.


Very cool concept and article.

You may also notice that many of these looping gifs are done in much simpler way by just playing part of a video and then playing it in reverse.


This so called pingpong style method can create a loop out of any source material, but the result will most likely look unnatural since you're reusing frames and it only works quite convincingly for pendular motions. The method described here finds naturally appearing loop candidates in any video stream and is way more flexible.


So you could just check if the frame i is similar to the frame n-i?


The idea is that frame 0 is similar to frame 0, and also that frame n is similar to frame n. (The resulting gif is 2n - 2 frames long.)


I'm missing something. I don't really understand the first part of what you said...


You just play it normally once, then in reverse. Then it loops around.


I assume something has broken, but this article makes no sense to me. It's full of sentences like:

"If is very similar to , and is different from , then we do not need to compute to know that and are also very different."


It uses MathJax to render LaTeX. Probably you have blocked the script or it's not loaded.


I don't think it's rendering correctly for you: http://i.imgur.com/vCmW52W.png


Do you have HTTPS Everywhere installed? Their JavaScript is hosted on HTTP, so it gets blocked with a mixed content warning on Firefox (probably on Chrome too).


Do you have Javascript enabled?

(The page is running MathJax to convert MathML to HTML + CSS)


The article uses a lot of MathML, which seems to be parsed for display by the MathJax JS library.


With a better, faster algorithm, probably with some help from a GPU, this could become a new app. There's already "http://loopc.am/", but it's not as good. Then cash out by selling out to Instagram. Also use to jazz up real estate ads.


Isn't this just k-NN? I mean: one can reduce this problem to k-NN by first loading the database with all video frames, and then performing queries using frame 0, frame 1, etc.

There are good tree algorithms[0] and implementations[1][2] for executing k-NN queries. These implementations also exploit the properties of the triangle inequality.

[0] http://en.wikipedia.org/wiki/Ball_tree

[1] http://mlpack.org/doxygen.php?doc=nstutorial.html

[2] http://scikit-learn.org/stable/modules/neighbors.html#neighb...


Slightly misleading to say the summed colour value difference between the frames a distance that's analogous to a geometric distance, geometric distance measures on data with high numbers of dimensions becomes useless, as the dimensionality increases the difference between 'near' and 'far' tends towards zero.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: