Roboflow provides everything you need to turn images into information. We build all the tools necessary to start using computer vision, even if you're not a machine learning expert (and to supercharge your pipeline if you are).
Specifically, you can use Roboflow to:
- Store and organize your image data.
- Annotate images (with the helping hand of machine learning models)
- Convert between dozens of different annotation formats.
- Understand and assess the quality of your datasets.
- Process and augment your images to help your models train faster and generalize better.
- Version control datasets and share them with your team.
- Train a model with a single click or train your own models outside of Roboflow.
- Create an infinitely scalable API to get predictions from your trained model.
- Deploy to edge devices like the NVIDIA Jetson.
- Run inference in customers' web browsers with WebGL.
- Continually improve your models over time with active learning.
Roboflow eliminates the papercuts inhibiting better, faster object detection models and adds computer vision to the toolbelt of every developer.
Let’s walkthrough a tutorial on managing images for a chess piece detection problem.
To get started, create an account using your email or GitHub account: https://app.roboflow.com
After reviewing and accepting the terms of service, you’ll land on your projects homepage:
For this walkthrough, we’ll use the Roboflow-provided sample dataset. Click "Create New Project" and then "Download Sample Project", which will give you a zip file containing example images and annotations for you to use in the tutorial.
We automatically take care of (1) creating and naming your dataset “Chess Sample”, (2) choosing an "Object Detection" dataset type, and (3) naming your annotations “Pieces.” You’ve also downloaded a zip file containing 20 chess images and their annotations across the 12 different pieces.
As the guided tutorial suggests, click “Create Dataset.” to continue.
Now, unzip the sample file we just downloaded to your computer,
sampleChessDataset.zip. Click and drag the folder called “chess-tutorial-dataset” from your local machine onto the highlighted upload area.
As an aside, feel free to poke around the contents of chess-tutorial-dataset on your computer so you can see what’s inside:
Once you drop the chess-tutorial-dataset folder into Roboflow, the images and annotations are processed for you to see them overlayed.
If any of your annotations have errors, Roboflow alerts you. For example, if some of the annotations improperly extended beyond the frame of an image, Roboflow intelligently crops the edge of the annotation to line up with the edge of the image and drops erroneous annotations that lie fully outside the image frame.
At this point, our images have not yet been uploaded to Roboflow. We can verify that all the images are, indeed, the ones we want to include in our dataset and that our annotations are being parsed properly. Any image can be deleted upon mousing over it and selecting the trash icon.
Everything now looks good. Click “Finish Uploading” in the upper right hand corner! (This step does work better with faster internet.)
You will be asked to select a train/test split for your images; the default of 70% training, 20% validation, and 10% testing is usually a safe bet.
One of the images in the sample dataset is not yet annotated. You will use Roboflow Annotate to add a box around the unlabeled chess piece in the image. Annotations are the "answer key" your computer vision model learns from.
Preprocessing and Augmentations
After you're done annotating, continue to generate a new version of your dataset. This creates a point-in-time snapshot of your images processed in a particular way (think of it a bit like version control for data).
From here, we can apply any preprocessing and augmentation steps that we want to our images. Roboflow seamlessly makes sure all of your annotations correctly bound each of your labeled objects -- even if you resize, rotate, or crop.
By default, Roboflow opts you in to two preprocessing steps: auto-orient and resize. Auto-orient assures your images are stored on disk the same way your applications open them for you. (If you’re unfamiliar, this is can be a silent killer of computer vision models). Resize creates a consistent size for your images (in this case, smaller, to expedite training).
You can also choose to augment your images which generates multiple variations of each source image to help your model generalize better.
Roboflow supports auto-orient corrections, resizing, grayscaling, contrast adjustments, random flips, random 90-degree rotations, random 0 to N degree rotations, random brightness modifications, Guassian blurring, random shearing, random cropping, random noise, and much more. To better understand these options, refer to our documentation.
Why You Should Augment Data Before Training
If you’ve worked with computer vision, you’ll note augmentations are typically performed at the time of training your models. Augmenting before training has three notable advantages.
First, it improves model reproducibility, easing debugging and performance improvement. For example, your model might quietly perform better on images captured in brighter rooms. By having a copy of the darker augmentations, debugging with inference is far easier.
Second, augmenting first reduces your training time and cost. When training with GPUs, augmentations are CPU-constrained operations. Thus, your GPUs are kept waiting for CPU operations to finish augmentations, increasing your training time and costs. (Saving around 12% training costs in our tests!)
Third, instead of (re)writing your augmentation scripts (or model config files) for each different model you train, you can have a consistent set of augmentations and images to compare across models head-to-head.
Exporting Data from Roboflow for Training
For our walkthrough, we’ll leave settings as they were: auto-orient and resize 416x416, and some basic augmentations. To create downloaded data, select “Generate” at the end of the workflow.
After optionally naming, select Export. Roboflow is now preparing each of your images and annotations for download.
Once this finishes, you’ll be shown the final result (note the menu on the left now includes an archive of this specific version). You can train within Roboflow or Export to train with your own model.
For this walkthrough, let’s use the “Pascal VOC” export format. When you click "Export", your dataset is zipped and you are given several options for using it.
Click the "your dataset" link to download your zipped export to your computer. It contains an export folder with your images and annotations and a README describing the transformations you provided to your data.
You’re now ready to use your data to train a custom object detection model! You may want to select one from our model library which contains ready-to-go Jupyter notebooks in frameworks like PyTorch, Keras, and Tensorflow that you can run for free from right within Google Colab.
A good next step is to try our YOLOv5 tutorial to train a custom model.
Reach out with any questions, like supporting an annotation format or feature requests: firstname.lastname@example.org
We’re excited to see what you build with Roboflow!