- Notifications
You must be signed in to change notification settings - Fork606
Refine high-quality datasets and visual AI models
License
voxel51/fiftyone
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The open-source tool for building high-quality datasets and computer visionmodels
Website •Docs •Try it Now •Tutorials •Examples •Blog •Community
We createdFiftyOne to supercharge your visual AIprojects by enabling you to visualize datasets, analyze models, and improvedata quality more efficiently than ever before 🤝
If you're looking to scale to production-grade, collaborative, cloud-nativeenterprise workloads, check outFiftyOne Enterprise 🚀
As simple as:
pip install fiftyone
More details
FiftyOne supports Python 3.9 - 3.11.
For most users, we recommend installing the latest release version of FiftyOneviapip
as shown above.
If you want to contribute to FiftyOne or install the latest developmentversion, then you can also perform asource install.
See theprerequisites section for system-specific setupinformation.
We strongly recommend that you install FiftyOne in avirtual environmentto maintain a clean workspace.
Consult theinstallation guidefor troubleshooting and other information about getting up-and-running withFiftyOne.
Install from source
Follow the instructions below to install FiftyOne from source and build theApp.
You'll need the following tools installed:
- Python (3.9 - 3.11)
- Node.js - on Linux, we recommend usingnvm to install an up-to-date version.
- Yarn - once Node.js is installed, you canenable Yarn via
corepack enable
We strongly recommend that you install FiftyOne in avirtual environmentto maintain a clean workspace.
If you are working in Google Colab,skip to here.
First, clone the repository:
git clone https://github.com/voxel51/fiftyonecd fiftyone
Then run the install script:
# Mac or Linuxbash install.bash# Windows.\install.bat
If you run into issues importing FiftyOne, you may need to add the path to thecloned repository to yourPYTHONPATH
:
export PYTHONPATH=$PYTHONPATH:/path/to/fiftyone
Note that the install script adds to yournvm
settings in your~/.bashrc
or~/.bash_profile
, which is needed for installing and building the App.
To upgrade an existing source installation to the bleeding edge, simply pullthe latestdevelop
branch and rerun the install script:
git checkout developgit pull# Mac or Linuxbash install.bash# Windows.\install.bat
When you pull in new changes to the App, you will need to rebuild it, which youcan do either by rerunning the install script or just runningyarn build
inthe./app
directory.
If you would like tocontribute to FiftyOne,you should perform a developer installation using the-d
flag of the installscript:
# Mac or Linuxbash install.bash -d# Windows.\install.bat -d
Although not required, developers typically prefer to configure their FiftyOneinstallation to connect to a self-installed and managed instance of MongoDB,which you can do by followingthese simple steps.
You can install from source inGoogle Colab by running the following in acell and thenrestarting the runtime:
%%shellgit clone --depth 1 https://github.com/voxel51/fiftyone.gitcd fiftyone# Mac or Linuxbash install.bash# Windows.\install.bat
See thedocs guidefor information on building and contributing to the documentation.
You can uninstall FiftyOne as follows:
pip uninstall fiftyone fiftyone-brain fiftyone-db
Prerequisites for beginners
Follow the instructions for your operating system or environment to performbasic system setup beforeinstalling FiftyOne.
If you're an experienced developer, you've likely already done this.
Linux
These steps work on a clean install of Ubuntu Desktop 24.04, and should alsowork on Ubuntu 24.04 and 22.04, and on Ubuntu Server:
sudo apt-get updatesudo apt-get upgradesudo apt-get install python3-venv python3-dev build-essential git-all libgl1-mesa-dev
- On Linux, you will need at least the
openssl
andlibcurl
packages - On Debian-based distributions, you will need to install
libcurl4
orlibcurl3
instead oflibcurl
, depending on the age of your distribution
# Ubuntusudo apt install libcurl4 openssl# Fedorasudo dnf install libcurl openssl
python3 -m venv fiftyone_envsource fiftyone_env/bin/activate
If you plan to work with video datasets, you'll need to installFFmpeg:
sudo apt-get install ffmpeg
MacOS
xcode-select --install
/bin/bash -c"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After running the above command, follow the instructions in your terminal tocomplete the Homebrew installation.
brew install python@3.9brew install protobuf
python3 -m venv fiftyone_envsource fiftyone_env/bin/activate
If you plan to work with video datasets, you'll need to installFFmpeg:
brew install ffmpeg
Windows
Download a Python 3.9 - 3.11 installer frompython.org. Make sure to pick a 64-bitversion. For example, thisPython 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
- At the end of the installer, there is an option to disable the
PATH
length limit. It is recommended to click this
DownloadMicrosoft Visual C++ Redistributable.Double-click on the installer to run it, and follow the steps in the installer.
Download Git fromthis link. Double-clickon the installer to run it, and follow the steps in the installer.
- Press
Win + R
. typecmd
, and pressEnter
. Alternatively, searchCommand 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 ofthe virtual environment
(fiftyon_env) C:\path\to\your\project
If you plan to work with video datasets, you'll need to installFFmpeg.
Download an FFmpeg binary fromhere. AddFFmpeg's path (e.g.,C:\ffmpeg\bin
) to yourPATH
environmental variable.
Docker
Refer tothese instructionsto see how to build and run Docker images containing release or source buildsof FiftyOne.
Dive right into FiftyOne by opening a Python shell and running the snippetbelow, which downloads asmall datasetand launches theFiftyOne App so youcan explore it:
importfiftyoneasfoimportfiftyone.zooasfozdataset=foz.load_zoo_dataset("quickstart")session=fo.launch_app(dataset)
Then check outthis Colab notebookto see some common workflows on the quickstart dataset.
Note that if you are running the above code in a script, you must includesession.wait()
to block execution until you close the App. Seethis pagefor more information.
- Visualize Complex Datasets:Easily explore images, videos, and associated labels in a powerful visualinterface.
slicendice.mp4
- Explore Embeddings:Select points of interest and view the corresponding samples/labels.
embeddings.mp4
- Analyze and Improve Models:Evaluate model performance, identify failure modes, and fine-tune yourmodels.
model_eval.mp4
- Advanced Data Curation: Quicklyfind and fix data issues, annotation errors, and edge cases.
compute_mistakenness.mp4
- Rich Integrations:Works with popular deep learning libraries like PyTorch, Hugging Face,Ultralytics, and more.
similarity_search.mp4
- Open and Extensible:Customize and extend FiftyOne to fit your specific needs.
dashboards.mp4
Full documentation for FiftyOne is available atfiftyone.ai.
Tutorials | Recipes | Examples | User Guide | CLI Documentation | API Reference |
---|
Want to securely collaborate on billions of samples in the cloud and connect toyour compute resources to automate your workflows? Check outFiftyOne Enterprise.
Refer to ourcommon issuespage to troubleshoot installation issues. If you're still stuck, check ourfrequently asked questions page formore answers.
If you encounter an issue that the above resources don't help you resolve, feelfree toopen an issue on GitHubor contact us onDiscord.
Connect with us through your preferred channels:
🎊Share how FiftyOne makes your visual AI projects a reality on social mediaand tag us with @Voxel51 and #FiftyOne 🎊
FiftyOne andFiftyOne Brain areopen source and community contributions are welcome! Check out thecontribution guideto learn how to get involved.
Special thanks to these amazing people for contributing to FiftyOne!
About
Refine high-quality datasets and visual AI models