Skip to content

FiftyOne Release Notes

FiftyOne Teams 2.3.0

Released December 20, 2024

Includes all updates from FiftyOne 1.2.0, plus:

  • Added an example Databricks connector showing how to connect FiftyOne Teams to your lakehouse via Data Lens

  • Added a Data Lens connector that demonstrates how to allow users to dynamically configure the field(s) that are imported

  • Data Lens now supports previewing 3D data imports

  • Guest users can now open Data Lens

  • When scanning for issues with the Data Quality Panel, any fields created are now added to a DATA QUALITY sidebar group

  • Prevented unnecessary scrollbars from appearing when using the Data Quality Panel

  • AWS session tokens are now supported when configuring cloud credentials

  • Fixed a bug that could cause StopIteration errors when performing long-running operations like computing embeddings when using API connections

FiftyOne 1.2.0

Released December 20, 2024

App

  • Added support for instance segmentations whose masks are stored on-disk #5120, #5256

  • Optimized overlay rendering for dense label fields like segmentations and heatmaps #5156, #5169, #5247

  • Improved stability of frame rendering for videos #5199, #5293

  • Sidebar groups that contain only list fields are no longer collapsed by default #5280

  • The Model Evaluation panel now filters both ground truth and prediction fields when you perform interactive filters via the TP/FP/FN icons, per-class histograms, and confusion matrices #5268

  • When comparing two models in the Model Evaluation panel, interactive filters now apply to both evaluation runs #5268

  • The Model Evaluation panel now supports evaluations that were performed on subsets (views) of the full dataset #5267

  • The Model Evaluation panel now shows mask targets for segmentation evaluations when they are available #5281

  • The Model Evaluation panel now hides metrics that aren’t applicable to a given evaluation type #5281

  • Fixed an issue where backtick can’t be typed when editing markdown notes in the Model Evaluation panel #5233

  • Fixed a race condition that could cause errors when performing text similarity searches #5273

  • Fixed a caching bug that prevented label overlay font sizes from dynamically resizing as expected in some cases #5287

  • Fixed a bug that excluded selected samples from the counter above the Samples panel #5286

SDK

Brain

Zoo

FiftyOne Teams 2.2.0

Released December 6, 2024

Includes all updates from FiftyOne 1.1.0, plus:

  • All Teams deployments now have builtin compute capacity for executing delegated operations in the background while you work in the App

  • Introduced Data Lens, which allows you to explore and import samples from external data sources into FiftyOne

  • Added a Data Quality Panel that automatically scans your data for quality issues and helps you take action to resolve them

  • Added a Query Performance Panel that helps you create the necessary indexes to optimize queries on large datasets

  • Added support for creating embeddings visualizations natively from the Embeddings panel

  • Added support for evaluating models natively from the Model Evaluation panel

  • Added support for configuring an SMTP server for sending user invitiations via email when running in Internal Mode

FiftyOne 1.1.0

Released December 6, 2024

What’s New

  • Added a Model Evaluation panel for visually and interactively evaluating models in the FiftyOne App

  • Introduced Query Performance in the App, which automatically nudges you to create the necessary indexes to greatly optimize queries on large datasets

  • Added a leaky splits method for automatically detecting near-duplicate samples in different splits of your datasets

  • Added a near duplicates method that scans your datasets and detects potential duplicate samples

App

  • Added zoom-to-crop and set-look-at for selected labels in the 3D visualizer #4931

  • Gracefully handle deleted + recreated datasets of the same name #5183

  • Added a referrerPolicy so the App can run behind reverse proxies #4944

  • Fixed a bug that prevented video playback from working for videos with unknown frame rate #5155

SDK

  • Added min() and max() and aggregations #5029

  • Optimized object detection evaluation with r-trees #4758

  • Improved support for creating summary fields and indexes #5091

  • Added support for creating compound indexes when using the builtin create_index operator that optimize sidebar queries for group datasets #5174

  • The builtin clear_sample_field and clear_frame_field operators now support clearing fields of views, in addition to full datasets #5122

  • Fixed a bug that prevented users with pydantic installed from loading the quickstart-3d dataset from the zoo #4994

  • Added optional email parameter to the CVAT integration #5218

Brain

Plugins

FiftyOne Teams 2.1.3

Released November 8, 2024

Includes all updates from FiftyOne 1.0.2.

FiftyOne 1.0.2

Released November 8, 2024

Zoo

Core

  • Fixed input shape in the depth estimation transformer #5035

  • Added graceful handling of empty datasets when computing embeddings #5043

App

  • Added a new TimelineView for building custom animations #4965

  • Fixed overlay z-index and overflow for panels #4956

  • Fixed bug where timeline name wasn’t being forwarded in seek utils #4975

  • Performance improvements in the grid and modal #5009, #5015, #5018, #5019, #5022

  • Fixed batch selection with ctrl + click in the grid #5046

FiftyOne Teams 2.1.2

Released October 31, 2024

  • Fixed an issue that prevented delegation_target from being properly set when running delegated operations with orchestrator registration enabled

FiftyOne Teams 2.1.1

Released October 14, 2024

Includes all updates from FiftyOne 1.0.1, plus:

  • Fixed an issue with Auth0 connections for deployments behind proxies

  • Bumped dependency requirement voxel51-eta>=0.13

FiftyOne 1.0.1

Released October 14, 2024

App

  • Video playback now supports the timeline API #4878

  • Added utils to support a rerun panel #4876

  • Fixed a bug that prevented Classifications labels from rendering #4891

  • Fixed a bug that prevented the fiftyone quickstart and fiftyone app launch commands from launching the App #4888

Core

  • COCO exports now use 1-based categories #4884

  • Fixed a bug when passing the classes argument to load specific classes in COCO format #4884

FiftyOne Teams 2.1.0

Released October 1, 2024

Includes all updates from FiftyOne 1.0.0, plus:

  • Super admins can now migrate their deployments to Internal Mode via the Super Admin UI

  • Added support for sending user invitations in Internal Mode

  • Optimized performance of the dataset page

  • Fixed a BSON serialization bug that could cause errors when cloning or exporting certain dataset views from the Teams UI

FiftyOne 1.0.0

Released October 1, 2024

What’s New

App

  • Added dozens of builtin operators for performing common operations directly from the App #4830

  • Label overlays in the grid are now scaled proportionally to grid zoom #4747

  • Improved support for visualizing and filtering DynamicEmbeddedDocument list fields #4833

  • Added a new timeline API for synchronizing playback of multiple modal panels #4772

  • Improved UI, documentation, and robustness when working with custom color schemes #4763

  • Fixed a bug where the active group slice was not being persisted when navigating between groups in the modal #4836

  • Fixed a bug when selecting samples in grouped datasets in the modal #4789

  • Fixed heatmaps rendering for values outside of the range attribute #4865

Core

  • Added support for creating summary fields to optimize queries on large datasets with many objects #4765

  • Dataset fields now have automatically populated created_at attributes #4730

  • Upgraded the delete_samples() and clear_frames() methods to support bulk deletions of 100k+ samples/frames #4787

  • The default_sidebar_groups() method now correctly handles datetime fields #4815

  • Fixed an off-by-one error when converting semantic segmentations to/from instance segmentations #4826

  • Protect against infinitely growing content size batchers #4806

  • Removed the deprecated remove_sample() and remove_samples() methods from the Dataset class #4832

  • Deprecated Python 3.8 support

Plugins

  • Added ctx.group_slice to the operator execution context #4850

  • Added set_group_slice() to the operator execution context #4844

  • Improved styling for GridView components #4764

  • A loading error is now displayed in the actions row when operators with placements fail to load #4714

  • Ensure the App loads when plugins fail to load #4769

FiftyOne 0.25.2

Released September 19, 2024

  • Require pymongo<4.9 to fix database connections

  • Require pydicom<3 for DICOM datasets

FiftyOne Teams 2.0.1

Released September 6, 2024

Includes all updates from FiftyOne 0.25.1, plus:

  • Optimized the Manage > Access page for datasets

  • Added support for configuring a deployment to allow Guests to run custom plugins

  • Fixed a bug where dataset permissions assigned to groups were not correctly applied to users that do not otherwise have access to the dataset

  • Fixed a bug where a deployment’s default user role as configured on the Security > Config page would not be respected

  • Fixed a bug that could cause 3D scenes stored in Azure to fail to load

  • Fixed a bug that erroneously caused the currently selected samples to be cleared when navigating between samples or closing the sample modal

FiftyOne 0.25.1

Released September 6, 2024

App

  • Fixed an issue with sidebar state persistence when opening and closing the sample modal #4745

  • Fixed a bug with sample selection in the Map panel when the grid is reset #4739

  • Fixed a bug when filtering Keypoint fields using the App sidebar #4735

  • Fixed a bug when tagging in the sample modal with active sidebar filters #4723

  • Disabled fiftyone-desktop builds until package size can be optimized #4746

SDK

Plugins

  • Fixed a bug that caused TabsView components to erroneously reset to their default state #4732

  • Fixed a bug where calling set_state() and set_data() to patch state/data would inadvertently clobber other existing values #4753

  • Fixed a spurious warning that would appear for delegated operations that don’t return outputs #4715

FiftyOne Teams 2.0.0

Released August 20, 2024

Includes all updates from FiftyOne 0.25.0, plus:

What’s New

  • Added a Can tag permission to allow users to tag samples/labels but not otherwise perform edits

  • Added support for authorized user credentials and external account credentials when configuring GCP credentials

  • All plugin execution is now user-aware and will respect the executing user’s role and dataset permissions

  • All deployments now include a LICENSE file that enforces user quotas

  • Guests can no longer access operators/panels in custom plugins

App

  • Added a caching layer to optimize media serving in the App

  • Cloning an entire dataset via the Clone button now includes saved views, saved workspaces, and runs

  • Optimized the performance and UX of the Settings > Users page

  • The users table on the Settings > Users page is now sortable

  • Fixed a bug when updating the user role of a pending invitation

  • Fixed a bug that prevented the Recent views widget from showing all recently loaded views as intended

CAS

  • Added an Audit page to the Super Admin UI that shows current license utilization and RBAC settings

  • Super admins can now disable manual group management in the App. This is useful, for example, if groups are defined via hooks

  • Legacy mode deployments now have access to the relevant pages of the Super Admin UI

SDK

  • Added a user_groups module to the Management SDK for programmatically managing user groups

  • The fiftyone delegated CLI command is now available to Teams users

  • Upgraded the upload_media() function to gracefully support fields with missing media paths

  • Added an overwrite parameter to add_cloud_credentials() to control whether existing cloud credentials with the same prefix for a provider are overwritten

FiftyOne 0.25.0

Released August 20, 2024

What’s New

  • Introducing Python panels, a powerful framework for building custom App panels via a simple Python interface that includes a wealth of builtin components to convey information, create tutorials, show interactive graphs, trigger operations, and more

  • Released a Dashboard panel that allows users to build custom no-code dashboards that display statistics of interest about the current dataset (and beyond)

  • Added Segment Anything 2 to the model zoo! #4671

  • Added an Elasticsearch integration for native text and image searches on FiftyOne datasets!

  • Added an image representativeness method to the Brain that can be used to find the most common/uncommon types of images in your datasets

App

  • You can now link directly to a sample or group in the App by copy + pasting URLs into your browser bar or programmatically via your App session #4281

  • Added a config option to disable frame filtering in the App globally or on specific datasets #4604

  • Added support for dynamically adjusting 3D label linewidths #4590

  • Added a status bar when loading large 3D assets in the modal #4546

  • Added support for visualizing heatmaps in .jpg format #4531

  • Exposed camera position as a recoil atom #4535

  • Added anonymous analytics collection on an opt-in basis #4559

  • Fixed a bug when viewing dynamic groups of 3D scenes in the modal #4527

  • Fixed a bug when rendering scenes with relative 3D asset paths on Windows #4579

  • Fixed keyboard shortcuts when viewing dynamic groups in the modal #4510

Annotation

Core

  • Added support for save contexts to generated views (patches, frames, and clips) #4636

  • Added support for downloading plugins from branches that contain slashes / #4614

  • Added support for including index statistics in Dataset.stats() #4653

  • Added a source install script for Windows #4582

  • Ubuntu 24.04 users no longer have to manually install MongoDB #4533

  • Removed Python 3.7 support and marked Python 3.8 as deprecated #4538

  • Fixed a bug that could cause side effects when creating clip views defined by expressions #4492

  • Fixed a concatenation bug when downloading videos from CVAT #4674

Plugins

  • The actions row now automatically overflows into a More items menu as necessary when there is insufficient horizontal space #4595

  • Added a set_active_fields() operator for programmatically controlling the selected fields in the sidebar #4482

  • Added a notify() operator for programmatically showing notifications in the App #4344

  • Added ctx.extended_selection to retrieve the current extended selection #4413

  • Added a set_extended_selection() operator for programmatically setting the extended selection #4409

  • Added a track_event() operator for logging plugin events in the App #4489

Zoo

FiftyOne Teams 1.7.1

Released June 11, 2024

Includes all updates from FiftyOne 0.24.1, plus:

  • Improved stability of loading/navigating to saved views in the App

  • Fixed a notification error when deleting users from the Team Settings page

  • Improved stability of the Team Groups page after deleting users

  • Optimized export of cloud-backed 3D scenes

FiftyOne 0.24.1

Released June 11, 2024

What’s New

App

  • Fixed a regression from FiftyOne 0.24.0 that would prevent operator outputs and error states from displaying in the App #4445

Core

  • Optimized metadata computation for 3D scenes #4442

  • Fixed a bug that could cause 3D assets to be omitted when exporting 3D scenes #4442

Utils

Annotation

  • Added support loading annotations for large CVAT tasks with many jobs #4392

FiftyOne Teams 1.7.0

Released May 29, 2024

Includes all updates from FiftyOne 0.24.0, plus:

  • Added a Roles page that summarizes the actions and permissions available to each user role

  • Added support for customizing the role that a user will have when sending an invitation for a new user to access a specific dataset

  • Added the ability to configure the expiration time for signed URLs used by your FiftyOne Teams deployment

  • Fixed a regression from FiftyOne Teams 1.6 that could cause login errors when accepting invites

FiftyOne 0.24.0

Released May 29, 2024

What’s New

App

  • Added a media_fallback option to the dataset App config #4280

  • launch_app() now respects the current group_slice when loading grouped datasets #4423

  • Allow sidebar changes during lightning loading states #4319

  • Fixed overlay processing for empty label lists #4345

  • Fixed support filtering in the sample modal for TemporalDetections fields #4346

  • Fixed a regression from FiftyOne 0.23.8 when viewing dynamically grouped views into group datasets #4299

Core

  • Gracefully handle None-valued tags fields #4351

  • More robust path normalization when importing FiftyOneDataset exports from other operating systems #4353

  • Fixed possible concurrency bugs when updating/deleting runs #4323

  • Fixed possible concurrency bugs when updating views, workspaces, and group slices #4350

  • Fixed a timezone bug with DateField for GMT+ users #4371

Utils

Plugins

  • Added a DrawerView option to render your operators as a side drawer in the grid/sample visualizer rather than as a modal #4240

  • Added a set_spaces() method for setting the current spaces layout from operators #4381

  • Added support for numpy dtypes when serializing operator results #4324

  • Fixed a bug where recently used operators may not appear first in the Operator browser #4287

  • Fixed logging syntax in the builtin set_progress() operation #4417

Zoo

FiftyOne Teams 1.6.1

Released May 10, 2024

Bugs

  • Fixed an issue with logging into FiftyOne Teams in Enterprise Proxy enviornments

FiftyOne Teams 1.6.0

Released April 30, 2024

What’s New

  • Added Groups for managing and dataset access for groups of users

  • Introduced a new Pluggable Authentication system for customizing FiftyOne Teams authentication

  • Removed Auth0 as a hard dependency for Teams deployments with the introduction of Internal Mode

  • Added support for directly authenticating with Identity Providers

  • Added a Super Admin UI for administering FiftyOne Teams deployments

  • Added the ability to search for users on the Users page

FiftyOne Teams 1.5.10

Released April 18, 2024

  • Fixed an issue where video datasets were not loading due to ffmpeg dependency

FiftyOne Teams 1.5.9

Released April 15, 2024

Includes all updates from FiftyOne 0.23.8, plus:

  • Download contexts now support batching based on content size

  • All builtin methods that require access to cloud media now use download contexts to download media in batches during execution rather than downloading media in a single batch up-front

  • The export() method no longer caches all cloud media involved in the export

  • Optimized the localhost App experience when using API connections

  • Optimized performance of data-intensive API calls when using API connections

FiftyOne 0.23.8

Released April 15, 2024

News

App

  • Space sizes are now persisted when the App is refreshed #4171

  • Added support for rendering detections with empty instance masks in the App #4227

  • Enhanced label overlay processing to support empty label lists #4215

  • Optimized by the App server by removing unnecessary server lock-ups due to synchronous IO calls #4180

  • Optimized sidebar performance for grouped datasets #4182

  • Optimized dataset counting for index page queries #4114

  • Fixed a bug where sidebar group name changes in the App were not persisted #4241

  • Fixed a bug when applying filters to Keypoint fields #4201

  • Fixed a bug where in-App tagging actions may not be restricted to the currently selected samples #4195

  • Fixed a bug when bookmarking sidebar filters for group datasets #4097

  • Fixed a bug where the saved view dropdown would cover the view stage popover #4242

Core

Docs

Annotation

Plugins

Zoo

FiftyOne Teams 1.5.8

Released March 21, 2024

Includes all updates from FiftyOne 0.23.7.

FiftyOne 0.23.7

Released March 21, 2024

App

  • Updated Have a Team? link in the App to point to the Book a demo page #4127

  • Fixed indexed boolean fields in lightning mode #4139

  • Fixed app crash when many None-valued fields exist in the sample modal #4154

Docs

Plugins and Operators

  • Added support for executing operators programmatically in notebook contexts #4134

  • Improved execution of operators during loading of the App #4136

  • Added a new on_dataset_open hook to auto-execute operators when datasets are opened in the App #4137

  • Improved performance of operator type resolution by only calling resolve_input() on demand #4152

  • Added support for loading saved views by name or slug when using the set_view() operator #4159 and #4178

  • Added ability to trigger builtin operators during operator execution via ctx.ops #4164

  • Fixed issue where JS operator input was not validated when calling ctx.trigger() or executeOperator() directly #4170

  • Show execution error of an operator in a notification when calling ctx.trigger() or executeOperator() directly #4170 and #4178

Core

FiftyOne Teams 1.5.7

Released March 6, 2024

Includes all updates from FiftyOne 0.23.6, plus:

FiftyOne 0.23.6

Released March 6, 2024

What’s New

Bugs

  • Fixed issue with filter counts on video datasets in the App #4095

  • Fixed issue with color scheme initialization in the App #4092

  • Fixed issue when changing group slice with filters in the App #4098

  • Fixed issue with zero-shot detection batching #4108

  • Fixed issue with the operator target view utility when no view or sample selection is present #4113

FiftyOne Teams 1.5.6

Released February 14, 2024

Includes all updates from FiftyOne 0.23.5, plus:

  • Improved dataset search user experience

  • Post login redirects will now send the user to the correct page

FiftyOne 0.23.5

Released February 14, 2024

What’s New

  • Added subcounts to search results in the sidebar #3973

  • Added fiftyone.operators.types.ViewTargetProperty to make it simpler to add view selection to a fiftyone.operators.Operator #4076

  • Added support for apply monocular depth estimation transformers from the Hugging Face transformers library directly to FiftyOne datasets #4082

Bugs

  • Fixed an issue where increments were padded improperly #4035

  • Fixed an issue when setting session.color_scheme #4060

  • Fixed sidebar groups resolution when the dataset app config setting is configured #4064

  • Fixed issue when SelectGroupSlices view stage is applied with only one slice within video grouped datasets #4066

  • Fixed non-default pcd slice rendering in the App #4044

  • Dynamic groups configuration options are now only shown when relevant #4068

  • Fixed issue with dynamic groups mode pagination #4068

  • Enabled tagging in sidebar lightning mode #4048

FiftyOne Teams 1.5.5

Released January 25, 2024

Includes all updates from FiftyOne 0.23.4, plus:

Bugs

  • Fixed a proxy URL bug that prevented custom JS panels from launching

FiftyOne 0.23.4

Released January 25, 2024

Core

  • Added support for passing kwargs directly when creating custom runs #4039

Brain

FiftyOne Teams 1.5.4

Released January 19, 2024

Includes all updates from FiftyOne 0.23.3, plus:

General

  • Optimized export() calls involving cloud-backed media

  • Deployments with their FIFTYONE_API_URI environment variable set will now display the API URI to users in the Teams App

  • Improved debug logs by adding the head and tail of large results

  • Updated motor dependency to 3.3.0

Bugs

  • Fixed a regression when exporting cloud-backed media to CVAT for annotation

  • Fixed an issue where API requests were not being prefixed with the correct proxy URL

  • Fixed running compute_similarity() over API connections with the MongoDB backend

FiftyOne 0.23.3

Released January 19, 2024

News

App

  • Primitive values in DynamicEmbeddedDocument list fields are now displayed as comma-separated values (previously displayed as None) in the sample modal #3963

  • Improved field visibility’s show metadata toggle #3926

  • Fixed issues for unknown operator types and defaults #3851

  • Miscellaneous saved view improvements #3974

  • Fixed a bug where images in the sample modal errored when frame fields were added to video slices in mixed datasets #3966

  • Fixed in-App sort by similarity for datasets with a color scheme #3966

  • Fixed issues where media and other URLs were constructed incorrectly #3976

  • Fixed keyboard navigation for dropdowns throughout the App #3965

Brain

  • Added support for passing Hugging Face, Ultralytics, and SuperGradients models directly brain methods #4004

  • Added support to register_run() for configuring whether run cleanup happens #3978

  • Added support for passing model kwargs to compute_similarity() and compute_visualization()

  • Fixed issues with similarity searches on views and with pre-computed embeddings using the MongoDB backend

Core

  • Added dynamic batching to bulk writes like set_values() #4015

  • Added support for customizing progress bar rendering at method level #3979

  • Include sample/frame singletons when clearing dataset cache via clear_cache() #4016

  • Fixed issues with embedded document field schemas #4002

Models

Plugins

  • Added a builtin delete_selected_labels operator #4001

  • Updated ctx.selected_labels format to be consistent with other SDK methods #3998

Tutorials

FiftyOne Teams 1.5.3

Released December 21, 2023

Includes all updates from FiftyOne 0.23.2, plus:

General

  • Improved performance of add_samples(), set_values(), compute_metadata(), and other large batched computations when using API connections

  • Added label as a searchable field for delegated operations

  • Fixed issue where invalid tokens were not causing redirects

  • Re-running a delegated operation now uses dataset ID instead of name

  • Trimmed API logging of large batch SDK operations

FiftyOne 0.23.2

Released December 21, 2023

News

App

  • Added support for frames-as-videos in nested groups #3935

  • Fixed an issue where embeddings legend did not display full names #3927

  • Added a toggle to show/hide fields in the sample modal that have undefined values #3937

  • Fixed an issue with the Lightning threshold reset button #3933

  • Fixed an issue where similarity search only worked on the default group slice #3912

  • Fixed issue where users could not select scalar fields in the sidebar #3938

Core

  • Added configurable batching choices to optimize throughput for operations like add_samples() #3923

  • IoU computations for non-filled polylines now uses keypoint similarity #3930

  • Optimized bulk write database operations like set_values() #3942

  • Added configurable batch sizes to bulk write operations #3944

  • Added builtin support for Ubuntu 23 #3936

  • Fixed an issue where exporting patches would have incorrect path names #3921

  • Removed loading from mongoengine cache #3922

  • Fixed overwriting dataset metadata with empty values during import #3913

Annotation

  • Added support for annotating multiple label fields using the Label Studio backend #3895

Plugins

  • Added support for delegating function calls via the new @voxel51/utils/delegate operator #3939

  • Added the ability to search multiple fields in a delegated operation list query #3892

  • Delegated operators now reference datasets by ID rather than name for robustness to dataset name changes #3920

  • Improved validation for the builtin delete_selected_samples and clone_selected_samples operators #3914

  • Fixed backwards compatibility issues with ctx.secrets #3908

  • Fixed issue with JS plugin App configs #3924

FiftyOne Teams 1.5.2

Released December 11, 2023

Bugs

  • Avoid creating non-existent database indexes on API startup

  • Avoid errors when archiving snapshots with corrupted run results

FiftyOne Teams 1.5.1

Released December 8, 2023

Includes all updates from FiftyOne 0.23.1

FiftyOne 0.23.1

Released December 8, 2023

App

  • Fixed Python 3.8 installations #3905

  • Fixed App error pages #3903

  • Fixed session.dataset = None #3890

Core

FiftyOne Teams 1.5.0

Released December 6, 2023

Includes all updates from FiftyOne 0.23.0, plus:

Features

  • Added support for archiving older dataset snapshots to cold storage

  • Added support for executing operators on dataset snapshots

  • Added support for uploading multiple sets of cloud credentials, some of which may only apply to data in certain bucket(s)

  • Added support for uploading media to Labelbox directly from S3 buckets

  • Added support for executing the builtin open_dataset operator in the Teams UI

  • Added support for executing operators when viewing datasets with no samples, for example to add media/labels to the dataset from within the App

  • Added support for editing the label of a delegated operation

  • Added support for manually marking delegated operations as failed

  • Added support for monitoring the progress of delegated operations

  • Improved handling of plugin secrets

  • Added the ability to attach authorization tokens to media/asset requests

  • Added new filter options to the dataset listing page

  • Filters/searches on the dataset listing page are now persisted through URL query parameters

  • Validate regexes before searching datasets to stop hard crashes

  • Enforce exact version of auth0 python package

  • Added debug logging on API startup

Bugs

  • Fixed an issue with the Runs page when viewing delegated operations that were scheduled via the SDK

  • Users with special access to a dataset are now displayed properly

  • Fixed an issue when loading certain datasets with saved color schemes in the Teams UI

  • Fixed an issue on the dataset listing page where the page size menu would sometimes stay open after making a selection

  • Fixed an issue when downloading plugins via the API that contain bytes data or .pyc files

  • Fixed an issue where certain disabled operators were not correctly appearing as disabled in the operator browser

  • Improved reliability of similarity sort actions

FiftyOne 0.23.0

Released December 6, 2023

News

App

  • Added a new Lightning mode to the App sidebar that provides an optimized filtering experience for large datasets #3807

  • Added support for viewing image groups as a video #3812

  • Added support for configuring custom color schemes for semantic segmentation labels via the color scheme editor #3727

  • Added support for configuring custom Heatmap colorscales via the color scheme editor #3804

  • Improved rendering and customizability of label tags in the color scheme #3622

  • Added an empty dataset landing page that allows for importing media and/or labels to the dataset from the App by running operators #3766

  • Added a landing page that appears when no dataset is currently selected that allows for creating/opening datasets in the App by running operators #3766

  • Added support for executing operators when the sample modal is open #3747

  • Added a keyboard shortcut for batch selecting samples in grid and modal #3718

  • Made field visibility’s selections persistent across page refreshes #3646

  • Introduced error alert for view bar errors in view stages #3613

  • Ensure that the last used brain key is loaded by default in the similarity search menu #3714

  • Added support for launching the App with a non-default browser #3789

  • Upgraded werkzeug from 2.0.3 to 3.0.1 in requirements for improved compatibility #3723

Core

Plugins

  • Added ctx.current_sample to operator’s ExecutionContext to support applying operators to the current sample open in the App modal #3792

  • Added support for configuring an operator’s available execution options in cases where immediate and/or delegated execution should be available #3839

  • Added support for programmatically executing generator operators via the SDK #3803

  • Added a builtin clear_sample_field operator for clearing sample fields #3800

  • Loosened the OperatorConfig constructor signature for enhanced forward/backward compatibility #3786

  • Fixed an issue where operator form defaults were not always applied #3777

  • Improved handling of fields in operator forms #3728

  • Improved default value control in operator forms #3371

Annotation

  • Updated the Labelbox integration to support the latest version of the Labelbox API #3781

  • Removed the need for prepending sequence numbers to filenames when uploading images to the CVAT integration with sufficiently new versions of the CVAT SDK #3823

Bugs

  • Improved the implementation of saved view loading in the App #3788

  • Fixed an issue where typing the backtick key would close the operator palette #3790

  • Fixed orthographic projection bug for more accurate 3D rendering #3864

  • Addressed missing notifications when scheduling certain delegated operations from the App #3861

  • Resolved issues with generator operators #3861

  • Fixed operator form exception when onChange is missing #3840

  • Corrected operator form crash and changed field re-render #3833

  • Fixed select/show samples builtin operator for better sample management #3818

  • Addressed hidden validation error bug for more accurate error handling #3776

  • Fixed issue with custom colors when switching between name and list #3847

  • Various improvements and fixes around color management #3649

  • Resolved issue where tag labels in multiple samples could only tag labels in the last sample #3858

  • Prevent operator list from rendering behind the sample modal #3757

  • Fixed boolean not displayed in modal view sidebar entry for consistent data representation #3713

  • Fixed random seed issue when creating Take view stages in the App #3855

  • Fixed dynamically grouped views for non-group parent media types of grouped datasets #3798

  • Addressed media fields issues for more reliable media handling #3722

  • Fixed an issue with selecting group slices in views that contain a Select view stage #3852

  • Fixed an issue with view reloading for datasets that have saved views #3838

  • Fixed rendering of semantic segmentation masks within DynamicEmbeddedDocument fields #3825

  • Resolved an issue with the slice/group statistics selector where no default option is selected #3698

  • Fixed various issues with builtin operators #3817

  • Addressed a potential data duplication issue when merging in-memory samples into grouped datasets #3816

  • Resolved possible malformed FiftyOneDataset format exports due to concurrent edits #3726

  • Fixed the plugin cache check #3676

  • Fixed an error when pressing the esc key in the App #3662

FiftyOne Teams 1.4.5

Released November 21, 2023

General

  • Added debug log events to API server startup

FiftyOne Teams 1.4.4

Released November 3, 2023

Includes all updates from FiftyOne 0.22.3, plus:

General

  • Optimized iterator operations such as export

  • Improved plugin upload reliability

  • Further improved dataset listing queries

Bugs

  • Fixed clips, frames, and patches views for grouped datasets in the App

  • Fixed cloud credential initialization during deployment restarts

  • Fixed snapshot diff computation in large datasets with MongoDB < v6.0

FiftyOne 0.22.3

Released November 3, 2023

Core

App

Brain

  • Optimized similarity backends when performing KNN queries against their entire indexes

  • Fixed performing similarity queries on filtered views in the LanceDB integration

  • Fixed calling remove_from_index() on an index that uses the embeddings_field parameter

  • Fixed compute_embeddings() when skip_existing=True is provided

Plugins

CLI

FiftyOne Teams 1.4.3

Released October 20, 2023

Includes all updates from FiftyOne 0.22.2, plus:

General

  • Improved dataset listing queries

  • Improved error handling when listing datasets

  • Fixed issues with offline access and auth errors requiring cookies to be cleared manually

  • Reduced max export size of datasets to 100MB

  • Users will now only see an operator if their role meets the required role

FiftyOne 0.22.2

Released October 20, 2023

Core

App

Plugins

  • Use a fallback icon when an operator cannot be executed #3661

  • FileView now captures content as well as filename and type of the UploadedFile #3679

  • Fixed issue where the fiftyone delegated launch CLI command would print confusing errors #3694

  • Added a list_operators() utility for listing operators #3694

  • Added a operator_exists() utility for checking if an operator exists #3694

  • Number properties now support min and max options in various views and validation #3684

  • Improved validation of primitive types in operators #3685

  • Fixed issue where non-required property validated as required #3701

  • Fixed an issue where plugin cache was not cleared when a plugin was deleted #3700

  • File now uses FileExplorerView by default #3656

Zoo

  • Fixed issue preventing DINOv2 models from being loaded #3660

FiftyOne Teams 1.4.2

Released October 6, 2023

Includes all updates from FiftyOne 0.22.1, plus:

General

  • Error messages now clearly indicate when attempting to use a duplicate key on datasets a user does not have access to

  • Fixed issue with setting default access permissions for new datasets

  • Deleting a dataset now deletes all dataset-related references

  • Default fields now populate properly when creating a new dataset regardless of client

  • Improved complex/multi collection aggregations in the api client

  • Fixed issue where users could not list other users within their own org

  • Snapshots now properly include all run results

  • Fixed issue where reverting a snapshot behaved incorrectly in some cases

  • Fixed Python 3.7 support in the fiftyone-teams SDK

App

  • Searching users has been improved

  • Resolved issue with recent views not displaying properly

FiftyOne 0.22.1

Released October 6, 2023

App

  • Fixed empty detection instance masks #3559

  • Fixed a visual issue with scrollbars #3605

  • Fixed a bug with color by index for videos #3606

  • Fixed an issue where Detections (and other label types) subfields were properly handling primitive types #3577

  • Fixed an issue launching the App in Databrick notebooks #3609

Core

  • Resolved groups aggregation issue resulting in unstable ordering of documents #3641

  • Fixed an issue where group indexes were not created against the correct id property #3627

  • Fixed issue with empty segmentation mask conversion in COCO-formatted datasets #3595

Plugins

  • Added a new fiftyone.plugins.utils module that provides common utilities for plugin development #3612

  • Re-enabled text-only placement support when icon is not available #3593

  • Added read-only support for FileExplorerView #3639

  • The fiftyone delegated launch CLI command will now only run one operation at a time #3615

  • Fixed an issue where custom component props were not supported #3595

  • Fixed issue where selected_labels were missing from the ExecutionContext during resolve_input() and resolve_output() #3575

FiftyOne Teams 1.4.1

Released September 21, 2023

Bugs

  • Patched a regression that prevented the Teams App from working behind proxies

FiftyOne Teams 1.4.0

Released September 20, 2023

Includes all updates from FiftyOne 0.22.0, plus:

News

App

  • Admins can now upload secrets via the UI which are made available to all plugins and delegated operations at runtime

  • Optimized page load times when accessing the Team Settings page

  • Optimized page load times when opening a dataset for the first time in a new web session

FiftyOne 0.22.0

Released September 20, 2023

News

App

  • Updated the Histograms panel to only render one field at a time to improve performance #3419

  • Gracefully fallback to filepath if a dataset’s app_config has a custom grid media field that has been excluded from the current view #3498

  • Improved rendering of 2D polylines #3476

  • Prevented unnecessary page reloads when clearing selections in the Embeddings panel #3507

  • Removed unnecessary page reloads when resetting field visibility filters #3441

  • Fixed an off-by-one bug when paging in the sample grid #3416

  • Fixed a bug when applying field visibility filters to fields of type DateField and DateTimeField #3418

  • Fixed a bug when changing slices for grouped datasets in the sample modal when sidebar filters have been applied #3545

  • Fixed a bug when visualizing dynamic groupings of grouped datasets with sparse (missing) slices #3470

  • Fixed a bug that prevented the group media visibility dropdown from opening #3480

  • Fixed a bug where attributes of grouped samples were missing in the modal #3436

Core

Plugins

Zoo

FiftyOne Teams 1.3.6

Released August 8, 2023

Includes all updates from FiftyOne 0.21.6.

FiftyOne 0.21.6

Released August 8, 2023

App

  • Fixed the Embeddings panel #3401

  • Fixed a bug when using the sidebar to filter views that have selected fields #3405

FiftyOne Teams 1.3.5

Released August 7, 2023

Includes all updates from FiftyOne 0.21.5, plus:

App

  • Fixed a bug with dataset search where suggestions may not appear when matches across multiple types collide

  • Upgraded the Plugin configuration UI to better explain the available Operator permission configuration options

SDK

  • Significant performance optimizations by introducing cursor batching for relevant API endpoints

FiftyOne 0.21.5

Released August 7, 2023

News

App

  • Added support for controlling field visibility in the grid independent of filtering #3248

  • Added support for filtering by label tags in individual label fields #3287

  • Added support for specifying custom colors for list fields #3319

  • Added support for opening the color panel when the sample modal is open #3355

  • Added helper text explaining custom color options #3383

  • Added support for viewing slices of grouped datasets in the Embeddings panel #3351

  • Added support for coloring embeddings plots by list fields #3326

  • Improved overflow when the actions row contains many icons #3296

  • Added support for tagging all visible PCD slices #3384

  • Improved handling of group datasets whose groups may contain missing samples for certain slices #3333

  • Fixed various issues when visualizing grouped datasets #3353, #3322, #3318, #3379, #3318

  • Added bazel support #3338

  • Removed the maximum starlette version requirement #3297

Plugins

  • Added support for accessing the currently selected labels in the App within plugin execution contexts #3295

  • Added support for configuring custom Operator icons #3299

  • Improved Operator form validation debounce behavior #3291

  • Fixed some bugs that prevented customer visualizer plugins from being recognized #3357

Core

Zoo

  • Use weights parameter instead of deprecated pretrained parameter for torchvision models #3348

  • Added support for running zoo models with the MPS backend #2843

  • Fixed YouTube video downloading for zoo datasets like ActivityNet and Kinetics #3382

Annotation

  • Upgraded the Labelbox integration to support the latest Labelbox API version #3323

  • Fixed text and checkbox attribute usage when using CVAT 2.5 #3373

Brain

Docs

FiftyOne 0.21.4

Released July 14, 2023

FiftyOne Teams 1.3.3

Released July 12, 2023

Includes all updates from FiftyOne 0.21.3, plus:

SDK

  • Added a cache=True option to the upload_media() utility that allows for automatically adding any uploaded files to your local cache

  • Fixed a bug when launching the App locally via API connections

FiftyOne 0.21.3

Released July 12, 2023

News

App

  • Added support for embedded keypoint fields in filter_keypoints() #3279

  • Fixed keypoint filtering #3270

  • Fixed a bug that caused non-matching samples to remain in the grid when applying multiple sidebar filters #3270

  • Fixed a bug when filtering by IDs in the sidebar #3270

  • Fixed label tags grid bubbles for filterless views #3257

Core

  • Added a merge_sample() method for merging individual samples into existing datasets #3274

  • Fixed a bug when passing dict-valued points to compute_visualization() #3268

  • Fixed a bug when filtering keypoints stored in embedded documents #3279

FiftyOne Teams 1.3.2

Released July 5, 2023

Includes all updates from FiftyOne 0.21.2.

FiftyOne 0.21.2

Released July 3, 2023

App

  • Fixes grid pagination results after applying sidebar filters #3249

  • Fixes redundant sidebar groups for custom schemas #3250

FiftyOne Teams 1.3.1

Released June 30, 2023

Includes all features from FiftyOne 0.21.1, plus:

General

  • App containers no longer need to be restarted in order for Azure/MinIO credentials uploaded via the Teams UI to be properly recognized

  • Fixed an intermittent bug when computing metadata for remote filepaths

  • Reverted a change from Teams 1.3.0 so that the SDK again supports the declared minimum version requirement of pymongo==3.12

SDK

  • Updated the order of precedence for SDK connections so that API connections take precedence over direct database connections

  • Fixed a bug when connecting to Teams deployments with non-standard database names via API connections

  • Fixed a bug when saving run results using API connections

  • Fixed a bug when deleting datasets using API connections

Management SDK

FiftyOne 0.21.1

Released June 30, 2023

App

  • Sidebar filters can now leverage indexes for improved performance! #3137

  • Optimized the App grid’s loading performance, especially for datasets with large samples #3137

  • Improved the usability of the field visibility modal #3154

  • Added support for visualizing Label fields stored within dynamic embedded documents #3141

  • Added support for coloring embeddings plots by list fields #3230

  • Added a proxy_url setting to the App config that allows for overriding the server URL #3222

  • Added support for configuring custom colors for sample tags #3171

  • Fixed a bug that caused the point cloud selector from disappearing #3200

  • Fixed various minor bugs when viewing dynamic groups in the App #3172

Core

  • Methods like tag_labels(), select_labels(), export(), and draw_labels() now automatically detect and properly handle label fields stored within embedded documents #3152

  • All Document objects now support doc["nested.field"] key access #3152

  • Dynamic field detection now automatically detects dynamic attributes of list fields with inhomogeneous values #3152

  • Fixed a bug that would cause dynamic field schema methods to erroneously declare subfields of Polyline points #3152

  • Fixed a bug when applying merge_samples() to video dataset views #3159

Plugins

  • Added support for rendering markdown-style tables using the Operator table view type #3162

  • Added support for multiselect to the Operator string type #3192

  • Added --all flags to plugin CLI methods #3177

  • Placements and on-startup hooks are now omitted for disabled Operators #3175

  • Fixed a bug with read_only=True mode for certain Operator view types #3225

Annotation

  • Added support for CVAT’s frame_start, frame_stop, and frame_step options when creating annotation tasks #3181

FiftyOne Teams 1.3.0

Released May 31, 2023

Includes all features from FiftyOne 0.21.0, plus:

General

  • Added a Management SDK subpackage for programmatically configuring user roles, dataset permissions, plugins, and more

  • Added support for authenticated API connections when using the Python SDK that respect user roles, dataset permissions, etc

  • Logins now automatically redirect back to the page you were trying to access

  • Improved non-persistent dataset cleanup behavior

  • Fixed a bug that could cause the media cache to erroneously garbage collect large files while they are downloading

  • Fixed a bug when cloning views into new datasets via the Teams UI

Admin

  • Added support for uploading and managing plugins via the Teams UI

  • Added support for cross account IAM roles when configuring cloud storage credentials

  • Fixed a bug that prevented Azure/MinIO credentials uploaded via the Teams UI from being properly recognized by the App

FiftyOne 0.21.0

Released May 31, 2023

App

  • Added support for viewing and executing operators in the App! #2679

  • Added support for creating dynamic groups in the App #2934

  • Added support for overlaying multiple point cloud slices in Looker3D #2912

  • Added support for customizing the App color scheme via a new color scheme modal #2824

  • Added support for configuring field visibility in the App’s sidebar #2924, #3024

  • Added support for visualizing Label fields stored within top-level embedded document fields #2885

  • Optimized App loading for datasets with large sample documents #3139

  • Optimized App routes that involve synchronous computations #3066

  • Fixed a URL filepath bug that could cause orthographic projections to fail to render #3122

  • Fixed a layout bug when working with long brain keys in the Embeddings panel #3026

  • Added a welcome message that displays when the App is launched for the first time with a new FiftyOne version #3092

Core

Plugins

Annotation

  • Added support for CVAT 2.4 #2959

  • Added support for importing/exporting instances when using the Label Studio integration #2706, #2917

  • Added support for importing multiclass classifications from Scale #3117

  • Updated Scale integration to assume that imported line annotations are not closed shapes #3123

  • Fixed broken Scale docs links and unlabeled annotation task support #2916

Zoo

Tutorials

  • Updated detection mistakes tutorial to avoid unnecessarily resetting the App #3034

FiftyOne Teams 1.2.1

Released April 5, 2023

Includes all features from FiftyOne 0.20.1, plus:

General

  • When your session expires, you are now automatically logged out rather than being presented with a cryptic server error

  • Improved the accuracy of size estimates when exporting filepaths and/or tags from the Teams UI

Admin

  • Added support for uploading Azure storage credentials for your deployment via the Settings > Cloud storage page

SDK

  • Added support for working with media in Azure cloud storage. Refer to this section to see how to provide your storage credentials

Deployment

  • Added support for deploying into Microsoft Azure environments

  • Fixed a bug that prevented the dataset page from loading for deployments running MongoDB 4.4

FiftyOne 0.20.1

Released April 5, 2023

App

  • Added support for storing datetimes as field metadata and viewing them in the App’s field tooltip #2861

  • Fixed a bug when pulling color-by data for sample embeddings plots when viewing patches in the sample grid #2846

  • Fixed a bug that prevented the sample grid from refreshing when composing multiple sidebar filters #2849

  • Fixed a bug that prevented field-specific mask targets from being recognized when rendering segmentations in the App #2879

  • Fixed a bug when rendering heatmaps stored as images on disk #2872, #2880

Core

  • Added support for dynamically inferring fields on embedded lists and documents #2863, #2882

  • Added support for listing datasets matching a glob pattern #2868

  • Improved the robustness of merge_samples() when cleaning up after a failed merge #2844

  • Using new libraries for ndjson and archive extraction #2864

  • Fixed a bug that prevented text similarity searches from succeeding when GPU is available #2853

  • Fixed a bug where stats() would report the wrong size for dataset views that select/exclude fields on MongoDB 5.2 or later #2840

  • Fixed a bug with dynamic schema expansion of list fields #2855

  • Fixed a bug when merging video samples into a grouped dataset that did not previously contain videos #2851

  • Fixed a validation bug when importing COCO datasets whose description is not a string #2848

Documentation

FiftyOne Teams 1.2

Released March 22, 2023

Includes all features from FiftyOne 0.20.0, plus:

Admin settings

  • Admins who use SSO to authorize new users to auto-join their FiftyOne Teams deployment can now configure the default role for those users

  • Admins can now configure the default access level that Members receive on newly created datasets Dataset page

Dataset page

  • Added support for viewing Segmentation and Heatmap data stored as images in the cloud in the App

  • Added support for exporting one or more fields of a dataset in CSV format through the Teams UI

  • Stack traces for unhandled errors are now presented directly in the App so that users can self-diagnose issues

Deployment

  • Added support for sharded databases

FiftyOne 0.20.0

Released March 22, 2023

News

App

  • Switched the default sidebar mode to fast #2714

  • Refactored sample/label tags in the App so that they are treated the same as any other list field #2557

  • Added support for visualizing orthographic projection images for point cloud datasets/slices #2660

  • Added a filter/selection indicator to the title of all Panels that can be clicked to clear the Panel’s current state #2652

  • Any selection state associated with a Panel is now automatically cleared when the Panel is closed #2652

  • Added a button to the saved view selector for clearing the current view #2661

  • Added support for maximizing/hiding individual panels of the grouped modal #2688

  • Added support for switching between multiple point cloud slices #2675

  • Added keyboard shortcuts for opening Panels directly in split mode #2663

  • Upgraded Looker3D controls #2753

  • Upgraded the modal’s JSON viewer #2677

  • Selected labels are not reset after applying a similarity search #2820

  • Stack traces for unhandled errors are now presented directly in the App so that users can self-diagnose issues #2795, #2797

  • Improved error handling when loading invalid/missing brain results in the Embeddings panel #2651, #2790

  • More intuitive behavior when combining Embedding panel selections and sidebar filters #2741

  • Ensure that URL is updated when loading saved views via a Python session #2740

  • Switched to wildcard-based string matching in the sidebar #2736

  • Plugins can now load components and utilities from runtime instead of compiling their own #2680

  • Stability improvements when loading and handling errors in plugins #2758

  • Informative error messages are now displayed when visualization results fail to load in the Embeddings panel #2751

  • Resolved some edge cases when loading views with different schemas via Python sessions #2730

  • Fixed a bug that would cause saving views to intermittently fail #2667

  • Fixed a bug when using saved views with Python <3.9 in the App #2676, #2728

  • Fixed a bug that could cause App crashes when loading SelectGroupSlices stages in the view bar #2669, #2743

  • Fixed a bug that could cause App crashes when filtering keypoints #2774, #2779

  • Fixed a bug when lassoing patch embeddings with the Map panel open #2754

  • Fixed inconsistencies with selection, tagging, active slices, and sidebar stats in the modal for grouped datasets #2785, #2782, #2769, #2759, #2749, #2731

  • Fixed a bug when pressing enter twice in a label tag popover #2757

  • Fixed a bug where keyboard listeners in the modal would interfere with other input interactions #2786

  • Fixed a bug where some users would see erroneous scrollbars #2794

  • Fixed bugs when tagging labels in the grouped modal #2820

  • Fixed a bug when retrieving values for filter dropdowns in the grouped modal #2817

  • Fixed a bug that would raise an App error after deleting certain saved views #2801

  • Fixed the formatting of the support field in the modal sidebar for clip views #2800

  • Fixed a bug with URL rendering in the sidebar #2735

  • Fixed a bug when streaming filtered frame labels #2682, #2733

  • Fixed a bug when adding new tags to a selected sample or label #2703

  • Fixed a bug when matching by tags that contain spaces #2658

Core

Annotation

  • Added support for passing CVAT organization to annotation jobs #2716

Docs

Zoo

  • Added a tensorflow-macos option when loading TF models from the Model Zoo #2685

Tutorials

FiftyOne Teams 1.1.1

Released February 14, 2023

Includes all features from FiftyOne 0.19.1, plus:

Plugins

  • Resolved a bug that prevented Teams deployments from recognizing installed plugins

FiftyOne 0.19.1

Released February 14, 2023

App

  • Fixed a bug when launching the App in Python 3.8 or earlier #2647

  • Fixed a bug that prevented launching the App in Databricks notebooks #2647

Core

  • Fixed a bug in certain environments that prevented progress bars from rendering correctly #2647

FiftyOne Teams 1.1

Released February 9, 2023

Includes all features from FiftyOne 0.19.0, plus:

User roles

  • Renamed the existing Guest role to Collaborator

  • Added a new Guest role. Note that Guest is a view-only role and does not contribute to your license count. You can add unlimited Guest users to your deployment!

Homepage

  • Added a Recent views widget to the homepage that shows the most recent saved views that you have viewed in the Teams UI

Dataset page

  • Added support for cloning the current view (including any filters, selections, etc) into a new dataset from the UI

  • Added support for exporting the current view to local disk or a cloud bucket in various formats (filepaths only, filepaths and tags, media only, labels only, media and labels)

Deployment

  • Added support for deploying Teams into environments with proxy networks

FiftyOne 0.19.0

Released February 9, 2023

News

App

  • Added the Spaces framework #2524

  • Added native support for visualizing embeddings #2524

  • Refactored the map tab into a dedicated map panel #2524

  • Refactored the histograms tab into a dedicated histograms panel #2524

  • Added support for loading and saving views #2461

  • Added support for visualizing Segmentation and Heatmap masks stored on disk #2358

  • Added support for visualizing RGB segmentations #2483

  • Added retries for all network requests to improve stability #2406

  • Optimized the tagging menu #2368

  • Optimized sample tagging on video datasets #2440

  • Don’t refresh the background grid when applying tags in the modal #2594

  • Only show supported keys in the evaluations dropdown #2427

  • Fixed handling of None values when filtering numeric/list fields #2422, #2412, #2403

  • Never show expanded filter list for ID fields #2408

  • Ensure that the bookmark icon displays when extended selections exist #2366

  • Automatically clear sample selection after sorting by similarity #2595

  • Use consistent loading dots throughout the App #2321

  • Fixed a bug when filtering by custom embedded list fields #2407

  • Fixed bugs when screenshotting the App in notebook contexts #2398

  • Fixed bugs when launching the App in Databricks notebooks #2397

  • Show metadata for frame-level fields in the fields tooltip #2386

  • Fixed bugs when configuring plugin settings and modal media fields #2383

  • Fixed bugs with multiple media fields when loading views that exclude fields #2378, #2303

Core

Annotation

  • Added support for CVAT 2.4 #2597

  • Added support for providing custom task names for CVAT tasks #2353

  • Fixed a bug when checking if CVAT projects exist #2491

  • Fixed a bug when checking if CVAT tasks exist #2070

Zoo

Docs

FiftyOne Teams 1.0

Released November 8, 2022

Includes all features from FiftyOne 0.18.0, plus:

News

FiftyOne 0.18.0

Released November 8, 2022

App

  • Significantly optimized the performance of the sidebar by lazily computing statistics only for currently visible fields #2191

  • Added new sidebar modes with updated default behavior that further optimizes the performance of the App for large datasets #2191

  • Added support for configuring the sidebar mode dynamically in the App and programmatically on a per-dataset basis #2191

  • Added support for programmatically configuring sidebar groups and default expansion states on a per-dataset basis #2190

  • Added support for viewing field-level descriptions via a new field tooltip #2216

  • Added support for filtering by and viewing stats for custom embedded document attributes #1825

  • Added a new light mode option! #2156

  • Improved responsiveness of the sidebar when toggling fields on and off #2247

  • Improved responsiveness and state management of the view bar #2230

  • Restored the ability to shift-select multiple samples in the grid view #2110

  • Fixed an issue that could cause unselected label fields to be inadvertently tagged when using the label tagging UI #2121

  • Fixed an issue that would prevent label tags applied on patch views in the tagging UI from persisting to the underlying dataset #2113

  • Fixed an issue that could arise when loading a group dataset with sparse alternate media fields #2164

  • Fixed some issues with datetime rendering and timezone handling #2111, #2112

Core

  • Added support for declaring custom dynamic attributes on datasets! #1825

  • Added support for storing field-level metadata on datasets #2216

  • Added native support for installing on Apple Silicon with MongoDB 6 #2165

  • Dataset creation using default naming is now multiprocess-safe #2097

  • Optimized the implementation of tagging samples and labels #2203, #2208

  • Optimized the implementation of select(), select_by(), and select_groups() when performing ordered selections #2227

  • Updated the logic of exists() to be more intuitive for frame fields #2209

  • Upgraded server and MongoDB requirements to pymongo>=3.11, motor>=2.3 and newer pinned versions of mongoengine, starlette, and strawberry-graphql #2215

  • Added support for modifying the filepaths of a frame view #2193

  • Improved the implementation of merge_samples() and related methods to safely cleanup in case of failed merges #2135

  • Fixed some bugs that could occur when creating frame views into grouped collections #2144

  • Fixed a bug when using select_by() with ObjectId fields #2140

  • Added an option to import annotation IDs when loading data stored in COCO format #2122

  • Added support for including the export directory in the dataset.yaml file generated by YOLOv5 exports #2114

Annotation

  • Updated the default CVAT endpoint to https://app.cvat.ai #2228

  • Fixed a bug that would cause annotation runs involving unlabeled samples to crash when using the Label Studio backend #2145

Zoo

  • Added support for using CUDA devices when running the CLIP model from the zoo #2201

FiftyOne 0.17.2

Released September 20, 2022

App

  • Fixed a backward compatibility bug when connecting to older database versions #2103

FiftyOne 0.17.1

Released September 20, 2022

Core

  • Removed TypedDict usage introduced in v0.17.0 that is not supported in Python 3.7 #2100

FiftyOne 0.17.0

Released September 19, 2022

App

Core

Docs

  • Added a tutorial showing how to integrate FiftyOne into a Detectron2 model training pipeline #2054

Annotation

  • Fixed a bug that occurred when checking if tasks exist on CVAT v2 servers #2070

  • Fixed an error that occurred when deserializing Label Studio annotation results #2074

Zoo

FiftyOne 0.16.6

Released August 25, 2022

App

  • Fixed a bug that caused the App to break when sample tags contained . #1924

  • Fixed search results alignment #1930

  • Fixed App refreshes after view changes had occurred from the view bar #1931

  • Fixed mask targets rendering in the tooltip #1943 #1949

  • Fixed classification confusion matrix connections #1967

Core

Annotation

FiftyOne 0.16.5

Released June 24, 2022

App

  • Fixed dataset selection searches #1907

  • Fixed dataset results for long dataset names #1907

FiftyOne 0.16.4

Released June 21, 2022

App

  • Fixed frame fields omission in the sidebar #1899

FiftyOne 0.16.3

Released June 20, 2022

App

  • Added hotkey to hide overlays while pressed #1779

  • Changed expanded view ESC sequence to reset zoom before frame scrubbing #1810

  • Fixed the expanded view tooltip when a keypoint has nan point(s) #1828

  • Fixed initial loading of keypoint skeletons #1828

  • Fixed Classifications rendering in the grid #1828

  • Fixed App loads for environments with old ( <=v0.14.0) datasets that have yet to be migrated #1829

  • Fixed spurious loading states from tagging in the expanded view #1834

  • Fixed a bug that caused frame classifications to be incorrectly rendered in the grid #1877

  • Fixed active (checked) field persistence in the grid when changing views #1878

  • Fixed views and actions that contain BSON #1879

  • Fixed JSON rendering in the expanded view for nested data #1880

  • Fixed selection and expansion for bad media files #1882

  • Fixed Other plot tab date and datetime fields with None values #1817

  • Increased results from 10 to 200 for search selectors #1875

  • Fixed App issues related to dataset deletion and dataset schema changes #1875

Core

Annotation

  • Updated CVAT task and project processing #1839

  • Added the ability to upload and download group ids from CVAT #1876

FiftyOne 0.16.2

Released June 2, 2022

App

  • Added explicit error handling when FFmpeg is installed so it is made clear to the user that it must be installed to use video datasets in the App #1801

  • Fixed range requests for media files, e.g. mp4s, on the server #1786

  • Fixed tag rendering in the grid #1808

  • Fixed tagging selected labels in the expanded view #1808

  • Fixed session.view = None #1808

  • Fixed issues with patches views #1808

Core

  • Fixed errors related to session-attached plots #1808

FiftyOne 0.16.1

Released May 26, 2022

App

  • Fixed a bug that caused label rendering to be delayed until statistics were loaded #1776

  • Fixed the v0.16.0 migration that prevents label lists, e.g. Detections from showing their label filters when expanded in the sidebar #1785

  • Fixed expanded samples in clips views which appeared to be empty #1790

  • Fixed “Sort by similarity” with a dist_field #1790

  • Fixed “Color by” for simple values (classifications, tags, etc.) #1790

  • Fixed changing datasets when sort by similarity is set #1790

  • Fixed mask and map coloring #1790

  • Fixed fortran array handling for masks and maps #1790

Core

  • Fixed a formatting issue when raising an exception because unsupported plotting backend was requested #1794

FiftyOne 0.16.0

Released May 24, 2022

App

  • Added routing, e.g. /datasets/:dataset-name #1713

  • Redesigned the sidebar to support custom grouping and sorting of fields and tags #1713

  • Added graceful handling of deleted datasets in the App #1713

  • Fixed epoch rendering #1713

  • Fixed empty heatmap rendering #1713

  • Added stack traces to the new error page #1713

  • Fixed ESC when viewing single frame clips #1713

  • Fixed handling of unsupported videos #1713

  • Added support for opening the expanded view while sample(s) are selected #1713

  • Fixed keypoint skeleton rendering for named skeletons of frame fields #1713

Core

FiftyOne 0.15.1

Released April 26, 2022

App

  • Added support for rendering keypoint skeletons #1601

  • Added support for rendering per-point confidences and other custom per-point attributes on Keypoint objects #1601

  • Added support for rendering Fortan-ordered arrays #1660

Core

  • Added support for storing keypoint skeletons on datasets #1601

  • Added a filter_keypoints() stage that applies per- point filters to Keypoint objects #1601

  • Added support for rendering keypoints skeletons and missing keypoints to draw_labels() #1601

  • Added support for per-point confidences and other custom per-point attributes on Keypoint objects. See this section for details #1601

  • Added a concat() view stage that allows for concatenating one collection onto another #1662

  • Non-persistent datasets are now automatically deleted when using a custom database_uri #1697

  • Added a database_admin config setting that can control whether database migrations are allowed. See this page for details #1692

  • Added a database_name config setting that allows for customizing the MongoDB database name #1692

  • Classification attributes are now exported as tag attributes when exporting in CVATImageDataset format #1686

  • The iscrowd attribute is now always populated when exporting in COCO format #1664

  • Fixed a KeyError bug when loading dataset with relative paths on Windows #1675

Brain

  • Added fiftyone-brain wheels for Python 3.10

  • Added support for installing fiftyone-brain on Apple Silicon

Annotation

  • Fixed a CSRF Failed error when connecting to some CVAT servers #1668

Integrations

  • Updated the Lightning Flash integration to support Flash versions 0.7.0 or later #1671

Zoo

FiftyOne 0.15.0

Released March 23, 2022

App

Core

  • Added a Dataset.delete_frames() method that allows for deleting frames by ID #1650

  • Added a keep_fields() method to DatasetView and its subclasses #1616

  • Added a lines() method that allows for plotting lines whose scatter points can be interactively selected via the typical interactive plotting workflows #1614

  • Added an optional force_rgb=True syntax when importing/exporting/creating TF records using all relevant methods in fiftyone.utils.tf #1612

  • Added support for passing additional kwargs to the fiftyone convert CLI command #1612

  • Added support for annotating video-level labels when using draw_labeled_videos() #1619

  • Added the ability to slice using a ViewField #1630

  • Fixed bug in from_images_dir() where attempting to load 4-channel images errored even if force_rgb=True #1632

  • Fixed a bug that prevented frames from being attached to video collections when aggregating expressions that involve both Sample-level and Frame-level fields #1644

  • Added support for importing image and video datasets in OpenLABEL format #1609

Annotation

  • Added support for CVATv2 servers when using the CVAT backend #1638

  • Added an issue_tracker argument to annotate() when using the CVAT backend #1625

  • Added a dest_field argument to load_annotations() which allows you to specify the name of the field to which to load annotations #1642

  • Added a property to annotation backends that decides whether to allow annotation of video-level labels #1655

  • Fixed a bug where views that dynamically modify label strings would result in labels not being uploaded to the annotation backend #1647

Docs

FiftyOne 0.14.4

Released February 7, 2022

News

  • With support from the ActivityNet team, FiftyOne is now a recommended tool for downloading, visualizing, and evaluating on the Activitynet dataset! Check out this guide for more details

App

  • Fixed encoding of sample media URLs so image and video filepaths with special characters are supported

  • Fixed an error that would occur when rendering empty Keypoint instances

Core

Annotation

  • Added support for importing and exporting sample-level tags in CVAT format

  • Fixed a bug that prevented existing label fields such as Detections that can contain multiple annotation types (boxes or instances) from being specified in calls to annotate()

  • CVAT login credentials are no longer included in exception messages

Zoo

FiftyOne 0.14.3

Released January 13, 2022

Core

  • Added hollow support for 32-bit systems (a database_uri must be used in such cases)

  • Added support for indexing into datasets using boolean arrays or view expressions via new dataset[bool_array] and dataset[bool_expr] syntaxes

  • Added support for registering custom EmbeddedDocument classes that can be used to populate fields and embedded fields of datasets

  • Added support for importing and exporting confidence in YOLO formats

  • Added support for directly passing a filename -> filepath mapping dict to the data_path parameter to dataset importers

  • Added graceful casting of int-like and float-like values like np.float(1.0) to their respective Python primitives for storage in the database

  • Changed the default to num_workers=0 when using methods like apply_model() to apply Torch models on Windows, which avoids multiprocessing issues

  • Fixed a bug when calling evaluate_detections() with both the classes and compute_mAP=True arguments provided

  • Fixed a bug that could arise when importing segmentation data from a COCO JSON that contains objects with [] segmentation data

  • Fixed a bug in expressions containing near-epoch dates

  • Added support for setting frame-level fields by passing frame number dicts to set_values()

  • Fixes a bug that prevented set_values() from working as expected when key_field="id" argument is used

  • Fixed a bug that occurred when computing patch embeddings defined by polylines

  • Added decision thresholds to the tooltips of PR/ROC curves plotted via the following methods:

  • BinaryClassificationResults.plot_pr_curve()

  • BinaryClassificationResults.plot_roc_curve()

  • COCODetectionResults.plot_pr_curves()

  • OpenImagesDetectionResults.plot_pr_curves()

Brain

  • Graceful handling of missing/uncomputable embeddings in compute_uniqueness()

  • Graceful handling of edge cases like fraction <= 0 in find_duplicates(),

  • Removed a spurious warning message that was previously logged when computing patch embeddings for a collection containing samples with no patches

Annotation

  • Added a new Labelbox integration!

  • Added an import_annotations() method for importing existing CVAT projects or task(s) into FiftyOne

  • Added support for configuring the size of CVAT tasks via a new task_size parameter

  • Added graceful handling of deleted tasks when importing annotations from CVAT via load_annotations()

  • Added an unexpected parameter that provides a variety of options for handling unexpected annotations returned by the CVAT API

  • Added support for passing request headers to the CVAT API

  • Fixed a bug that occurred when importing single frame track segments from CVAT

Zoo

FiftyOne 0.14.2

Released November 24, 2021

App

Core

  • Optimized image metadata calculation to read only the bare minimum byte content of each image

  • Improved handling of relative paths and user paths in config settings and environment variables

  • Optimized database I/O and improved the helpfulness of warnings/errors that are generated when applying models via apply_model(), compute_embeddings(), and compute_patch_embeddings()

  • Resolved a memory leak that could occur when computing predictions/embeddings for very large datasets with Torch models

Brain

  • Added the points keyword argument to compute_visualization() for providing your own manually computed low-dimensional representation for use with interactive embeddings plots

  • Graceful handling of missing/uncomputable embeddings in compute_visualization() and compute_similarity()

  • Added checks that occur at the start of all methods to ensure that any required dependencies are installed prior to performing any expensive computations

Annotation

  • Changed CVAT uploads to retain original filenames

  • A helpful error is now raised when the "frames." prefix is omitted from label fields when requesting spatial annotations on video datasets

Zoo

  • Patched an issue that prevented downloading the VOC-2007 and VOC-2012 datasets from the zoo

FiftyOne 0.14.1

Released November 15, 2021

App

  • Optimized grid loading for collections that do not have metadata computed

  • Fixed filtering by label for Colab notebooks

  • Fixed a bug where the App would crash if an image or video MIME type could not be inferred from the filepath, e.g. without an extension

  • Fixed first pixel coloring for segmentations

  • Added graceful handling of nonfinites ( -inf, inf, and nan)

Core

  • Fixed clone() for views with a parent dataset that has brain runs

  • Fixed sampling frames when using to_frames()

  • Fixed importing of FiftyOneDataset with run results

  • Added a Regression label type

  • Added a random_split() method

  • Added support for negating match_labels() queries

  • Added a MaxResize transform

  • Added image_max_size and image_max_dim parameters to TorchImageModelConfig

  • Added support for non-sequential updates in set_values()

  • Added a compute_max_ious() utility

  • Added support for labels-only exports when working with YOLOv4Dataset and YOLOv5Dataset formats

  • Added fiftyone.utils.beam for parallel import, merge, and export operations with Apache Beam

  • Added an add_yolo_labels() utility that provides support for adding YOLO-formatted model predictions to an existing dataset

  • Added support for importing/exporting multilabel classifications when using FiftyOneImageClassificationDataset format

  • Fixed the force_reencode flag for reencode_videos()

  • Converted COCO and Open Images dataset downloads to use multithreading rather than multiprocessing

  • Updated evaluation confusion matrices to always include rows and columns for missing/other

Annotation

  • Added support for annotating multiple label fields in one CVAT task

  • Added an allow_index_edits parameter to annotate() for disallowing video track index changes

  • Improved label ID tracking in CVAT by leveraging CVAT’s server IDs in addition to label_id attributes

  • Fixed a bug when annotating videos in CVAT with None label fields

  • Fixed a bug when annotating new fields in CVAT

  • Fixed a bug when annotating non-continuous tracks in CVAT

  • Fixed a bug when annotating a track in CVAT that is present on the last frame of a video

  • Fixed a bug when annotating with allow_additions=False

Docs

  • Added a section on adding model predictions to existing datasets to the user guide

  • Added explicit examples of labels-only imports and exports for all relevant datasets to the docs

  • Documented how class lists are computed when exporting in formats like YOLO and COCO that require explicit class lists

  • Documented the supported label types for all exporters

FiftyOne 0.14.0

Released October 15, 2021

App

  • Added support for visualizing heatmaps using either transparency or a customizable colorscale

  • Added a label opacity slider in both the sample grid and the expanded sample view

  • Added support for visualizing clips views

  • Added support for rendering and filtering DateField and DateTimeField data

  • Improved error handling in the grid and when streaming frames

  • Fixed a bug that caused incorrect label rendering for sparse frame labels in the video visualizer

  • Added a default_app_address setting to the FiftyOne config for restricting sessions to a hostname. See this page for more details

Core

Annotation

  • Added support for specifying per-class attributes when defining a label schema for an annotation task

  • Added support for specifying whether labels can be added, deleted or moved and whether certain label attributes are read-only when configuring an annotation task

  • Added support for respecting keyframe information when adding or editing video annotations

  • Fixed a 0-based versus 1-based frame numbering bug when importing and exporting labels in CVAT video format

  • Added support for adding/editing bounding box shapes (not tracks) if desired when annotating video frames using the CVAT backend

  • Fixed a bug that prevented importing of video annotations from the CVAT backend that involved the splitting or merging of object tracks

  • Added a project_name parameter that allows for creating annotation tasks within a new project when using the CVAT backend

  • Added support for specifying a list of task assignees when creating video annotation tasks (which generate one task per video) using the CVAT backend

  • Fixed a bug when adding/editing boolean attributes in an annotation task using the CVAT backend

  • Added a new occluded attribute type option that links an attribute to the builtin occlusion icon when annotating label attributes using the CVAT backend

FiftyOne 0.13.3

Released September 22, 2021

App

  • Improved the efficiency of loading label graphs for fields with many distinct values

  • Fixed some audio-related bugs when viewing video samples with audio channels

  • Fixed a bug that prevented boolean App filters from working properly

Core

  • Added support for importing/exporting segmentation masks with greater than 256 classes when working with the ImageSegmentationDirectory format

  • Added support for importing GeoTIFF images via a new GeoTIFFDataset format

  • Added new split_labels() and merge_labels() methods that provide convenient syntaxes for moving labels between new and existing label fields of a dataset

  • Added ensure_frames() and clear_frames() methods that can be used to conveniently initialize and clear the frames of video datasets, respectively

  • Added support for using a MongoDB dataset whose version is not explicitly supported

  • Removed the opencv-python-headless maximum version requirement

  • Fixed a race condition that could prevent callbacks on interactive plots from working properly on sufficiently large datasets

Annotation

  • Added support for annotating semantic segmentations and instance segmentations using the CVAT backend

  • Added support for annotating polylines using the CVAT backend

  • Added support for immutable attributes when annotating object tracks for video datasets using the CVAT backend

  • Exposed the use_cache, use_zip_chunks, and chunk_size parameters when uploading annotations via the CVAT backend

  • Fixed a bug that prevented multiple imports of the same annotation run from working as expected when a label is deleted but then later re-added

  • Fixed a bug that prevented annotations for new label fields of video datasets from being imported properly

  • Fixed a bug that would cause unsuppoted shapes such as polygons with less than 3 vertices to be deleted when editing existing labels with the CVAT backend

FiftyOne 0.13.2

Released September 3, 2021

App

  • Improved aggregation queries resulting in ~10x faster statistics load times and time-to-interaction in the Fields Sidebar!

  • Optimized in-App tagging actions

  • Fixed count inconsistencies for large sets of StringField results in the Fields Sidebar

Core

  • Added support for providing compound sort criteria when using the sort_by() stage

  • Added support for configuring the wait time when using Session.wait() to block execution until the App is closed, including support for serving forever

  • Fixed errors experienced by Windows users when running FiftyOne APIs that involved multiprocessing

  • Resolved errors that could occur when importing CVAT XML files with empty-valued attributes in their schema and/or individual labels

  • Added support for importing CVAT-style attributes when loading labels in COCO and VOC formats

FiftyOne 0.13.1

Released August 25, 2021

App

  • Fixed id rendering in the grid when the id checkbox is active

Annotation

  • Fixed a bug that could cause mismatches between media and their pre-existing labels when uploading data to CVAT for annotation whose source media lives in multiple directories

FiftyOne 0.13.0

Released August 24, 2021

App

  • Added support for visualizing and filtering list fields

  • Added support for visualizing segmentation masks of any integer type (uint8, uint16, etc.)

  • Improved handling of falsey field values in the fields sidebar and image vizualizer

  • Improved the JSON display format available from the expanded sample modal

  • Resolved an issue that caused some users to see duplicate App screenshots when calling Session.freeze() in Jupyter notebooks

  • Fixed a bug that prevented users from being able to click left/right arrows to navigate between samples in the expanded sample modal when working in Jupyter notebooks

  • Fixed a bug where pressing the ESC key had no effect in the expanded sample modal when working with datasets with no label fields

  • Fixed a bug that prevented the desktop App from launching when using source builds

Brain

  • Added new find_unique(), unique_view(), and visualize_unique() methods to the SimilarityIndex object returned by compute_similarity() that enable you to identify a maximally unique set of images or objects in a dataset

  • Added new find_duplicates(), duplicates_view(), and visualize_duplicates() methods to the SimilarityIndex object returned by compute_similarity() that enable you to identify near-duplicate images or objects in a dataset

  • Added a new compute_exact_duplicates() method that can identify exactly duplicate media in a dataset

Core

  • Added support for pip-installing FiftyOne on Apple Silicon Macs. Note that MongoDB must be self-installed in this case

  • Added support for using a self-installed MongoDB database

  • Added a group_by() view stage that allows for reorganizing the samples in a collection so that they are grouped by a specified field or expression

  • Added a selection_mode property that enables users to change the behavior of App updates when selections are made in an interactive plot linked to labels. See this page for details

  • Added support for YOLOv5 YAML files with multiple directories per dataset split

  • Added support for importing/exporting confidences via the score field when working with BDD format

  • Fixed some Windows-style path bugs

Annotation

  • Added a powerful annotation API that makes it easy to add or edit labels on your FiftyOne datasets or specific views into them

  • Added a native CVAT integration that enables you to use the annotation API with CVAT

Docs

FiftyOne 0.12.0

Released August 10, 2021

App

  • Resolved performance issues with scrolling via grid virtualization. Toggling fields or selecting samples is no longer impacted by the amount of samples that have been loaded

  • Added the Show label option in the expanded sample view to toggle the label text above detections boxes

  • Added support for zooming and panning in the expanded sample view

  • Added support for cropping and zooming to content in the expanded sample view

  • Added support for visualizing multiple segmentation frame fields simultaneously

  • Added label streaming to the video visualizer

  • Added volume and playback rate settings to the video visualizer

  • Added the Crop to content option in patches or evaluation patches views which crops samples to only show the labels that make up the patch. Defaults to True

  • Added count and filtered count values to categorical filters ( BooleanField and StringField fields)

Core

  • Added support for importing DICOM datasets

  • Added better default behavior for the label_field parameter when importing datasets using methods like from_dir() and exporting datasets using export()

  • When adding samples to datasets, None-valued sample fields are now gracefully ignored when expanding dataset schemas

Docs

Zoo

  • Patched an Open Images issue where classes or attrs requirements were being ignored when loading a dataset with no max_samples requirement

FiftyOne 0.11.2.1

Released July 31, 2021

Zoo

  • Patched an Open Images issue where label files were not being downloaded when running a load_zoo_dataset() call that does not include classes or attrs options in an environment where Open Images has never been downloaded

  • Patched loading of Cityscapes datasets

  • Patched loading of COCO datasets

FiftyOne 0.11.2

Released July 27, 2021

App

Core

  • Added a plotly<5 requirement, which prevents an issue that may cause callbacks for selection events in interactive plots to not trigger as expected when using Plotly V5

  • Added support for evaluating polygons and instance segmentations to evaluate_detections(). See this page for usage details

  • Added support for creating patch views and evaluation patch views into the frames of video datasets

  • Greatly improved the efficiency of creating evaluation patch views

  • Added support for recursively listing data directories when loading datasets from disk

  • Added support for controlling whether/which object attributes are imported/exported in formats like COCO that support arbitrary object attributes

  • Updated all dataset import/export routines to support/prefer custom object attributes stored directly on Label instances as dynamic fields rather than in the attributes dict

  • The ImageSegmentationDirectory format now supports exporting segmentations defined by Detections with instance masks and Polylines

  • Added an objects_to_segmentations() utility for converting Detections with instance fields and Polylines to Segmentation format

  • Added graceful handling of edges cases like empty views and missing labels to all evaluation routines

  • Added improved support for creating, viewing, and dropping dropping sample- and frame-level indexes on datasets

  • Added additional indexes on patch and frames views to enable efficient ID-based queries

  • Added support for gracefully loading and deleting evaluations and brain methods executed in future versions of FiftyOne (e.g., after downgrading your FiftyOne package version)

  • Added an optional progress flag to iter_samples() that renders a progress bar tracking the progress of the iteration

  • Added support for installing FiftyOne on RHEL7 (Red Hat Enterprise Linux)

  • A helpful error message is now raised when a user tries to load a dataset from a future version of FiftyOne without following the downgrade instructions

  • Fixed a bug that prevented FiftyOne from being imported on read-only filesystems

  • Fixed a bug that prevented the proper loading of the Open Images V6 dataset after partial downloads involving only a subset of the available label types

Zoo

  • Added support for importing license data when loading the COCO-2014 and COCO-2017 datasets from the zoo

  • The inapplicable classes flag will now be ignored when loading the unlabeled test split of COCO-2014 and COCO-2017

  • Improved the partial download behavior of the Open Images V6 dataset when the optional classes and attrs parameters are provided

  • Fixed a bug that prevented Windows users from downloading the Open Images V6 dataset

FiftyOne 0.11.1

Released June 29, 2021

App

FiftyOne 0.11.0

Released June 29, 2021

News

  • With support from the COCO team, FiftyOne is now a recommended tool for downloading, visualizing, and evaluating on the COCO dataset! Check out this guide for more details

App

  • Fixed a bug that prevented sample_id fields from appearing in the App when working with frames and patches views

Core

Zoo

  • Added support for partial downloads and loading segmentations to the COCO-2014 and COCO-2017 datasets

  • When performing partial downloads on the Open Images v6 Dataset involving a subset of the available classes, all labels for matching samples will now be loaded by default

Docs

  • Added a new page demonstrating how to use FiftyOne to download, visualize, and evaluate on the COCO dataset

  • Added a new page demonstrating how to use FiftyOne to download, visualize, and evaluate on the Open Images dataset

FiftyOne 0.10.0

Released June 21, 2021

News

Core

Docs

  • Added a new page demonstrating how to use the Lightning Flash integration

FiftyOne 0.9.4

Released June 15, 2021

App

  • Added support for matching samples by ID in the Filters Sidebar

  • Fixed a bug that caused the App to crash when selecting samples with the Color by value setting active

  • Fixed a bug that caused the App to crash on some Windows machines by ensuring the correct MIME type is set for JavaScript files

Core

  • Improved the performance of importing data into FiftyOne by 2x or more!

  • Added a to_frames() view stage that enables on-the-fly conversion of video datasets into frames views

  • Added last(), head(), and tail() methods to the Frames class

  • Added new exclude_fields(), select_frames(), and match_frames() view stages that enable selecting specific frames of video collections via IDs or filter expressions, respectively

  • Added a new match_labels() view stage that enables matching samples that have specific labels without actually filtering the non-matching labels

  • Added support for exporting image patches using export() by specifying an image classification dataset type and including a spatial label_field that defines the image patches to extract

  • Added support for automatically coercing single label fields like Detection into the corresponding multiple label field type Detections when using export() to export in dataset formats that expect list-type fields

  • Added support for executing an aggregation on multiple fields via the abbreviated syntax ids, filepaths = dataset.values(["id", "filepath"])

  • Exposed the id field of all samples and frames in dataset schemas

  • Added support for merging the elements of list fields via Dataset.merge_samples() and Document.merge()

  • Added a number of useful options to Dataset.merge_samples(), including fields, omit_fields, and merge_lists

  • Improved the efficiency of Dataset.merge_samples() when the overwrite=False option is provided

  • Added an optional bool flag to the match_tags() view stage that allows for optionally matching samples without the specified tags

  • Added support for computing filehashes via the hashlib module to compute_filehash()

  • Updated the import_from_labelbox() method to use the correct label ID (“DataRow ID”, not “ID”)

  • Added an optional edges argument to scatterplot() and location_scatterplot() that enables drawing undirected edges between scatterpoints

  • Fixed a bug in limit_labels() that would cause views to contain empty label lists if the source dataset contains None-valued fields

  • Fixed a bug that prevented ViewExpression.contains() from accepting ViewExpression instances as arguments

Zoo

  • Fixed a string encoding issue that prevented some Windows users from loading the Open Images V6 dataset

  • Updated the vgg16-imagenet-tf1 model (formerly named vgg16-imagenet-tf) to reflect the fact that it only supports TensorFlow 1.X

Docs

FiftyOne 0.9.3

Released May 18, 2021

App

  • Fixed an issue that prevented some datasets and views that contain vector or array data (e.g., logits) from properly loading in the App

  • Fixed a bug that prevented loading video datasets in the App in Google Colab environments

FiftyOne 0.9.2

Released May 16, 2021

Zoo

  • Fixed a multiprocessing bug that prevented Mac users running Python 3.8 or later from loading the Open Images V6 dataset

FiftyOne 0.9.1

Released May 12, 2021

App

  • Fixed a bug that caused the App to crash when choosing to Color by value

FiftyOne 0.9.0

Released May 12, 2021

News

  • We’ve collaborated with the Open Images Team at Google to make FiftyOne a recommended tool for downloading, visualizing, and evaluating on the Open Images Dataset! Check out this guide for more details

App

  • Added a Patches action for easy switching to object/evaluation patches views. See this page for usage details

  • Added a Sort by similarity action that enables sorting by similarity to the selected samples/patches. See this page for usage details

  • Added a zoom slider in the top right of the sample grid that adjusts the tile size of the sample grid

  • Added the ability to clear filters for entire field groups, e.g. Labels and Scalars, in the Filters Sidebar

  • Added filepath to the Scalars group in the Filters Sidebar

  • Added a Label tags graphs tab

  • Refreshed numeric, string, and boolean filter styles with improved functionality and interaction

  • Added support for Session.wait() in browser contexts

Brain

  • Added a compute_similarity() method for indexing samples and object patches by similarity. See this page for usage details

Core

Zoo

Docs

FiftyOne 0.8.0

Released April 5, 2021

App

  • Added the ability to tag samples and labels directly from the App in both the sample grid (macro) and expanded sample view (micro) with respect to and filters or currently selected samples/labels

  • Added a LABEL TAGS section to the Filters Sidebar to coincide with the introduction of label tags

  • Added label tooltips that display on hover in the expanded sample view

  • Expanded actions to list of button groups in the sample grid and expanded sample view

  • Added support for rendering semantic labels in the new tooltip in the expanded sample view for Segmentation mask values (pixel values) using the new Dataset.mask_targets and Dataset.default_mask_targets fields

  • Fixed hiding, clearing, and only showing selected samples in the samples grid

Brain

  • Added a compute_visualization() method that uses embeddings and dimensionality reduction methods to generate interactive visualizations of the samples and/or labels in a dataset. Check out this page for details. Features include:

  • Provide your own embeddings, or choose a model from the Model Zoo, or use the provided default model

  • Supported dimensionality reduction methods include UMAP, t-SNE, and PCA

  • Use this capability in a Jupyter notebook and you can interact with the plots to select samples/labels of interest in a connected Session

  • Added support for saving brain method results on datasets. Previous brain results can now be loaded at any time via Dataset.load_brain_results()

  • Added support for providing a custom Model or model from the Model Zoo to compute_uniqueness()

Core

Zoo

  • Added the quickstart-geo dataset to enable quick exploration of location-based datasets

CLI

Docs

FiftyOne 0.7.4

Released March 2, 2021

App

  • Fixed a bug that prevented Session updates from triggering App updates

  • Fixed hiding labels in the expanded sample view

Brain

Core

  • Decoupled loading video Sample and SampleView and their frames so the samples are loaded efficiently and frames are only loaded when requested

  • Add a 90 character limit to progress bars in notebook contexts to prevent overflow issues

  • Added low-level utility methods list_datasets() and delete_dataset() for managing a corrupted database

  • Added automatic field generation for labelbox_id_field when using import_from_labelbox()

CLI

FiftyOne 0.7.3

Released February 18, 2021

App

  • Added filtering widgets to the Filters Sidebar for StringFields and BooleanFields

  • Added histogram plots for StringFields and BooleanFields in the Scalars tab

  • Moved None selection for StringFields to the input format in the Filters Sidebar

  • Changed None options to only be present when None values exist for a supported Field in the Filters Sidebar

  • Added Color by label support for Classification, Classifications, BooleanField, and StringField

  • Added support excluding selected values for a StringField in the Fields Sidebar

  • Various style and interaction improvements in the Filters Sidebar

  • The App will no longer crash when samples whose source media is unsupported or missing are loaded

Core

Zoo

  • Added support for storing logits for many zoo models when using apply_model()

  • Default confidence thresholds for zoo models are now stored on a per-model basis rather than as a global default value in apply_model(). All detection models still have a default confidence threshold of 0.3, and all other model types have no default confidence threshold

CLI

  • Added a migration API to provide better support for downgrading the version of your fiftyone package

Docs

  • Added a new evaluation page to the user guide that explains how to evaluate various types of models with FiftyOne

  • Removed legacy --index flags from the install instructions from the troubleshooting page which prevented a valid installation

FiftyOne 0.7.2

Released January 28, 2021

App

  • Changed the Filters Sidebar label filters to only return matched samples, i.e., samples with at least one matching label with respect to a filter

  • Fixed a bug in Colab notebooks that allowed for the .ipynb file to grow unnecessarily large

  • Improved plotting of numeric fields in the Scalars tab, including [min, max) ranges for tooltips and integer binning when appropriate\ \

  • Fixed a bug that prevented\ select_fields()\ and\ exclude_fields()\ from being properly respected by the Filters Sidebar\ \
  • Fixed a bug that prevented selected samples from being cleared when modifying\ your view or choosing an option from the select samples dropdown\ \
  • Added an AppConfig for configuring options like the color pool to use when\ drawing Label fields. See this page for\ more info\ \ \ Core\ \
  • Added the MapLabels and\ SetField view stages\ \
  • Added the\ HistogramValues and\ Sum aggregations\ \
  • Added over a dozen new\ ViewExpression methods including powerful transformations like\ map_values(),\ reduce(), and\ sort()\ \
  • Exposed all Aggregations as\ single execution methods on the SampleCollection interface, e.g.,\ distinct()\ \
  • Added support for all Label types in\ filter_labels()\ \
  • Added support for generalized field paths (embedded fields, lists, etc) to\ the Bounds,\ Count,\ CountValues, and\ Distinct\ aggregations\ \
  • Removed the deprecated\ ConfidenceBounds,\ CountLabels, and\ DistinctLabels\ aggregations\ \
  • Removed the redundant\ match_tag()\ stage in favor of\ match_tags()\ \
  • Removed AggregationResult classes in favor of returning\ Aggregation results\ directly as builtin types\ \
  • Added the optional config keyword argument to\ launch_app() and\ Session for overriding the default\ AppConfig.\ \ \ Zoo\ \
  • Added a default confidence threshold of 0.3 when applying models from the\ Model Zoo via\ apply_model(),\ which omits spurious low quality predictions from many models\ \ \ CLI\ \
  • Added a fiftyone app config command for\ inspecting the default App config\ \
  • Improved ctrl + c exit handling for CLI commands\ \ \ Docs\ \
  • Added a new section to the\ Configuring FiftyOne guide explaining how to\ programmatically configure the App’s behavior\ \
  • Updated the Dataset views guide to provide a thorough\ overview of new functionality provided by stages like\ SetField\ \
  • Updated the Aggregations guide to provide a\ thorough overview and examples of various aggregation functionality,\ including advanced usage tips\ \
  • Added an FAQ section providing instructions for working with\ remote Jupyter notebooks\ \
  • Added code examples to all ViewStage class docstrings and their\ corresponding sample collection methods, e.g.,\ map_labels()\ \
  • Added code examples to all Aggregation class docs and their corresponding\ sample collection methods, e.g.,\ bounds()\ \ \ ## FiftyOne 0.7.1 \ \ Released January 8, 2021\ \ App\ \
  • Added automatic screenshotting for notebook environments\ \
  • Fixed a bug where the Filters Sidebar statistics would not load for empty\ views\ \
  • Fixed style inconsistencies in Firefox\ \ \ Core\ \
  • Added Session.freeze() for\ manually screenshotting the active App in a notebook environment\ \
  • Renamed Dataset.clone_field() to\ Dataset.clone_sample_field()\ for consistency with other operations\ \
  • Added a\ Dataset.clone_frame_field()\ method for cloning frame-level fields of video datasets\ \
  • Added\ DatasetView.clone_sample_field()\ and\ DatasetView.clone_frame_field()\ methods that allow cloning views into sample fields (e.g., after filtering\ the labels in a list field)\ \
  • Added a DatasetView.clone()\ method for cloning a view as a new dataset\ \
  • Added a DatasetView.save()\ method for saving a view, overwriting the contents of the underlying dataset\ \
  • Re-implemented\ Dataset.clone_sample_field()\ and\ Dataset.merge_samples()\ via efficient DB-only operations\ \
  • Added the overwrite keyword argument to the\ Dataset() constructor\ \
  • Added a database_dir option to the\ FiftyOne Config\ \
  • Added a default_app_port option to the\ FiftyOne Config\ \ \ Zoo\ \
  • Added a CenterNet model to\ the model zoo\ \
  • Upgraded the Model Zoo so that many detection models that\ previously required TensorFlow 1.X can now be used with TensorFlow 2.X\ \
  • Added Caltech-256 to the dataset zoo\ \
  • Added ImageNet Sample to the dataset zoo\ \
  • Caltech-101 is now available natively in the\ dataset zoo without the TF backend\ \
  • KITTI is now available natively in the dataset zoo\ without the TF backend\ \
  • Fixed a bug that prevented ImageNet 2012\ from loading properly when using the TF backend\ \ \ CLI\ \
  • Added support for controlling the error level when\ applying zoo models\ \ \ Docs\ \
  • Added a Dataset Zoo listing that describes all\ datasets in the zoo\ \
  • Added a Model Zoo listing that describes all models\ in the zoo\ \ \ ## FiftyOne 0.7.0 \ \ Released December 21, 2020\ \ App\ \
  • Added web browser support, which is now the default setting\ \
  • Added IPython notebook support, e.g. Jupyter and Google\ Colab\ \
  • The desktop App can now be installed as an\ optional dependency\ \
  • Fixed an issue where the App would freeze after filtering labels in the\ Filters Sidebar\ \ \ Core\ \
  • Added a Model Zoo containing over 70 pretrained detection,\ classification, and segmentation models that you can use to generate\ predictions and embeddings\ \
  • Moved project hosting to pypi.org\ \
  • Added the Session.show() method\ for displaying the App in IPython notebook cells\ \
  • Added an in-App feedback form. We would love to hear from you!\ \
  • Added Python 3.9 support\ \
  • Removed Python 3.5 support\ \ \ CLI\ \
  • Added a fiftyone zoo models command that\ provides access to the model zoo\ \
  • Moved the dataset zoo commands to\ fiftyone zoo datasets (previously they\ were at fiftyone zoo)\ \
  • Added a --desktop flag to commands that launch the App that enables\ launching the App as a desktop App (rather than a web browser)\ \ \ ## FiftyOne 0.6.6 \ \ Released November 25, 2020\ \ App\ \
  • Added a dropdown in the header to change datasets from the App\ \
  • Added the ability to refresh the App by clicking the FiftyOne logo in the\ header\ \
  • Fixed a bug the caused numeric (scalar field) range sliders to disappear\ after changing the default value\ \
  • Fixed a bug that prevented the App state from updating appropriately after\ applying label filters\ \ \ Brain\ \
  • Added support for computing mistakenness for detections when using\ compute_mistakenness()\ \ \ Core\ \
  • Fixed a bug that prevented COCO datasets from being loaded from the\ Dataset Zoo\ \ \ CLI\ \
  • Added support for customizing the local port when connecting to the App via\ the CLI\ \
  • Added an --ssh-key option to the app connect command\ \ \ Docs\ \
  • Added a tutorial demonstrating how to\ use compute_mistakenness() to\ detect label mistakes for detection datasets\ \
  • Added questions to the FAQ page:\ \
  • Can I launch multiple App instances on a machine?\ \
  • Can I connect multiple App instances to the same dataset?\ \
  • Can I connect to multiple remote sessions?\ \
  • Can I serve multiple remote sessions from a machine?\ \ \ ## FiftyOne 0.6.5 \ \ Released November 16, 2020\ \ App\ \
  • Added concurrency to the server which greatly improves loading speeds and\ time-to-interaction in the Grid, View Bar, and Filters Sidebar for larger\ datasets and views\ \
  • Renamed the Display Options Sidebar to the Filters Sidebar\ \
  • Added support for coloring by label value in the Filters Sidebar\ \
  • Added support for filtering\ keypoint,\ keypoints,\ polyline,\ polylines fields by label value\ in the Filters Sidebar\ \
  • Moved plot tabs into an expandable window that can be resized and maximized.\ This allows for viewing distributions and the sample grid at the same time\ \
  • Fixed video loading in the grid and modal for video samples with metadata\ \
  • Fixed showing and hiding samples in the select sample menu\ \
  • Fixed a memory usage bug in the sample grid\ \ \ Core\ \
  • Added Cityscapes and\ LFW to the\ Dataset Zoo\ \
  • Added support for renaming and deleting embedded document fields of samples\ via Dataset.rename_sample_field() and\ Dataset.delete_sample_field()\ \
  • Added support for renaming and deleting embedded document fields of frames\ of video samples via Dataset.rename_frame_field() and\ Dataset.delete_frame_field()\ \
  • Added support for deleting fields and embedded fields of individual samples\ via Sample.clear_field()\ and del sample[field_name]\ \
  • Added support for deleting fields and embedded fields of frame labels via\ Frame.clear_field()\ and del frame[field_name]\ \
  • Added support for reading/writing video datasets in JSON format via\ Dataset.from_json() and\ SampleCollection.write_json(),\ respectively\ \
  • Added a module for importing and exporting\ annotations from Scale AI\ \
  • Added a module for importing and exporting\ annotations from Labelbox\ \
  • Fixed a bug that prevented\ Dataset.add_sample() and\ Dataset.add_samples()\ from working properly when provided samples that belong to other sample\ collections\ \
  • Fixed a bug that prevented frame labels from being properly cloned when\ calling Dataset.clone() on\ video datasets\ \ \ Docs\ \
  • Added an Environments page that outlines how\ to work with local, remote, and cloud data. Includes instructions for AWS,\ Google Cloud, and Azure\ \
  • Add an FAQ page\ \ \ ## FiftyOne 0.6.4 \ \ Released October 29, 2020\ \ App\ \
  • Improved page load times for video datasets\ \
  • Improved support for frame- and sample-level labels in display options for\ video datasets\ \
  • Added support for all label types in the labels distributions tab\ \
  • Added support for selecting and hiding labels in the sample modal\ \ \ Brain\ \
  • Added support for computing uniqueness within regions-of-interest specified\ by a set of detections/polylines when using\ compute_uniqueness()\ \ \ Core\ \
  • Added the\ filter_labels()\ view stage, which supersedes the old dedicated per-label-type filtering\ stages\ \
  • Added\ select_labels()\ and\ exclude_labels()\ to select or exclude labels from a dataset or view\ \
  • Added an aggregations framework for\ computing aggregate values via\ aggregate()\ \
  • Added the\ selected_labels\ session attribute, which holds the currently selected labels in the App\ \
  • Added support for\ adding,\ renaming, and\ deleting\ frame-level fields of video datasets\ \
  • Added the\ TorchImagePatchesDataset\ that emits tensors of patches extracted from images defined by sets of\ Detections associated with the\ images\ \ \ ## FiftyOne 0.6.3 \ \ Released October 20, 2020\ \ App\ \
  • Added sample-level display options stats, filtering, and toggling for video\ datasets\ \ \ Core\ \
  • Added support for importing\ and exporting video\ classification datasets organized as directory trees on disk\ \
  • Added BDD100K,\ HMDB51,\ and UCF101 to\ the Dataset Zoo\ \
  • Added new versions of COCO that contain\ instance segmentations to the Dataset Zoo\ \
  • Added utilities for selecting labels from datasets via the Python library\ \
  • Added a boolean only_matches parameter to all filter stages that enables\ the user to specify that a view should only contain samples that match the\ given filter\ \
  • Improved performance when ingesting video datasets with frame-level labels\ \
  • Added a reencode_videos()\ utility to re-encode the videos in a sample collection so that they are\ visualizable in the FiftyOne App\ \ \ ## FiftyOne 0.6.2 \ \ Released October 15, 2020\ \ App\ \
  • Improved page and grid load times for video datasets by around 10x\ \
  • Added filtering, toggling, and statistics for labels with respect to the\ frame schema in the display options sidebars for video datasets\ \
  • Added margins to the grid view for both image and video datasets\ \
  • Fixed list parameter input submission in the view bar\ \
  • Fixed an issue causing some label counts to be incorrect after filters are\ applied\ \
  • Added support for using the keyboard to select labels when filtering\ \ \ Brain\ \
  • compute_uniqueness() and\ compute_hardness() now support\ multilabel classification tasks\ \ \ Core\ \
  • Polyline instances can now represent labels composed of multiple shapes\ \
  • Segmentations can now be imported and\ exported when using\ COCO Object Detection Format.\ \
  • Polylines and keypoints can now be imported and\ exported when using\ CVAT image format\ \
  • Polylines and keypoints can now be imported and\ exported when using\ CVAT video format\ \
  • Added support for rendering annotated versions of video samples with their\ frame labels overlaid via\ draw_labels()\ \
  • Added support for launching quickstarts as\ remote sessions\ \
  • Added Frames.update() and\ Frames.merge() methods to replace\ and merge video frames, respectively\ \
  • Fixed Dataset.merge_samples()\ to properly merge the frame-by-frame contents of video samples\ \
  • Fixed a bug where sample.copy()\ would not create a copy of the frames of a video sample\ \ \ ## FiftyOne 0.6.1 \ \ Released October 7, 2020\ \ App\ \
  • Added support for visualizing keypoints, polylines, and segmentation masks\ \
  • Added autocompletion when selecting SortBy fields in the view bar\ \
  • Added support for viewing index fields of Detection labels in the media\ viewer, if present\ \
  • Fixed counting of Classifications fields in the expanded sample view\ \
  • Fixed a bug that prevented label filters from fully resetting when a reset\ or clear button is pressed\ \ \ Core\ \
  • Added support for storing keypoints,\ polylines, and\ segmentation masks on samples\ \
  • Added support for setting an index attribute on Detection instances that\ defines a unique identifier for an object (e.g., across frames of a video)\ \
  • Added support for importing and\ exporting datasets in\ YOLOv4 format\ \
  • Added support for importing and\ exporting datasets in\ CVAT video format\ \
  • Added support for importing and\ exporting video datasets in\ FiftyOneDataset format\ \
  • Added frame field schemas to string representations for video datasets/views\ \ \ CLI\ \
  • Added options to\ fiftyone datasets delete to delete all\ datasets matching a pattern and all non-persistent datasets\ \ \ Docs\ \
  • Added a recipe for merging datasets\ \
  • Fixed some table widths and other display issues\ \ \ ## FiftyOne 0.6.0 \ \ Released October 1, 2020\ \ App\ \
  • Added support for visualizing video datasets in the App\ \ \ Core\ \
  • Added support for storing frame labels on video\ samples\ \
  • Added support for importing and\ exporting datasets of unlabeled videos\ \
  • Added support for importing and\ exporting labeled video\ datasets in\ ETA VideoLabels format.\ \
  • Added support for importing and\ exporting video datasets in\ custom formats\ \
  • Improved the performance of\ Dataset.rename_sample_field()\ \
  • Added support for using disk space when running aggregation pipelines on\ large datasets\ \
  • Added support for automatically creating database indexes when sorting by\ sample fields, for efficiency\ \
  • Fixed issues with serializing vector fields and numpy arrays\ \ \ ## FiftyOne 0.5.6 \ \ Released September 23, 2020\ \ App\ \
  • Added autocompletion to view bar stage fields that accept field names (for\ example, Exists)\ \
  • Fixed an issue that would prevent datasets with no numeric labels or scalars\ from loading in the App\ \
  • Fixed an error that could occur when a view included no samples\ \
  • Added notifications in the App that are displayed if errors occur on the\ backend\ \
  • Improved keyboard navigation between view bar stages\ \ \ Core\ \
  • Added support for loading (possibly-randomized) subsets of datasets when\ importing them via DatasetImporter instances, or via factory methods such\ as Dataset.from_dir()\ \
  • Added support for optionally skipping unlabeled images when importing image\ datasets via LabeledImageDatasetImporter instances\ \
  • Added a\ Dataset.merge_samples()\ method for merging samples in datasets via joining by filepath\ \
  • Added a\ Dataset.rename_sample_field()\ method for renaming sample fields of datasets\ \ \ ## FiftyOne 0.5.5 \ \ Released September 15, 2020\ \ App\ \
  • Added support for filtering samples by numeric fields in the sidebar\ \
  • Confidence bounds are now computed for the confidence slider in the label\ filter - a [0, 1] range is no longer assumed\ \
  • Fixed an issue that would cause certain stages to be reevaluated when the view\ bar was edited\ \
  • Improved responsiveness when adding stages in the view bar, filtering, and\ selecting samples\ \
  • Simplified placeholders in the view bar\ \
  • Added support for filtering sample JSON in the expanded sample view to match\ the labels displayed in the media viewer\ \
  • Updated the instructions that appear when starting the App before connecting\ to a session\ \ \ Core\ \
  • Added support for Session.wait()\ for remote sessions, to make starting a remote session from a script easier\ \ \ ## FiftyOne 0.5.4 \ \ Released September 9, 2020\ \ App\ \
  • Added support for selecting/excluding samples from the current view in the\ App by selecting them and then choosing the appropriate option from a sample\ selection menu\ \
  • Added autocomplete when creating new stages in the view bar\ \
  • Updated the look-and-feel of the view bar to clarify when a stage and/or the\ entire view bar are active, and to make the bar more visually consistent with\ the rest of the App\ \
  • Media viewer options are maintained while browsing between samples in\ expanded sample view\ \
  • Improved the look-and-feel of confidence sliders when filtering labels\ \
  • Limited floating point numbers to three decimals when rendering them in the\ media viewer\ \
  • Fixed some bugs related to content overflow in the view bar\ \ \ Core\ \
  • Added support for exporting Classification labels in dataset formats that\ expect Detections labels\ \
  • Added support for importing/exporting supercategories for datasets in\ COCO format\ \ \ ## FiftyOne 0.5.3 \ \ Released September 1, 2020\ \ App\ \
  • Added support for filtering labels in the expanded sample view\ \
  • Added support for displaying detection attributes in the expanded sample view\ \
  • Added an option to display confidence when viewing labels in the expanded\ sample view\ \
  • Updated look-and-feel of display options in the expanded sample view to match\ the main image grid view\ \
  • Adopting a default color palette for sample fields in the App that ensures\ that they are visually distinct\ \
  • Fixed a bug that prevented the App from loading empty views\ \
  • Fixed a bug that prevented the view bar from using default values for some\ stage parameters\ \ \ Core\ \
  • Added support for checking that a field does not exist via a new boolean\ parameter of the\ exists()\ view stage\ \
  • Fixed a bug that prevented FiftyOne from starting for some Windows users\ \
  • Fixed a bug that caused\ take() and\ shuffle() view\ stages with random seeds to be regenerated when handing off between the App\ and Python shell\ \ \ ## FiftyOne 0.5.2 \ \ Released August 26, 2020\ \ App\ \
  • Added a label filter to the App that allows you to interactively explore your\ labels, investigating things like confidence thresholds, individual classes,\ and more, directly from the App\ \
  • Added an App error page with support for refreshing the App if something goes\ wrong\ \
  • The App can now be closed and reopened within the same session\ \ \ Core\ \
  • Added a fiftyone quickstart command that\ downloads a small dataset, launches the App, and prints some suggestions for\ exploring the dataset\ \
  • Added support for multiple simultaneous FiftyOne processes. You can now\ operate multiple App instances (using different ports), Python shells, and/or\ CLI processes.\ \
  • Added support for automatically expanding labels from multitask formats such\ as BDDDataset and\ FiftyOneImageLabelsDataset into\ separate label fields when importing datasets\ \
  • Added support for exporting multiple label fields in supported formats such\ as BDDDataset and\ FiftyOneImageLabelsDataset\ via the export()\ method\ \
  • Added support for filtering fields via the\ filter_field()\ method\ \
  • Provided a more helpful error message when using the\ Dataset Zoo with no backend ML framework installed\ \
  • Made pycocotools an optional dependency to make installation on Windows\ easier\ \ \ Docs\ \
  • Updated the evaluate object detections\ tutorial to make it more friendly for execution on CPU-only machines\ \
  • Refreshed all App-related media in the docs to reflect the new App design\ introduced in v0.5.0\ \ \ ## FiftyOne 0.5.1 \ \ Released August 18, 2020\ \ App\ \
  • Statistics in the display options sidebar now reflect the current\ view, not the entire dataset\ \
  • Improved image tiling algorithm that prevents single images from filling an\ entire grid row\ \
  • Added support for toggling label visibility within the expanded sample modal\ \
  • Improved display of long label and tag names throughout the app\ \
  • Enhanced view bar functionality, including keyword arguments, type\ annotations, error messages, help links, and overall stability improvements\ \
  • Added keyboard shortcuts for interacting with the view bar:\ \
  • DEL and BACKSPACE delete the raised (active) stage\ \
  • ESC toggles focus on the ViewBar, which activates shortcuts\ \
  • TAB, ENTER, and ESC submits stage input fields\ \
  • LEFT and RIGHT ARROW traverses view stages and add-stage buttons\ \
  • SHIFT + LEFT ARROW and SHIFT + RIGHT ARROW traverse stages\ \ \ Core\ \
  • Greatly improved the performance of loading dataset samples from the database\ \
  • Added support for renaming and\ cloning datasets\ \
  • Added more string matching operations when\ querying samples, including\ starts_with(),\ ends_with(),\ contains_str() and\ matches_str()\ \ \ Docs\ \
  • Added a tutorial demonstrating performing error analysis on the\ Open Images Dataset\ powered by FiftyOne\ \ \ ## FiftyOne 0.5.0 \ \ Released August 11, 2020\ \ News\ \
  • FiftyOne is now open source! Read more about this exciting development\ in this press release\ \ \ App\ \
  • Major design refresh, including a\ new look-and-feel for the App\ \
  • Added view bar that supports constructing dataset views directly in the App\ \
  • Redesigned expanded sample view:\ \
  • Improved look-and-feel, with modal-style form factor\ \
  • Added support for maximizing the media player\ \
  • Added support for maximizing the raw sample view\ \
  • Added arrow controls to navigate between samples\ \ \ Core\ \
  • Added support for importing and\ exporting FiftyOne datasets via the\ FiftyOneDataset type\ \
  • Added a Dataset.info field that\ can be used to store dataset-level info in FiftyOne datasets\ \
  • Added a shuffle()\ view stage for randomly shuffling the samples in a dataset\ \
  • Upgraded the take()\ view stage so that each instance of a view maintains a deterministic set of\ samples\ \ \ ## FiftyOne 0.4.1 \ \ Released August 4, 2020\ \ Core\ \
  • Added a powerful fiftyone.core.expressions module for constructing\ complex DatasetView match(),\ sort_by(), etc.\ stages\ \
  • Added an\ evaluate_detections()\ utility for evaluating object detections in FiftyOne datasets\ \
  • Adding support for rendering annotated versions of sample data with their\ labels overlaid via a\ draw_labels()\ method\ \ \ Docs\ \
  • Added a tutorial demonstrating\ object detection evaluation workflows powered by FiftyOne\ \
  • Added full documentation for constructing\ DatasetViews with powerful matching, filtering, and sorting operations\ \
  • Added a recipe showing how to render annotated\ versions of samples with label field(s) overlaid\ \
  • Upgraded dataset creation docs\ that simplify the material and make it easier to find the creation strategy\ of interest\ \
  • Improved layout of tutorials,\ recipes, and user guide\ landing pages\ \ \ ## FiftyOne 0.4.0 \ \ Released July 21, 2020\ \ App\ \
  • Fixed an issue that could cause launching the App to fail on Windows under\ Python 3.6 and older\ \ \ Core\ \
  • Added support for importing datasets in custom formats via the\ DatasetImporter interface\ \
  • Added support for exporting datasets to disk in custom formats via the\ DatasetExporter interface\ \
  • Added support for parsing individual elements of samples in the\ SampleParser interface\ \
  • Added an option to image loaders in fiftyone.utils.torch to convert\ images to RGB\ \
  • Fixed an issue where\ Dataset.delete_sample_field()\ would not permanently delete fields if they were modified after deletion\ \
  • Improved the string representation of ViewStage instances\ \ \ Docs\ \
  • Added a recipe demonstrating how to\ convert datasets on disk between common\ formats\ \
  • Added recipes demonstratings how to write your own\ custom dataset importers,\ custom dataset exporters, and\ custom sample parsers\ \
  • Added a Configuring FiftyOne page to the User\ Guide that explains how to customize your FiftyOne Config\ \ \ ## FiftyOne 0.3.0 \ \ Released June 24, 2020\ \ App\ \
  • Fixed an issue that could prevent the App from connecting to the FiftyOne\ backend\ \ \ Core\ \
  • Added support for importing and exporting datasets in several common formats:\ \
  • COCO: COCODetectionDataset\ \
  • VOC: VOCDetectionDataset\ \
  • KITTI: KITTIDetectionDataset\ \
  • Image classification TFRecords:\ TFImageClassificationDataset\ \
  • TF Object Detection API TFRecords:\ TFObjectDetectionDataset\ \
  • CVAT image: CVATImageDataset\ \
  • Berkeley DeepDrive: BDDDataset\ \ \
  • Added Dataset.add_dir() and\ Dataset.from_dir() to allow\ for importing datasets on disk in any supported format\ \
  • Added a convert_dataset()\ method to convert between supported dataset formats\ \
  • Added support for downloading COCO 2014/2017 through the FiftyOne Dataset Zoo\ via the Torch backend\ \ \ CLI\ \
  • Added fiftyone convert to convert datasets on disk between any supported\ formats\ \
  • Added fiftyone datasets head and fiftyone datasets tail to print the\ head/tail of datasets\ \
  • Added fiftyone datasets stream to stream the samples in a dataset to the\ terminal with a less-like interface\ \
  • Added fiftyone datasets export to export datasets in any available format\ \ \ ## FiftyOne 0.2.1 \ \ Released June 19, 2020\ \ Core\ \
  • Added preliminary Windows support\ \
  • Dataset.add_images_dir()\ now skips non-images\ \
  • Improved performance of adding samples to datasets\ \ \ CLI\ \
  • Fixed an issue that could cause port forwarding to hang when initializing a\ remote session\ \ \ ## FiftyOne 0.2.0 \ \ Released June 12, 2020\ \ App\ \
  • Added distribution graphs for label fields\ \
  • Fixed an issue causing cached images from previously-loaded datasets to be\ displayed after loading a new dataset\ \ \ Core\ \
  • Added support for persistent datasets\ \
  • Added a class-based view stage approach via the ViewStage interface\ \
  • Added support for serializing collections as JSON and reading datasets from\ JSON\ \
  • Added support for storing numpy arrays in samples\ \
  • Added a config option to control visibility of progress bars\ \
  • Added progress reporting to\ Dataset.add_samples()\ \
  • Added a SampleCollection.compute_metadata()\ method to enable population of the metadata fields of samples\ \
  • Improved reliability of shutting down the App and database services\ \
  • Improved string representations of Dataset and Sample objects\ \ \ CLI\ \
  • Added support for creating datasets and launching the App\ \ \