Image credit: Jatniel Tunon on Unsplash
“Image recognition” is the training of computers to recognize objects in images. When you think of image recognition, do you think of hard-to-use software running complicated algorithms with thousands of lines of code? I know I do. But in reality, open-source datasets and free apps have made it easier than ever to dive right into image recognition. Here are a few ideas for image recognition-related projects and activities you can try!
1. Build an image recognition iOS app.
Xcode (Apple’s free development environment for creating iOS, macOS, watchOS, and tvOS apps) introduced CreateML in 2018. The framework was designed to allow Apple developers to easily build machine learning models for use in their apps. Although Xcode and its CoreML framework are capable of integrating ML models built using more specialized software, CreateML’s greatest asset is its native, easy-to-use, drag-and-drop interface which trains, tests, and selects appropriate ML classifiers automatically.
The basic steps for building an image recognition iOS app are:
Download and install Xcode.
Create a new Xcode playground. Your playground should run on macOS.
Set up a CreateML interface in your live playground view.
Download an image dataset with images sorted into separate folders based on label. If no datasets with this format are available, you can try sorting the data yourself, using a combination of creating, reading, and renaming images and folders (in a computer program, of course).
Drag the folder containing your images into your CreateML interface.
Voila! Within a few minutes (or hours, depending on the size of your dataset), your ML model will be trained and ready-to-go.
Here’s a link with more detailed instructions: https://www.appcoda.com/create-ml/
2. Play an image recognition game.
There are a few fantastic image recognition-related web apps. One of them is Google’s Quick, Draw! game, which gives you something to draw, then guesses what you’re drawing. Another is Google’s Autodraw experiment, in which the computer attempts to complete your drawing.
Another of Google’s AI experiments, Handwriting with a Neural Net, generates strokes matching the style of your handwriting samples, while Cartoonify creates cartoons out of your drawings.
One thing to keep in mind when playing these games is you’re providing your data (your doodles) to Google to improve their software. This may or may not be something you’d want to do; in any similar situation, it’s always a good idea to consider both privacy issues and possible issues with the research and future software you may be enabling (e.g. facial recognition technology).
3. Conduct image recognition research.
Another idea for image recognition-related projects you can try is research, in which you identify a problem, develop a hypothesis, follow a procedure (collect and analyze data), and come to a conclusion regarding the problem you posed previously. Research projects typically last several months.
This may seem a little more daunting than the other two, but one thing you can try is brainstorming ideas for research you might be interested in. There are lots of fantastic datasets out there; I’ve listed a few below that you might find helpful for developing your ideas!
Cityscapes: https://www.cityscapes-dataset.com
Cats: https://www.kaggle.com/crawford/cat-dataset
Food: https://www.vision.ee.ethz.ch/datasets_extra/food-101/
Skin (e.g. moles and lesions): https://isic-archive.com
Handwritten digits: http://yann.lecun.com/exdb/mnist/
Remember: these are just a few examples of well-constructed datasets you can use for your image recognition research. If you’re interested in any topics that aren’t listed above, you can check out a number of sites dedicated to machine learning research and datasets--Kaggle, for example, has a huge inventory of information, datasets, and even competitions dedicated to machine learning.
Which of these image recognition activities do you plan to try? Let us know in the comments! And in the meantime, happy coding!