All notable changes to the Nucleus Python Client will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.14.13 - 2022-08-10
- Validate Segmentation IOU being thresholded and non max suppressed.
- Validate Segmentation metrics now ignore out of taxonomy indexes for metrics
0.14.12 - 2022-08-05
- Added auto-paginated
Slice.export_predictions_generator
- Change
{Dataset,Slice}.items_and_annotation_generatorto work with improved paginate endpoint
0.14.11 - 2022-07-20
- Various docstring and typing updates
0.14.10 - 2022-07-20
Dataset.items_and_annotation_generator()
Slice.items_and_annotation_generator()bug
0.14.9 - 2022-07-14
- NoneType errors in Validate
0.14.8 - 2022-07-14
- Segmentation metrics filtering. Prior version artificially boosted performance when filtering was applied.
0.14.7 - 2022-07-07
- Support running structured queries and retrieving item results via API
0.14.6 - 2022-07-07
Dataset.delete_annotationsnow defaultsreference_idsto an empty list andkeep_historyto true
0.14.5 - 2022-07-05
- Averaging of rich semantic segmentation taxonomies not taking into account missing classes
0.14.4 - 2022-06-21
- Regression that caused Validate filter statements to not work
0.14.3 - 2022-06-21
- CLI installation without GEOS errored out. Now handled by importer.
0.14.2 - 2022-06-21
- Better error reporting when everything is filtered out by a filter statement in a Validate evaluation function
0.14.1 - 2022-06-20
- Adapt Segmentation metrics to better support instance segmentation
- Change Segmentation/Polygon metrics to use new segmentation metrics
0.14.0 - 2022-06-16
- Allow creation/deletion of model tags on new and existing models, eg:
# on model creation
model = client.create_model(name="foo_model", reference_id="foo-model-ref", tags=["some tag"])
# on existing models
existing_model = client.models[0]
existing_model.add_tags(['tag a', 'tag b'])
# remove tag
existing_model.remove_tags(['tag a'])0.13.5 - 2022-06-15
- Guard against invalid skeleton indexes in KeypointsAnnotation
0.13.4 - 2022-06-09
- Guard against extras imports
0.13.3 - 2022-06-09
- Make installation of scale-launch optional (again!).
0.13.2 - 2022-06-08
- Open up requirements for easier installation in more environments. Add more optional installs under
metrics
0.13.1 - 2022-06-08
- Make installation of scale-launch optional
0.13.0 - 2022-06-08
- Segmentation functions to Validate API
0.12.4 - 2022-06-02
- Poetry dependency list
0.12.3 - 2022-06-02
- New methods to export associated Scale task info at either the item or scene level.
Dataset.export_scale_task_infoSlice.export_scale_task_info
0.12.2 - 2022-06-02
- Allow users to upload external evaluation results calculated on the client side.
0.12.1 - 2022-06-02
- Suppress warning statement when un-implemented standard configs found
0.12.0 - 2022-05-27
- Allow users to create external evaluation functions for Scenario Tests in Validate.
0.11.2 - 2022-05-20
- Restored backward compatibility of video constructor by adding back deprecated attachment_type argument
0.11.1 - 2022-05-19
- Exporting model predictions from a slice
0.11.0 - 2022-05-13
- Segmentation prediction masks can now be evaluated against polygon annotation with new Validate functions
- New function SegmentationToPolyIOU, configurable through client.validate.eval_functions.segmentation_to_poly_iou
- New function SegmentationToPolyRecall, configurable through client.validate.eval_functions.segmentation_to_poly_recall
- New function SegmentationToPolyPrecision, configurable through client.validate.eval_functions.segmentation_to_poly_precision
- New function SegmentationToPolyMAP, configurable through client.validate.eval_functions.segmentation_to_poly_map
- New function SegmentationToPolyAveragePrecision, configurable through client.validate.eval_functions.segmentation_to_poly_ap
0.10.8 - 2022-05-10
- Add checks for duplicate (
reference_id,annotation_id) when uploading Annotations or Predictions
0.10.7 - 2022-05-09
- Add checks for duplicate reference IDs
0.10.6 - 2022-05-06
- Video privacy mode
- Removed attachment_type argument in video upload API
0.10.5 - 2022-05-04
- Invalid polygons are dropped from PolygonMetric iou matching
0.10.4) - 2022-05-02
- Additional check added for KeypointsAnnotation names validation
- MP4 video upload
0.10.3 - 2022-04-22
- Polygon and bounding box matching uses Shapely again providing faster evaluations
- Evaluation function passing fixed for Polygon and Boundingbox configurations
0.10.1 - 2022-04-21
- Added check for payload size
0.10.0) - 2022-04-21
KeypointsAnnotationaddedKeypointsPredictionadded
0.9.0 - 2022-04-07
- Validate metrics support metadata and field filtering on input annotation and predictions
- 3D/Cuboid metrics: Recall, Precision, 3D IOU and birds eye 2D IOU```
- Shapely can be used for metric development if the optional scale-nucleus[shapely] is installed
- Full support for passing parameters to evaluation configurations
0.8.4 - 2022-04-06
- Changing
camera_paramsof dataset items can now be done through the dataset methodupdate_items_metadata
0.8.3 - 2022-03-29
- new Validate functionality to intialize scenario tests without a threshold, and to set test thresholds based on a baseline model.
0.8.2 - 2022-03-18
- a fix to the CameraModels enumeration to fix export of camera calibrations for 3D scenes
0.8.1 - 2022-03-18
- slice.items_generator() and dataset.items_generator() to allow for export of dataset items at any scale.
0.8.0 - 2022-03-16
- mask_url can now be a local file for segmentation annotations or predictions, meaning local upload is now supported for segmentations
- Camera params for sensor fusion ingest now support additional camera params to accommodate fisheye camera, etc.
- More detailed parameters to control for upload in case of timeouts (see dataset.upload_predictions, dataset.append, and dataset.upload_predictions)
- Artificially low concurrency for local uploads (all local uploads should be faster now)
- Client no longer uses the deprecated (and now removed) segmentation-specific server endpoints
- Fixed a bug where retries for local uploads were not working properly: should improve local upload robustness
- client.predict, client.annotate, which have been marked as deprecated for several months.
0.7.0 - 2022-03-09
LineAnnotationaddedLinePredictionadded
0.6.7 - 2021-03-08
get_autotag_refinement_metrics- Get model using
model_run_id - Video API change to require
image_locationinstead ofvideo_frame_locationinDatasetItems
0.6.6 - 2021-02-18
- Video upload support
0.6.5 - 2021-02-16
Dataset.update_autotagdocstring formattingBoxPredictiondataclass parameter typingvalidate.scenario_test_evaluationtypo
0.6.4 - 2021-02-16
- Categorization metrics are patched to run properly on Validate evaluation service
0.6.3 - 2021-02-15
- Add categorization f1 score to metrics
0.6.1 - 2021-02-08
- Adapt scipy and click dependencies to allow Google COLAB usage without update
0.6.0 - 2021-02-07
- Nucleus CLI interface
nu. Installation instructions are in theREADME.md.
0.5.4 - 2022-01-28
- Add
NucleusClient.get_jobto retrieveAsyncJobs by job ID
0.5.3 - 2022-01-25
- Add average precision to polygon metrics
- Add mean average precision to polygon metrics
0.5.2 - 2022-01-20
- Add
Dataset.delete_scene
- Removed
Shapelydependency
0.5.1 - 2022-01-11
- Updated dependencies for full Python 3.6 compatibility
0.5.0 - 2022-01-10
nucleus.metricsmodule for computing metrics between NucleusAnnotationandPredictionobjects.
0.4.5 - 2022-01-07
Dataset.scenesproperty that fetches the Scale-generated ID, reference ID, type, and metadata of all scenes in the Dataset.
0.4.4 - 2022-01-04
Slice.export_raw_items()method that fetches accessible (signed) URLs for all items in the Slice.
0.4.3 - 2022-01-03
- Improved error messages for categorization
- Category taxonomies are now updatable
0.4.2 - 2021-12-16
Slice.nameproperty that fetches the Slice's user-defined name.- The Slice's items are no longer fetched unnecessarily; this used to cause considerable latency.
Slice.itemsproperty that fetches all items contained in the Slice.
Slice.info()now only retrieves the Slice'sname,slice_id, anddataset_id.- The Slice's items are no longer fetched unnecessarily; this used to cause considerable latency.
- This method issues a warning to use
Slice.itemswhen attempting toitems.
### Deprecated
NucleusClient.slice_info(..)is deprecated in favor ofSlice.info().
0.4.1 - 2021-12-13
- Datasets in Nucleus now fall under two categories: scene or item.
- Scene Datasets can only have scenes uploaded to them.
- Item Datasets can only have items uploaded to them.
NucleusClient.create_datasetnow requires a boolean parameteris_sceneto immutably set whether the Dataset is a scene or item Dataset.
0.4.0 - 2021-08-12
NucleusClient.modelciclient extension that houses all features related to Model CI, a continuous integration and testing framework for evaluation machine learning models.NucleusClient.modelci.UnitTest- class to represent a Model CI unit test.NucleusClient.modelci.UnitTestEvaluation- class to represent an evaluation result of a Model CI unit test.NucleusClient.modelci.UnitTestItemEvaluation- class to represent an evaluation result of an individual dataset item within a Model CI unit test.NucleusClient.modelci.eval_functions- Collection class housing a library of standard evaluation functions used in computer vision.
0.3.0 - 2021-11-23
NucleusClient.datasetsproperty that lists Datasets in a human friendlier manner thanNucleusClient.list_datasets()NucleusClient.modelsproperty, this is preferred over the deprecatedlist_modelsNucleusClient.jobsproperty.NucleusClient.list_jobsis still the preferred method to use if you filter jobs on access.- Deprecated method access now produces a deprecation warning in the logs.
- Model runs have been deprecated and will be removed in the near future. Use a Model directly instead. The following
functions have all been deprecated as a part of that.
NucleusClient.get_model_run(..)NucleusClient.delete_model_run(..)NucleusClient.create_model_run(..)NucleusClient.commit_model_run(..)NucleusClient.model_run_info(..)NucleusClient.predictions_ref_id(..)NucleusClient.predictions_iloc(..)NucleusClient.predictions_loc(..)Dataset.create_model_run(..)Dataset.model_runs(..)
NucleusClient.list_datasetsis deprecated in favor ofNucleusClient.datasets. The latter allows for direct usage ofDatasetobjects.NucleusClient.list_modelsis deprecated in favor ofNucleusClient.models.NucleusClient.get_dataset_itemsis deprecated in favor ofDataset.itemsto make the object model more consistent.NucleusClient.delete_dataset_itemis deprecated in favor ofDataset.delete_itemto make the object model more consistent.NucleusClient.populate_datasetis deprecated in favor ofDataset.appendto make the object model more consistent.NucleusClient.ingest_tasksis deprecated in favor ofDataset.ingest_tasksto make the object model more consistent.NucleusClient.add_modelis deprecated in favor ofNucleusClient.create_modelfor consistent terminology.NucleusClient.dataset_infois deprecated in favor ofDataset.infoto make the object model more consistent.NucleusClient.delete_annotationsis deprecated in favor ofDataset.delete_annotationsto make the object model more consistent.NucleusClient.predictis deprecated in favor ofDataset.upload_predictionsto make the object model more consistent.NucleusClient.dataitem_ref_idis deprecated in favor ofDataset.reflocto make the object model more consistent.NucleusClient.dataitem_ilocis deprecated in favor ofDataset.ilocto make the object model more consistent.NucleusClient.dataitem_locis deprecated in favor ofDataset.locto make the object model more consistent.NucleusClient.create_sliceis deprecated in favor ofDataset.create_sliceto make the object model more consistent.NucleusClient.create_custom_indexis deprecated in favor ofDataset.create_custom_indexto make the object model more consistent.NucleusClient.delete_custom_indexis deprecated in favor ofDataset.delete_custom_indexto make the object model more consistent.NucleusClient.set_continuous_indexingis deprecated in favor ofDataset.set_continuous_indexingto make the object model more consistent.NucleusClient.create_image_indexis deprecated in favor ofDataset.create_image_indexto make the object model more consistent.NucleusClient.create_object_indexis deprecated in favor ofDataset.create_object_indexto make the object model more consistent.Dataset.append_scenesis deprecated in favor ofDataset.appendfor a simpler interface.