Integration between V7 Darwin and Voxel51
Project description
darwin_fiftyone
Provides integration between Voxel51 and V7 Darwin. This enables Voxel51 users to send subsets of their datasets to Darwin for annotation and review. The annotated data can then be imported back into Voxel51.
Example Usage
To illustrate, let's upload all files from the zoo dataset "quickstart" into a Darwin dataset named "quickstart-example". If the dataset doesn't already exist in Darwin, it will be created.
import fiftyone.zoo as foz
dataset = foz.load_zoo_dataset("quickstart", dataset_name="quickstart-example")
dataset.annotate(
"annotation_job_key",
label_field="ground_truth",
atts=["iscrowd"],
launch_editor=True,
backend="darwin",
dataset_slug="quickstart-example",
external_storage="example-darwin-storage-slug",
base_url="https://darwin.v7labs.com/api/v2/teams",
)
After the annotations and reviews are completed in Darwin, you can fetch the updated data as follows:
dataset.load_annotations("annotation_job_key")
Configuration
To integrate with the Darwin backend:
- Install the backend:
pip install darwin-fiftyone
- Configure voxel51 to use it.
cat ~/.fiftyone/annotation_config.json
{
"backends": {
"darwin": {
"config_cls": "darwin_fiftyone.DarwinBackendConfig",
"api_key": "d8mLUXQ.**********************"
}
}
}
Note: Replace the api_key placeholder with a valid API key generated from Darwin.
API
In addition to the standard arguments provided by dataset.annotate(), we also support:
backend=darwin
, Indicates that the Darwin backend is being used.atts
, Specifies attribute subannotations to be added in the labelling jobdataset_slug
, Specifies the name of the dataset to use or create on Darwin.external_storage
, Specifies the sluggified name of the Darwin external storage and indicates that all files should be treated as external storage
Supported Annotation Types
The integration supports bounding boxes, polygons (closed polylines), keypoints, and tags (classifications). It also supports attribute subtypes as previously mentioned.
Future development work will focus on the addition of annotation and subannotation types so do reach out if you are interested
License and Usage
Please see the terms in LEGAL and LICENSE.
Development
Install
For development installation, checkout the repo and
pip install .
Testing
Set up your environment with FiftyOne and Darwin integration settings. To find your team slug check the Darwin documentation on dataset identifiers which has a section called "Finding Team Slugs:"
You'll also need an API Key
export FIFTYONE_ANNOTATION_BACKENDS=*,darwin
export FIFTYONE_DARWIN_CONFIG_CLS=darwin_fiftyone.DarwinBackendConfig
export FIFTYONE_DARWIN_API_KEY=******.*********
export FIFTYONE_DARWIN_TEAM_SLUG=your-team-slug-here
TODO
- Video support in progress
- Support for read only external data storage
- Support for mask and keypoint skeleton types
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for darwin_fiftyone-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f0da25b5af264b71d590cd1f2348b53f7e87f1997615d776b7bbb3139885d85 |
|
MD5 | dd074b338fb141439729e9cbb810f1f3 |
|
BLAKE2b-256 | 9445f37c35cb18f2d5b9f08b6a6324ad14dca6524429c0fa9f053725cd628080 |