- Enable support for Python 3.13 by @leoll2 in #664
- Rebranding of Geti name and support for multiworkspace by @jcchr in #666
- handling of multiworkspace environments has been simplified
- Relaxing control of compatibility with Geti, improving export of shapes components by @jcchr in #699
- Fixed issue with export DatasetFormat symbol from data_models.enums by @leoll2 in #696
- Adding Semgrep in the CI by @AlexanderBarabanov in #680
- Updated several dependencies
- @jcchr made their first contribution in #666
Full Changelog: https://github.com/open-edge-platform/geti-sdk/compare/v2.12.0...v2.13.0
- New clients to update the configuration by @maxxgx in #643
ProjectConfigurationClientallows to reconfigure project-level settings, such as auto-trainingTrainingConfigurationClientallows to reconfigure training parameters (hyperparameters, subset split, ...)
- Added parameter
include_modelstoGetiIE.export_projectby @JortBergfeld in #648- This option allows users to choose what set of models to include in the archive (supported values:
all,noneorlatest_active)
- This option allows users to choose what set of models to include in the archive (supported values:
- Updated notebooks scenarios to cover the new features by @leoll2 in #654
- Fixed issue where
GetiIE.import_projectwould sometimes fail to retrieve the project right after importing it by @leoll2 in #644 - Fixed issue where
ModelClient.get_all_model_groupswould fail with visual prompting models by @leoll2 in #661 - Fixed missing attribute in algorithm summary by @leoll2 in #652
- Updated security CI workflows by @AlexanderBarabanov in #659
- Enabled Renovate in CI by @AlexanderBarabanov in #636
- Updated several dependencies
- Dropped support for Python 3.9 by @leoll2 in #656
- Python 3.9 is due to reach its scheduled upstream EOL in October 2025
- Deprecated the old
ConfigurationClient
- Rewritten README from scratch by @leoll2 in #660
- Updated instructions to install and use the SDK
- Updated instructions to run the notebooks
- Extended code samples to cover more use cases
- Significantly reduced the number of required runtime dependencies by @leoll2 in #654
- This should also solve some installation problems on Windows/MacOS
- Updated
DeploymentClientto use the new deployment endpoints by @AlbertvanHouten in #621 - Removed legacy check on deployed model version by @leoll2 in #646
- Updated ruff configuration & fixed linting issues by @leoll2 in #657
- @AlbertvanHouten made their first contribution in #621
Full Changelog: https://github.com/open-edge-platform/geti-sdk/compare/v2.11.0...v2.12.0
- Added support for asyncronous preprocessing of media uploaded in Geti by @warrkan in #612
- Hardened GHA workflows by @AlexanderBarabanov in #603
- Deprecated Datumaro dataset and annotation reader by @JortBergfeld in #616
- The classes now raise a deprecation warning, and will be removed in the following release
- Adopted uv for dependency management by @leoll2 in #609
- Replaced most linters with ruff by @leoll2 in #607
- Replaced call to deprecated deployment endpoint by @AlbertvanHouten in #621
- Removed legacy payload from optimization requests by @JortBergfeld in #605
- Removed some unnecessary dependencies by @leoll2 in #610
- More deps will be removed in the next releases
Full Changelog: https://github.com/open-edge-platform/geti-sdk/compare/v2.10.2...v2.11.0
Bugfixes:
- Keypoints would not be displayed correctly in demo code by @A-Artemis in #617
Full Changelog: https://github.com/open-edge-platform/geti-sdk/compare/v2.10.1...v2.10.2
Bugfixes:
- Fixed problem that would make keypoint deployment crash after label renaming by @maxxgx in #613
Full Changelog: https://github.com/open-edge-platform/geti-sdk/compare/v2.10.0...v2.10.1
Features:
- Add new method to update the label colors and hotkeys by @leoll2 in #598
- Added experimental support for keypoint detection by @A-Artemis in #588
Bugfixes:
- Solved proxy issue in demo data downloader by @leoll2 in #575
- Solved issue with incompatible pytest-recording version by @A-Artemis in #590
- Fixed unrecognized JobType for import to existing dataset by @leoll2 in #594
- Fixed unrecognized 'lifecycle_stage' key in model group response by @leoll2 in #593
- Solved issue with missing prerelease version tag by @leoll2 and @tiepoint-bjornrun in #596
Security:
- Enabled zizmor linter to check GHA workflows by @AlexanderBarabanov in #576
- Enabled certificate validation for mvtec dataset download by @AlexanderBarabanov in #589
Extra:
- Added PR template by @leoll2 in #579
- Added template for reporting bugs by @leoll2 in #582
- Added template for feature requests by @leoll2 in #583
- Added template for questions by @leoll2 in #584
- @A-Artemis made their first contribution in #590
- @tiepoint-bjornrun made their first contribution in #596
Full Changelog: https://github.com/open-edge-platform/geti-sdk/compare/v2.8.0...v2.10.0
- Bugfix: inference would sometimes fail if labels have number-like names by @maxxgx in #567
- Bugfix: inference would sometimes fail due to incorrect handling of empty label by @maxxgx in #566
- Removed legacy Dockerfile by @gdlg in #568
- Security fixes by @AlexanderBarabanov and @maxxgx
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.7.1...v2.8.0
- Bugfix: automatic workspace selection would sometimes not work by @leoll2 in #565
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.7.0...v.2.7.1
- Added support for Python 3.12 by @gdlg in #549
- Bugfix: models with 'tiling' enabled would sometimes return no predictions by @maxxgx in #547
- Bugfix: some notebooks would display predictions with inverted color channels by @leoll2 in #556
- Deprecated inference through OpenVINO model server (OVMS) by @maxxgx in #557
- Deprecated hyper-parameter optimization (HPO) by @maxxgx in #542
- @AlexanderBarabanov made their first contribution in #541
- @gdlg made their first contribution in #549
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.6.2...v.2.7.0
- Bugfix: inference not working for classification projects with label containing spaces in their name by @maxxgx in #539
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.6.1...v2.6.2
- Bugfix: empty label sometimes not recognized during inference by @maxxgx in #534
- @maxxgx made their first contribution in #534
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.6.0...v2.6.1
- Updated model representation to that of Geti V2.6 by @Daankrol in #523
- Mark model response fields as deprecated in 2.6 instead of removed by @leoll2 in #528
- Fix VCR config for unset proxy by @leoll2 in #527
- Tolerate extra keys when deserializing HTTP response by @leoll2 in #529
- CVS-154056 Update training/optimization endpoint paths by @leoll2 in #530
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.5.0...v2.6.0
- Introduce
delete_datasetmethod 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
Anomalytask by @igor-davidyuk in #487 - Implement
get_training_datasetmethod inDatasetClientby @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
- @rajeshgangireddy made their first contribution in #484
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.3.0...v2.5.0
- 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_sizefield 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: https://github.com/openvinotoolkit/geti-sdk/compare/v2.2.0...v2.3.0
- Add
descriptionattribute 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_infofield 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
HttpRequestPostInferenceAction by @ljcornel in #457 - Correctly set headers in
HttpRequestPostInferenceAction by @ljcornel in #458 - Expose Visualizer class by @igor-davidyuk in #426
- Job and Model schema update by @igor-davidyuk in #459
- Use
jsoninstead ofdataparameter 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_projectmethod 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: https://github.com/openvinotoolkit/geti-sdk/compare/releases/v2.1.0...1234
- 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
ProjectClientby @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_getiversion 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_idinModelserialization and deserialization by @ljcornel in #443 - Include
model_group_idupon 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
AsyncVideoProcessorby @ljcornel in #441
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.0.1...v2.1.0
- Add retry mechanism to better handle
ConnectionErrorby @ljcornel in #420 - Undo changes to video tempfile handling, register atexit handler for tempfile deletion by @ljcornel in #423
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v2.0.0...v2.0.1
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 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.
This major release of the Geti™ SDK breaks backwards compatibility with Geti™ servers of version v1.14 and below. Please make sure that your Geti™ server is updated to the latest version of the Geti™ platform, to prevent compatibility issues.
- Update
Videodata 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_idto 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_idfield 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.3by @ljcornel in #407 - Add
PostInferenceHookfeature 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.7by @ljcornel in #410 - Update requirement for joblib to
>=1.2.0by @ljcornel in #411 - Update certifi requirement to
>=2024.2.2by @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
- @step-security-bot made their first contribution in #408
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.16.1...v2.0.0
- Add
default_workspaceto possible default workspace names by @igor-davidyuk in #394
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.16.0...v1.16.1
- 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: https://github.com/openvinotoolkit/geti-sdk/compare/v1.15.0...v1.16.0
This release makes the SDK compatible for Geti™ v1.15. The majority of the changes is focused on that, but below is a list of other changes that are worth mentioning.
- Add compatibility for Geti™ v1.15. Note that we maintain backwards compatibility for models created in Geti™ v1.8: This means that the SDK can run inference on deployments from both both the latest Geti™ on-prem release and Geti™ SaaS.
- Add benchmarking functionality for deployments through the
Benchmarkerclass, 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.
- 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
Benchmarkerclass 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_activatedfield to ModelMetadata by @ljcornel in #320 - Update
Pillowdependency 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 Geti SaaS 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
datasetsoptional 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
- @operepel made their first contribution in #307
- @igor-davidyuk made their first contribution in #308
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v.1.8.2...v1.15.0
- Update
opencv-pythonrequirement to4.9.* - Update
Pillowrequirement to10.2.* - Update
otxrequirement to4.4.4 - Add backwards compatibility for anomaly model deployment
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v.1.8.1...v.1.8.2
- Update pytest requirement from ==7.3.* to ==7.4.* in /requirements by @dependabot in #261
- Update pytest-env requirement from ==0.8.* to ==1.0.* in /requirements by @dependabot in #275
- Update various dependencies by @ljcornel in #288
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v.1.8.0...v.1.8.1
- Predict video on local by @jihyeonyi in #243
- Update job datamodel for new job scheduler by @ljcornel in #251
- Add
modelkey to TestMetaData by @ljcornel in #252 - Improve error handling for version parsing by @ljcornel in #253
- Update SECURITY.md by @ljcornel in #256
- Add
nosecfor safe subprocess use inpredict_video.pyby @ljcornel in #257 - Update openvino to 2023.0 and OTX to v1.4 by @ljcornel in #255
- Update opencv-python requirement from ==4.5.* to ==4.8.* in /requirements by @dependabot in #249
- Bump orjson from 3.8.8 to 3.9.2 in /requirements by @dependabot in #250
- Enable using pre-production dependencies in test builds by @ljcornel in #258
- Update the list of third party programs by @ljcornel in #259
- Require
cryptography>=41.0.2for security reasons by @ljcornel in #260 - Fix for responding to Project Key values in the REST API by @harimkang in #264
- Disable parallel execution on pre-merge tests by @ljcornel in #270
- Fix model_api import and model creation for deployments by @ljcornel in #268
- CVS-116946 Make platform version parsing robust by @ljcornel in #269
- Update Performance attribute interfaces by @harimkang in #271
- CVS-118292 Update ATSS algo name by @ljcornel in #272
- Fix deployment postprocessing by @ljcornel in #273
- Fix OVMS configuration generation for Geti v1.8 by @ljcornel in #276
- Update data model for
Algorithmby @ljcornel in #278 - Update configurable parameter data model by @ljcornel in #279
- correct H1 level heading by @adamczap in #280
- Update
TestResultdata model by @ljcornel in #281 - Fix a potential infinite loop in the label helpers by @ljcornel in #285
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.8...v.1.8.0
- Update vcrpy requirement from ==4.2.* to ==4.3.* in /requirements by @dependabot in #227
- Specify correct project name in notebook 009 by @ljcornel in #229
- Fix name of project to download in notebook 009 by @ljcornel in #233
- Update pytest-cov requirement from ==4.0.* to ==4.1.* in /requirements by @dependabot in #231
- upgrate isort to 5.12.0 to avoid runtime error in pre-commit in python 3.8 by @jihyeonyi in #235
- Update all pre-commit hooks to latest versions by @ljcornel in #237
- Add
step_sizefield to configurable floats by @ljcornel in #241 - Handle re-authentication during media upload robustly by @ljcornel in #244
- @jihyeonyi made their first contribution in #235
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.7...v1.5.8
- Allow more efficient image uploading for datumaro annotation readers by @ljcornel in #224
- Fix deployment for
otx v1.2.2by @ljcornel in #225
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.6...v1.5.7
- Add
groupkey to hierarchical label definition in notebook 001 by @ljcornel in #220 - Add
TestingClientto perform model tests by @ljcornel in #221 - Wait for a project to become ready after it is created by @ljcornel in #223
- Update requests requirement from ==2.28.* to ==2.31.* in /requirements by @dependabot in #222
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.5...v1.5.6
- Add param to disable certificate validation for data download helpers by @ljcornel in #218
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.4...v1.5.5
- Add active learning client for retrieving the active set by @ljcornel in #215
- Allow passing label dictionaries to
Geti.create_single_task_project_from_datasetby @ljcornel in #216 - Add string representation for
GetiVersionby @ljcornel in #217
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.3...v1.5.4
- Add
ONNXas optimization type by @ljcornel in #212 - Remove trailing slash from the base url in the media rest client by @ljcornel in #214
- Update pytest requirement from ==7.2.* to ==7.3.* in /requirements by @dependabot in #211
- Fix nightly tests by @ljcornel in #213
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.2...v1.5.3
- Add score NoneType check in summary function of ProjectStatus by @harimkang in #208
- Update
OptimizedModeldata model by @ljcornel in #209 - Update datumaro requirement from ==1.1.* to ==1.2.* in /requirements by @dependabot in #206
- @harimkang made their first contribution in #208
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.1...v1.5.2
- Update hashing algorithm to
sha3_512by @ljcornel in #204 - Bump otx from 1.1.2 to 1.2.0 in /requirements by @dependabot in #203
- Update ipython requirement from ==8.11.* to ==8.12.* in /requirements by @dependabot in #202
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.5.0...v1.5.1
- Pin orjson version to 3.8.8 to avoid installation error by @ljcornel in #178
- Fix nightly tests for classification project by @ljcornel in #179
- Add workaround to set output blob name if not set by model adapter by @ljcornel in #180
- Add workflow to publish to TestPyPI by @ljcornel in #185
- Filter on polygons when setting Datum segmentation dataset by @ljcornel in #184
- Add
explainmethod for deployment by @ljcornel in #183 - Remove duplicate annotations for datumaro dataset items by @ljcornel in #186
- Remove specific geti version tests by @ljcornel in #187
- Add python version compatibility table to README by @ljcornel in #189
- Add test for python 3.10 by @ljcornel in #188
- Use absolute URLs for links in readme by @ljcornel in #190
- Fix explain for segmentation and anomaly models by @ljcornel in #191
- Replace the deprecated
DatasetItem.image()in DatumAnnotationReader by @ljcornel in #192 - Update datumaro requirement from ==1.0.* to ==1.1.* in /requirements by @dependabot in #175
- Update pillow requirement from ==9.4.* to ==9.5.* in /requirements by @dependabot in #182
- Pagination for project fetching by @ljcornel in #197
- Use pagination when fetching all the projects by @leoll2 in #193
- Fix dataset filtering issue for Datumaro annotation reader by @ljcornel in #194
- Update simplejson requirement from ==3.18.* to ==3.19.* in /requirements by @dependabot in #196
- Bump otx from 1.1.0 to 1.1.2 in /requirements by @dependabot in #195
- Update omegaconf requirement from ==2.1.* to ==2.3.* in /requirements by @dependabot in #120
- Add finalizer to remove demo project after nightly test by @ljcornel in #198
- Add support for additional datasets in project by @ljcornel in #199
- @leoll2 made their first contribution in #193
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.4.1...v1.5.0
- Update otx requirement to
otx==1.1.0by @ljcornel in #176 - Make model wrapper module namespace unique by @ljcornel in #177
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.4.0...v1.4.1
- Migrate from
ote_sdktootx.apiby @ljcornel in #166
This release breaks backwards compatibility with deployments created by earlier versions of the Geti™ platform. Please only update to this version of the Geti SDK if you are sure that your Geti™ server is also on version 1.4 or later.
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.2.4...v1.4.0
- Update ipython requirement from ==8.10.* to ==8.11.* in /requirements by @dependabot in #172
- Fix
upload_and_predict_from_numpy.pyexample by @ljcornel in #173 - Improve error handling for OVMS deployment by @ljcornel in #174
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.2.3...v1.2.4
- Fix saving images and annotations with non-ascii characters in their filename by @ljcornel in #160
- Update tqdm requirement from ==4.64.* to ==4.65.* in /requirements by @dependabot in #161
- Cvs-96625 Update image display method in
show_image_with_annotation_sceneby @ljcornel in #164 - Enable uploading data from nested subsets in DatumAnnotationReader by @ljcornel in #163
- Update datumaro requirement from ==0.4.* to ==1.0.* in /requirements by @dependabot in #155
- Update OptimizedModel and TaskStatus data models by @ljcornel in #165
- Formatting images and cell - Notebook 102 suggestions by @paularamo in #167
- Add notebook
102_from_zero_to_heroby @ljcornel in #159 - Demo Zero to Hero in 9 steps by @paularamo in #154
- Fix deployment saving mechanism and handle errors by @ljcornel in #170
- Add ovmsclient to base requirements by @ljcornel in #169
- Issue 168: Fix tempdir cleanup in
DeployedModelby @ljcornel in #171
- @paularamo made their first contribution in #167
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.2.2...v1.2.3
- Enable OVMS deployment by @ljcornel in #148
- Minor fixes for notebook 010 by @ljcornel in #149
- Update ipython requirement from ==8.9.* to ==8.10.* in /requirements by @dependabot in #151
- Add performance hint to the ovms config by @ljcornel in #152
- Fix bug in deployment resource clean up method by @ljcornel in #153
- Update python-dotenv requirement from ==0.21.* to ==1.0.* in /requirements by @dependabot in #156
- Add a short sleep in
Geti.upload_project_dataafter media upload by @ljcornel in #157 - Add OVMS deployment resources to manifest by @ljcornel in #158
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.2.1...v1.2.2
- Fix issue with deployment for anomaly classification models by @ljcornel in #144
- Require
mistune>=2.0.3for notebooks by @ljcornel in #147 - Update ipython requirement from ==8.8.* to ==8.9.* in /requirements by @dependabot in #145
- Fix issue with temporary resource clean up for
Deployments by @ljcornel in #146
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.2.0...v1.2.1
- Add
sizefield to MediaInformation data model by @ljcornel in #133 - Update available Geti versions by @ljcornel in #134
- Update pillow requirement from ==9.3.* to ==9.4.* in /requirements by @dependabot in #131
- Fix a mismatch in the data model for the Optimization Job by @ljcornel in #136
- Add DeploymentClient to streamline deployment mechanism by @ljcornel in #135
- Update prediction mechanism by @ljcornel in #137
- Update ipython requirement from ==8.7.* to ==8.8.* in /requirements by @dependabot in #138
- Bump openvino from 2022.2.0 to 2022.3.0 in /requirements by @dependabot in #130
- Update various dependencies by @ljcornel in #140
- Minor refactor in
Geticlass and fix inpredict_imagemethod by @ljcornel in #139 - Make
mapskey optional when converting Predictions from dictionary input by @ljcornel in #141 - Fix documentation workflow to deploy from build artifact by @ljcornel in #143
- Make workaround for issue with detection prediction conversion by @ljcornel in #142
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.1.1...v1.2.0
- Fix issue with model to dictionary conversion by @ljcornel in #128
- Only submit train request once all running jobs for task have finished by @ljcornel in #129
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.1.0...v1.1.1
- Minor fix in README.md by @ljcornel in #118
- Fix and improve geti version comparison mechanism by @ljcornel in #117
- Ignore some false positive bandit detections by @ljcornel in #119
- Update datumaro requirement from ==0.3.* to ==0.4.* in /requirements by @dependabot in #121
- Add ClamAV workflow by @ljcornel in #123
- Update
jupyterlabrequirement for notebooks to >=3.5.1 by @ljcornel in #124 - Increase timeout for training job polling upon calling
train_taskby @ljcornel in #125
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.0.4...v1.1.0
- Update ipython requirement from ==8.6.* to ==8.7.* in /requirements by @dependabot in #112
- Properly check for empty annotation before uploading by @ljcornel in #111
- Update numpy version to 1.22.* in requirements by @ljcornel in #104
- Minor update to README.md by @ljcornel in #114
- Update training client to handle new /train endpoint response by @ljcornel in #113
- Update
StatusSummarydatamodel by @ljcornel in #115
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.0.3...v1.0.4
- Add
ScoreMetadatato represent the newscoresfield by @ljcornel in #106 - Add model and prediction client integration tests + update cassettes by @ljcornel in #107
- Update simplejson requirement from ==3.17.* to ==3.18.* in /requirements by @dependabot in #108
- Fix opencv window closure bug by @ljcornel in #109
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.0.2...v1.0.3
- Update ote-sdk requirement to v0.3.1 by @ljcornel in #98
- Add integration tests for
project_client, fixproject_client.add_labelsby @ljcornel in #99 - Update data model for TaskMetadata, improve robustness of active model fetching by @ljcornel in #100
- Use OTE SDK visualizer, add plot helper unit tests by @ljcornel in #101
- Add HTTPS_PROXY as variable to the credentials helper by @ljcornel in #102
- Add tests for video up- and download in Geti integration tests by @ljcornel in #103
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.0.1...v1.0.2
- Add path validation to project download target path by @ljcornel in #87
- Update tqdm requirement from ==4.62.* to ==4.64.* in /requirements by @dependabot in #84
- Update python-dotenv requirement from ==0.20.* to ==0.21.* in /requirements by @dependabot in #86
- Add security note to README for project download by @ljcornel in #88
- Update numpy requirement to 1.21.* by @ljcornel in #89
- Reduce permissions upon directory creation by @ljcornel in #90
- Update README to correctly reference Geti brand everywhere by @ljcornel in #92
- Improve check for video processing in
Geti.upload_project_data()to avoid potential infinite loop by @ljcornel in #93 - Add unit tests to pre-merge test suite by @ljcornel in #91
- Update ProjectStatus and TaskStatus to include new field
n_new_annotationsby @ljcornel in #94 - Add progress bars for up/download of projects, media, annotations and predictions by @ljcornel in #95
- Add ipywidgets to notebook requirements by @ljcornel in #97
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v1.0.0...v1.0.1
- Add a re-authentication mechanism when using token authentication by @ljcornel in #72
- Update pytest requirement from ==7.1.* to ==7.2.* in /requirements by @dependabot in #73
- Update pillow requirement from ==9.2.* to ==9.3.* in /requirements by @dependabot in #74
- Update pytest-html requirement from ==3.1.* to ==3.2.* in /requirements by @dependabot in #75
- Catch value error when invalid datetime string is converted by @ljcornel in #76
- Update nightly test workflow to include tests against Geti
developbranch by @ljcornel in #78 - Enable SSL certificate validation by default by @ljcornel in #77
- Remove disallowed fields from project before POSTing by @ljcornel in #79
- Ignore false positive bandit detections by @ljcornel in #80
- Update numpy, ipython, jupyterlab versions by @ljcornel in #81
- Fix and unify folder naming for project download by @ljcornel in #82
- The
Geticlass now has SSL certificate validation enabled by default. This will result in an error when connecting to a server with a certificate that can't be validated. Note that it is still possible to disable certificate validation by passingverify_certificate = Falsewhen initializing theGetiinstance. Please note that disabling certificate validation is unsafe and should only be considered in a secure network environment.
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v0.2.4...v1.0.0rc1
- Auto detect normalized annotation files for GetiAnnotationReader by @ljcornel in #63
- Fix version detection mechanism and add tests for GetiVersion by @ljcornel in #64
- Minor changes for backward compatibility with SCv1.1 by @ljcornel in #67
- Enable proxies in ONLINE test mode by @ljcornel in #66
- Fix proxy config in tests for online mode by @ljcornel in #68
- Updated Attrs Classes and Fields by @HiteshManglani123 in #65
- Validate media filename upon download by @ljcornel in #69
- Update pytest-env requirement from ==0.6.* to ==0.8.* in /requirements by @dependabot in #70
- Fix anomaly classification deployment by @ljcornel in #71
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v0.2.3...v0.2.4
- Remove VCR from nightly test for demos by @ljcornel in #54
- Improve nightly tests for
demosmodule by @ljcornel in #55 - Update sc_annotation_reader by @ljcornel in #56
- Add version to optimized model by @ljcornel in #57
- Update SDK platform version parsing mechanism by @ljcornel in #58
- Add nightly tests against Geti-MVP by @ljcornel in #59
- Handle failed training jobs in notebook 007 by @ljcornel in #60
- Update example script to store prediction results to file by @ljcornel in #61
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v0.2.2...v0.2.3
- Add coverage report to pre-merge and nightly test artifacts by @ljcornel in #47
- Correctly set permissions on extracted files for anomaly dataset by @ljcornel in #51
- Update pytest-cov requirement from ==3.0.* to ==4.0.* in /requirements by @dependabot in #50
- Update pillow requirement from ==9.1.* to ==9.2.* in /requirements by @dependabot in #48
- Workflow update: Run nightly and integration tests in one step and get coverage by @ljcornel in #53
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v0.2.1...v0.2.2
- Replace SC references in docstrings by Geti by @ljcornel in #33
- Change package name from
geti_sdktogeti-sdk. Import names are unchanged by @ljcornel in #34 - Update vcrpy requirement from ==4.1.* to ==4.2.* in /requirements by @dependabot in #35
- Bump datumaro from 0.3 to 0.3.1 in /requirements by @dependabot in #37
- Bump openvino from 2022.1.0 to 2022.2.0 in /requirements by @dependabot in #38
- Update requests requirement from ==2.26.* to ==2.28.* in /requirements by @dependabot in #39
- Handle exceptions in data deserialization by @ljcornel in #40
- Fix image path in notebook 008 by @ljcornel in #41
- Use personal access token instead of credential authentication by default by @ljcornel in #42
- Add image showing the personal access token menu to README by @ljcornel in #43
- Add nightly tests for
demosmodule by @ljcornel in #44 - Add screenshot of jupyter lab landing page to README by @ljcornel in #45
- @dependabot made their first contribution in #35
Full Changelog: https://github.com/openvinotoolkit/geti-sdk/compare/v0.2.0...v0.2.1
This is the first official release of the Geti™ Software Development Kit (SDK).
The purpose of this SDK is twofold:
-
Provide an easy-to-use interface to the Geti™ platform, to manipulate Geti™ projects and other entities or automate tasks on the platform. All of this from a Python script or Jupyter notebook.
-
Provide an API to deploy and run models trained on the Geti™ server on your local machine. The SDK Deployment module provides a straightforward route to create a deployment for your Geti™ project, save it to a local disk and run it offline.
This SDK includes various example scripts and Jupyter notebooks which illustrate a range of use cases for the SDK. Make sure to check them out if you're getting started!