2021-11-19

General

Aquarium Is Now SOC 2 Type 2 Certified!

Aquarium is committed to security and data privacy for our customers. We're proud to announce that we are now SOC2 type 2 certified! If you're working with sensitive data, we have the right ML data management system for you.

Invite User to Organization

You can now invite any user to your organization in the UI! Just go to the "Organization Settings" and enter the email of the user you would like to invite.

Issue Element Comments with Image Position

You can now directly comment onto an image in an issue element. This allows you to make comments about specific spots in an image or make comments about labels.

There are now small Top/Side/Front views in the 3D Lidar viewer when selecting a label to give you the ability to see which lidar points are outside of label on any given axis.

Iterative Collection Campaigns

Instance Segmentation Tasks

Added support for 2D instance segmentation tasks. See the following example for a sample, or check out the full docs here. Each instance will be colored a different color, and hovering over the instance label card will highlight the matching instance.

import aquariumlearning as al

al_client = al.Client()
al_client.set_credentials(api_key=API_KEY)

al_client.create_project(..., primary_task="2D_INSTANCE_SEGMENTATION")
dataset = al.LabeledDataset()
frame = al.LabeledFrame(frame_id=frame_id)
instance_mapping = [
    {
        "id": 0, # instance id
        "classification": "truck", # class name
        "attributes": {}, # optional attributes
    }
]
frame.add_label_2d_instance_seg(..., mask_url=LABEL_MASK_URL, instance_mapping=instance_mapping)
dataset.add_frame(frame)

App Improvements

Improved Load Times for Datasets

We have been working hard on improving load times in the UI for your datasets and you should now see substantial improvements (20-30s faster) to load times for larger datasets!

Filtering Crops by Attribute

When viewing by crops in the grid view, you can now filter by labelAttribute (previously we only supported filtering by label classification).

Improved Keypoint Visibility in the UI

Hide Unselected Crops

Added a toggle to display settings to hide other crops when a crop is selected.

Support for Temp S3 Tokens (For Anonymous Mode)

Your organization may be using anonymous mode to keep your assets secure. However, depending on your security setup, some of your org's users may not have access to persistent AWS tokens.

We now provide support for temporary S3 creds, where you can explicitly set the expiry:

Python Client

Issue Comments

Added support for fetching issue comments using the python client. This can be enabled by setting include_comment_data=True . Check out the full docs here.

im = al_client.get_issue_manager(PROJECT_NAME)
issue = im.get_issue(ISSUE_ID, include_comment_data=True)

Inference User Metadata

Added support for adding user metadata to inference sets. Check out the full docs here.

Attaching Confidences to Unlabeled Dataset Crops

We now support adding confidences to unlabeled dataset crops (these are typically regions proposed by your model, not true labels).

This looks basically the same as attaching a conference to an inference:

unlabeled_frame.add_label_2d_classification(
  sensor_id=SENSOR_ID,
  label_id="uuid_for_proposal_region",
  classification=classification,
  confidence=0.8)

Updating Frame Metadata

The Python Client now supports partially updating frame metadata for streaming labeled datasets. This allows a more lightweight, programmatic approach to adding and modifying metadata fields, as you'll only need the frame ids and a dictionary of the relevant fields.

See the following example for a sample, or check out the full docs here.

import aquariumlearning as al

al_client = al.Client()
al_client.set_credentials(api_key=API_KEY)

updates = {}
for frame_id in FRAME_IDS_TO_UPDATE:
    updates[frame_id] = {"existing_field": "new_name", "new_field": 2}
al_client.update_frames_metadata(PROJECT_ID, DATASET_ID, updates)

Last updated