FiftyOneImageAnnotations provides a Julia interface to the FiftyOne toolkit, that enables curating datasets, evaluating models, finding annotation mistakes, visualizing embeddings etc.
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.
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")
using FiftyOneImageAnnotations
using ImageAnnotations
dataset = ImageAnnotationDataSet(AnnotatedImage[]) # ImageAnnotationDataSet{Any}(Any[], AnnotatedImage[])
dataset_from_importer(ImageAnnotationDatasetImporter(dataset)) # FiftyOneImageAnnotations.Dataset
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