Thanks for your interest in participating in FSOCO! Your contribution will help other teams to increase the size of their dataset for cone detection, segmentation and, at the same time, it will help you to improve your very own pipeline.
Combining data from the entire FSD community is a huge challenge as both sensor setups and data quality differ across the teams. Thus, we have to settle on a few ground rules that every submission needs to comply with.
- Be consistent! Ensure that your labels adhere to the guidelines below.
- Data is king. Even the most sophisticated approach can only perform as well as the underlying data allows for.
- Images, where only half the cones are labeled, will confuse a human learner and a computer alike.
- Cones have to adhere to the official FSG rules. You can upload images with non-compliant cones but those annotations will not count towards your contribution.
- Tags allow to further analyze the FSOCO dataset
- To get started with the Supervisely annotation tool, check out this overview page.
Classes
Classes are the same for bounding boxes and segmentation annotations.
Class | Example |
---|---|
Blue | |
Yellow | |
Small orange | |
Large orange | |
Other cone (not rules compliant) |
Tags
Tags are the same for bounding boxes and segmentation annotations.
Tag | Example |
---|---|
Knocked over | |
Tape removed or event sticker | |
Truncated |
Labeling Guidelines
Instruction | Annotation sample |
---|---|
Pay attention to pixel-level accuracy of the bounding boxes. Please include the entire base plate. | |
Label cones with a segmentation mask that contains the entire cone but is as close to the boundary as possible. Tip: Use your mouse wheel to zoom in and the right mouse button to move within the scene. Zooming in allows for you to be more precise with the bitmap brush, while zooming out makes it easier to see if the boundaries are set correctly. |
|
Label all cones in the image that have a defined shape. A good rule of thumb is to always include areas of more than 100 pixels^2. To the right is an example of a small cone that should be labeled and a cone that is too small and should not be labeled. If your pipeline focuses on cones up to a certain range, you can easily remove very small cones, which are further away, using a simple size-based filter. Segmentation: for such small objects it is advisable to directly use the brush to save time, as the Smart Labeling Tool likely will not work well. |
|
Label overlapping cones and tag the overlapped cone as truncated. Do not extend the bounding box but only include the visible part of a cone. Important: Create non-overlapping masks for segmentation. With differing colors, the overlapping masks are easier to spot. If the involved cones are of the same color, zoom in and use a small brush. Overlapping pixels should be less transparent, so it is possible to spot them. We advise to label the cones first as different classes and then change the label afterwards. |
|
Label cones that are cut off on the side of an image if you, the human annotator, can clearly identify them. For the same reasons as before, tag them as truncated. Pay attention when dealing with orange cones: when you can only see a single stripe, it might be ambiguous whether it is a small or a large cone. |
|
Label cones that are knocked over and tag them as knocked_over. Cones could be knocked-over on purpose, e.g., FSG uses them to separate the track from the preparation area, or because the car touched them in a previous lap. Either way, depending on your setup you might want to filter them out. |
|
Tag cones that have stickers, e.g., FSG, or whose tape has been removed. Tag them as sticker_band_removed. Make sure to only add this tag if you can read the sticker and not only because you know that this image has been taken at FSG. That is, tag the upper cone but do not tag the lower cone. |
Tips & Tricks (Supervisely)
General
When dealing with truncated cones, it might be hard to recognize what exactly should be labeled when occluded by other bounding boxes or segmentation masks. To better be able to label a single object, you can hide all objects that are not currently selected with CTRL+H. This can be done by taking the following steps:
- Choose the selection tool (hot key:
2
). - Click on an object.
- Toggle the unselected objects’ visibility (hot key:
CTRL+H
).
Segmentation
Using Supervisely’s polyfill tool greatly increases the labeling speed for segmentation masks. The steps to take are the following:
- Start a new segmentation instance with the brush tool (hot key:
9
). - Choose the polyfill tool.
- Create the bounding polygon by left-clicking and, possibly, adjusting control points afterwards.
- Confirm the polygon (hot key:
BACKSPACE
). - Confirm the segmentation instance (hot key:
BACKSPACE
).- Note that if you forget to perform both confirm steps above, you will end up with several cones within one object/mask.
When creating segmentation masks, a common mistake is to add several single instances in one Supervisely object.
To preempt this, you can quickly check if all instances are correctly separated by using the random instance color keyboard hot key: SHIFT+H
.
Supervisely will then assign a random color to each instance, making it easy to recognize connected ones.
By pressing SHIFT+H
again, the regular colors assigned to each class will be rendered again.
Note that you can use the “Cut tool” in the segmentation toolbox to easily create single instances if their masks are not overlapping.