Skip to content

Journey into Visual AI: Exploring FiftyOne Together – Part I Introduction

Introduction

Welcome, fellow developers and AI enthusiasts. 😀

Diving into a new tool can be exciting and daunting if you’re like me. Recently, as you know, I embarked on a career journey at Voxel51, and my first task is to explore FiftyOne, the open-source platform that Voxel51 offers developers. Then I thought, why not document this adventure and invite others to join me? Here we are at the beginning of what I hope will be an enlightening series for all of us.

Whether you’re an experienced developer or just starting, learning a new tool comes with its own set of challenges. But together, we can navigate the twists and turns of FiftyOne and unlock its potential. Let’s make this journey a collaborative experience. 

First, let’s define the main pain point we have as developers working in Visual AI

Developers’ common pain points in Visual AI

Working on Visual AI projects often comes with a unique set of challenges. These are the common pains I have encountered:

  • Handling Large and Complex Datasets: Managing vast amounts of images or videos with associated annotations can be overwhelming and inefficient compared to traditional tools.
  • Data Visualization Limitations: Difficulty in visualizing complex datasets and annotations hinders understanding and slows down development.
  • Inefficient Model Evaluation: Assessing model performance, identifying failure modes, and interpreting results can be time-consuming and error-prone.
  • Data Quality Issues: Identifying and correcting data issues like annotation errors, missing labels, or edge cases is often challenging and labor-intensive.
  • Integration Challenges: Incorporating new tools into existing machine learning workflows without disrupting productivity can be difficult.

If there is anything I am missing, please add it in the comments 👍

The Good news is that Voxel51 has a great Open source tool to address those pain points. That tool is called Fiftyone, but what is Fiftyone?

What is FiftyOne?

For those who have yet to hear of it, FiftyOne is an open-source tool designed to streamline the workflow of visual AI projects. You can try the FiftyOne app here: https://try.fiftyone.ai/. You can explore your dataset, find quality issues, see model behavior, and improve your MLOps pipeline there.

As you can see, you can try fiftyone in your browser and explore datasets and models, but you can also install it locally with just “pip install fiftyone” and bring your own data and models. Developers, data scientists, and researchers will improve their visual datasets and gain insights into their models. It offers data exploration, visualization, and management features and facilitates the development of production-ready visual AI applications.

What distinguishes FiftyOne is its powerful combination of an interactive FiftyOne App and a versatile Python API. The FiftyOne App provides an intuitive, user-friendly interface for visualizing and exploring datasets in depth. Using it, you can intuitively navigate through images and videos, inspect annotations, filter data, gain insights, and even extend it with plugins to enable your custom workflows, all in real-time, using single lines of code.

On the other hand, the Python API gives you programmatic access to all of FiftyOne’s functionalities. This means you can manipulate datasets, perform complex queries, and even control the app directly from your Python scripts, integrating directly with your model training and evaluation code. The synergy between the app and the API allows for both the control and flexibility of code and the immediacy and intuitiveness of a graphical interface. 

Essentially, FiftyOne offers the best of both worlds. 1) For visual exploration: Use the FiftyOne application to interactively explore your datasets, inspect samples, and visualize model predictions. 2) For programmatic control: Leverage the Python API to program data manipulations, run experiments, and automate tasks.

How FiftyOne addresses our day-by-day pains

FiftyOne is designed to alleviate these pain points by offering:

  • Interactive Data Exploration with the FiftyOne App: The app allows you to visualize and interact with your datasets seamlessly. You can filter, sort, and query data, with changes reflected instantly in the visual interface.
  • Powerful Python API: Programmatically control and manipulate your data. Automate workflows, perform complex queries and integrate FiftyOne into your existing pipelines effortlessly.
  • Comprehensive Model Evaluation Tools: Evaluate your models by visualizing predictions alongside ground truth labels, computing detailed metrics, and drilling into failure cases to improve model performance.
  • Efficient Data Curation: Quickly identify and fix data issues using advanced filtering and visualization capabilities, enhancing the overall quality of your datasets.
  • Seamless Integration with Existing Workflows: Compatible with popular deep learning frameworks, allowing you to adopt FiftyOne without overhauling your current setup.
  • Extensibility and Customization: Adapt FiftyOne to your specific needs by extending its functionalities through custom plugins or scripts.

Please take a look at Part II of this blog series, where I will explain how to use Fiftyone APP and Python API. The code is coming!!!

Additional resources:

  1. First explanatory post about Fiftyone: https://voxel51.com/blog/introducing-fiftyone-a-tool-for-rapid-data-model-experimentation/
  2. https://towardsdatascience.com/i-performed-error-analysis-on-open-images-and-now-i-have-trust-issues-89080e03ba09
  3. A recent  Voxel51 post: https://voxel51.com/blog/what-is-visual-ai-going-beyond-computer-vision/
  4. https://www.youtube.com/watch?v=iHvTdocajgU
  5. Try the FiftyOne APP in a browser: https://try.fiftyone.ai/

Just wrapping up! 😀

In this first installment, we’ve set the stage for our journey with FiftyOne. We’ve discussed the common challenges in visual AI projects and how FiftyOne can help overcome them. In the next post, I will give you an instructionable code for navigating FiftyOne.

I would love to hear about your experiences! Please Share Your Thoughts, Ask Questions, and Provide Testimonials. Your insights might help others in our next posts.

Together, we can learn more effectively and contribute to improving FiftyOne!

Stay tuned for the next post, in which we’ll explore FiftyOne’s essential features, manipulate the dataset, and evaluate the model.

Let’s make this journey with FiftyOne a collaborative and enriching experience. Happy coding!

Stay Connected: