Annotation¶
To train CNN models which objects to detect where in an image (detection/localization) and what these objects are (classification), you will first have to annotate/label the objects of interest manually to generate a training dataset.
Annotation tools¶
Various open and closed source tools are available, working offline on your PC or via an online platform in your browser. These tools have different pricing plans, but most of them can be used for free with usage limits or for education/academia. All of them will give you the basic functionalities of annotating images for object detection (bounding boxes) or image classification (image label). Some are simple, others are more complex and can provide additional functions such as AutoML ("one-click model training") or model assisted labeling.
Some widely used annotation tools are:
Roboflow¶
Because of its free public plan, direct connection to a repository for open source datasets and ease of use with many helpful functions, we chose Roboflow to annotate our images. The Roboflow Python package makes it easy to automatically upload annotated datasets, e.g. when using a Google Colab notebook as training environment.
If you are new to image annotation and dataset management, take a look at the Roboflow documentation, especially for the Annotate tool. Carefully read the best practices for image labeling, as a dataset with optimally labeled images can significantly increase model performance and accuracy.
The dataset health check can give you a quick overview of your current dataset and show possible problems, e.g. regarding class imbalance. With different image preprocessing steps, you can easily modify your dataset in multiple ways (e.g. resize, modify classes). Image augmentations can diversify your dataset, e.g. by applying image rotation, exposure or blur. Multiple datasets can be generated in this way from the same annotated source images. These datasets can then be exported in all common formats and downloaded either as .zip file or used to generate a link to upload the dataset, e.g. into a Google Colab model training notebook.