fiftyone

fiftyone

Refine high-quality datasets and visual AI models

Stars: 9071

Visit
 screenshot

FiftyOne is an open-source tool designed for building high-quality datasets and computer vision models. It supercharges machine learning workflows by enabling users to visualize datasets, interpret models faster, and improve efficiency. With FiftyOne, users can explore scenarios, identify failure modes, visualize complex labels, evaluate models, find annotation mistakes, and much more. The tool aims to streamline the process of improving machine learning models by providing a comprehensive set of features for data analysis and model interpretation.

README:

 

The open-source tool for building high-quality datasets and computer vision models


WebsiteDocsTry it NowTutorialsExamplesBlogCommunity

PyPI python PyPI version Downloads Docker Pulls Build License Discord Slack Medium Mailing list Twitter

👋 hey there!

We created an open-source tool that supercharges your computer vision and machine learning workflows by enabling you to visualize datasets, analyze models, and improve data quality more efficiently than ever before. Embark with us in this adventure 🤝. FiftyOne.

------------------------------------------------------------------

installation 💻

As simple as:

pip install fiftyone
More details here

FiftyOne supports Python 3.9 - 3.11. See the prerequisites section for system specific information. We provide two ways for being installed. The first one is through PyPI, and the second is through a local installation. PyPI is the straight forward installation method if you are not looking for any changes in the source code, if you want to make changes to the source code, then a local installation is recommended.

We strongly recommend that you install FiftyOne in a virtual environment to maintain a clean workspace. The prerequisites section also contains instructions for creating system specific virtual environments.

Installing the library from PyPI with pip is the easiest way to get started with fiftyone. You can install the latest stable version of fiftyone via pip:

Consult the installation guide for troubleshooting and other information about getting up-and-running with FiftyOne.

Install from source

To install from source, you need to clone the repository and install the library using pip with editable mode enabled. The instructions below are for macOS and Linux systems. Windows users may need to make adjustments. If you are working in Google Colab, skip to here.

First, clone the repository:

git clone https://github.com/voxel51/fiftyone
cd fiftyone

Then run the install script:

# Mac or Linux
bash install.bash

# Windows
.\install.bat

NOTE: If you run into issues importing FiftyOne, you may need to add the path to the cloned repository to your PYTHONPATH:

export PYTHONPATH=$PYTHONPATH:/path/to/fiftyone

NOTE: The install script adds to your nvm settings in your ~/.bashrc or ~/.bash_profile, which is needed for installing and building the App

NOTE: When you pull in new changes to the App, you will need to rebuild it, which you can do either by rerunning the install script or just running yarn build in the ./app directory.

Upgrading your source installation

To upgrade an existing source installation to the bleeding edge, simply pull the latest develop branch and rerun the install script:

git checkout develop
git pull
bash install.bash

Developer installation

If you would like to contribute to FiftyOne, you should perform a developer installation using the -d flag of the install script:

# Mac or Linux
bash install.bash -d

# Windows
.\install.bat -d

Although not required, developers typically prefer to configure their FiftyOne installation to connect to a self-installed and managed instance of MongoDB, which you can do by following these simple steps.

Source installs in Google Colab

You can install from source in Google Colab by running the following in a cell and then restarting the runtime:

%%shell

git clone --depth 1 https://github.com/voxel51/fiftyone.git
cd fiftyone

# Mac or Linux
bash install.bash

# Windows
.\install.bat

Generating documentation

See the docs guide for information on building and contributing to the documentation.

Uninstallation

You can uninstall FiftyOne as follows:

pip uninstall fiftyone fiftyone-brain fiftyone-db
Prerequisites for beginners

prerequisites for beginners 🧸

FiftyOne supports Python 3.9 - 3.11. To get started, select the guide for your operating system or environment, if you are an experienced developer you can skip this section. If you are looking for scaling solution to be installed in Cloud Enterprise Systems, please take a look of FiftyOne Teams here

Windows

1. Install Python and Git

1.1 Install Python

Note: ⚠️ The version of Python that is available in the Microsoft Store is not recommended.

Download a Python installer from python.org. Choose Python 3.9, 3.10, or 3.11 and make sure to pick a 64-bit version. For example, this Python 3.10.11 installer. Double-click on the installer to run it, and follow the steps in the installer.

  • Check the box to add Python to your PATH, and to install py.
  • At the end of the installer, there is an option to disable the PATH length limit. It is recommended to click this.

1.2 Install Git

Download Git from this link. Double-click on the installer to run it, and follow the steps in the installer.

2. Install Microsoft Visual C++ Redistributable and FFmpeg (Optional)

Download Microsoft Visual C++ Redistributable. Double-click on the installer to run it, and follow the steps in the installer.

Install FFmpeg

Download FFmpeg binary from here. Set FFmpeg's path (e.g., C:\ffmpeg\bin) to the PATH environmental variable on Windows.

3. Create a Virtual Environment

  • Press Win + R. type cmd, and press Enter. Alternatively, search Command Prompt in the Start Menu.
  • Navigate to your project. cd C:\path\to\your\project
  • Create the environment python -m venv fiftyone_env
  • Activate the environment typing this in the command line window fiftyone_env\Scripts\activate
  • After activation, your command prompt should change and show the name of the virtual environment (fiftyon_env) C:\path\to\your\project
  • Now you are ready to install FiftyOne. Full instructions can be found here.
  • Once you want to deactivate your environment, just type deactivate
Linux

1. Install Python and Git

You may need to install some additional libraries on Ubuntu Linux. These steps work on a clean install of Ubuntu Desktop 24.04, and should also work on Ubuntu 24.04 and 22.04, and on Ubuntu Server.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-venv build-essential python3-dev git-all libgl1-mesa-dev ffmpeg
  • On Linux, you will need at least the openssl and libcurl packages.

  • On Debian-based distributions, you will need to install libcurl4 orlibcurl3 instead of libcurl, depending on the age of your distribution.

    For example:

# Ubuntu
sudo apt install libcurl4 openssl

# Fedora
sudo dnf install libcurl openssl

2. Create and activate the Virtual Environment

python3 -m venv fiftyone_env
source fiftyone_env/bin/activate

Now you are ready to install FiftyOne. Full instructions can be found here

MacOS

1. Install Xcode Command Line Tools

xcode-select --install

2. Install Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

After you install it, follow the instructions from the Homebrew installation to set it up.

3. Install Python and dependencies

brew install [email protected]
brew install protobuf

# optional but recommendeded for full video dataset support
brew install ffmpeg

4. Create and activate the Virtual Environment

python3 -m venv fiftyone_env
source fiftyone_env/bin/activate

Now you are ready to install FiftyOne. Full instructions can be found here.

Docker

Refer to these instructions to see how to build and run Docker images containing source or release builds of FiftyOne.

Windows Linux macOS Docker

Important Notes: Remember, you will need...

  • Python (3.9 - 3.11)
  • Node.js - on Linux, we recommend using nvm to install an up-to-date version.
  • Yarn - once Node.js is installed, you can enable Yarn via corepack enable

------------------------------------------------------------------

quickstart 🚀

Dive right into FiftyOne by opening a Python shell and running the snippet below, which downloads a small dataset and launches the FiftyOne App so you can explore it:

import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")
session = fo.launch_app(dataset)

Then check out this Colab notebook to see some common workflows on the quickstart dataset.

Note that if you are running the above code in a script, you must include session.wait() to block execution until you close the App. See this page for more information.

------------------------------------------------------------------

key features 🔑

https://github.com/user-attachments/assets/af8cd626-57b7-4f2a-96bf-1c8a513c2e2b

https://github.com/user-attachments/assets/d119de24-fc44-40bc-83ff-ddfdd4329977

https://github.com/user-attachments/assets/fc06d33d-8d17-4f67-af26-8c1a5abb5d9d

https://github.com/user-attachments/assets/8c4ff038-8926-4a42-b829-4f43bc2d8d6a

https://github.com/user-attachments/assets/da97d84d-1213-40cf-a501-7a0d7efbe426

  • Rich Integration: Works with popular deep learning libraries like TensorFlow, PyTorch, Keras, and more.

https://github.com/user-attachments/assets/670a684a-0f6c-49cc-8f51-fbe15530c5e3

https://github.com/user-attachments/assets/dd91272d-2808-4373-90c5-5e906a0b80f1

additional resources 🚁

fiftyone-teams VoxelGPT Plugins Vector Search Dataset Zoo Model Zoo FiftyOne Brain

------------------------------------------------------------------

documentation 🪪

Full documentation for FiftyOne is available at fiftyone.ai. In particular, see these resources:

Tutorials Recipes Examples User Guide CLI Documentation API Reference

------------------------------------------------------------------

FiftyOne Teams 🏎️

Do you need to securely collaborate on datasets with millions of samples in the cloud and leverage built-in workflow automations? Check out FiftyOne Teams.

------------------------------------------------------------------

faq & troubleshooting ⛓️‍💥

This page lists common issues encountered when installing FiftyOne and possible solutions. If you encounter an issue that this page doesn’t help you resolve, feel free to open an issue on GitHub or contact us on Slack or Discord.

FAQ: Maybe you are facing a situation already solved, take a look of the frequently asked questions.

------------------------------------------------------------------

contributing to FiftyOne 🧡

FiftyOne and FiftyOne Brain are open source and community contributions are welcome!

Check out the contribution guide to learn how to get involved.

🤝 Join Our Community 🤝

Connect with us through your preferred channels:

Discord Slack Medium Twitter LinkedIn Facebook

Share your workflow improvements on social media and tag us @Voxel51 and #FiftyOne!.

🎊 You will be in our rewarded list. 🎊

------------------------------------------------------------------

contributors 🤓

Special thanks to these amazing people for contributing to FiftyOne! 🙌

------------------------------------------------------------------

citation 📖

If you use FiftyOne in your research, feel free to cite the project (but only if you love it 😊):

@article{moore2020fiftyone,
  title={FiftyOne},
  author={Moore, B. E. and Corso, J. J.},
  journal={GitHub. Note: https://github.com/voxel51/fiftyone},
  year={2020}
}

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for fiftyone

Similar Open Source Tools

For similar tasks

For similar jobs