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)
- Add teammates to collaborate on annotation and labeling or add Labelers from outside your organization
- 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 or Luxonis OAK.
- Run inference in customers' web browsers with WebGL.
- Use our pip package to 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.
Preparing Data 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 (explained in detail later in this guide) 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.
Training a Computer Vision Model
Roboflow Train, a one-click autoML training product, offers two model types which you can train and host using Roboflow. We handle the GPU costs and also give you access to out-of-the-box optimized deployment options which we will cover later in this guide.
Your trained model can now be used in a few powerful ways:
- Model assisted labeling speeds up labeling and annotation for adding more data into your dataset
- Rapid prototyping or testing your model on real world data to test model performance (explained in the next section)
- Deploying to production with out-of-the-box options that are optimized for your model to run on multiple different devices (explained in the next section)
After you've generated your dataset, you'll see the option to start training with the number of available credits you have for training.
Once you click Start Training, you'll be prompted to choose which model you'd like to train: Fast or Accurate. We explain the differences in detail but for this example we will use Fast.
When training a model, you can Train from Scratch or Start from a Checkpoint. We advise people to utilize transfer learning and Start from a Checkpoint to help improve model performance in most cases.
This is the final step to train your model using Roboflow! You'll receive an email once your model has finished training. The email contains the training results for you to see how the model performed. If you need to improve performance, we have recommendations for you on how to do that.
View your training graphs for a more detailed view of model performance.
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. If you plan to train a model outside of Roboflow, a good next step is to try our YOLOv5 tutorial.
Deploying a Computer Vision Model
Your trained model hosted by Roboflow is optimized and ready to be used across multiple deployment options. If you're unsure of where might be best to deploy your model, we have a helpful guide that can be used to navigate that decision.
The fastest ways to immediately use your new model and see the power of computer vision:
- Drag-and-drop an image into the screen to see immediate inference results.
- Use your webcam to see real-time inference results with our sample app and then dive deeper into how to use a webcam in production.
- Try the example web app to try an image URL
From this screen, you can also deploy using options that make it easy to use your model in a production application whether via API or on an edge device:
- The Roboflow Hosted API (Remote Server) method is done on the server so you don't need to worry about the edge device's hardware capabilities
- Deploying to Luxonis OAK is available with our roboflowoak pip package
- Using NVIDIA devices using the device GPU
- On-prem and offline deployments are available for Enterprise customers
The benefit of using Roboflow Train and Roboflow Deploy is that we make it easy for you to test deployment options, change deployment options, or use multiple deployment options in your application.
We’re excited to see what you build with Roboflow!