• Stars
    star
    8,042
  • Rank 4,633 (Top 0.1 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Β 

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


Website β€’ Docs β€’ Try it Now β€’ Tutorials β€’ Examples β€’ Blog β€’ Community

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

FiftyOne


Nothing hinders the success of machine learning systems more than poor quality data. And without the right tools, improving a model can be time-consuming and inefficient.

FiftyOne supercharges your machine learning workflows by enabling you to visualize datasets and interpret models faster and more effectively.

Use FiftyOne to get hands-on with your data, including visualizing complex labels, evaluating your models, exploring scenarios of interest, identifying failure modes, finding annotation mistakes, and much more!

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

Documentation

Full documentation for FiftyOne is available at fiftyone.ai. 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

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.

Prerequisites

You will need:

  • Python (3.7 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
sudo apt install libcurl4 openssl

# Fedora
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).

First, clone the repository:

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

Then run the install script:

bash install.bash

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:

bash install.bash -d

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
bash install.bash

Docker installs

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

UI Development on Storybook

Voxel51 is currently in the process of implementing a Storybook which contains examples of its basic UI components. You can access the current storybook instances by running yarn storybook in /app/packages/components. While the storybook instance is running, any changes to the component will trigger a refresh in the storybook app.

%%shell

cd /app/packages/components
yarn storybook

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

More Repositories

1

fiftyone-docs-search

Search docs.voxel51.com with an LLM!
Python
351
star
2

voxelgpt

AI assistant that can query visual datasets, search the FiftyOne docs, and answer general computer vision questions
Python
230
star
3

fiftyone-examples

Examples of using FiftyOne
Python
199
star
4

papers-with-data

A curated list of papers that released datasets along with their work
Python
123
star
5

fiftyone-plugins

A curated list of plugins that you can add to your FiftyOne install!
Python
99
star
6

eta

ETA: Extensible Toolkit for Analytics
Python
29
star
7

badger

Python CLI for creating, saving, and managing custom badges
Python
9
star
8

platform-sdk

SDK for the Voxel51 Platform
Python
6
star
9

pandemic51

Voxel51's website for monitoring the impact of the Coronavirus pandemic
Jupyter Notebook
6
star
10

api-py

Python Client Library for the Voxel51 Platform
Python
5
star
11

player51

Player51 is a client-side JavaScript media player that can render metadata overlays on images and video
JavaScript
4
star
12

evaluation_panel

Python
4
star
13

cvpr-mobile-hdr

Python
4
star
14

platform-integrations

Example Integrations for the Voxel51 Platform
Python
3
star
15

fiftyone_mlflow_plugin

Track model training experiments with MLflow and FiftyOne!
Python
3
star
16

api-js

JavaScript Client Library for the Voxel51 Platform
JavaScript
2
star
17

fiftyone_mlflow_integration

A repo that shows a demo of a mlflow and fiftyone integration
Jupyter Notebook
2
star
18

fiftyone-teams-app-deploy

Deployment Assets for the Fiftyone Teams App
Go
1
star
19

upptime

URL Monitoring for Voxel51
Markdown
1
star
20

fiftyone-huggingface-plugins

Hugging Face Plugins for FiftyOne
Python
1
star