FiftyOne Release Notes¶
FiftyOne 1.0.2¶
Released November 8, 2024
Zoo
Added generic model architecture and backbone tags to all relevant models in the zoo for easier navigation #4899
Core
Fixed input shape in the depth estimation transformer #5035
Added graceful handling of empty datasets when computing embeddings #5043
App
Added a new TimelineView for building custom animations #4965
Fixed overlay z-index and overflow for panels #4956
Fixed bug where timeline name wasn’t being forwarded in seek utils #4975
Performance improvements in the grid and modal #5009, #5015, #5018, #5019, #5022
Fixed batch selection with ctrl + click in the grid #5046
FiftyOne Teams 2.1.2¶
Released October 31, 2024
Fixed an issue that prevented
delegation_target
from being properly set when running delegated operations with orchestrator registration enabled
FiftyOne Teams 2.1.1¶
Released October 14, 2024
Includes all updates from FiftyOne 1.0.1, plus:
Fixed an issue with Auth0 connections for deployments behind proxies
Bumped dependency requirement
voxel51-eta>=0.13
FiftyOne 1.0.1¶
Released October 14, 2024
App
Video playback now supports the timeline API #4878
Fixed a bug that prevented
Classifications
labels from rendering #4891Fixed a bug that prevented the
fiftyone quickstart
andfiftyone app launch
commands from launching the App #4888
Core
COCO exports now use 1-based categories #4884
Fixed a bug when passing the
classes
argument to load specific classes in COCO format #4884
FiftyOne Teams 2.1.0¶
Released October 1, 2024
Includes all updates from FiftyOne 1.0.0, plus:
Super admins can now migrate their deployments to Internal Mode via the Super Admin UI
Added support for sending user invitations in Internal Mode
Optimized performance of the dataset page
Fixed a BSON serialization bug that could cause errors when cloning or exporting certain dataset views from the Teams UI
FiftyOne 1.0.0¶
Released October 1, 2024
What’s New
The FiftyOne Brain is now fully open source. Contributions are welcome!
Added Modal Panels, bringing the ability to develop and use panels in the App’s sample modal #4625
All datasets now have automatically populated
created_at
andlast_modified_at
fields on their samples and frames #4597Added support for loading remotely-sourced zoo datasets whose download/preparation instructions are stored in GitHub or public URLs #4752
Added support for loading remotely-sourced zoo models whose definitions are stored in GitHub or public URLs #4786
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 #4833Added 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 #4730Upgraded the
delete_samples()
andclear_frames()
methods to support bulk deletions of 100k+ samples/frames #4787The
default_sidebar_groups()
method now correctly handles datetime fields #4815Fixed 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()
andremove_samples()
methods from theDataset
class #4832Deprecated Python 3.8 support
Plugins
Added
ctx.group_slice
to the operator execution context #4850Added
set_group_slice()
to the operator execution context #4844A loading error is now displayed in the actions row when operators with placements fail to load #4714
Ensure the App loads when plugins fail to load #4769
FiftyOne 0.25.2¶
Released September 19, 2024
Require
pymongo<4.9
to fix database connectionsRequire
pydicom<3
for DICOM datasets
FiftyOne Teams 2.0.1¶
Released September 6, 2024
Includes all updates from FiftyOne 0.25.1, plus:
Optimized the
Manage > Access
page for datasetsAdded 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 respectedFixed 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 #4735Fixed 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
Added support for loading lists of TXT files in YOLOv5 format #4742
Fixed a bug with the
match_expr
argument ofgroup_by()
#4754Fixed a regression when running inference with Ultralytics models that don’t support track IDs #4720
Plugins
Fixed a bug that caused
TabsView
components to erroneously reset to their default state #4732Fixed a bug where calling
set_state()
andset_data()
to patch state/data would inadvertently clobber other existing values #4753Fixed a spurious warning that would appear for delegated operations that don’t return outputs #4715
FiftyOne Teams 2.0.0¶
Released August 20, 2024
Includes all updates from FiftyOne 0.25.0, plus:
What’s New
Added a Can tag permission to allow users to tag samples/labels but not otherwise perform edits
Added support for authorized user credentials and external account credentials when configuring GCP credentials
All plugin execution is now user-aware and will respect the executing user’s role and dataset permissions
All deployments now include a LICENSE file that enforces user quotas
Guests can no longer access operators/panels in custom plugins
App
Added a caching layer to optimize media serving in the App
Cloning an entire dataset via the
Clone
button now includes saved views, saved workspaces, and runsOptimized the performance and UX of the
Settings > Users
pageThe users table on the
Settings > Users
page is now sortableFixed 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 settingsSuper admins can now disable manual group management in the App. This is useful, for example, if groups are defined via hooks
Legacy mode deployments now have access to the relevant pages of the Super Admin UI
SDK
Added a
user_groups
module to the Management SDK for programmatically managing user groupsThe
fiftyone delegated
CLI command is now available to Teams usersUpgraded the upload_media() function to gracefully support fields with missing media paths
Added an
overwrite
parameter toadd_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
#4281Added 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
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
Added support for annotating frame views #4477
Added support for annotating clip views #4511
Added support for preserving existing COCO IDs when exporting in COCO format #4530
Core
Added support for save contexts to generated views (patches, frames, and clips) #4636
Added support for downloading plugins from branches that contain slashes
/
#4614Added support for including index statistics in
Dataset.stats()
#4653Added 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 #4595Added a
set_active_fields()
operator for programmatically controlling the selected fields in the sidebar #4482Added a
notify()
operator for programmatically showing notifications in the App #4344Added
ctx.extended_selection
to retrieve the current extended selection #4413Added a
set_extended_selection()
operator for programmatically setting the extended selection #4409Added a
track_event()
operator for logging plugin events in the App #4489
Zoo
Added YOLOv10 and RT-DETR models to the zoo #4544
Added YOLOv8 classification models to the zoo #4549
Added support for storing object track IDs if present when running Ultralytics models from the zoo #4569
Added support for GPU inference when running Hugging Face Transformers models from the zoo #4587
Extended support for group datasets, masks, heatmaps, and thumbnails when uploading FiftyOne datasets to Hugging Face Hub #4566
Allow
ragged_batches
to be configured when using Torch models with custom transforms #4509, #4512
FiftyOne Teams 1.7.1¶
Released June 11, 2024
Includes all updates from FiftyOne 0.24.1, plus:
Improved stability of loading/navigating to saved views in the App
Fixed a notification error when deleting users from the Team Settings page
Improved stability of the Team Groups page after deleting users
Optimized export of cloud-backed 3D scenes
FiftyOne 0.24.1¶
Released June 11, 2024
What’s New
Added Ultralytics YOLOv8 models trained on Open Images v7 to the model zoo! #4398
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
The
make_patches_dataset()
,make_frames_dataset()
, andmake_clips_dataset()
utilities can now be directly called #4416
Annotation
Added support loading annotations for large CVAT tasks with many jobs #4392
FiftyOne Teams 1.7.0¶
Released May 29, 2024
Includes all updates from FiftyOne 0.24.0, plus:
Added a Roles page that summarizes the actions and permissions available to each user role
Added support for customizing the role that a user will have when sending an invitation for a new user to access a specific dataset
Added the ability to configure the expiration time for signed URLs used by your FiftyOne Teams deployment
Fixed a regression from FiftyOne Teams 1.6 that could cause login errors when accepting invites
FiftyOne 0.24.0¶
Released May 29, 2024
What’s New
Added support for 3D meshes and 3D geometries! #3985
Added a quickstart-3d dataset to the zoo! #4406
Added support for saving custom workspaces! #4205, #4211
You can now scroll/customize the content displayed in the App tooltip! #4254
FiftyOne now lazily connects to the database only when needed #4236
Added Grounding DINO as an option for zero shot object detection #4292
Added a new anomaly detection tutorial #4312
App
Added a
media_fallback
option to the dataset App config #4280launch_app()
now respects the currentgroup_slice
when loading grouped datasets #4423Allow sidebar changes during lightning loading states #4319
Fixed overlay processing for empty label lists #4345
Fixed
support
filtering in the sample modal forTemporalDetections
fields #4346Fixed a regression from FiftyOne 0.23.8 when viewing dynamically grouped views into group datasets #4299
Core
Gracefully handle None-valued
tags
fields #4351More 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
Utils
Added support for non-sequential category IDs when importing/exporting data in COCO format #4354, #4309
Plugins
Added a
DrawerView
option to render your operators as a side drawer in the grid/sample visualizer rather than as a modal #4240Added a
set_spaces()
method for setting the current spaces layout from operators #4381Added 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
Fixed a bug with YOLO-NAS inference #4429
FiftyOne Teams 1.6.1¶
Released May 10, 2024
Bugs
Fixed an issue with logging into FiftyOne Teams in Enterprise Proxy enviornments
FiftyOne Teams 1.6.0¶
Released April 30, 2024
What’s New
Added Groups for managing and dataset access for groups of users
Introduced a new Pluggable Authentication system for customizing FiftyOne Teams authentication
Removed Auth0 as a hard dependency for Teams deployments with the introduction of Internal Mode
Added support for directly authenticating with Identity Providers
Added a Super Admin UI for administering FiftyOne Teams deployments
Added the ability to search for users on the Users page
FiftyOne Teams 1.5.10¶
Released April 18, 2024
Fixed an issue where video datasets were not loading due to ffmpeg dependency
FiftyOne Teams 1.5.9¶
Released April 15, 2024
Includes all updates from FiftyOne 0.23.8, plus:
Download contexts now support batching based on content size
All builtin methods that require access to cloud media now use download contexts to download media in batches during execution rather than downloading media in a single batch up-front
The
export()
method no longer caches all cloud media involved in the exportOptimized 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
Released a Hugging Face Hub integration for programmatically publishing and downloading datasets to/from Hugging Face Hub! #4193
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 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
All autosave contexts now respect the default batching strategy and can be configured to use content size-based batching #4243
All SDK methods now use autosave contexts rather than calling
sample.save()
in a loop #4243Added a
read_files()
utility to efficiently read from multiple files in a threadpool #4243Resolved singularity issues in
compute_orthographic_projection_images()
#4206Fixed matplotlib style deprecation error #4213
Docs
Added a clustering tutorial #4245
Added a small object detection tutorial #4263
Annotation
Upgraded the Labelbox integration to support the Export V2 API #4260
Plugins
Secrets are now available to operators in their
resolve_input()
,resolve_output()
, andresolve_execution_options()
methods #4169ctx.view
now reflects when the current view is saved #4200Fixed a regression in debounce behavior in operator input forms that could potentially result in degraded performance #4199
Fixed a bug when using the
set_view()
method in operators #4198
Zoo
Added support for loading YOLOv8 and YOLOv9 segmentation models from the Model Zoo #4220
Added support for applying YOLO oriented bounding box models to FiftyOne datasets #4230, #4238
Added support for applying Segment Anything models to the frames of video datasets #4229
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 #4127Fixed indexed boolean fields in lightning mode #4139
Fixed app crash when many None-valued fields exist in the sample modal #4154
Docs
Added an Albumentations integration for performing data augmentation on FiftyOne datasets #4155
Added Places2 dataset to the zoo #4130
Improved documentation for configuring AWS and GCP cloud credentials #4151
Added YOLOv8, YOLOv9, and YOLO-World to the FiftyOne Model Zoo #4153
Added
og:image
meta tag to all documentation pages for better page sharing on socials #4173Updated the lightning mode docs to clarify that wildcard indexes should not generally be used by default #4138
Plugins and Operators
Added support for executing operators programmatically in notebook contexts #4134
Improved execution of operators during loading of the App #4136
Added a new on_dataset_open hook to auto-execute operators when datasets are opened in the App #4137
Improved performance of operator type resolution by only calling
resolve_input()
on demand #4152Added support for loading saved views by name or slug when using the
set_view()
operator #4159 and #4178Added ability to trigger builtin operators during operator execution via
ctx.ops
#4164Fixed issue where JS operator input was not validated when calling
ctx.trigger()
orexecuteOperator()
directly #4170Show execution error of an operator in a notification when calling
ctx.trigger()
orexecuteOperator()
directly #4170 and #4178
Core
Improved SuperGradients inference performance #4149
Passing a grouped collection to a method that was not specifically designed to handle them now raises better validation errors #4150
MediaExporter
no longer re-exports media unnecessarily #4143Added explicit support for Python 3.11 and 3.12 #4157
Added a
perform_nms()
utility for non-maximum suppression on object detections #4160Improved error message when the given dataset name is unavailable #4161
Removed use of deprecated non-integer arguments in
take()
andshuffle()
#4052Added ability to change
map_type
from the defaultroadmap
(carto-positron) tosatellite
(public USGS map imagery) inlocation_scatterplot()
#4075Cloning a dataset or view now includes any custom MongoDB indexes #4115
FiftyOne Teams 1.5.7¶
Released March 6, 2024
Includes all updates from FiftyOne 0.23.6, plus:
Improved performance of
values()
when using API connectionsImproved stability of long-running operations when using API connections
Added support for including prefixes when providing bucket-specific credentials
FiftyOne 0.23.6¶
Released March 6, 2024
What’s New
Added a data augmentation tutorial #4109
Added a formal Open CLIP integration page #4049
Documented support for open-world object detection with YOLO World #4112
Added support for importing/exporting contours in YOLO format #4094
Added cosine metric as an option for Milvus similarity indexes #4081
Added support for local files when using the Label Studio integration #3969
Removed App dependency on
_cls
for embedded documents #4090
Bugs
Fixed issue with filter counts on video datasets in the App #4095
Fixed issue with color scheme initialization in the App #4092
Fixed issue when changing group slice with filters in the App #4098
Fixed issue with zero-shot detection batching #4108
Fixed issue with the operator target view utility when no view or sample selection is present #4113
FiftyOne Teams 1.5.6¶
Released February 14, 2024
Includes all updates from FiftyOne 0.23.5, plus:
Improved dataset search user experience
Post login redirects will now send the user to the correct page
FiftyOne 0.23.5¶
Released February 14, 2024
What’s New
Added subcounts to search results in the sidebar #3973
Added
fiftyone.operators.types.ViewTargetProperty
to make it simpler to add view selection to afiftyone.operators.Operator
#4076Added support for apply monocular depth estimation transformers from the Hugging Face
transformers
library directly to FiftyOne datasets #4082
Bugs
Fixed an issue where increments were padded improperly #4035
Fixed an issue when setting
session.color_scheme
#4060Fixed 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 #4066Fixed non-default pcd slice rendering in the App #4044
Dynamic groups configuration options are now only shown when relevant #4068
Fixed issue with dynamic groups mode pagination #4068
Enabled tagging in sidebar lightning mode #4048
FiftyOne Teams 1.5.5¶
Released January 25, 2024
Includes all updates from FiftyOne 0.23.4, plus:
Bugs
Fixed a proxy URL bug that prevented custom JS panels from launching
FiftyOne 0.23.4¶
Released January 25, 2024
Core
Added support for passing kwargs directly when creating custom runs #4039
Brain
Added support for registering custom visualization methods #4038
FiftyOne Teams 1.5.4¶
Released January 19, 2024
Includes all updates from FiftyOne 0.23.3, plus:
General
Optimized
export()
calls involving cloud-backed mediaDeployments with their
FIFTYONE_API_URI
environment variable set will now display the API URI to users in the Teams AppImproved 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
Released a Hugging Face integration for running inference with
transformers
models on your FiftyOne datasets!Released a SuperGradients integration for running inference with YOLO-NAS architectures!
App
Primitive values in
DynamicEmbeddedDocument
list fields are now displayed as comma-separated values (previously displayed as None) in the sample modal #3963Improved field visibility’s show metadata toggle #3926
Fixed issues for unknown operator types and defaults #3851
Miscellaneous saved view improvements #3974
Fixed a bug where images in the sample modal errored when frame fields were added to video slices in mixed datasets #3966
Fixed in-App sort by similarity for datasets with a color scheme #3966
Fixed issues where media and other URLs were constructed incorrectly #3976
Fixed keyboard navigation for dropdowns throughout the App #3965
Brain
Added support for passing Hugging Face, Ultralytics, and SuperGradients models directly brain methods #4004
Added support to
register_run()
for configuring whether run cleanup happens #3978Added support for passing model kwargs to
compute_similarity()
andcompute_visualization()
Fixed issues with similarity searches on views and with pre-computed embeddings using the MongoDB backend
Core
Added dynamic batching to bulk writes like
set_values()
#4015Added support for customizing progress bar rendering at method level #3979
Include sample/frame singletons when clearing dataset cache via
clear_cache()
#4016Fixed issues with embedded document field schemas #4002
Models
Added support for directly passing Ultralytics models models to
apply_model()
Added prompt embedding capabilities to OpenCLIP models #3960
Plugins
Added a builtin
delete_selected_labels
operator #4001Updated
ctx.selected_labels
format to be consistent with other SDK methods #3998
Tutorials
Added a monocular depth estimation tutorial #3991
FiftyOne Teams 1.5.3¶
Released December 21, 2023
Includes all updates from FiftyOne 0.23.2, plus:
General
Improved performance of
add_samples()
,set_values()
,compute_metadata()
, and other large batched computations when using API connectionsAdded
label
as a searchable field for delegated operationsFixed 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()
#3923IoU computations for non-filled polylines now uses keypoint similarity #3930
Optimized bulk write database operations like
set_values()
#3942Added 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
andclone_selected_samples
operators #3914Fixed backwards compatibility issues with
ctx.secrets
#3908Fixed issue with JS plugin App configs #3924
FiftyOne Teams 1.5.2¶
Released December 11, 2023
Bugs
Avoid creating non-existent database indexes on API startup
Avoid errors when archiving snapshots with corrupted run results
FiftyOne 0.23.1¶
Released December 8, 2023
App
Core
Fixed inferring doubly-nested dynamic list field types #3900
Fixed
compute_metadata()
whenPillow<7
is installed #3897Fixed default group indexes creation when importing a FiftyOneDataset #3894
FiftyOne Teams 1.5.0¶
Released December 6, 2023
Includes all updates from FiftyOne 0.23.0, plus:
Features
Added support for archiving older dataset snapshots to cold storage
Added support for executing operators on dataset snapshots
Added support for uploading multiple sets of cloud credentials, some of which may only apply to data in certain bucket(s)
Added support for uploading media to Labelbox directly from S3 buckets
Added support for executing the builtin
open_dataset
operator in the Teams UIAdded 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 packageAdded debug logging on API startup
Bugs
Fixed an issue with the Runs page when viewing delegated operations that were scheduled via the SDK
Users with special access to a dataset are now displayed properly
Fixed an issue when loading certain datasets with saved color schemes in the Teams UI
Fixed an issue on the dataset listing page where the page size menu would sometimes stay open after making a selection
Fixed an issue when downloading plugins via the API that contain bytes data or
.pyc
filesFixed 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
Released a Redis integration for native text and image searches on FiftyOne datasets!
Released a MongoDB integration for native text and image searches on FiftyOne datasets!
Released a V7 integration for annotating FiftyOne datasets!
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
Adding support for registering custom evaluation methods #3695
Optimized the
compute_metadata()
implementation #3801Added full support for working with images that use
EXIF
tags #3824Added support for parsing and exporting visibility attribute for keypoints in COCO format #3808
Plugins
Added
ctx.current_sample
to operator’sExecutionContext
to support applying operators to the current sample open in the App modal #3792Added 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 #3800Loosened the
OperatorConfig
constructor signature for enhanced forward/backward compatibility #3786Fixed 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 #3840Corrected 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 #3855Fixed 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 #3852Fixed an issue with view reloading for datasets that have saved views #3838
Fixed rendering of semantic segmentation masks within
DynamicEmbeddedDocument
fields #3825Resolved an issue with the slice/group statistics selector where no default option is selected #3698
Fixed various issues with builtin operators #3817
Addressed a potential data duplication issue when merging in-memory samples into grouped datasets #3816
Resolved possible malformed FiftyOneDataset format exports due to concurrent edits #3726
Fixed the plugin cache check #3676
Fixed an error when pressing the esc key in the App #3662
FiftyOne Teams 1.4.5¶
Released November 21, 2023
General
Added debug log events to API server startup
FiftyOne Teams 1.4.4¶
Released November 3, 2023
Includes all updates from FiftyOne 0.22.3, plus:
General
Optimized iterator operations such as export
Improved plugin upload reliability
Further improved dataset listing queries
Bugs
Fixed clips, frames, and patches views for grouped datasets in the App
Fixed cloud credential initialization during deployment restarts
Fixed snapshot diff computation in large datasets with MongoDB < v6.0
FiftyOne 0.22.3¶
Released November 3, 2023
Core
Optimized
sort_by_similarity()
#3733
App
Fixed rendering of
BooleanFields
in the sample modal #3720Optimized the Embeddings panel #3733
Fixed media field changes in the sample modal #3735
Fixed sidebar reordering edge case #3753
Fixed the Operator browser in the sample modal #3764
Fixed 3D detections in the grid #3761
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 theembeddings_field
parameterFixed
compute_embeddings()
whenskip_existing=True
is provided
Plugins
Fixed
on_startup
Operator execution #3731Fixed
selected_labels
in Operator contexts #3740Improved Operator placements #3742
Fixed
async
generator results in delegated operations #3754Fixed
ctx.secrets
inresolve_input()
#3759
CLI
Added fiftyone delegated fail and fiftyone delegated delete commands #3721
FiftyOne Teams 1.4.3¶
Released October 20, 2023
Includes all updates from FiftyOne 0.22.2, plus:
General
Improved dataset listing queries
Improved error handling when listing datasets
Fixed issues with offline access and auth errors requiring cookies to be cleared manually
Reduced max export size of datasets to 100MB
Users will now only see an operator if their role meets the required role
FiftyOne 0.22.2¶
Released October 20, 2023
Core
Added a
fiftyone_max_thread_pool_workers
option to the FiftyOne config #3654Added a
fiftyone_max_process_pool_workers
option to the FiftyOne config #3654Added support for directly calling
export()
on patches views to export image patches #3651Fixed an issue where CVAT import fails when
insert_new
isFalse
#3691
App
Fixed dataset recreation across processes #3655
Fixed the
Session.url
property in Colab #3645Fixed converting to patches in grouped datasets when sidebar filters are present #3666
Fixed browser cache issues when upgrading #3683
Plugins
Use a fallback icon when an operator cannot be executed #3661
FileView
now captures content as well as filename and type of theUploadedFile
#3679Fixed issue where the
fiftyone delegated launch
CLI command would print confusing errors #3694Added a
list_operators()
utility for listing operators #3694Added a
operator_exists()
utility for checking if an operator exists #3694Number
properties now supportmin
andmax
options in various views and validation #3684Improved 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 usesFileExplorerView
by default #3656
Zoo
FiftyOne Teams 1.4.2¶
Released October 6, 2023
Includes all updates from FiftyOne 0.22.1, plus:
General
Error messages now clearly indicate when attempting to use a duplicate key on datasets a user does not have access to
Fixed issue with setting default access permissions for new datasets
Deleting a dataset now deletes all dataset-related references
Default fields now populate properly when creating a new dataset regardless of client
Improved complex/multi collection aggregations in the api client
Fixed issue where users could not list other users within their own org
Snapshots now properly include all run results
Fixed issue where reverting a snapshot behaved incorrectly in some cases
Fixed Python 3.7 support in the fiftyone-teams SDK
App
Searching users has been improved
Resolved issue with recent views not displaying properly
FiftyOne 0.22.1¶
Released October 6, 2023
App
Fixed empty detection instance masks #3559
Fixed a visual issue with scrollbars #3605
Fixed a bug with color by index for videos #3606
Fixed an issue where
Detections
(and other label types) subfields were properly handling primitive types #3577Fixed 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 #3627Fixed issue with empty segmentation mask conversion in COCO-formatted datasets #3595
Plugins
Added a new
fiftyone.plugins.utils
module that provides common utilities for plugin development #3612Re-enabled text-only placement support when icon is not available #3593
Added read-only support for
FileExplorerView
#3639The
fiftyone delegated launch
CLI command will now only run one operation at a time #3615Fixed an issue where custom component props were not supported #3595
Fixed issue where
selected_labels
were missing from theExecutionContext
duringresolve_input()
andresolve_output()
#3575
FiftyOne Teams 1.4.1¶
Released September 21, 2023
Bugs
Patched a regression that prevented the Teams App from working behind proxies
FiftyOne Teams 1.4.0¶
Released September 20, 2023
Includes all updates from FiftyOne 0.22.0, plus:
News
Added support for dataset versioning!
Added support for scheduling delegated operations via the App using a connected orchestrator like Apache Airflow!
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
Added a native Ultralytics integration! #3451
Added support for scheduling delegated operations from within the App! #3312
App
Updated the Histograms panel to only render one field at a time to improve performance #3419
Gracefully fallback to
filepath
if a dataset’sapp_config
has a custom grid media field that has been excluded from the current view #3498Improved 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
andDateTimeField
#3418Fixed 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
Added support for grouping by compound keys using
group_by()
#3515Added
create_index=False
options tosort_by()
andgroup_by()
#3515Added a new
tags
filter option tolist_datasets()
#3492Added a
fiftyone.core.storage
module that provides a common interface for filesystem I/O #3406Added dataset tag and label filters when exporting datasets via the CLI #3412
Added support for running FiftyOne in podman containers #3483
Optimized the
list_datasets(info=True)
implementation #3528Added support for providing frame sizes when constructing rotated boxes and cuboids #3409
Fixed a bug with automatic non-persistent dataset cleanup when running MongoDB v4.4 and later #3486
Fixed a bug where default indexes for grouped datasets were not created via
clone()
andmerge_samples()
#3515Fixed a bug where NaNs were causing orthographic projection computations to crash #3427
Fixed a bug with the OpenLABEL importer when given incomplete keypoint skeletons #3429
Plugins
Added a new
FileExplorerView
type that allows for browsing file systems and selecting files or directories #3459Added
ctx.secrets
to plugins #3453Added a builtin
set_progress
operator #3516Fixed broken wiring of the
MarkdownView
,SwitchView
, andPlacement
components #3537
Zoo
Graceful handling of empty prompts when using Segment Anything models #3505
Fixed bugs where Segment Anything model weights were not loaded and auto-inference would only return one set of masks #3465
FiftyOne Teams 1.3.5¶
Released August 7, 2023
Includes all updates from FiftyOne 0.21.5, plus:
App
Fixed a bug with dataset search where suggestions may not appear when matches across multiple types collide
Upgraded the Plugin configuration UI to better explain the available Operator permission configuration options
SDK
Significant performance optimizations by introducing cursor batching for relevant API endpoints
FiftyOne 0.21.5¶
Released August 7, 2023
News
Added Segment Anything to the Model Zoo! #3330
Added support for loading models from PyTorch Hub! #2949
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
Improved robustness of concurrent schema updates #3308
Schema changes are now maintained by the
select_group_slices()
stage #3336Added support for exporting keypoints with nan-valued coordinates in COCO format #3316
Updated YOLOv5 exports to use dict-style class names #3393
Fixed a bug when passing an RGB hex string to
to_segmentation()
#3293Fixed a bug where
has_field()
would not recognize dynamic fields #3349Fixed a bug when applying
merge_sample()
to grouped datasets #3327
Zoo
Use
weights
parameter instead of deprecatedpretrained
parameter for torchvision models #3348Added 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
Added support for gRPC connections when using the Qdrant similarity backend #3296
Improved support for creating similarity indexes with embeddings stored in dataset fields
Resolved bugs with similarity queries using the sklearn backend #3304, #3305
Docs
FiftyOne Teams 1.3.3¶
Released July 12, 2023
Includes all updates from FiftyOne 0.21.3, plus:
SDK
Added a
cache=True
option to the upload_media() utility that allows for automatically adding any uploaded files to your local cacheFixed a bug when launching the App locally via API connections
FiftyOne 0.21.3¶
Released July 12, 2023
News
Released a Milvus integration for native text and image searches on FiftyOne datasets!
Released a LanceDB integration for native text and image searches on FiftyOne datasets!
App
Added support for embedded keypoint fields in
filter_keypoints()
#3279Fixed keypoint filtering #3270
Fixed a bug that caused non-matching samples to remain in the grid when applying multiple sidebar filters #3270
Fixed a bug when filtering by IDs in the sidebar #3270
Fixed label tags grid bubbles for filterless views #3257
Core
Added a
merge_sample()
method for merging individual samples into existing datasets #3274Fixed a bug when passing dict-valued
points
tocompute_visualization()
#3268Fixed a bug when filtering keypoints stored in embedded documents #3279
FiftyOne Teams 1.3.1¶
Released June 30, 2023
Includes all features from FiftyOne 0.21.1, plus:
General
App containers no longer need to be restarted in order for Azure/MinIO credentials uploaded via the Teams UI to be properly recognized
Fixed an intermittent bug when computing metadata for remote filepaths
Reverted a change from Teams 1.3.0 so that the SDK again supports the declared minimum version requirement of
pymongo==3.12
SDK
Updated the order of precedence for SDK connections so that API connections take precedence over direct database connections
Fixed a bug when connecting to Teams deployments with non-standard database names via API connections
Fixed a bug when saving run results using API connections
Fixed a bug when deleting datasets using API connections
Management SDK
Added support for deleting user invitations by email in addition to invitation ID
Added support for configuring permissions for invited users that have not yet logged in
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 #3222Added 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()
, anddraw_labels()
now automatically detect and properly handle label fields stored within embedded documents #3152All
Document
objects now supportdoc["nested.field"]
key access #3152Dynamic 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 #3152Fixed 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 #3177Placements 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
, andframe_step
options when creating annotation tasks #3181
FiftyOne Teams 1.3.0¶
Released May 31, 2023
Includes all features from FiftyOne 0.21.0, plus:
General
Added a Management SDK subpackage for programmatically configuring user roles, dataset permissions, plugins, and more
Added support for authenticated API connections when using the Python SDK that respect user roles, dataset permissions, etc
Logins now automatically redirect back to the page you were trying to access
Improved non-persistent dataset cleanup behavior
Fixed a bug that could cause the media cache to erroneously garbage collect large files while they are downloading
Fixed a bug when cloning views into new datasets via the Teams UI
Admin
Added support for uploading and managing plugins via the Teams UI
Added support for cross account IAM roles when configuring cloud storage credentials
Fixed a bug that prevented Azure/MinIO credentials uploaded via the Teams UI from being properly recognized by the App
FiftyOne 0.21.0¶
Released May 31, 2023
App
Added support for viewing and executing operators in the App! #2679
Added support for creating dynamic groups in the App #2934
Added support for overlaying multiple point cloud slices in Looker3D #2912
Added support for customizing the App color scheme via a new color scheme modal #2824
Added support for configuring field visibility in the App’s sidebar #2924, #3024
Added support for visualizing
Label
fields stored within top-level embedded document fields #2885Optimized 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
Added support for creating dynamic grouped views #2475
Added support for storing default color schemes for datasets #2824
Added support for selecting/excluding fields via dynamically defined filters via
select_fields()
andexclude_fields()
#2898Added support for evaluating keypoints #2776, #2928
Added support for computing DICE score when evaluating segmentations #2777, #2901
Added a new
list_schema()
aggregation for inferring the contents of nested list fields #2882Added support for declaring dynamic nested list fields #2882
Handling missing label fields when deleting labels #2918
Only match .txt files when reading YOLO labels #3127
Improved behavior of
transform_images()
andtransform_videos()
utilities when processing media in-place #2931Added utils and helpful warnings that advise how to patch broken saved views and runs #2970, #2971
Replaced
pkg_resources
withimportlib.metadata
#2930
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
Added the Sama-COCO dataset to the zoo! #2904
Tutorials
Updated detection mistakes tutorial to avoid unnecessarily resetting the App #3034
FiftyOne Teams 1.2.1¶
Released April 5, 2023
Includes all features from FiftyOne 0.20.1, plus:
General
When your session expires, you are now automatically logged out rather than being presented with a cryptic server error
Improved the accuracy of size estimates when exporting filepaths and/or tags from the Teams UI
Admin
Added support for uploading Azure storage credentials for your deployment via the
Settings > Cloud storage
page
SDK
Added support for working with media in Azure cloud storage. Refer to this section to see how to provide your storage credentials
Deployment
Added support for deploying into Microsoft Azure environments
Fixed a bug that prevented the dataset page from loading for deployments running MongoDB 4.4
FiftyOne 0.20.1¶
Released April 5, 2023
App
Added support for storing datetimes as field metadata and viewing them in the App’s field tooltip #2861
Fixed a bug when pulling color-by data for sample embeddings plots when viewing patches in the sample grid #2846
Fixed a bug that prevented the sample grid from refreshing when composing multiple sidebar filters #2849
Fixed a bug that prevented field-specific mask targets from being recognized when rendering segmentations in the App #2879
Fixed a bug when rendering heatmaps stored as images on disk #2872, #2880
Core
Added support for dynamically inferring fields on embedded lists and documents #2863, #2882
Added support for listing datasets matching a glob pattern #2868
Improved the robustness of
merge_samples()
when cleaning up after a failed merge #2844Using new libraries for ndjson and archive extraction #2864
Fixed a bug that prevented text similarity searches 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 #2840Fixed 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
Updated the source URLs for the Caltech-101 and Caltech-256 datasets #2841
Fixed a typo in the Caltech-256 dataset documentation #2842
FiftyOne Teams 1.2¶
Released March 22, 2023
Includes all features from FiftyOne 0.20.0, plus:
Admin settings
Admins who use SSO to authorize new users to auto-join their FiftyOne Teams deployment can now configure the default role for those users
Admins can now configure the default access level that Members receive on newly created datasets Dataset page
Dataset page
Added support for viewing Segmentation and Heatmap data stored as images in the cloud in the App
Added support for exporting one or more fields of a dataset in CSV format through the Teams UI
Stack traces for unhandled errors are now presented directly in the App so that users can self-diagnose issues
Deployment
Added support for sharded databases
FiftyOne 0.20.0¶
Released March 22, 2023
News
Added support for querying by arbitrary text prompts in the App! #2633
Released a Qdrant integration for native text and image searches on FiftyOne datasets!
Released a Pinecone integration for native text and image searches on FiftyOne datasets!
App
Switched the default sidebar mode to
fast
#2714Refactored 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, #2743Fixed 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 #2800Fixed 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
Added support for querying by vectors and text prompts #2569
Upgraded the similarity index interface, including Qdrant and Pinecone support, and the ability to add/remove embeddings to an existing index #2792
Added support for storing and visualizing cuboids and rotated bounding boxes in the App #2296
Added support for evaluating 3D object detections #2486
Added a
to_trajectories()
view stage #1300Added support for generating orthographic projection images for point cloud datasets/slices #2656
Added validation to
set_values()
#2770Frame collections are now lazily created only when necessary #2727
Upgraded the document save implementation to only use upsert operations when explicitly required #2727
Added
_dataset_id
to all sample/frame documents in datasets #2711Added a
save()
andsave_config()
methods toRunResults
#2696, #2772Added support for renaming existing runs via new
rename_annotation_run()
,rename_brain_run()
, andrename_evaluation()
methods #2696Added support for filtering by run type and config parameters when using
list_annotation_runs()
,list_brain_runs()
, andlist_evaluations()
#2696, #2772Added an
add_group_slice()
method to declare new slices on grouped datasets #2727Added support for controlling whether saved views and runs are imported/exported in FiftyOneDataset format #2806
Added support for negative integer mask targets #2686
Downward migrations for future-but-compatible versions of FiftyOne are now skipped rather than raising an error #2683
Fixed a bug when cloning datasets with run results #2772
Fixed a bug with the
dynamic=True
syntax for declaring dynamic fields on list documents #2767Fixed a bug in deferred saves where filtered list updates were not being applied #2727
Annotation
Added support for passing CVAT organization to annotation jobs #2716
Docs
Added documentation for working with point cloud-only datasets #2724
Added documentation for on-the-fly custom embedded document creation #2687
Fixed broken torchvision dataset links in the docs #2771
Zoo
Tutorials
Added a Point-E tutorial showcasing the 3D Visualizer’s capabilities in the context of building a 3D self-driving dataset #2818
Added a YOLOv8 tutorial #2755
Updated the media in the Open Images tutorial #2665
FiftyOne Teams 1.1.1¶
Released February 14, 2023
Includes all features from FiftyOne 0.19.1, plus:
Plugins
Resolved a bug that prevented Teams deployments from recognizing installed plugins
FiftyOne 0.19.1¶
Released February 14, 2023
App
Fixed a bug when launching the App in Python 3.8 or earlier #2647
Fixed a bug that prevented launching the App in Databricks notebooks #2647
Core
Fixed a bug in certain environments that prevented progress bars from rendering correctly #2647
FiftyOne Teams 1.1¶
Released February 9, 2023
Includes all features from FiftyOne 0.19.0, plus:
User roles
Renamed the existing Guest role to Collaborator
Added a new Guest role. Note that Guest is a view-only role and does not contribute to your license count. You can add unlimited Guest users to your deployment!
Homepage
Added a Recent views widget to the homepage that shows the most recent saved views that you have viewed in the Teams UI
Dataset page
Added support for cloning the current view (including any filters, selections, etc) into a new dataset from the UI
Added support for exporting the current view to local disk or a cloud bucket in various formats (filepaths only, filepaths and tags, media only, labels only, media and labels)
Deployment
Added support for deploying Teams into environments with proxy networks
FiftyOne 0.19.0¶
Released February 9, 2023
News
FiftyOne Teams documentation is now publicly available! #2388
App
Added the Spaces framework #2524
Added native support for visualizing embeddings #2524
Refactored the histograms tab into a dedicated histograms panel #2524
Added support for loading and saving views #2461
Added support for visualizing
Segmentation
andHeatmap
masks stored on disk #2358Added 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
Added support for programmatically configuring space layouts #2524
Added support for loading and saving views #2461
Added support for storing
Segmentation
andHeatmap
masks on disk #2301Added support for RGB segmentations in
evaluate_segmentations()
#2483Added a new
transform_segmentations()
utility #2483Added support for declaring dynamic fields on generated views via
set_values()
#2513Added support for importing and exporting datasets in CSV format #2616, #2450
Added support for importing and exporting directories of arbitrary media files #2605
Added a dedicated
clear_cache()
method for clearing a dataset’s run cache #2471Updated all plotting methods, eg
scatterplot()
to always rely on sample/label IDs when pulling data for plots #2614Updated
compute_patch_embeddings()
to store patch embeddings directly onLabel
objects when theembeddings_field
argument is provided #2626Added support for passing frame-level fields directly to
export()
#2418Added an optional
dynamic=True
flag toset_values()
#2372Added support for declaring custom
Label
attributes viaset_values()
#2372Adds a new
set_label_values()
utility for setting attributes onLabel
instances by their IDs #2372Always update dataset’s
last_loaded_at
property when they are loaded #2375Migrated runs to a separate database collection, for efficiency #2189
Added an
exact_frame_count()
utility for computing exact video frame counts #2373Updated the 3D visualizer to use true centroid (not bottom-center) coordinates for 3D detections #2474
Added support for loading specific group slice(s) when using
iter_groups()
andget_group()
#2528Added an
exclude_groups()
view stage #2451Added support for importing annotations directly on grouped datasets #2349
Added a
group_collections()
utility for merging multiple collections into a grouped dataset #2332Added support for converting an existing dataset into a grouped dataset via
set_values()
#2332Added support for deleting grouped fields when the dataset contains only one media type #2332
Updated
Dataset.stats()
to include media from all slices of grouped datasets #2635Fixed a bug when calling
to_frames()
on a view that filters the frames of the input dataset #2361Fixed some bugs when passing multiple aggregations with the same field name and type to
aggregate()
#2617Fixed a bug when manually unwinding list fields in aggregations #2608
Fixed a bug when loading datasets with CVAT attributes stored in VOC format #2359
Fixed a bug in default sidebar group expansion #2441
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
Added Open Images V7 to the zoo #2446
Updated the KITTI multiview and quickstart-groups datasets to not use legacy 3D visualizer settings #2474
Added support for filtering datasets when using
list_zoo_datasets()
#2448
Docs
Added detailed plugin documentation #2442
Added documentation for converting between common label formats #2498
Added a pandas vs FiftyOne tutorial #2310
Added a pandas vs FiftyOne cheat sheet #2329
Added a FiftyOne terminology cheat sheet #2484
Added a view stage cheat sheet #2452
FiftyOne Teams 1.0¶
Released November 8, 2022
Includes all features from FiftyOne 0.18.0, plus:
News
FiftyOne Teams is now generally available, read more here!
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()
, andselect_groups()
when performing ordered selections #2227Updated the logic of
exists()
to be more intuitive for frame fields #2209Upgraded server and MongoDB requirements to
pymongo>=3.11
,motor>=2.3
and newer pinned versions ofmongoengine
,starlette
, andstrawberry-graphql
#2215Added 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 #2135Fixed some bugs that could occur when creating frame views into grouped collections #2144
Fixed a bug when using
select_by()
withObjectId
fields #2140Added 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
Added support for visualizing grouped datasets in the App #1765
Added support for visualizing point cloud samples in the modal #1765
Added support for visualizing and interacting with
GeoLocation
data in a new Map panel #1976Added initial support for custom App plugins #1765
Added support for configuring multiple media fields #1765
Fixed Google Colab screenshotting and cell updates #2069
Core
Added support for grouped datasets, e.g., multiple camera view scenes #1765
Added support for point cloud samples in grouped datasets #1765
Added an
app_config
property to datasets for configuring App behavior on a per-dataset basis #1765Added an optional
rel_dir
parameter toexport()
anddraw_labels()
#2060Added an optional
use_dirs=True
parameter toexport()
that causes metadata to be exported in per-sample/frame JSON files #2028Updated the COCO importer to load all available label types by default #1869
Fixed a bug when passing
ordered=True
toselect_by()
#2059Fixed an error that would occur when storing custom embedded documents on dynamic label attributes #2051
Fixed a
match_frames()
bug that caused all frames to be included, even if the view filters the frames #2029
Docs
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
Added clip-vit-base32-torch to the model zoo! #2072
Added the Quickstart Groups dataset to the dataset zoo! #1765
Added the KITTI Multiview dataset to the dataset zoo! #1765
FiftyOne 0.16.6¶
Released August 25, 2022
App
Fixed a bug that caused the App to break when sample tags contained
.
#1924Fixed search results alignment #1930
Fixed App refreshes after view changes had occurred from the view bar #1931
Fixed classification confusion matrix connections #1967
Core
Added a save context that enables efficient batch edits of datasets and views #1727
Added Plotly v5 support #1981
Added a quantiles aggregation #1937
Added support for writing transformed images/videos to new locations in the
transform_images()
andtransform_videos()
functions #2007Added support for configuring the package-wide logging level #2009
Added more full-featured support for serializing and deserializing datasets, views, and samples via
to_dict()
andfrom_dict()
#1922Added support for dynamic attributes when performing coerced exports #1993
Introduced the notion of client compatibility versions #2017
Added support for serializing aggregations #1911
Added
weighted_sample()
andbalanced_sample()
utility methods #1925Added an optional
new_ids=True
option toDataset.add_collection()
that generates new sample/frame IDs when adding the samples #1927Added support for the
path
variable indataset.yaml
of YOLOv5 datasets #1903Fixed a bug that prevented using
set_values()
to set frame-level label fields #1922Fixed automatic declaration of frame fields when computing embeddings on a frame view #1922
Fixed a regression that caused label ID fields to be returned as
ObjectID
#1922Fixed a bug that allowed default frame fields to be excluded #1922
ClipsView
instances will now report theirmetadata
type asVideoMetadata
#1922Fixed
load_evaluation_view()
whenselect_fields
isTrue
#1922Fixed boolean field parsing when declaring fields #1922
Fixed a bug that caused nested embedded documents to corrupt datasets #1922
Fixed a bug that prevented assignment of array-valued dynamic attributes to labels #1922
Annotation
Added a new Label Studio integration! #1848
Optimized loading CVAT annotations and performing operations on
CVATAnnotationResults
#1944Upgraded the
AnnotationAPI
interface #1997Fixed loading group IDs in CVAT video tasks #1917
Fixed uploading to a CVAT project when no label schema is provided #1926
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) #1828Fixed initial loading of keypoint skeletons #1828
Fixed
Classifications
rendering in the grid #1828Fixed App loads for environments with old (
<=v0.14.0
) datasets that have yet to be migrated #1829Fixed 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
#1879Fixed
JSON
rendering in the expanded view for nested data #1880Fixed selection and expansion for bad media files #1882
Fixed
Other
plot tabdate
anddatetime
fields withNone
values #1817Increased results from 10 to 200 for search selectors #1875
Fixed App issues related to dataset deletion and dataset schema changes #1875
Core
Added
skeleton
andskeleton_key
to the OpenLABEL image and video importers #1812Fixed a database field issue in
clone_frame_field()
andclone_sample_field()
, #1824Fixed using zoo models with the newest version of Torchvision #1838
Added
classifications_to_detections()
for converting classifications to detections #1842Set forking as the default for macOS multiprocessing #1844
Added
dataset.tags
for organizing datasets #1845Added functionality to explicitly define classes for evaluation methods #1858
Fixed
tfrecord
shard enumeration, i.e. zero indexing #1859Added support for label field dicts when importing labeled datasets #1864
Removed non-XML or non-TXT files from CVAT, KITTI, CVATVideo #1884
Annotation
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 #1801Fixed 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
#1808Fixed 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 #1785Fixed expanded samples in clips views which appeared to be empty #1790
Fixed “Sort by similarity” with a
dist_field
#1790Fixed “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
#1713Redesigned 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 #1713Fixed 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
Fixed edge cases in
clone_frame_field()
,merge_samples()
, andrename_frame_field()
#1749Fixed a bug that would cause non-persistent datasets to be prematurely deleted #1747
Fixed image lists for the
image_path
parameter when importing GeoTIFF datasets #1728Added a
find_duplicates()
utility to automatically find duplicate objects based on IoU #1714
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 #1601Added 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 toKeypoint
objects #1601Added support for rendering keypoints skeletons and missing keypoints to
draw_labels()
#1601Added support for per-point confidences and other custom per-point attributes on
Keypoint
objects. See this section for details #1601Added a
concat()
view stage that allows for concatenating one collection onto another #1662Non-persistent datasets are now automatically deleted when using a custom
database_uri
#1697Added a
database_admin
config setting that can control whether database migrations are allowed. See this page for details #1692Added a
database_name
config setting that allows for customizing the MongoDB database name #1692Classification
attributes are now exported as tag attributes when exporting in CVATImageDataset format #1686The
iscrowd
attribute is now always populated when exporting in COCO format #1664Fixed a
KeyError
bug when loading dataset with relative paths on Windows #1675
Brain
Added
fiftyone-brain
wheels for Python 3.10Added support for installing
fiftyone-brain
on Apple Silicon
Annotation
Fixed a
CSRF Failed
error when connecting to some CVAT servers #1668
Integrations
Updated the Lightning Flash integration to support Flash versions 0.7.0 or later #1671
Zoo
Added the Families in the Wild dataset to the FiftyOne Dataset Zoo! #1663
FiftyOne 0.15.0¶
Released March 23, 2022
App
Fixed
Regression
rendering in the visualizer #1604
Core
Added a
Dataset.delete_frames()
method that allows for deleting frames by ID #1650Added a
keep_fields()
method toDatasetView
and its subclasses #1616Added a
lines()
method that allows for plotting lines whose scatter points can be interactively selected via the typical interactive plotting workflows #1614Added an optional
force_rgb=True
syntax when importing/exporting/creating TF records using all relevant methods infiftyone.utils.tf
#1612Added support for passing additional kwargs to the
fiftyone convert
CLI command #1612Added support for annotating video-level labels when using
draw_labeled_videos()
#1619Fixed bug in
from_images_dir()
where attempting to load 4-channel images errored even ifforce_rgb=True
#1632Fixed a bug that prevented frames from being attached to video collections when aggregating expressions that involve both
Sample
-level andFrame
-level fields #1644Added support for importing image and video datasets in OpenLABEL format #1609
Annotation
Added support for CVATv2 servers when using the CVAT backend #1638
Added an
issue_tracker
argument toannotate()
when using the CVAT backend #1625Added a
dest_field
argument toload_annotations()
which allows you to specify the name of the field to which to load annotations #1642Added 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
Added documentation for defining custom
EmbeddedDocument
andDynamicEmbeddedDocument
classes #1617Added documentation about boolean view indexing to the user guide #1617
Added a recipe for creating views and view expressions #1641
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
Added an official Dockerfile
Changed the default implementation of
to_frames()
to assume that the user has already sampled the frames offline and stored their locations in afilepath
field of eachFrame
in their video dataset. See this section for more detailsUpdated
DatasetView.save()
to save changes to (only) the samples in the view to the underlying datasetAdded a new
DatasetView.keep()
method that deletes any samples that are not in the view from the underlying datasetAdded
InteractivePlot.save()
andViewPlot.save()
methods that can be used to save plots as static imagesAdded support for populating query distances on a dataset when using
sort_by_similarity()
to query by similarityAdded a
instances_to_polylines()
utility that converts instance segmentations toPolylines
formatAdded support for frame labels to all conversion methods in the
fiftyone.utils.labels
moduleUpdated the implementation of
Detection.to_polyline()
so that all attributes are included rather than just ETA-supported onesAdded support for including empty labels labels via an
include_missing
keyword argument inadd_yolo_labels()
Added a
download_youtube_videos()
utility for efficiently and robustly downloading videos or specific segments from YouTubeAdded a
skip_failures
flag totransform_images()
andtransform_videos()
Added
shuffle
andseed
parameters toFiftyOneImageLabelsDatasetImporter
andFiftyOneVideoLabelsDatasetImporter
Added an
include_all_data
parameter toYOLOv5DatasetImporter
Resolved a bug that would previously cause an error when writing aggregations on video datasets that involve applying expressions directly to
"frames"
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 toannotate()
CVAT login credentials are no longer included in exception messages
Zoo
Added ActivityNet 100 to the dataset zoo!
Added ActivityNet 200 to the dataset zoo!
Added Kinetics 400 to the dataset zoo!
Added Kinetics 600 to the dataset zoo!
Added Kinetics 700 to the dataset zoo!
Added Kinetics 700-2020 to the dataset 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]
anddataset[bool_expr]
syntaxesAdded support for registering custom
EmbeddedDocument
classes that can be used to populate fields and embedded fields of datasetsAdded support for importing and exporting
confidence
in YOLO formatsAdded support for directly passing a
filename -> filepath
mapping dict to thedata_path
parameter to dataset importersAdded graceful casting of
int
-like andfloat
-like values likenp.float(1.0)
to their respective Python primitives for storage in the databaseChanged the default to
num_workers=0
when using methods likeapply_model()
to apply Torch models on Windows, which avoids multiprocessing issuesFixed a bug when calling
evaluate_detections()
with both theclasses
andcompute_mAP=True
arguments providedFixed a bug that could arise when importing segmentation data from a COCO JSON that contains objects with
[]
segmentation dataFixed 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 whenkey_field="id"
argument is usedFixed 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
infind_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 FiftyOneAdded support for configuring the size of CVAT tasks via a new
task_size
parameterAdded 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 APIAdded support for passing request headers to the CVAT API
Fixed a bug that occurred when importing single frame track segments from CVAT
Zoo
Fixed a regression in
fiftyone==0.14.1
that prevented zoo datasets that use the Torch backend from being downloaded- Added the following TF2 models to the Model Zoo!
FiftyOne 0.14.2¶
Released November 24, 2021
App
Improved mask loading times for
Segmentation
,Heatmap
, andDetection
labels with instance masks
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()
, andcompute_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 tocompute_visualization()
for providing your own manually computed low-dimensional representation for use with interactive embeddings plotsGraceful handling of missing/uncomputable embeddings in
compute_visualization()
andcompute_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
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
, andnan
)
Core
Fixed
clone()
for views with a parent dataset that has brain runsFixed sampling frames when using
to_frames()
Fixed importing of
FiftyOneDataset
with run resultsAdded a
Regression
label typeAdded a
random_split()
methodAdded support for negating
match_labels()
queriesAdded a
MaxResize
transformAdded
image_max_size
andimage_max_dim
parameters toTorchImageModelConfig
Added support for non-sequential updates in
set_values()
Added a
compute_max_ious()
utilityAdded support for labels-only exports when working with
YOLOv4Dataset
andYOLOv5Dataset
formatsAdded
fiftyone.utils.beam
for parallel import, merge, and export operations with Apache BeamAdded an
add_yolo_labels()
utility that provides support for adding YOLO-formatted model predictions to an existing datasetAdded support for importing/exporting multilabel classifications when using FiftyOneImageClassificationDataset format
Fixed the
force_reencode
flag forreencode_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 toannotate()
for disallowing video track index changesImproved label ID tracking in CVAT by leveraging CVAT’s server IDs in addition to
label_id
attributesFixed a bug when annotating videos in CVAT with
None
label fieldsFixed 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
andDateTimeField
dataImproved 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
Added a Heatmap label type
Added support for adding date and datetime fields to FiftyOne datasets
Added the
to_clips()
method for creating clips views into video datasetsAdded clip views sections to the App user guide page and dataset views user guide page
Added support for exporting video clips in labeled video formats
Added a
trajectories=True
flag tofilter_labels()
that allows for matching entire object trajectories for which a given filter matches the object in at least one frame of the videoAdded set operations
is_subset()
,set_equals()
,unique()
,union()
,intersection()
,difference()
, andcontains(all=True)
to the view expression APIAdded date operations
to_date()
,millisecond()
,second()
,minute()
,hour()
,day_of_week()
,day_of_month()
,day_of_year()
,month()
, andyear()
to the view expression APIMissing ground truth/predictions are now included by default when viewing confusion matrices for detection tasks
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 backendAdded 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()
andmerge_labels()
methods that provide convenient syntaxes for moving labels between new and existing label fields of a datasetAdded
ensure_frames()
andclear_frames()
methods that can be used to conveniently initialize and clear the frames of video datasets, respectivelyAdded support for using a MongoDB dataset whose version is not explicitly supported
Removed the
opencv-python-headless
maximum version requirementFixed 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
, andchunk_size
parameters when uploading annotations via the CVAT backendFixed 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()
stageAdded support for configuring the wait time when using
Session.wait()
to block execution until the App is closed, including support for serving foreverFixed 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 theid
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 notebooksFixed 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 fieldsFixed a bug that prevented the desktop App from launching when using source builds
Brain
Added new
find_unique()
,unique_view()
, andvisualize_unique()
methods to theSimilarityIndex
object returned bycompute_similarity()
that enable you to identify a maximally unique set of images or objects in a datasetAdded new
find_duplicates()
,duplicates_view()
, andvisualize_duplicates()
methods to theSimilarityIndex
object returned bycompute_similarity()
that enable you to identify near-duplicate images or objects in a datasetAdded a new
compute_exact_duplicates()
method that can identify exactly duplicate media in a dataset
Core
Added support for pip-installing FiftyOne on Apple Silicon Macs. Note that MongoDB must be self-installed in this case
Added support for using a self-installed MongoDB database
Added a
group_by()
view stage that allows for reorganizing the samples in a collection so that they are grouped by a specified field or expressionAdded 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 detailsAdded 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 formatFixed 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
Added a CVAT annotation tutorial
Added a new example to the brain user guide that demonstrates unique and near-duplicate image workflows
Added an object embeddings example to the embeddings visualization section of the brain user guide
Added a new section to the plots user guide page explaining how to control the selection mode of interactive plots linked to labels
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 boxesAdded 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 toTrue
Added count and filtered count values to categorical filters (
BooleanField
andStringField
fields)
Core
Added support for importing DICOM datasets
Added better default behavior for the
label_field
parameter when importing datasets using methods likefrom_dir()
and exporting datasets usingexport()
When adding samples to datasets,
None
-valued sample fields are now gracefully ignored when expanding dataset schemas
Docs
Added Using the image visualizer and Using the video visualizer sections to the App user guide
Added sections covering merging datasets and batch updates to the dataset user guide page
Zoo
Patched an Open Images issue where
classes
orattrs
requirements were being ignored when loading a dataset with nomax_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 includeclasses
orattrs
options in an environment where Open Images has never been downloadedPatched loading of Cityscapes datasets
Patched loading of COCO datasets
FiftyOne 0.11.2¶
Released July 27, 2021
App
Added support for calling
Session.open_tab()
from remote Jupyter notebooksFixed a bug that could cause
Session.wait()
to exit when the App’s tab is refreshed in the browser
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 V5Added support for evaluating polygons and instance segmentations to
evaluate_detections()
. See this page for usage detailsAdded 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 theattributes
dictThe ImageSegmentationDirectory format now supports exporting segmentations defined by
Detections
with instance masks andPolylines
Added an
objects_to_segmentations()
utility for convertingDetections
with instance fields andPolylines
toSegmentation
formatAdded graceful handling of edges cases like empty views and missing labels to all evaluation routines
Added improved support for
creating
,viewing
, anddropping
dropping sample- and frame-level indexes on datasetsAdded 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 toiter_samples()
that renders a progress bar tracking the progress of the iterationAdded 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-2017Improved the partial download behavior of the Open Images V6 dataset when the optional
classes
andattrs
parameters are providedFixed a bug that prevented Windows users from downloading the Open Images V6 dataset
FiftyOne 0.11.1¶
Released June 29, 2021
App
Updated the expired Slack community link in the App menu bar
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
Added various new parameters to methods like
Dataset.from_dir()
andSampleCollection.export()
, includingdata_path
,labels_path
, andexport_media
that allow for customizing the import and export of datasets. For example, you can now perform labels-only imports and exportsAdded new
Dataset.merge_dir()
andDataset.merge_importer()
methods for merging datasets from disk into existing FiftyOne datasetsAdded support for importing and exporting datasets in YOLOv5 format
Updated the
GeoJSONDataset
dataset type to support both image and video datasetsAdded support for
importing
andexporting
extra attributes in COCO format via a newextra_attrs
parameter
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
FiftyOne 0.10.0¶
Released June 21, 2021
News
We’ve collaborated with the PyTorch Lightning team to make it easy to train Lightning Flash tasks on your FiftyOne datasets. Check out this guide for more details
Core
Updated the
apply_model()
andcompute_embeddings()
methods to natively support applying Lightning Flash models to FiftyOne datasets!
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 activeFixed 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 viewsAdded
last()
,head()
, andtail()
methods to theFrames
classAdded new
exclude_fields()
,select_frames()
, andmatch_frames()
view stages that enable selecting specific frames of video collections via IDs or filter expressions, respectivelyAdded a new
match_labels()
view stage that enables matching samples that have specific labels without actually filtering the non-matching labelsAdded support for exporting image patches using
export()
by specifying an image classification dataset type and including a spatiallabel_field
that defines the image patches to extractAdded support for automatically coercing single label fields like
Detection
into the corresponding multiple label field typeDetections
when usingexport()
to export in dataset formats that expect list-type fieldsAdded 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 schemasAdded support for merging the elements of list fields via
Dataset.merge_samples()
andDocument.merge()
Added a number of useful options to
Dataset.merge_samples()
, includingfields
,omit_fields
, andmerge_lists
Improved the efficiency of
Dataset.merge_samples()
when theoverwrite=False
option is providedAdded an optional
bool
flag to thematch_tags()
view stage that allows for optionally matching samples without the specified tagsAdded support for computing filehashes via the
hashlib
module tocompute_filehash()
Updated the
import_from_labelbox()
method to use the correct label ID (“DataRow ID”, not “ID”)Added an optional
edges
argument toscatterplot()
andlocation_scatterplot()
that enables drawing undirected edges between scatterpointsFixed a bug in
limit_labels()
that would cause views to contain empty label lists if the source dataset contains None-valued fieldsFixed a bug that prevented
ViewExpression.contains()
from acceptingViewExpression
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
Added example usages of
to_frames()
to the user guide
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 detailsAdded a
Sort by similarity
action that enables sorting by similarity to the selected samples/patches. See this page for usage detailsAdded 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
andScalars
, in the Filters SidebarAdded
filepath
to theScalars
group in the Filters SidebarAdded a
Label tags
graphs tabRefreshed numeric, string, and boolean filter styles with improved functionality and interaction
Added support for
Session.wait()
in browser contexts
Brain
Added a
compute_similarity()
method for indexing samples and object patches by similarity. See this page for usage details
Core
Added support for Open Images-style detection evaluation when using
evaluate_detections()
. See this page for usage detailsAdded the
to_patches()
andto_evaluation_patches()
view stages for transforming collections into flattened views with respect to labels and evaluations, respectively. See this page for usage detailsAdded support for applying image models to the frames of video datasets when using
apply_model()
,compute_embeddings()
, andcompute_patch_embeddings()
Added full support for embedded documents (e.g. labels) in
values()
andset_values()
Added support for passing expressions directly to aggregations
Added an optional
omit_empty
flag toselect_labels()
andexclude_labels()
that controls whether samples with no labels are omitted when filteringAdded a
Dataset.delete_labels()
method for efficiently deleting labels via a variety of natural syntaxesDeprecated
Dataset.remove_sample()
andDataset.remove_samples()
in favor of a singleDataset.delete_samples()
methodBrain results and evaluation results that are loaded via
load_evaluation_results()
load_brain_results()
are now cached on theDataset
object in-memory so that subsequent retrievals of the results in the same session will be instant
Zoo
Added Open Images V6 to the dataset zoo!
Docs
Added a new Open Images tutorial
Added object patches and evaluation patches sections to the App guide
Added a similarity section to the Brain guide
Added Open Images evaluation and evaluation patches sections to the evaluation guide
Added object patches and evaluation patches sections to the views guide
Added example uses of
to_patches()
andto_evaluation_patches()
to the object detection tutorialAdded example use of
to_patches()
to the detection mistakes tutorialAdded example use of
to_patches()
to the adding detections recipe
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 tagsAdded 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 newDataset.mask_targets
andDataset.default_mask_targets
fieldsFixed 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 a
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 tocompute_uniqueness()
Core
- Added a
fiftyone.core.plots
module that provides a powerful API for visualizing datasets, including interactive plots when used in Jupyter notebooks. See this page for more information. Highlights include: plot_confusion_matrix()
: an interactive confusion matrix that can be attached to aSession
object to visually explore model predictionsscatterplot()
: an interactive scatterplot of 2D or 3D points that can be attached to aSession
to explore the samples/labels in a dataset based on their locations in a low-dimensional embedding spacelocation_scatterplot()
: an interactive scatterplot of a dataset via itsGeoLocation
coordinatesAdded
GeoLocation
andGeoLocations
label types that can be used to store arbitrary GeoJSON location data on samplesAdded the
GeoJSONDataset
dataset type for importing and exporting datasets in GeoJSON formatAdded
SampleCollection.geo_near()
andSampleCollection.geo_within()
view stages for querying datasets with location data
- Added a
Upgraded the implementation of the FiftyOneDataset format, which is now 10-100x faster at importing/exporting datasets
Added support for generating zip/tar/etc archives to
SampleCollection.export()
by passing an archive path rather than a directory pathAdded
Dataset.from_archive()
andDataset.add_archive()
factory methods for importing datasets stored in archivesAdded support for saving evaluation results on a dataset. Results can now be loaded at any time via
Dataset.load_evaluation_results()
Added a
tags
attribute to allLabel
types that can store a list of string tags for the labels (analogous to thetags
attribute ofSample
)- Added a number of methods for working with sample and label tags:
- BREAKING CHANGE: Renamed all applicable API components that previously referenced “objects” to use the more widely applicable term “labels”. Affected attributes, classes, and methods are:
Session.selected_labels
(previouslyselected_objects
)SampleCollection.select_labels()
(previouslyselect_labels()
)SampleCollection.select_labels()
(previouslyexclude_labels()
)SelectLabels
(previouslySelectObjects
)ExcludeLabels
(previouslyExcludeObjects
)
Added new keyword arguments
ids
,tags
, andfields
toSampleCollection.select_labels()
andSampleCollection.select_labels()
and their corresponding view stages that enable easier-to-use selection of labels by their IDs or tagsAdded
Session.select_labels()
for programmatically selecting labels as well a setters forSession.selected
andSession.selected_labels
Added
Dataset.classes
andDataset.default_classes
fields that enable storing class label lists at the dataset-level that can be automatically used by methods likeDataset.evaluate_classifications()
when knowledge of the full schema of a model is requiredAdded
Dataset.mask_targets
andDataset.default_mask_targets
fields for providing semantic labels forSegmentation
mask values to be used in the App’s expanded sample viewImproved the runtime of
Dataset.merge_samples()
by ~100x for image datasets and ~10x for video datasetsAdded an
Dataset.add_collection()
method for adding the contents of aSampleCollection
to anotherDataset
Added the trigonometric view expressions
cos
,sin
,tan
,cosh
sinh
,tanh
,arccos
,arcsin
,arcan
arccosh
,arcsinh
, andarctanh
Added a
randn
expression that can generate Gaussian random numbersFixed a bug that prevented
evaluate_detections()
from being able to process video datasetsAdded support for applying intensive view stages such as sorting to datasets whose database representation exceeds 100MB
Fixed schema errors in
DatasetView
instances that contain selected or excluded fieldsFixed copying of
DatasetView
instances whereViewField
is used
Zoo
Added the quickstart-geo dataset to enable quick exploration of location-based datasets
CLI
Removed the
--desktop
flag from the fiftyone app connect command
Docs
Added a tutorial demonstrating how to use
compute_visualization()
on image datasetsAdded an interactive plots page to the user guide
Added a Tags and tagging section to the App user guide
Added a visualizing embedding section to the Brain user guide
FiftyOne 0.7.4¶
Released March 2, 2021
App
Fixed a bug that prevented
Session
updates from triggering App updatesFixed hiding labels in the expanded sample view
Brain
Added support for tracking and cleaning up brain runs similar to how evaluations are tracked. See
get_brain_info()
,list_brain_runs()
,load_brain_view()
, anddelete_brain_run()
for detailsUpdated
compute_mistakenness()
to use FiftyOne’s evaluation framework
Core
Decoupled loading video
Sample
andSampleView
and their frames so the samples are loaded efficiently and frames are only loaded when requestedAdd a 90 character limit to progress bars in notebook contexts to prevent overflow issues
Added low-level utility methods
list_datasets()
anddelete_dataset()
for managing a corrupted databaseAdded automatic field generation for
labelbox_id_field
when usingimport_from_labelbox()
CLI
Added a dataset stats command
FiftyOne 0.7.3¶
Released February 18, 2021
App
Added filtering widgets to the Filters Sidebar for
StringFields
andBooleanFields
Added histogram plots for
StringFields
andBooleanFields
in theScalars
tabMoved
None
selection forStringFields
to the input format in the Filters SidebarChanged
None
options to only be present whenNone
values exist for a supportedField
in the Filters SidebarAdded
Color by label
support forClassification
,Classifications
,BooleanField
, andStringField
Added support excluding selected values for a
StringField
in the Fields SidebarVarious 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
Added
evaluate_classifications()
,evaluate_detections()
, andevaluate_segmentations()
methods that provide support for evaluating various types of labels. See the new evaluation page of the user guide for more detailsAdded
one()
for retrieving one matchedSample
from aDataset
orDatasetView
Added support for cloning and saving views into video datasets via
clone()
andsave()
Added support for extracting batches of frame-level and/or array fields via the
values()
aggregationAdded support for setting batches of frame-level and/or array fields via
set_values()
Added support for accessing samples from a
Dataset
orDatasetView
via thedataset[filepath]
syntaxAdded support for passing
Sample
and anySample
iterable, e.g.DatasetView
, to methods likeremove_samples()
,exclude()
, andselect()
Changed the default value for
only_matches
forfilter_classifications()
,filter_detections()
,filter_field()
,filter_labels()
,filter_keypoints()
, andfilter_polylines()
fromFalse
toTrue
compute_metadata()
will now gracefully skip samples for which media metadata cannot be computedAdded a
stats()
method for listing helpful info about the size of various entities of a dataset
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 largeImproved plotting of numeric fields in the
Scalars
tab, including[min, max)
ranges for tooltips and integer binning when appropriateFixed a bug that prevented
select_fields()
andexclude_fields()
from being properly respected by the Filters SidebarFixed 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 drawingLabel
fields. See this page for more info
Core
Added the
HistogramValues
andSum
aggregationsAdded over a dozen new
ViewExpression
methods including powerful transformations likemap_values()
,reduce()
, andsort()
Exposed all
Aggregations
as single execution methods on theSampleCollection
interface, e.g.,distinct()
Added support for all
Label
types infilter_labels()
Added support for generalized field paths (embedded fields, lists, etc) to the
Bounds
,Count
,CountValues
, andDistinct
aggregationsRemoved the deprecated
ConfidenceBounds
,CountLabels
, andDistinctLabels
aggregationsRemoved the redundant
match_tag()
stage in favor ofmatch_tags()
Removed
AggregationResult
classes in favor of returningAggregation
results directly as builtin typesAdded the optional
config
keyword argument tolaunch_app()
andSession
for overriding the default AppConfig.
Zoo
Added a default confidence threshold of
0.3
when applying models from the Model Zoo viaapply_model()
, which omits spurious low quality predictions from many models
CLI
Added a fiftyone app config command for inspecting the default App config
Improved
ctrl + c
exit handling for CLI commands
Docs
Added a new section to the Configuring FiftyOne guide explaining how to programmatically configure the App’s behavior
Updated the Dataset views guide to provide a thorough overview of new functionality provided by stages like
SetField
Updated the Aggregations guide to provide a thorough overview and examples of various aggregation functionality, including advanced usage tips
Added an FAQ section providing instructions for working with remote Jupyter notebooks
Added code examples to all
ViewStage
class docstrings and their corresponding sample collection methods, e.g.,map_labels()
Added code examples to all
Aggregation
class docs and their corresponding sample collection methods, e.g.,bounds()
FiftyOne 0.7.1¶
Released January 8, 2021
App
Added automatic screenshotting for notebook environments
Fixed a bug where the Filters Sidebar statistics would not load for empty views
Fixed style inconsistencies in Firefox
Core
Added
Session.freeze()
for manually screenshotting the active App in a notebook environmentRenamed
Dataset.clone_field()
toDataset.clone_sample_field()
for consistency with other operationsAdded a
Dataset.clone_frame_field()
method for cloning frame-level fields of video datasetsAdded
DatasetView.clone_sample_field()
andDatasetView.clone_frame_field()
methods that allow cloning views into sample fields (e.g., after filtering the labels in a list field)Added a
DatasetView.clone()
method for cloning a view as a new datasetAdded a
DatasetView.save()
method for saving a view, overwriting the contents of the underlying datasetRe-implemented
Dataset.clone_sample_field()
andDataset.merge_samples()
via efficient DB-only operationsAdded the
overwrite
keyword argument to theDataset()
constructorAdded a
database_dir
option to the FiftyOne ConfigAdded a
default_app_port
option to the FiftyOne Config
Zoo
Added a CenterNet model to the model zoo
Upgraded the Model Zoo so that many detection models that previously required TensorFlow 1.X can now be used with TensorFlow 2.X
Added Caltech-256 to the dataset zoo
Added ImageNet Sample to the dataset zoo
Caltech-101 is now available natively in the dataset zoo without the TF backend
KITTI is now available natively in the dataset zoo without the TF backend
Fixed a bug that prevented ImageNet 2012 from loading properly when using the TF backend
CLI
Added support for controlling the error level when applying zoo models
Docs
Added a Dataset Zoo listing that describes all datasets in the zoo
Added a Model Zoo listing that describes all models in the zoo
FiftyOne 0.7.0¶
Released December 21, 2020
App
Added web browser support, which is now the default setting
Added IPython notebook support, e.g. Jupyter and Google Colab
The desktop App can now be installed as an optional dependency
Fixed an issue where the App would freeze after filtering labels in the Filters Sidebar
Core
Added a Model Zoo containing over 70 pretrained detection, classification, and segmentation models that you can use to generate predictions and embeddings
Moved project hosting to pypi.org
Added the
Session.show()
method for displaying the App in IPython notebook cellsAdded an in-App feedback form. We would love to hear from you!
Added Python 3.9 support
Removed Python 3.5 support
CLI
Added a fiftyone zoo models command that provides access to the model zoo
Moved the dataset zoo commands to fiftyone zoo datasets (previously they were at
fiftyone zoo
)Added a
--desktop
flag to commands that launch the App that enables launching the App as a desktop App (rather than a web browser)
FiftyOne 0.6.6¶
Released November 25, 2020
App
Added a dropdown in the header to change datasets from the App
Added the ability to refresh the App by clicking the FiftyOne logo in the header
Fixed a bug the caused numeric (scalar field) range sliders to disappear after changing the default value
Fixed a bug that prevented the App state from updating appropriately after applying label filters
Brain
Added support for computing mistakenness for detections when using
compute_mistakenness()
Core
Fixed a bug that prevented COCO datasets from being loaded from the Dataset Zoo
CLI
Added support for customizing the local port when connecting to the App via the CLI
Added an
--ssh-key
option to theapp connect
command
Docs
Added a tutorial demonstrating how to use
compute_mistakenness()
to detect label mistakes for detection datasets
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 SidebarAdded support for filtering
keypoint
,keypoints
,polyline
,polylines
fields bylabel
value in the Filters SidebarMoved plot tabs into an expandable window that can be resized and maximized. This allows for viewing distributions and the sample grid at the same time
Fixed video loading in the grid and modal for video samples with metadata
Fixed showing and hiding samples in the select sample menu
Fixed a memory usage bug in the sample grid
Core
Added Cityscapes and LFW to the Dataset Zoo
Added support for renaming and deleting embedded document fields of samples via
Dataset.rename_sample_field()
andDataset.delete_sample_field()
Added support for renaming and deleting embedded document fields of frames of video samples via
Dataset.rename_frame_field()
andDataset.delete_frame_field()
Added support for deleting fields and embedded fields of individual samples via
Sample.clear_field()
anddel sample[field_name]
Added support for deleting fields and embedded fields of frame labels via
Frame.clear_field()
anddel frame[field_name]
Added support for reading/writing video datasets in JSON format via
Dataset.from_json()
andSampleCollection.write_json()
, respectivelyAdded
a module
for importing and exporting annotations from Scale AIAdded
a module
for importing and exporting annotations from LabelboxFixed a bug that prevented
Dataset.add_sample()
andDataset.add_samples()
from working properly when provided samples that belong to other sample collectionsFixed a bug that prevented frame labels from being properly cloned when calling
Dataset.clone()
on video datasets
Docs
Added an Environments page that outlines how to work with local, remote, and cloud data. Includes instructions for AWS, Google Cloud, and Azure
Add an FAQ page
FiftyOne 0.6.4¶
Released October 29, 2020
App
Improved page load times for video datasets
Improved support for frame- and sample-level labels in display options for video datasets
Added support for all label types in the labels distributions tab
Added support for selecting and hiding labels in the sample modal
Brain
Added support for computing uniqueness within regions-of-interest specified by a set of detections/polylines when using
compute_uniqueness()
Core
Added the
filter_labels()
view stage, which supersedes the old dedicated per-label-type filtering stagesAdded
select_labels()
andexclude_labels()
to select or exclude labels from a dataset or viewAdded an
aggregations framework
for computing aggregate values viaaggregate()
Added the
selected_labels
session attribute, which holds the currently selected labels in the AppAdded support for
adding
,renaming
, anddeleting
frame-level fields of video datasetsAdded the
TorchImagePatchesDataset
that emits tensors of patches extracted from images defined by sets ofDetections
associated with the images
FiftyOne 0.6.3¶
Released October 20, 2020
App
Added sample-level display options stats, filtering, and toggling for video datasets
Core
Added support for importing and exporting video classification datasets organized as directory trees on disk
Added BDD100K, HMDB51, and UCF101 to the Dataset Zoo
Added new versions of COCO that contain instance segmentations to the Dataset Zoo
Added utilities for selecting labels from datasets via the Python library
Added a boolean
only_matches
parameter to all filter stages that enables the user to specify that a view should only contain samples that match the given filterImproved performance when ingesting video datasets with frame-level labels
Added a
reencode_videos()
utility to re-encode the videos in a sample collection so that they are visualizable in the FiftyOne App
FiftyOne 0.6.2¶
Released October 15, 2020
App
Improved page and grid load times for video datasets by around 10x
Added filtering, toggling, and statistics for labels with respect to the frame schema in the display options sidebars for video datasets
Added margins to the grid view for both image and video datasets
Fixed list parameter input submission in the view bar
Fixed an issue causing some label counts to be incorrect after filters are applied
Added support for using the keyboard to select labels when filtering
Brain
compute_uniqueness()
andcompute_hardness()
now support multilabel classification tasks
Core
Polyline
instances can now represent labels composed of multiple shapesSegmentations can now be imported and exported when using COCO Object Detection Format.
Polylines and keypoints can now be imported and exported when using CVAT image format
Polylines and keypoints can now be imported and exported when using CVAT video format
Added support for rendering annotated versions of video samples with their frame labels overlaid via
draw_labels()
Added support for launching quickstarts as remote sessions
Added
Frames.update()
andFrames.merge()
methods to replace and merge video frames, respectivelyFixed
Dataset.merge_samples()
to properly merge the frame-by-frame contents of video samplesFixed a bug where
sample.copy()
would not create a copy of the frames of a video sample
FiftyOne 0.6.1¶
Released October 7, 2020
App
Added support for visualizing keypoints, polylines, and segmentation masks
Added autocompletion when selecting
SortBy
fields in the view barAdded support for viewing
index
fields ofDetection
labels in the media viewer, if presentFixed counting of
Classifications
fields in the expanded sample viewFixed a bug that prevented label filters from fully resetting when a
reset
orclear
button is pressed
Core
Added support for storing
keypoints
,polylines
, andsegmentation masks
on samplesAdded support for setting an
index
attribute onDetection
instances that defines a unique identifier for an object (e.g., across frames of a video)Added support for importing and exporting datasets in YOLOv4 format
Added support for importing and exporting datasets in CVAT video format
Added support for importing and exporting video datasets in
FiftyOneDataset
formatAdded frame field schemas to string representations for video datasets/views
CLI
Added options to fiftyone datasets delete to delete all datasets matching a pattern and all non-persistent datasets
Docs
Added a recipe for merging datasets
Fixed some table widths and other display issues
FiftyOne 0.6.0¶
Released October 1, 2020
App
Added support for visualizing video datasets in the App
Core
Added support for storing frame labels on video samples
Added support for importing and exporting datasets of unlabeled videos
Added support for importing and exporting labeled video datasets in ETA VideoLabels format.
Added support for importing and exporting video datasets in custom formats
Improved the performance of
Dataset.rename_sample_field()
Added support for using disk space when running aggregation pipelines on large datasets
Added support for automatically creating database indexes when sorting by sample fields, for efficiency
Fixed issues with serializing vector fields and numpy arrays
FiftyOne 0.5.6¶
Released September 23, 2020
App
Added autocompletion to view bar stage fields that accept field names (for example,
Exists
)Fixed an issue that would prevent datasets with no numeric labels or scalars from loading in the App
Fixed an error that could occur when a view included no samples
Added notifications in the App that are displayed if errors occur on the backend
Improved keyboard navigation between view bar stages
Core
Added support for loading (possibly-randomized) subsets of datasets when importing them via
DatasetImporter
instances, or via factory methods such asDataset.from_dir()
Added support for optionally skipping unlabeled images when importing image datasets via
LabeledImageDatasetImporter
instancesAdded a
Dataset.merge_samples()
method for merging samples in datasets via joining byfilepath
Added a
Dataset.rename_sample_field()
method for renaming sample fields of datasets
FiftyOne 0.5.5¶
Released September 15, 2020
App
Added support for filtering samples by numeric fields in the sidebar
Confidence bounds are now computed for the confidence slider in the label filter - a
[0, 1]
range is no longer assumedFixed 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 expectDetections
labelsAdded 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 stageFixed a bug that prevented FiftyOne from starting for some Windows users
Fixed a bug that caused
take()
andshuffle()
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()
methodAdded support for filtering fields via the
filter_field()
methodProvided 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
andBACKSPACE
delete the raised (active) stageESC
toggles focus on the ViewBar, which activates shortcutsTAB
,ENTER
, andESC
submits stage input fieldsLEFT
andRIGHT ARROW
traverses view stages and add-stage buttonsSHIFT + LEFT ARROW
andSHIFT + RIGHT ARROW
traverse stages
Core
Greatly improved the performance of loading dataset samples from the database
Added more string matching operations when querying samples, including
starts_with()
,ends_with()
,contains_str()
andmatches_str()
Docs
Added a tutorial demonstrating performing error analysis on the Open Images Dataset powered by FiftyOne
FiftyOne 0.5.0¶
Released August 11, 2020
News
FiftyOne is now open source! Read more about this exciting development in this press release
App
Major design refresh, including a new look-and-feel for the App
Added view bar that supports constructing dataset views directly in the App
- Redesigned expanded sample view:
Improved look-and-feel, with modal-style form factor
Added support for maximizing the media player
Added support for maximizing the raw sample view
Added arrow controls to navigate between samples
Core
Added support for importing and exporting FiftyOne datasets via the
FiftyOneDataset
typeAdded a
Dataset.info
field that can be used to store dataset-level info in FiftyOne datasetsAdded a
shuffle()
view stage for randomly shuffling the samples in a datasetUpgraded 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 DatasetViewmatch()
,sort_by()
, etc. stagesAdded an
evaluate_detections()
utility for evaluating object detections in FiftyOne datasetsAdding support for rendering annotated versions of sample data with their labels overlaid via a
draw_labels()
method
Docs
Added a tutorial demonstrating object detection evaluation workflows powered by FiftyOne
Added full documentation for constructing DatasetViews with powerful matching, filtering, and sorting operations
Added a recipe showing how to render annotated versions of samples with label field(s) overlaid
Upgraded dataset creation docs that simplify the material and make it easier to find the creation strategy of interest
Improved layout of tutorials, recipes, and user guide landing pages
FiftyOne 0.4.0¶
Released July 21, 2020
App
Fixed an issue that could cause launching the App to fail on Windows under Python 3.6 and older
Core
Added support for importing datasets in custom formats via the
DatasetImporter
interfaceAdded support for exporting datasets to disk in custom formats via the
DatasetExporter
interfaceAdded support for parsing individual elements of samples in the
SampleParser
interfaceAdded an option to image loaders in
fiftyone.utils.torch
to convert images to RGBFixed an issue where
Dataset.delete_sample_field()
would not permanently delete fields if they were modified after deletionImproved the string representation of
ViewStage
instances
Docs
Added a recipe demonstrating how to convert datasets on disk between common formats
Added recipes demonstratings how to write your own custom dataset importers, custom dataset exporters, and custom sample parsers
Added a Configuring FiftyOne page to the User Guide that explains how to customize your FiftyOne Config
FiftyOne 0.3.0¶
Released June 24, 2020
App
Fixed an issue that could prevent the App from connecting to the FiftyOne backend
Core
- Added support for importing and exporting datasets in several common formats:
COCO:
COCODetectionDataset
VOC:
VOCDetectionDataset
KITTI:
KITTIDetectionDataset
Image classification TFRecords:
TFImageClassificationDataset
TF Object Detection API TFRecords:
TFObjectDetectionDataset
CVAT image:
CVATImageDataset
Berkeley DeepDrive:
BDDDataset
Added
Dataset.add_dir()
andDataset.from_dir()
to allow for importing datasets on disk in any supported formatAdded a
convert_dataset()
method to convert between supported dataset formatsAdded support for downloading COCO 2014/2017 through the FiftyOne Dataset Zoo via the Torch backend
CLI
Added
fiftyone convert
to convert datasets on disk between any supported formatsAdded
fiftyone datasets head
andfiftyone datasets tail
to print the head/tail of datasetsAdded
fiftyone datasets stream
to stream the samples in a dataset to the terminal with aless
-like interfaceAdded
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-imagesImproved 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
interfaceAdded 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 themetadata
fields of samplesImproved reliability of shutting down the App and database services
Improved string representations of
Dataset
andSample
objects
CLI
Added support for creating datasets and launching the App