Welcome to our weekly FiftyOne tips and tricks blog where we recap interesting questions and answers that have recently popped up on
Slack,
GitHub, Stack Overflow, and Reddit.
As an open source community, the FiftyOne community is open to all. This means everyone is welcome to ask questions, and everyone is welcome to answer them. Continue reading to see the latest questions asked and answers provided!
Wait, what’s FiftyOne?
FiftyOne is an open source machine learning toolset that enables data science teams to improve the performance of their computer vision models by helping them curate high quality datasets, evaluate models, find mistakes, visualize embeddings, and get to production faster.
Ok, let’s dive into this week’s tips and tricks!
Loading a view saved in the App, using the Python SDK
Community Slack member Kaisbedioui asked:
During my FiftyOne app session, I explored data and saved certain views using the UI. How can I use the Python SDK to load and perform certain operations on those saved views?
You can retrieve a view you saved in the UI using the SDK as follows:
You can find all the Python SDK methods for the same operations you performed in the UI in the
Saving Views section of the FiftyOne Docs.
Troubleshooting MongoDB installation issues
Community Slack member Jaydeep asked:
I am getting the following error at the import line. What’s the issue?
This error usually means that FiftyOne cannot determine what version of MongoDB to install based on your operating system. For background, FiftyOne uses /etc/os-release
to determine which MongoDB binary to install on your system. You can work around this issue by installing a MongoDB instance that is compatible with your Linux distribution and providing its URL as an environment variable to FiftyOne.
Computing area of each instance in COCO format
Community Slack member Luiz asked:
I'm using a dataset for object detection and instance segmentation. I need to do some analysis based on the area of the segmentation masks. The data is stored in the COCO format, so every annotation has the following structure:
On loading, FiftyOne builds a Detection
object for each annotation, but I noticed that the area is not included in any field. Can I keep the "area" information when I load the dataset?
I'm using the following method to load the data:
Although the
COCO importer doesn’t currently load the
area
attribute specifically, you could recompute the areas in FiftyOne quite easily with something like this:
Exporting COCO predictions
Community Slack member Michel asked:
I want to add COCO predictions to an existing dataset, and then export only the COCO predictions. Is this possible?
Yes! The FiftyOne Model Zoo
supports various COCO-compatible models, including centernet, deeplab, efficientdet, rcnn, ssd, and YOLO. (Click on the “COCO” tag to see the complete list of supported models.) Also worth reviewing are
the docs covering export datasets in supported and custom formats.
Returning samples that have or don’t have non-None values for a given field
Community Slack member Nadav asked:
I have a classification field in my data. What is the best way to filter all unlabeled sample throw code? Currently, I'm using ctx.dataset.match(F(source_field) != None)
, but Pycharm raises a warning.
Two things to consider here:
Because you are using pycharm
, you should modify your code to use is not
instead of !=
.
A cleaner way to approach your desired result is to use:
Learn more in the Docs about returning a view containing the samples in the collection that have (or do not have) a non-None value for the given field or embedded field.