2021-07-23

Mutable Datasets

We've released mutable datasets as an opt-in feature! Mutable datasets allow you to update and track changes to your dataset over time. (Previously, a dataset could not be added to or modified once uploaded).

To enable this feature for your org, please reach out to us directly.

To learn more about usage or how to easily convert legacy datasets, see the full docs.

Python Client

Metrics Manager

The python client now supports programmatic querying of our metrics view, allowing you to fetch entries from specific cells of the confusion matrix. 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)
metrics_manager = al_client.get_metrics_manager(PROJECT)

confusions_opts = {
    # Minimum confidence to consider a detection
    'confidence_threshold': 0.7,
    # Minimum iou to consider a match between a label and a detection
    'iou_threshold': 0.4,

    # Which cells you want in the confusionm matrix.
    'queries': [
        metrics_manager.make_cell_query('some_class', 'other_class')
    ],
    'ordering': metrics_manager.ORDER_CONF_DESC,
    'max_results': 100
}

confusions = metrics_manager.fetch_confusions(DATASET_ID, INF_ID, confusions_opts)

Issue Downloads (Exclude Frame Data)

We've added a flag to the Python client IssueManager which allows you to exclude frame data when downloading an issue by setting exclude_frame_data=True

import aquariumlearning as al

# ...skipped al_client setup code

issue_manager = al.IssueManager(al_client, PROJECT_NAME)
downloaded_issue = issue_manager.get_issue(
   ISSUE_UUID, exclude_frame_data=True
)

You may find this option helpful if you are dealing with crop issues, and your frames have 10+ crops/frame---without this flag, your download size may be unnecessarily large. You probably only want the data for your particular crop of interest (and not necessarily all the other crop data). If this flag is set, crop_data and label_metadata will still be populated for you, but frame_data will not.

Overlays

Overlays are now supported on image frames and can be enabled/disabled in the Display Settings. This can useful for heatmaps or other types of overlays that you want to be able to dynamic show on top of your frames.

Query on Custom Objective Metrics

You can now write filters based on the value of a custom object metric. This is particularly useful for regression type tasks.

Query Multiple Confusion Matrix Cells

You can now query multiple cells of the confusion matrix simultaneously in the metrics view. Here you can see a query for every confusion in the confusion matrix (non-diagonal, not a false-positive/false-negative):

To select multiple cells, either use Ctrl/Cmd-Click to toggle a cell, or use one of the bottoms in the top left to quick-select common sets.

Video Classification Support

You can now attach a video file to a frame for video classification tasks. Docs are available here.

frame.add_image(sensor_id='img', image_url='...')
frame.add_video(sensor_id='vid', video_url='...')

Order By Support

You can now order query results by all custom metadata fields, in addition to requesting a random shuffle:

Render Classification Labels Under Images

By default, we render classification labels as an overlay on top of images.

You can now toggle a setting in the Display Settings to render the labels below the image instead of as an overlay.

Issue Assignees

Issue assignees can now be set on issues and it will notify the person you assign that they have been assigned an issue. This can be set in the sidebar of your issue:

Color Crops by IOU

When viewing crop embeddings you can now color them by the IOU value. This is selectable using the "Color By" dropdown.

Timestamp Improvements

In the past times could be shown using the incorrect time zone. These have been sorted out and times will show up correctly throughout the app!

Last updated