Object detection algorithms are a method of recognizing objects in images or video. They’re a popular field of research in computer vision, and can be seen in self-driving cars, facial recognition, and disease detection systems.
Many people think that you need a comprehensive knowledge of machine learning, AI, and computer science to implement these algorithms, but that’s not always the case. In this article we’ll introduce a way to easily create object detection algorithms with cloud services and pre-loaded algorithms. With this, even newcomers with a rudimentary knowledge of coding can explore algorithm implementation.
Let’s start by looking at CNNs, the networks that will train our algorithm to detect objects.
Convolutional Neural Networks and Object Detection
Convolutional Neural Networks (CNNs) are the basic architecture through which an AI system recognizes objects in an image. As an example, let’s look at training an AI system to distinguish numbers through the use of a CNN. The CNN will use filters to transform the image across convolutional layers. In the image below, we can see an image as included in the MNIST dataset (left), and the image post-filtering (right)
Using this transformed image result as a feature, the neural network will search for characteristics the image has in common with particular numbers. In the case of the image below, the numbers are 0 and 5. During this trial and error training process, the network will begin to understand which characteristics are most essential to determining numbers from images. It does this by learning parameters to help it filter the data through each network layer. Through repetitions of this process, from input to output, the neural network can learn to distinguish numbers.
The number of parameters used to detect an object varies with the algorithm. Because there can be as many as millions or even tens of millions of parameters, it is often difficult for humans to understand exactly which characteristics a system uses to make assessments. This in turn can make understanding classification errors difficult, too.
Let’s look at an example: In the image above, from this OpenAI article, you can see that the AI system recognizes the leftmost image as a panda, but miscategorizes the rightmost image as a gibbon. Current research to understand AI classification standards is still ongoing and it’s likely we’ll understand this more clearly in the future. To help avoid misclassification, we’ll look at ways to improve accuracy below.
An Easy Way To Create Object Detection Algorithms
It’s not easy to implement object detection algorithms from scratch, but with the help of cloud services, even a novice can easily make a high-performing model. Let’s look at the basic creation and implementation flow through a leading object detection algorithm service. Good options include Microsoft Azure Custom Vision, Google Cloud AutoML, and Amazon Rekognition Custom Labels.
In all the above services, the process is quite straightforward.
- You start by uploading images annotated for the object you want detected.
- Next, with a simple GUI operation or a few lines of code, your machine learning model can be trained on potent algorithms. Though each of the services is slightly different, this basic functionality is shared between all of them.
Here’s an example of annotation, using dogs as the subject of our object detection. All we need is to prepare data labeled with the correct information; in the case of our example, dogs. No other special skills are required.
In this way, even somebody who is not an AI expert can make machine learning models on par with professionals.
How to Improve an Object Detection Algorithm’s Accuracy
As we saw in the example of the panda above, object detection algorithms will sometimes make recognition errors. To improve a model’s accuracy and performance, there are two main options:
- Improve the learning algorithms
- Improve the quality and quantity of your data
Both of the above are important, but because the cloud’s pre-loaded algorithms are already powerful, it’s a good idea to consider improving your data first. Increasing the amount of correctly annotated data can take both time and money. You can collect the data yourself, find it online, or make use of available annotation tools and crowdsourcing. For more about outsourcing annotation and their costs, here’s a helpful guide to image annotation services.
In this article, we introduced how to make object detection algorithms using cloud services. Though people new to machine learning tend to steer clear of deep learning, with the methods introduced in this article, anyone can implement an object detection algorithm.
Many cloud services also offer specialization processes outside of object detection algorithms, too. I hope this article acts as a helpful first step towards taking advantage of available technologies. These algorithms are a good opportunity to accelerate the research and development of business improvements.
About the Author
Satoshi Shiibashi graduated from the Tokyo Institute of Technology in 2016 with a Master’s in Information Science and Technology. As a data scientist, his work is focused on machine learning related to research and development for real estate. He also handles data analysis for the real estate web portal LIFULL HOME’S.
About Lionbridge AI
With over 20 years of experience as a trusted training data source, Lionbridge AI helps businesses large and small build, test and improve machine learning models. Our community of 1,000,000+ qualified contributors is located across the globe and available 24/7, providing access to a huge volume of data across all languages and file types. Get in touch today.