Releases: openvinotoolkit/geti-sdk
Geti SDK v2.5.0
What's Changed
- Introduce
delete_dataset
method by @igor-davidyuk in #489 - Update the download_all method for ImageClient to download specific dataset by @rajeshgangireddy in #484
- Update media info schema to include extension by @igor-davidyuk in #494
- Project access refactoring by @igor-davidyuk in #481
- Images upload from list optimization by @igor-davidyuk in #495
- Add readthedocs configuration file by @ljcornel in #497
- Fix bug with label name mapping for hierarchical classification models by @ljcornel in #498
- Introduce new
Anomaly
task by @igor-davidyuk in #487 - Implement
get_training_dataset
method inDatasetClient
by @ljcornel in #492 - Fix anomaly task title by @igor-davidyuk in #499
- Anomaly tasks backwards compatibility by @igor-davidyuk in #502
- Fix anomaly demo test by @igor-davidyuk in #501
- Introduce project removal delay for short tests by @igor-davidyuk in #500
- Update datumaro requirement from ==1.8.* to ==1.9.* in /requirements by @dependabot in #496
- Update pytest requirement from ==8.2.* to ==8.3.* in /requirements by @dependabot in #482
- Fix organization id fetching by @ljcornel in #504
- Update ModelGroup data model by @ljcornel in #506
- Update Model data model by @ljcornel in #508
- Update pillow requirement from ==10.4.* to ==11.0.* in /requirements by @dependabot in #507
- Fix label assignment for deployed models by @ljcornel in #505
- Fix anomaly deployed models by @ljcornel in #510
- Keep label ID's intact on saving project deployment by @ljcornel in #511
- Fix anomaly wrapper configuration by @ljcornel in #513
- Fix empty label assignment for instance segmentation models by @ljcornel in #514
- Project deployment by name by @Daankrol in #516
- Bug Fix - Notebooks using project_name instead of project for a few methods by @rajeshgangireddy in #517
- Wait for job to appear in job queue before checking job status by @Daankrol in #518
- Fix 403 on delete project when running all cells in one go. by @Daankrol in #519
- Allow asynchronous annotation upload by @Daankrol in #509
- Fix errors in notebooks when running from E2E tests by @Daankrol in #522
New Contributors
- @rajeshgangireddy made their first contribution in #484
- @Daankrol made their first contribution in #516
Full Changelog: v2.3.0...v2.5.0
v2.3.0
What's Changed
- Add method to purge models by @igor-davidyuk in #468
- Fix visualization in 008 example notebook by @igor-davidyuk in #472
- Update the Model schema to include the
total_disk_size
field by @igor-davidyuk in #471 - Add support for Credit System API by @igor-davidyuk in #473
- Implement Platform version check by @igor-davidyuk in #474
- Allow Credit System-less servers to authenticate with a token by @igor-davidyuk in #476
- Empty label visualization fix by @igor-davidyuk in #480
Full Changelog: v2.2.0...v2.3.0
Geti SDK v2.2.0
What's Changed
- Add
description
attribute to the job class by @igor-davidyuk in #448 - Project/Dataset export import API alignment by @igor-davidyuk in #446
- Create geti_sdk.import_export docs page by @igor-davidyuk in #451
- Introduce data_model
purge_info
field by @igor-davidyuk in #453 - Disable certificate validation for mvtec dataset download by @ljcornel in #452
- Use proper project name in notebook 008 by @ljcornel in #454
- Update pillow requirement from ==10.3.* to ==10.4.* in /requirements by @dependabot in #449
- Create workflow to build wheels for different OS/CPU architecture combinations by @ljcornel in #456
- Fix headers in
HttpRequest
PostInferenceAction by @ljcornel in #457 - Correctly set headers in
HttpRequest
PostInferenceAction by @ljcornel in #458 - Expose Visualizer class by @igor-davidyuk in #426
- Job and Model schema update by @igor-davidyuk in #459
- Use
json
instead ofdata
parameter in HttpRequestAction by @ljcornel in #460 - Remove workflows that require a self-hosted runner by @ljcornel in #461
- Fix 005_modify_image.ipynb image usage by @igor-davidyuk in #463
- Fix permissions for wheel build workflow and remove record_cassettes workflow by @ljcornel in #462
- Fix
delete_project
method by @igor-davidyuk in #466 - Add a Custom Dataset upload example by @igor-davidyuk in #464
- Add Job Cost info to job data scheme by @igor-davidyuk in #467
Full Changelog: releases/v2.1.0...1234
Geti SDK v2.1.0
What's Changed
- Saliency map visualization by @igor-davidyuk in #424
- Add a model management notebook by @igor-davidyuk in #419
- Add support for asynchronous inference in deployments by @ljcornel in #421
- Bump imageio-ffmpeg from 0.4.9 to 0.5.1 in /requirements by @dependabot in #430
- Saliency map fix by @igor-davidyuk in #427
- Fix rotated detectionsaliency map processing by @igor-davidyuk in #431
- Handle projects with duplicate names in the
ProjectClient
by @ljcornel in #425 - Update opencv-python requirement from ==4.9.* to ==4.10.* in /requirements by @dependabot in #428
- Update nightly test conda env directory by @ljcornel in #432
- Fix
is_geti
version check by @igor-davidyuk in #434 - Fix build and publish workflow for internal pypi by @ljcornel in #433
- Add check to make sure project is trained in notebook 012 by @ljcornel in #439
- Update flake8 requirement from ==7.0.* to ==7.1.* in /requirements by @dependabot in #440
- Fix removal of empty strings in json data for POSTing by @ljcornel in #442
- Include
model_group_id
inModel
serialization and deserialization by @ljcornel in #443 - Include
model_group_id
upon model deployment in DeploymentClient by @ljcornel in #444 - Small fixes for testing client and test result by @ljcornel in #438
- Run pre-merge tests on PR to release branch by @ljcornel in #436
- Fix model_group_id assignment in DeployedModel deserialization by @ljcornel in #445
- Fix bug in
AsyncVideoProcessor
by @ljcornel in #441
Full Changelog: v2.0.1...v2.1.0
Geti SDK v2.0.2
What's Changed
- Fix
is_geti
version check (#434) by @igor-davidyuk in #435
Full Changelog: v2.0.1...v2.0.2
Geti SDK v2.0.1
What's Changed
- Add retry mechanism to better handle
ConnectionError
by @ljcornel in #420 - Undo changes to video tempfile handling, register atexit handler for tempfile deletion by @ljcornel in #423
Full Changelog: v2.0.0...v2.0.1
Geti SDK v2.0.0
New features
This release introduces a new feature related to model deployment: post-inference hooks! A post-inference hook can be added to any Deployment
, and will be executed after every inference request (i.e. every call to deployment.infer()
). The hooks allow you to define specific actions to take under certain conditions. For example, a hook could implement the following behaviour:
If the confidence level of one of the predictions for the image is less than 20%, then upload the image to the Intel® Geti™ project in which the model was trained.
This could be useful for improving your model with a next training round, because including such 'low confidence images' in the training dataset might help to improve model accuracy.
Additional examples of post-inference hooks, and instructions for configuring them, can be found in the newly added notebook 012 in this repository.
Breaking changes
This major release of the Intel® Geti™ SDK breaks backwards compatibility with Intel® Geti™ servers of version v1.14 and below. Please make sure that your Intel® Geti™ server is updated to the latest version of the Intel® Geti™ platform, to prevent compatibility issues.
What's Changed
- Update
Video
data model with annotation statistics by @ljcornel in #391 - Record Legacy and Develop cassette in separate steps instead of pipelines by @igor-davidyuk in #387
- Remove dependency on OTX by @igor-davidyuk in #393
- Add
model_storage_id
to models when fetching model group by @ljcornel in #399 - Add Python 3.11 support; Deprecate Python 3.8 by @igor-davidyuk in #398
- Add
last_annotator_id
field to media data model by @igor-davidyuk in #403 - Documentation Update 2.0 by @igor-davidyuk in #402
- End support for Platforms versions lower than 1.15 by @igor-davidyuk in #397
- Bump imageio-ffmpeg from 0.4.8 to 0.4.9 in /requirements by @dependabot in #404
- Update python version in github workflows by @ljcornel in #405
- Update requirement for tqdm to
>=4.66.3
by @ljcornel in #407 - Add
PostInferenceHook
feature initial implementation and notebook by @ljcornel in #355 - [StepSecurity] Apply security best practices by @step-security-bot in #408
- Define permissions on job level for cassette record workflow by @ljcornel in #409
- Update pytest-recording requirement from ==0.12.* to ==0.13.* in /requirements by @dependabot in #406
- Update pytest requirement from ==7.4.* to ==8.2.* in /requirements by @dependabot in #401
- Update cryptography requirement to
>=42.0.7
by @ljcornel in #410 - Update requirement for joblib to
>=1.2.0
by @ljcornel in #411 - Update certifi requirement to
>=2024.2.2
by @ljcornel in #412 - Update ipython requirement from ==8.12.* to ==8.18.* in /requirements by @dependabot in #400
- Update vcrpy requirement from ==4.4.* to ==6.0.* in /requirements by @dependabot in #318
- Remove dead code in training client by @ljcornel in #413
- Update requests requirement from ==2.31.* to ==2.32.* in /requirements by @dependabot in #415
- Update pytest-html requirement from ==3.2.* to ==4.1.* in /requirements by @dependabot in #418
- Update pytest-cov requirement from ==4.1.* to ==5.0.* in /requirements by @dependabot in #416
- Add initial support for Tiling inference [synchronous mode only] by @ljcornel in #414
New Contributors
- @step-security-bot made their first contribution in #408
Full Changelog: v1.16.1...v2.0.0
Geti SDK v1.16.1
What's Changed
- Add
default_workspace
to possible default workspace names by @igor-davidyuk in #394
Full Changelog: v1.16.0...v1.16.1
Geti SDK v1.16.0
What's Changed
- Decouple visualizer for OTX by @igor-davidyuk in #356
- Update data models to account for REST API changes in Geti v1.16 by @ljcornel in #357
- Fix organization retrieval URL with PAT by @ljcornel in #361
- TEST: add VCR recording workflow by @igor-davidyuk in #360
- Fix job id retrieval in optimize_model method by @ljcornel in #364
- Update job datamodel by @ljcornel in #362
Full Changelog: v1.15.0...v1.16.0
Geti SDK v1.15.0
This release makes the SDK compatible for Intel® Geti™ v1.15. The majority of the changes is focused on that, but below is a list of other changes that are worth mentioning.
Release Highlights
- Add compatibility for Intel® Geti™ v1.15. Note that we maintain backwards compatibility for models created in Intel® Geti™ v1.8: This means that the SDK can run inference on deployments from both the latest Intel® Geti™ on-prem and Intel® Geti™ cloud-based release.
- Add benchmarking functionality for deployments through the
Benchmarker
class, as well as a new notebook to demonstrate this feature. - Improve the job monitoring feature, job progression is now displayed via progress bars.
- Image and annotation upload and download now uses multithreading, greatly speeding up the process.
- A new notebook demonstrating an end-to-end workflow, from model creation to deployment, was added to
notebooks/use_cases
. - Multiple dependency updates, minor bug fixes and documentation improvements.
What's Changed
- Add organization ID to session when appropriate by @ljcornel in #294
- Change job monitor functions to use progress bars by @ljcornel in #295
- Decrease verbosity for annotation download by @ljcornel in #296
- Improve model selection mechanism by @ljcornel in #297
- Add
Benchmarker
class and demo notebook for inference throughput benchmarking of Geti models by @ljcornel in #300 - Supported algorithms workaround by @ljcornel in #303
- Workaround for getting supported algorithms by @ljcornel in #305
- Update README.md by @operepel in #307
- Fix organization ID when uploading annotations by @ljcornel in #306
- Mention git lfs in test docs by @igor-davidyuk in #308
- Fix inference endpoints and job data model by @ljcornel in #309
- Improve handling of supported algorithms by @ljcornel in #310
- Fix TaskAnnotationState and Optimization JobType by @ljcornel in #312
- Test benchmarker by @igor-davidyuk in #311
- Pin otx to v1.4.3 by @ljcornel in #313
- Remove snyk scan from security workflow by @ljcornel in #314
- Minor bug fixes related to deployment by @ljcornel in #315
- Inference results visual comparison by @igor-davidyuk in #316
- Add
model_activated
field to ModelMetadata by @ljcornel in #320 - Update
Pillow
dependency toPillow==10.2.*
by @ljcornel in #322 - Add shields.io badges to readme by @ljcornel in #321
- Relax time requirement for demo projects nightly tests by @ljcornel in #325
- Multithread image upload and download by @igor-davidyuk in #323
- Handle the new authorization mechanism and organization IDs by @ljcornel in #326
- Improve robustness of job monitoring by @ljcornel in #327
- Introduce method to switch active model by @igor-davidyuk in #328
- Fix issue with undefined label color for prediction by @ljcornel in #330
- Enable pre-merge tests on Windows and MacOS by @igor-davidyuk in #331
- Update compatibility table in README by @ljcornel in #332
- Add compatibility for anomaly model deployment for Geti v1.13 and up by @ljcornel in #333
- Correctly handle errors in new dex authentication mechanism by @ljcornel in #336
- Handle the new personal access tokens for Geti v1.15 and up by @ljcornel in #335
- Fix proxies issue in GetiSession by @igor-davidyuk in #334
- Modified 'Smart Cities' notebook by @ljcornel in #304
- Fix annotation kind comparison in plot_helpers by @ljcornel in #337
- Update flake8 requirement from ==6.0.* to ==7.0.* in /requirements by @dependabot in #302
- Handle org ID with personal access tokens for Intel Geti cloud instance by @ljcornel in #338
- Bump orjson from 3.9.2 to 3.9.15 in /requirements by @dependabot in #344
- Update pytest-env requirement from ==1.0.* to ==1.1.* in /requirements by @dependabot in #341
- Update datumaro requirement from ==1.4.* to ==1.5.* in /requirements by @dependabot in #347
- geti_session - remove unused proxy kwargs by @igor-davidyuk in #346
- CVS-117852 Fix bandit issues by @ljcornel in #348
- Make
datasets
optional in Project data model by @ljcornel in #339 - Fix maskrcnn postprocessing for geti v1.15 by @ljcornel in #350
- Restrict default top-level permissions for all workflows by @ljcornel in #349
- Add openssf scorecard code scanning by @ljcornel in #351
- OTX decoupling part 1: inference postprocessing by @ljcornel in #352
- OTX decoupling: deployment by @igor-davidyuk in #345
New Contributors
- @operepel made their first contribution in #307
- @igor-davidyuk made their first contribution in #308
Full Changelog: v.1.8.2...v1.15.0