Created May 2015. This site has now been archived.

The Wolfram Language Image Identification Project

How the Wolfram Language Image Identification Project Works

The Wolfram Language Image Identification Project is a showcase of one function—ImageIdentify—from the 5,000 that are built into Wolfram Language.

Based on more than 25 years of development, Wolfram Language is a unique new high-level computer language that builds in as much computational knowledge about algorithms and the world as possible.

ImageIdentify in Wolfram Language

You can use ImageIdentify interactively in a Wolfram Language session:

Wolfram Language ImageIdentify classifying a photograph as a giant anteater

Wolfram Language runs interactively on the desktop, cloud and mobile, as well as on servers, embedded systems and so on. You can use ImageIdentify (and 5,000 other built-in functions) in any Wolfram Language environment.

Deploying to the Web

Wolfram Language supports highly automated web deployment, based on the Wolfram Cloud and Wolfram Enterprise Private Cloud.

The following is all it takes to deploy a simple version of this site to the Wolfram Cloud:

Wolfram Language code deploying an image identification form to the cloud

Go to the URL on the web and mobile:

Deployed webpage identifying an uploaded image of a Tesla coil

The full production site uses additional web assets, inserted using Wolfram Language templating technology.

All feedback from the site goes into the Wolfram Data Drop for analysis and response.

Underlying Algorithms

ImageIdentify is typical of the highly automated superfunctions for which Wolfram Language is known.

To the user, it's just a single easy-to-use function that can serve as a building block in any Wolfram Language program. But internally, it relies on a complex collection of algorithms and built-in knowledge.

ImageIdentify is one of the family of machine learning functions in Wolfram Language. It is effectively a built-in classifier trained from a large curated set of images tagged with Wolfram Language concepts.

The main part of the current ImageIdentify classifier is based on deep neural networks.

For more information and background, see Stephen Wolfram's announcement blog post.

ImageIdentify is being progressively enhanced, especially with training data derived from feedback given by users of this site. (Thank you!)

Wolfram|Alpha Summaries & Computable Data

If ImageIdentify or additional classifiers return what amounts to a proper name (say of a species or person), a Wolfram|Alpha summary is also shown.

ImageIdentify recognizing a blue jay with a Wolfram|Alpha summary and related data

Within Wolfram Language, ImageIdentify and additional classifiers also give standard symbolic objects that are amenable to further computation, and about which Wolfram Language typically has large amounts of additional knowledge:

Wolfram Language classifying a dog image and computing a word cloud from the result

Alternate Suggestions

ImageIdentify operates in a probabilistic way, generating multiple possible results with different estimated probabilities. The single result shown on the site is based on analysis of these probabilities, optimizing between correctness and specificity (generic "dog" vs. dog breed etc.).

Ranked ImageIdentify suggestions refining an image classification to butterfly species

About Wolfram Research

Founded and led by Stephen Wolfram, Wolfram Research has been continuously developing and delivering its innovative integrated technology stack since 1988. Its Mathematica software system is used throughout the world's research and education communities and has been responsible for countless inventions and discoveries over the course of more than 25 years. Its breakthrough Wolfram|Alpha system has defined the concept of a computational knowledge engine and powers the world's most successful intelligent assistant system, and is used by many millions of people on the web every day. Building on the technology of Mathematica and Wolfram|Alpha, Wolfram Research recently introduced Wolfram Language—a unique knowledge-based programming language that defines a new level for both practical programming and programming education.

Try in the Wolfram Cloud »