FiftyOneImageAnnotations

Build Status Coverage Code Style: Blue

FiftyOneImageAnnotations provides a Julia interface to the FiftyOne toolkit, that enables curating datasets, evaluating models, finding annotation mistakes, visualizing embeddings etc.

Caveats

The embedded MongoDB process is left running after the Julia session is closed. Stop the process manually - or, preferable, use an external MongoDB instance.

The MongoDB process can be terminated using:

kill -3 `ps | grep fiftyone | grep -v service/main.py | grep mongod | cut -d " " -f 1`

This is somewhat unsafe: The MongoDB documentation says that signal 2/INT should be used, but it seems 3/QUIT actually works.

Usage

using FiftyOneImageAnnotations

foo_dataset = Dataset("foo")
Dataset("bar"; persistent = true)

list_datasets() # lists "foo" and "bar" datasets

bar_dataset = load_dataset("bar")

foo_dataset.persistent # false
bar_dataset.persistent # true

delete_non_persistent_datasets()

delete_dataset("bar")

Importing an ImageAnnotations dataset

using FiftyOneImageAnnotations
using ImageAnnotations

dataset = ImageAnnotationDataSet(AnnotatedImage[]) # ImageAnnotationDataSet{Any}(Any[], AnnotatedImage[])

dataset_from_importer(ImageAnnotationDatasetImporter(dataset)) # FiftyOneImageAnnotations.Dataset

Development

Installing FiftyOne can take a long time - disabling installation of dependencies with CondaPkg can speed up development significanly (once the dependencies are installed):

JULIA_CONDAPKG_BACKEND=Null JULIA_PYTHONCALL_EXE=`pwd`/.CondaPkg/env/bin/python julia --project