FiftyOne Release Notes#

FiftyOne Enterprise 2.10.2#

Released Aug 5, 2025

Includes all updates from FiftyOne 1.7.2, plus:

  • Fixed security vulnerabilities in form-data, next, and @babel/runtime libraries.

FiftyOne 1.7.2#

Released Aug 5, 2025

Core

  • Added a new syntax to set_label_values() that allows users to provide sample IDs in addition to label IDs for each update, for efficiency. #6149

  • Added a new syntax to set_values() where users can update frame fields by directly providing a mapping from frame IDs to values. #6149

  • Added a new fiftyone.utils.data.map_values() utility that performs the same operation as SampleCollection.map_values() but it immediately saves the mapped values to the database rather than creating a view. #6149

  • Added support for signed URLs when using GCS impersonated credentials and identity pool credentials (WIF). #658

Labels

  • Fixed: The builtin edit_field_values operator can now safely be applied to views that filter label fields. #6149

  • Fixed a bug with CVAT rotation attribute of 3d labels. #6163

App

  • Introduced tooltip behavior for PLY files similar to PCD files in 3D visualizer. #6202

  • Fixed: PLY point clouds were not always rendering in 3D visualizer. #6202

  • Improved top and ego view heuristics in 3D visualizer, improving consistency. #6168

  • Fixed a bug where camera lookAt wasn’t being persisted across navigations. #6168

  • Fixed a bug with the crop view of 3D labels. #6168

  • Fixed: Image-based video playback now correctly renders segmentation maps during playback. #6165

Model Evaluation

Plugins

  • Fixed a bug that caused file inputs to be submitted multiple times. #6164

Zoo

  • Fixed #6156: setting classes for zero-shot models in Hugging Face transformers integration is now optional. #6159

Security

FiftyOne Enterprise 2.10.1#

Released July 21, 2025

Includes all updates from FiftyOne 1.7.1, plus:

  • Optimized the pinned datasets widget

  • Enhanced connection handling for HTTP requests, allowing faster failure and more robust retry behavior after a successful connection has been established

  • Changed the sizeEstimate fields on both datasets and dataset snapshots to return a float indicating size in megabytes, rather than in bytes

  • Fixed an error that could prevent dataset snapshots from loading in the App in certain contexts

FiftyOne 1.7.1#

Released July 21, 2025

App

Core

Zoo

  • Improved semantics when performing inference with Ultralytics models and no suitable objects were found in an image #6131

  • Fixed a bug that prevented applying models to image patches with num_workers>0 on macOS #6138

  • Fixed a bug that would prevent extracting embeddings from zero-shot transformer models with preprocessing disabled #6122

FiftyOne Enterprise 2.10.0#

Released July 1, 2025

Includes all updates from FiftyOne 1.7.0, plus:

Management SDK

CLI

  • Orchestrators can now be managed from the command line. Use fiftyone orchestrator --help to get started

Other

  • Optimized executors by skipping the sleep step if there is immediately more work to execute

  • Introduced settings to enable configuration of the Sanic worker timeout threshold (default is 60 seconds)

  • Fixed a “not consumed” error that could occur when receiving an OPTIONS request with a body

  • Fixed an access issue with some temporary datasets that would prevent authorized users from accessing them

  • Fixed vulnerabilities in cryptography, requests, and protobuf libraries

FiftyOne 1.7.0#

Released July 1, 2025

3D point clouds

  • Added support coloring point clouds by dynamically chosen fields in the App’s 3D visualizer #5973, #5995

  • The 3D visualizer now recognizes point cloud intensities stored in an intensity field of PCD files #5935

  • Added interactive tooltips that appear when hovering over point clouds in the 3D visualizer that show point metadata (RGB, intensity, index, position) #5951

  • Added support for manipulating the “up” vector dynamically in the App #5935, #6035

  • Added configurable ray casting sensitivity to the 3D visualizer for better point selection #5951

  • Introduced a new auto-rotate camera option that is persisted across sessions #5951

  • Improved point cloud material handling for intensity-based coloring #5951

  • Updated the FPS viewer to better support air-gapped deployments #5951

  • Fixed an asset shifting artifact that would sometimes appear when loading point clouds in the 3D visualizer #5951

  • Improved 3D visualization in the grid with enhanced background and overlay features #5976

App

  • Dynamic groups can now be optimized by providing the new order_by_key parameter #5961

  • Optimized performance and resource usage of the sidebar and grid #5842, #6056

  • Added a new configuration option for maximum query time (defaults to 60 seconds) #5842

  • Added manual input fields to set the endpoints of int/float field filters in the sidebar #5996

  • Fixed a regression from fiftyone==1.6.0 that would cause incorrect query results when filtering an object list field by a numeric attribute with a min or max value (but not both) in the sidebar #6078

  • Improved the layout of the stacked bar charts in the Scenario Analysis tab #6060

  • Fixed a bug that could cause incorrect confusion matrix colorscales in the Scenario Analysis tab #6057

  • Improved handling and displaying of embeddings plot loading errors in the Embeddings panel #5997, #6077

Core

  • FiftyOne will now use multiple workers by default on macOS when applying Torch models that support data loaders via methods like apply_model() and compute_embeddings() #5939

  • Added a beam_map() utility that demonstrates how to perform parallelized map-reduce operations via Apache Beam #6063

  • Fixed a filename clash bug when exporting multiple nested subdirectories that contain matching filenames into a single output directory #6064

Zoo

FiftyOne Enterprise 2.9.1#

Released June 24, 2025

Includes all updates from FiftyOne 1.6.0, plus:

  • All builtin delegated operations triggered from the App, such as evaluating models, generating embedding visualizations, and data qualitiy scans, now automatically report their progress every 10 seconds during execution

  • All delegated operations triggered from the App by core plugins now automatically report their progress every 10 seconds during execution

  • Removed spurious log messages when resolving database secrets during plugin execution

  • Fixed an API connection error with websocket-client<1.7

  • Fixed support for chunked cookies (cookies larger than 4kb)

  • Fixed a bug in executing delegated operators that occurred because of a missing request_token

  • Fixed a bug in the Data Quality Panel when an expected field is deleted

  • Fixed vulnerabilities in prismjs, jinja2, and @babel

  • Kubernetes 1.29 transitioned to end-of-life effective February of 2025, so in accordance with our deprecation schedule, FiftyOne Enterprise 2.9 and later might not be compatible with it

FiftyOne 1.6.0#

Released June 24, 2025

News

  • Added Scenario Analysis to the Model Evaluation panel, allowing you to deep dive into the behavior of your models in different scenarios of interest #5626

App

  • All fields added when performing model evaluations are now automatically added to a sidebar group with name eval_key by default #5725

  • The current state of the Model Evaluation panel is now persisted when you refresh the App #6031

  • Added support for displaying only specific classes of interest in confusion matrices in the Model Evaluation panel #6031

  • Upgraded the builtin delete_selected_labels operator to support deleting some/all labels in selected samples in the App #5956

  • Improved stability when rendering objects with instance IDs #5944

  • Standardized hover and selection states across detection, keypoint, and polyline overlays #5902

  • Fixed handling of indexes for dynamic embedded fields that are not declared in the dataset’s schema #5965

  • Fixed unwanted index creation for grid sorting when a compound index already applies #5900

Core

Plugins

  • Added ctx.active_fields and ctx.ops.clear_active_fields() to the operator execution context, allowing operators to get and set the currently active fields in the App sidebar #5952

  • Added resolve_run_name(), allowing operators to dynamically resolve their run name from the current execution context #5916

  • Gracefully continue when ctx.set_progress() fails during operator execution to prevent things like intermittent network errors from killing otherwise functional long-running operations #5974

  • Fixed a bug where passing a progress callback to a delegated operation would fail to report its progress #5974

Zoo

Annotation

Docs

  • Added a top-level Importing data into FiftyOne page that consolidates all information related to importing data into a single location #5933

  • Added a new section to the user guide explaining how persistent selections of samples and labels work in the App #5959

FiftyOne Enterprise 2.8.2#

Released May 9, 2025

Includes all updates from FiftyOne 1.5.2

FiftyOne 1.5.2#

Released May 9, 2025

Core

  • Fixed a bug where the system would sometimes detect a multiprocess environment incorrectly. #5884

FiftyOne Enterprise 2.8.1#

Released May 8, 2025

Includes all updates from FiftyOne 1.5.1

FiftyOne 1.5.1#

Released May 8, 2025

App

  • Fixed a bug with plot interactivity in the Model Evaluation panel #5844

  • Fixed a bug where certain modal sidebar queries would error #5848

  • Fixed a bug which caused some SVG icons to not render correctly in deployed environments #5849

  • Fixed a bug which resulted in the UI displaying a stale set of saved views #5858

Brain

Core

  • Ensure that read access to the admin database is not required in order to use FiftyOne #5872

  • The fiftyone migrate –all command now includes private datasets like patches, frames, and clips #5868

  • Fixed #5852 by upgrading strawberry-graphql library #5855

Docs

  • Added a docs warning and raises an error when attempting to use the CVAT integration with a CVAT server > 2.30 #5857

FiftyOne Enterprise 2.8.0#

Released May 2, 2025

Includes all updates from FiftyOne 1.5.0, plus:

  • Optimized API performance by enabling compression and byte-encoding

  • Optimized plugin response times by using the Management API as the source of truth instead of the filesystem

  • Added support for local log file streaming for delegated operations

  • Added a warning dialog about role re-upgrade limitations before admins downgrade users

  • Enabled override of the API batcher via the override_api_dynamic_batching config setting

  • Enabled use of local directories when configuring the log storage location for delegated operations

  • Introduced FiftyOne versions for Sanic configuration variables, and increased default values for keep-alive, request-timeout, response-timeout, websocket-max-size, and websocket-ping-timeout

  • Fixed a concurrency issue that could previously cause errors such as KeyError: 's3' during long-running operations like downloading media that need to refresh cloud credentials mid-operation

  • Fixed a misleading message during snapshot creation. Message now makes clear the snapshot may still be in progress of being created

  • Fixed a bug where certain transient 5xx errors were not being correctly retried

  • Fixed a bug where users with read-only access were unable to load a saved view from a snapshot

  • Fixed a bug where the dataset access page UI displayed No Access instead of the accurate value

FiftyOne 1.5.0#

Released May 2, 2025

App

  • Optimized the performance of the sidebar when interacting with dropdowns and other field inputs by leveraging indexes when possible and otherwise showing partial scan results #5732

  • The sidebar can now make use of compound indexes to support multiple filters on massive datasets #5732

  • Optimized the performance of the builtin sort by similarity action by removing unnecessary duplicate queries when scrolling/bookmarking #5757

  • Added a Sort by input field to the upper right of the grid #5732

  • Added support for linking objects across group slices and video frames via the new Instance class #5577

  • Added new on-hover and shift+click interactions for objects that use the new Instance class to represent correspondence across group slices and video frames #5577

  • Optimized Map panel loading and rendering #5775, #5794

  • Fixed #5327 improving user experience when tagging #5638

  • Fixed a z-order issue that would block some clicks in the Embeddings panel #5627

  • Fixed edit_field_values operator when values are missing from some samples #5662

Plugins

  • Added a new execution_cache decorator for caching intermediate results of dynamic operators and panels #5680

  • Added a new residency parameter to @execution_cache, enabling transient, ephemeral, or hybrid caching strategies with optional in-memory cache size limits and automatic LRU eviction #5736

  • Added ctx.prompt_id to the execution context #5678

  • Added ctx.operator_uri to the execution context #5678

  • Added a new policy param for creating ExecutionStore items with explicit eviction policies #5679

Core

  • Introduced map_samples() and update_samples() methods that enable efficient, parallelized sample iteration and modification. These methods provide significant performance improvements for large datasets and include flexible options for batching, parallelization, and progress monitoring #5642

  • Added support for creating samples with arbitrary media types #5506

  • Optimized the content size batcher to account for compressed or encoded payloads #5740

  • Optimized frame lookups to be as late as possible in aggregation pipelines #5705

  • Optimized values() when retrieving an indexed field value in specific cases #5743

  • Dataset.last_modified_at is now automatically updated when samples are deleted #5723

  • The last_modified_at field of Sample objects is now automatically updated when frames are deleted #5723

  • Optimized split_labels() and delete_labels(view=view) by using per-sample update operations rather than requiring full collection scans #5730

  • Optimized save contexts to use a more optimal batching strategy #5747

  • Optimized the performance of similarity queries on full indexes #209

  • Added support for similarity queries on filtered views via the MongoDB backend #248

  • Added an optional generator=True parameter to methods like add_samples() that yields control to the caller after each batch of samples is added #5666

  • Added support for automatically declaring new embedded document fields when setting sample fields #5785

  • Added support for listing schemas without traversing embedded list fields by introducing subfield and unwind parameters to get_field_schema() #5663

  • Fixed a bug that would cause spurious warnings when calling rename_evaluation() on an evaluation run with custom metrics #5724

  • Fixed #5335 which was causing false positives in evaluate_detections() when classwise=False #5697

  • Fixed a “BSON too large” error that would previously occur when deleting a sufficiently long list of IDs via delete_labels(ids=ids) #5730

  • Fixed a bug where default dataset name generation could result in a collision #5759

  • Fixed vulnerabilities in setuptools and CVE-2025-22151 in strawberry-graphql #5719, #5735

Zoo

Database

FiftyOne Enterprise 2.7.2#

Released April 4, 2025

Includes all updates from FiftyOne 1.4.1

FiftyOne 1.4.1#

Released April 4, 2025

App

  • Fixed rendering of samples in the App that are missing a label tags list #5686

  • Fixed built-in sort by similarity for patches views #5685

  • Enabled sample tagging in the modal when a selection is present regardless of sidebar filters #5684

  • Fixed tagging in the modal for video samples #5683

  • Fixed label tags filtering in the Query Performance sidebar #5675

  • Fixed bug when entering invalid id into sidebar id filter #5655

FiftyOne Enterprise 2.7.1#

Released March 24, 2025

FiftyOne Enterprise 2.7.0#

Released March 21, 2025

Includes all updates from FiftyOne 1.4.0, plus:

  • Renamed FiftyOne Teams to FiftyOne Enterprise

  • Expanded functionality of the Runs page, including providing Admins a view of delegated operations across all datasets and users, and adding support for viewing and downloading logs in a new Logs tab

  • Added support for adding spatial indexes when creating visualizations via the Embeddings panel to optimize lasso performance

  • Added a new builtin manage_visualization_indexes operator for adding/removing spatial indexes to existing visualization results from the App

  • Added support for selecting embedded fields in the Embeddings panel and Model Evaluation panel

  • Added a new cloud_storage_id argument to the CVAT integration to specify the ID of the cloud storage to use for the CVAT tasks that are created

  • Added configurable connect and read timeouts for the API client

  • Added support for filepath aliases/prefixes when using per-user cloud credentials

  • Added support for 3D media to per-user cloud credentials

  • Optimized the Data Quality Panel when loading large datasets

  • Optimized streaming API responses

  • Improved error messages related to license files and compliance

  • Security fixes for vitest, nanoid, dompurify, setuptools, and axios

  • Fixed a bug where using the Query Performance Panel to create an index could result in an error message

  • Fixed a bug that allowed users to accidentally exceed license limits when auto-join was enabled

  • Fixed a bug where, in certain cases, the system would incorrectly retry insert_many operations

FiftyOne 1.4.0#

Released March 21, 2025

App

  • Improved grid performance by only rendering labels when they are actually visible and hiding dense label fields like heatmaps and semantic segmentations by default #5356

  • Added support for configuring the default visibility of fields #5356

  • Improved performance and stability of the grid by explicitly managing memory usage of the grid cache and allowing users to set the memory limit of that cache #5214, #5548

  • Improved buffering behavior, particularly for longer videos #5515

  • Query Performance mode now supports views that select/exclude slices of group datasets #5428, #5460

  • Improved performance of sample field filtering on large video samples in the grid #5450

  • Optimized sidebar counts when Query Performance is enabled #5538

  • Removed an inapplicable sidebar sorting option from the settings menu when Query Performance is enabled #5531

  • Fixed hard errors related to invalid ID searches in the sidebar #5415

  • Fixed a mask rendering bug related to missing MIME type #5419

  • Fixed a bug where session.wait() would prematurely exit while App windows remained open #5437

  • Fixed a bug when animating frame sequences with 0 or 1 frames #5442

  • Fixed a bug where color schemes may not correctly reset when switching datasets #5485

  • Fixed sample updates after tagging in the modal #5514

  • Fixed a data formatting bug in Session.selected_labels #5533

  • Fixed a bug when deleting custom workspaces #5590

Embeddings Panel

Model Evaluation Panel

  • Users can now rename and delete evaluations from the Model Evaluation panel #5553, #5559

  • Evaluation types are now clearly indicated #5509

  • Model comparisons are now restricted to evaluation runs of compatible types #5541

  • Custom metrics can now be added to existing evaluations via a new results.add_custom_metrics() method #5436

  • Fixed a bug when rendering performance charts for semantic segmentations with no provided mask targets #5504

Core

Annotation

  • Added support for 3D cuboid annotation on point clouds with CVAT #5458

  • Added support for annotating rotated bounding boxes with CVAT #5457

  • Annotation label schema attributes now support custom attributes for annotation backends #5502

Brain

Zoo

CLI

  • Added support for glob patterns when listing operators via the CLI #5587

Docs

  • Fixed some documentation typos/broken links #5558, #235

FiftyOne Enterprise 2.6.2#

Released March 12, 2025

Includes all updates from FiftyOne 1.3.2

FiftyOne 1.3.2#

Released March 12, 2025

SDK

  • Fixed a bug #5486 that caused model evaluation to fail in certain cases #5472

FiftyOne Enterprise 2.6.1#

Released February 28, 2025

Includes all updates from FiftyOne 1.3.1, plus:

  • Per-user cloud credentials now support masks and 3D media

  • Security fixes for nextjs, cookie, cross-spawn, and lodash

  • Bump node version to 22

FiftyOne 1.3.1#

Released February 28, 2025

App

  • Optimized modal tagger to support massive datasets #5417

  • Fixed a bug with sample updates after tagging in the modal #5514

FiftyOne Enterprise 2.6.0#

Released February 10, 2025

  • Improved backwards compatibility between an older SDK and newer deployment.

  • Added a configurable banner which appears at top and bottom of every page, often used for compliance reasons.

  • Fixed a bug where invite email smtp configuration was not saving correctly.

FiftyOne Enterprise 2.5.1#

Released February 3, 2025

  • Fixed a bug where we displayed a session error before initial user login

FiftyOne Enterprise 2.5.0#

Released January 24, 2025

Includes all updates from FiftyOne 1.3.0, plus:

  • Fixed a bug which prevented very large media from being fetched

  • Fixed a race condition which prevented downloading initial batches of cloud media

FiftyOne 1.3.0#

Released January 24, 2025

App

  • Reduced memory requirements for heatmap fields by 4x! #5340

  • Optimized rendering of dense label masks like segmentations and heatmaps #5337

  • Added support for rendering 16 bit PNG label masks #5413

  • Added support for rendering JPG label masks #5406

  • Improved robustness when label mask MIME type is missing #5419

  • Added support for multiple media fields when viewing dynamic groups of image frames #5394

  • Improved stability of the tagging menu when adding new sample/label tags #5378

  • Added a dynamic_groups_target_frame_rate setting to the dataset app config that allows users to configure the target frame rate when animating dynamic groups in the modal #5368

  • Fixed a bug that prevented expanding the label tags sidebar facet for datasets that contain Classifications fields #5322

  • Improved reliability when running the App in GitHub Codespaces #5349

SDK

Annotation

Evaluation

Brain

Zoo

Plugins

CLI

FiftyOne Enterprise 2.4.0#

Released January 10, 2025

  • Added ability to set a user-specific auth header when making media queries.

FiftyOne Enterprise 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 Enterprise 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 Enterprise 2.2.0#

Released December 6, 2024

Includes all updates from FiftyOne 1.1.0, plus:

  • All Enterprise 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 invitations 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

Brain

Plugins

FiftyOne Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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

FiftyOne 0.25.2#

Released September 19, 2024

  • Require pymongo<4.9 to fix database connections

  • Require pydicom<3 for DICOM datasets

FiftyOne Enterprise 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 Enterprise 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 fiftyone.management.user_groups module to the Management SDK for programmatically managing user groups

  • The fiftyone delegated CLI command is now available to Enterprise 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 Enterprise 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 Enterprise 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 Enterprise deployment

  • Fixed a regression from FiftyOne Enterprise 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 Enterprise 1.6.1#

Released May 10, 2024

Bugs

  • Fixed an issue with logging into FiftyOne Enterprise in Enterprise Proxy environments

FiftyOne Enterprise 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 Enterprise authentication

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

  • Added support for directly authenticating with Identity Providers

  • Added a Super Admin UI for administering FiftyOne Enterprise deployments

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

FiftyOne Enterprise 1.5.10#

Released April 18, 2024

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

FiftyOne Enterprise 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 Enterprise 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

Core

FiftyOne Enterprise 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 Enterprise 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

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 Enterprise 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 Enterprise 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 Enterprise 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

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

Tutorials

FiftyOne Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 1.4.5#

Released November 21, 2023

General

  • Added debug log events to API server startup

FiftyOne Enterprise 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 Enterprise 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 Enterprise 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

FiftyOne Enterprise 1.4.1#

Released September 21, 2023

Bugs

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

FiftyOne Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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

FiftyOne Enterprise 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 Enterprise 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 Enterprise UI to be properly recognized

  • Fixed an intermittent bug when computing metadata for remote filepaths

  • Reverted a change from Enterprise 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 Enterprise 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 Enterprise 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 Enterprise UI

Admin

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

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

  • Fixed a bug that prevented Azure/MinIO credentials uploaded via the Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 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 Enterprise 1.1.1#

Released February 14, 2023

Includes all features from FiftyOne 0.19.1, plus:

Plugins

  • Resolved a bug that prevented Enterprise 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 Enterprise 1.1#

Released February 9, 2023

Includes all features from FiftyOne 0.19.0, plus:

User roles

Homepage

  • Added a Recent views widget to the homepage that shows the most recent saved views that you have viewed in the Enterprise 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 Enterprise 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 Enterprise 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

Zoo

FiftyOne 0.15.0#

Released March 23, 2022

App

Core

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:

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

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

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

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

Docs

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

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

Docs

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

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

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

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

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

Core

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

CLI

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

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

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

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

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 data import docs to 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

FiftyOne 0.3.0#

Released June 24, 2020

App

  • Fixed an issue that could prevent the App from connecting to the FiftyOne backend

Core

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