Deep learning in computer vision starts with data – Part II
Building a high-quality dataset is a critical step in developing accurate and effective deep- learning models for computer vision. However, collecting labeled data can be a daunting and expensive process, especially when dealing with rare events or subtle differences in images. In this article, we will explore five effective strategies for building a good dataset for deep learning, including integrating data collection into the business process, accelerating training examples artificially, simulating examples, implementing quality assurance into the tagging process, and monitoring progress. These strategies can help reduce the costs and time required to collect a high-quality dataset and lead to more accurate and effective deep learning models.
Below are five strategies to help you build a high-quality dataset for deep learning:
- Make data collection part of the business process
- Accelerate training examples artificially
- Simulate examples if possible
- Build quality assurance into the tagging process
- Monitor progress
Make data collection and image tagging part of the business process
If you can build data collection and labeling into the normal operation of your business, it will be less disruptive and reduce the costs of data collection. To do so, find ways to involve people familiar with the daily operation of your business – these are the people who are the most familiar with the nuances of the problem. They can often identify key examples that dedicated labelers might miss. This is especially true in cases like visual quality inspection, where differences between high and low quality may not be clear to an external labeler.
Involving the subject matter experts in your business ensures that your training data is representative of the problem that you are trying to solve.
Accelerate data collection by creating examples artificially
The data collection process depends on the frequency of events you are trying to detect. If the target event occurs infrequently, then collecting a good set of images could take weeks or even months.
One way to accelerate this process is to artificially create training examples. For example, if your goal is to train a deep learning model to detect stockouts on a retail store shelf, you can temporarily remove objects from the store shelves to simulate stockout events.
In the case of detecting quality in a factory, this could involve purposefully assembling a product incorrectly or simulating wear or damage. A few hours of generating examples for training can dramatically reduce the time to create a good dataset, dramatically reducing the time needed to develop a deep learning model.
Consider using simulations
Great progress has been made in recent years in simulating realistic images. Simulators have been used to help train models for self-driving cars and robotics problems. These simulations have become so good that the resulting images can be used to support training deep learning models for computer vision. These images can augment your dataset and, in some cases, even replace your training data. This is an especially powerful technique for deep reinforcement learning, where the model must learn a wide variety of training examples.
Build Quality Assurance into your labeling process
Many applications for deep learning in vision require labels that identify objects or classes within the training images. Labeling takes time and requires consistency and careful attention to detail. Low quality in the labeling process could be due to several causes, all of which can lead to poor model performance. Untagged instances and Inconsistent bounding boxes or labels are two examples of poor labeling quality.
To help ensure labeling quality, build a “review” step into the labeling process. Have each label reviewed by at least one other person than the labeler to help protect against low quality in the labeling process.
Monitor your progress
Even with just a few dozen training examples, it is possible to train a deep learning model using transfer learning to get an idea of performance. Let your first model serve as a baseline. To track your progress and gauge the value of more training images, periodically evaluate your models as you collect additional images. This will help you determine whether the new data is leading to improved model performance and identify any areas for improvement.
Once you have a large, high-quality dataset, you can focus on model training, tuning, and deployment. At this point, the hard effort of collecting and labeling images can be translated into a working model that can help solve your computer vision problem. After spending days or even weeks collecting images, the training process will go fast by comparison.
Good luck with training your deep-learning models for computer vision.
- What makes a good training dataset for deep learning in computer vision?
- Training Deep Networks with Synthetic Data: Bridging the Reality Gap by Domain Randomization
- A Survey on Data Collection for Machine Learning: A Big Data – AI Integration Perspective
This blog was last published on 7/2/2020 and has since been updated.