/fiftyone

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

Primary LanguagePythonApache License 2.0Apache-2.0

 

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


WebsiteDocsTry it NowTutorialsExamplesBlogCommunity

PyPI python PyPI version Downloads Build License Slack Medium Mailing list Twitter

FiftyOne


FiftyOne is an open source ML tool created by Voxel51 that helps you build high-quality datasets and computer vision models.

With FiftyOne, you can search, sort, filter, visualize, analyze, and improve your datasets without excess wrangling or writing custom scripts. It also provides powerful functionality for analyzing your models, allowing you to understand their strengths and weaknesses, visualize, diagnose, and correct their failure modes, and more. FiftyOne is designed to be lightweight and easily integrate into your existing CV/ML workflows.

You can get involved by joining our Slack community, reading our blog on Medium, and following us on social media:

Slack Medium Twitter LinkedIn Facebook

Installation

You can install the latest stable version of FiftyOne via pip:

pip install fiftyone

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

Quickstart

Dive right into FiftyOne by launching the quickstart:

fiftyone quickstart

This command will download a small dataset, launch the App, and print some suggestions for exploring the dataset.

You can also check out this Colab notebook to try some common workflows with the quickstart dataset, or run through this Colab notebok for a more detailed overview of FiftyOne.

Documentation

Full documentation for FiftyOne is available online. In particular, see these resources:

Examples

Check out the fiftyone-examples repository for open source and community-contributed examples of using FiftyOne.

Contributing to FiftyOne

FiftyOne is open source and community contributions are welcome!

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

Installing from source

This section explains how to install the latest development version of FiftyOne from source.

The instructions below are for macOS and Linux systems. Windows users may need to make adjustments.

Prerequisites

You will need:

  • Python (3.6 or newer)
  • Node.js - on Linux, we recommend using nvm to install an up-to-date version.
  • Yarn - once Node.js is installed, you can install Yarn via npm install -g yarn
  • On Linux, you will need at least the openssl and libcurl packages. On Debian-based distributions, you will need to install libcurl4 or libcurl3 instead of libcurl, depending on the age of your distribution. For example:
# Ubuntu 18.04
sudo apt install libcurl4 openssl

# Fedora 32
sudo dnf install libcurl openssl

Installation

We strongly recommend that you install FiftyOne in a virtual environment to maintain a clean workspace. The install script is only supported in POSIX-based systems (e.g. Mac and Linux).

  1. Clone the repository:
git clone --recursive https://github.com/voxel51/fiftyone
cd fiftyone
  1. Run the installation script:
bash install.bash

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-web in the ./app directory.

  1. If you want to use the fiftyone.brain package, you will need to install it separately after installing FiftyOne:
pip install fiftyone-brain

Customizing your ETA installation

Installing FiftyOne from source includes an ETA lite installation, which should be sufficient for most users. If you want a full ETA installation, or wish to otherwise customize your ETA installation, see here.

Developer installation

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

bash install.bash -d

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 [-d]

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 fiftyone-desktop

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}
}