Vision and the ability to recognize images is something most humans take for granted. But how can you teach a computer to see?
Let’s say you have two sets of example images — houses with swimming pools and houses without swimming pools. It would not take many examples before a person would learn how to identify which set an image belongs in. With little or no explanation, he would see the pool and learn to look for it. Making a computer visualize an object when given a binary file is a much bigger challenge. How can a computer recognize a swimming pool? Fortunately, that problem has been solved!
The Inception-v3 model has been trained using convolutional neural networks to recognize patterns and features, and, ultimately, classify images. This kind of training is something most of us don’t have the time, expertise, or computing power to attempt. Fortunately for us, it is not hard to leverage this work. It is as if the Inception model has done all the work to give computers vision. We can now build on that and teach them to recognize new things.
Inception-v3 doesn’t recognize swimming pools, but in the developer journey “Image Recognition Training with PowerAI Notebooks,” we use example images to retrain part of the Inception model. With the provided code and a good set of sample images, it is easy to create a new classifier. You’ll be amazed at how quickly we go from no recognition at all to a pretty smart classifier — and you can adapt it with your own set of images to create a classifier for your needs.
If you want to try this developer journey, visit GitHub and follow the instructions to get the example running with PowerAI Jupyter Notebook on the Nimbix platform. With a trial account, you can run the example in minutes. When you are ready to create your own classifier with a bigger set of images, you can take advantage of PowerAI to more efficiently run your TensorFlow training. It is so cool and so easy. Give it a try!
Now that we’ve trained the machines to recognize swimming pools, we’ll leave it up to you to teach them to swim.