All posts by James Sutton

Deep Dive into Parallelized Video Processing

Where it all began

At Algorithmia, one of our driving goals is to enable all developers to stand on the shoulders of the algorithmic giants. Like Lego our users can construct amazing devices and tools by utilizing our algorithmic building blocks like FaceDetection or Smart Image Downloader.

As a platform, Algorithmia is unique in that we’re able to scale to meet any volume of concurrent algorithm requests, meaning that even though your algorithm might be making 10,000 API requests to a particular image processing algorithm, it won’t influence the experience of other users quality of service.

One of the earliest projects I worked on at Algorithmia was to construct a video processing pipeline which would leverage our existing image processing algorithms as building blocks. The project was designed to improve the reach of our image processing algorithms by automatically enabling them to become video processing algorithms.

After the first couple of weeks the first Interface and process flow was starting to come together and by using ffmpeg we were able to easily split videos into frames and concatenate them back into any video format we wanted. However, it quickly became apparent how fragile this initial process flow was, and how difficult it was to use for an end user. Read More…

Introduction to Video Metadata Extraction

Last week we talked about how Video Transform was able to change the way users handled video transformation tasks. What’s even better than being able to Transform Videos at will? Getting actual, structured information out of them! This week we introduce you Video Transform’s sister, Video Metadata Extraction.

What’s the difference between Metadata Extraction and Transform?

videoMetadataExtraction.png

Video Metadata Extraction is a Rust algorithm which functions very similarly to Video Transform, however instead of utilizing algorithms that transform images, it uses algorithms that classify or extract information from images, and returns the information in a structured, timestamped json array file.

This key difference unlocks a whole universe of potential, allowing us to extract any kind of information from any video, given we have the right image processing algorithm. Read More…

Introduction to Video Transform

At Algorithmia, we have strived to develop a variety of powerful and useful image transformation algorithms that utilize cutting-edge machine learning techniques. These are the building blocks which let any developer build more complex algorithms and solve harder problems, regardless of their preferred language and development platform.

Video Transform is a direct extension of this work. It allows users to transform videos on a frame-by-frame basis, using any existing or future image transformation algorithm on the Algorithmia marketplace. Read More…

Introduction to Color Scheme Extraction

An algorithm for color scheme extractionAs an artist, inspiration can come from anywhere: a particular texture, a design, or even a color scheme.

Instead of spending hours painstakingly extracting the hex codes from all of the important sections of an image, what if there was a way to automatically extract the most important parts of an image?

Color Scheme extraction is able to find the most relevant colors in seconds.

Read More…

Introduction to Language Identification

Identifying the language of text programmatically
Quick, what languages are these two sentences written in:

“Hey bana bir sorununuz olur mu?”

What about this one?

“Halló ég er með vandamál getur þú hjálpað mér?”

Not easy, right?

Figuring out a document’s source language is an essential first step for many cross-language tools and that’s why we’ve implemented a Language Identification algorithm. Read More…