![]() ![]() When users find or create GIFs from other sources and upload them to Gfycat, often those GIFs are much lower quality than the platform is capable of. But most GIFs are low-quality and only support 256 colors. Gfycat is capable of serving GIFs in up to 8K quality. Project Angora uses machine learning to automatically search the web for low-quality GIFs and recreate them in HD with higher frame rates. “With the data we’re gathering from Gfycat AI, we’re able to gain more insights into user behavior, improve search results, and improve the quality of GIFs on the Internet.” “We’re excited about the possibilities opened by these innovative AI projects,” said Gfycat CEO Richard Rabbat, in a statement. In the future, Gfycat will be able to also better understand score data and achievements from gaming-related GIFs. Using the data gleaned from Felix, Gfycat is able to better understand the emotions and memes that are being shared at a given time. Many GIFs uploaded to Gfycat were originally created in a different software application, and in those cases, captions aren’t entered into the Gfycat database. ![]() # mean of first normal Bm = 12.5 # mean of second normal fig, ax = plt.subplots(figsize=(9,6)) # empty fig camera = Camera(fig) for j in range(10): plt.ylim((0, 0.2)) # setting up the limits (or else it will auto ajust plt.xlim((-50, 50)) A = np.random.normal(Am, std, size=(1000)) # creating the 1000-sized normals B = np.random.normal(Bm, std, size=(1000)) A_plot = sns.distplot(A, color='red') B_plot = sns.distplot(B, color='blue') plt.legend(( 'Real Mean A: '.format(np.mean(B)) )) ax.text(0.5, 1.01, "Standard Deviation = "+str(std), transform=ax.transAxes) # making the dynamic title camera.snap() # camera snapshot std += 1 # incrementing the std anim = camera.animate() # animating the plots HTML(anim.Project Felix extracts captions from a GIF to improve tagging and search. I had to pass the calculated label as a tuple because I used two curves, if it was only one I could’ve used just a like plt.legend(), which is simple from celluloid import Camera # getting the camera import matplotlib.pyplot as plt import numpy as np import seaborn as sns from IPython.display import HTML std = 3 # start std Am = 15. I put the current standard deviation on the title and the real mean as the label of each curve. In this example I plotted two normal distributions with distinct means but the same standard deviation and then I changed this standard deviation to evaluate the impact it has on each curve. This is one of the most interesting aspects of celluloid, here we have the capacity to make the plot very dynamic. Image by Author Using dynamic labels and titles Let’s create a simple plot just to demonstrate the basic usage of how to run the code in a Jupyter notebook, but we could also use the method save(‘filename.gif_or_mp4’) from celluloid import Camera # getting the camera import matplotlib.pyplot as plt import numpy as np from IPython.display import HTML # to show the animation in Jupyter fig, ax = plt.subplots() # creating my fig camera = Camera(fig)# the camera gets the fig we'll plot for i in range(10): ax.plot( * 5, c='black') # 5 element array from 0 to 9 camera.snap() # the camera takes a snapshot of the plot animation = camera.animate() # animation ready HTML(animation.to_html5_video()) # displaying the animation Let’s start by installing the library with $ pip install celluloid Using only 50 lines of code to deal with Matplotlib Artists and ArtistAnimations Celluloid creates an animation from the series of images you want to plot into the Camera abstraction. ![]() Even if this makes the coding part harder and more complex, the result generally is much more efficient in communicating my findings and process.īut in Python, there’s always an easier and simpler way and to simplify the animating process, Celluloid was born. Lately, I’ve been growing to use GIFs and quick videos. I really enjoy working with data visualization and I always wonder what’s the best way to provide more direct and intuitive visual interactions when I have to explain some result or complex model. How to create amazing animations in seconds using Celluloid ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |