Repository navigation
🚀 Geti™ v3.3.0
Geti™ v3.3.0 focuses on its core machine-learning foundations: it integrates several models from the Hugging Face ecosystem, enables dataset view-based workflows, allows concurrent predictions from multiple models and optimizes memory usage during training.
✨ Highlights
- New SOTA models – including ConvNeXt V2, RT-DETRv2, EoMT, Mask2Former and DINOv3-based variants of several models.
- Ultralytics YOLO models – are now available for everyone in pre-built Docker images and MSIX binaries images.
- Dataset views for training and export – selected dataset views can now be used as input for training and export.
- Multi-lingual support – UI translations are now available for more than 10 languages.
- Improved memory efficiency – training workflows were optimized to use less memory compared to earlier versions, without sacrificing performance. The improvements are noticeable to all users, especially those running Geti on edge devices.
Models and training
- New transformer-based models – some of the best models available in HuggingFace Transformers are now fully supported in Geti™ for training, inference and optimization. All of them are compatible and validated on Intel® XPU.
- Classification: ConvNeXt V2 (Atto, Base, Large), DINOv3 ConvNeXt (Tiny, Small, Base, Large), DINOv3 ViT (Small, Base, Large)
- Detection: RT-DETRv2 (R18, R34, R50, R101)
- Instance segmentation: EoMT (Large), EoMT-DINOv3 (Large), Mask2Former-Swin (Small, Base, Large)
- Built-in Ultralytics YOLO models – thanks to an agreement with Ultralytics, all YOLO models (YOLO11/12/26) are now included in all Geti's official pre-built Docker images and Geti Windows application (MSIX). This means that users no longer need to build Geti from source to enable and use these models.
- Train from dataset views – it is now possible to select a dataset view as input for training, as an alternative to the existing options of training on the entire dataset or on a previous dataset revision. This unlocks the ability to fine-tune models on a custom subset of your data, which is useful to conduct narrow-scoped experiments or if you want to train a small model specialized on a certain subset of a very large heterogeneous dataset.
- Configurable number of workers – the training configuration was extended with a new parameter to control the number of worker processes for data loading. Users with powerful machines can benefit from more workers to speed up data loading and augmentation, while users with constrained devices may use fewer workers to avoid filling up the memory.
- Consistent subset assignment for video frames – when feasible, all the frames of one video are assigned to the same subset (instead of randomly distributed across subsets) to ensure the three subsets stay as independent as possible.
- Downloadable metric charts – after training, it is now possible to download individual model metric charts as images.
- Better diagnostics for failed jobs – the full traceback is now shown in the logs after a training or quantization job fails.
Projects, datasets and annotation
- Export dataset views – it is finally possible to export dataset views, including their media and annotations, in any of the supported dataset formats (Geti, COCO, YOLO, VOC). The exported zip archive can be shared and/or later imported to another project, just like any exported dataset.
- Monitor jobs – a new "Jobs" panel allows you to track the status and progress of training and quantization jobs. It is accessible from any page (top-right corner) and it allows to optionally filter the jobs by project, view logs and cancel individual jobs.
- Monitor uploads – when uploading media or datasets, the UI now shows a progress bar next to each item. This is especially useful when uploading large files or several media in bulk, as it gives an estimation of the remaining time.
- Multilingual support – Geti now includes built-in UI translations for several languages and varieties, making the platform more accessible to non-English speakers. The currently available options are English, Spanish, French, Portuguese, Dutch, Italian, Russian, Polish and Chinese (incl. regional variations); more will be added in the future.
- Better names for exported datasets: the filenames of exported dataset archives now follow the pattern
<project_name>-<format>-dataset.zip - The keys "Delete" and "Backspace" can be used as shortcut for media deletion.
Inference and deployment
- Manual frame capturing – when an inference pipeline is running, a new "Capture" button allows you to collect the current frame and append it as an image to the dataset. You can then review this frame, annotate it and eventually fine-tune a model on the new sample.
- Concurrent model serving – when requesting predictions with different models in a short interval, the server can now keep up two or more models loaded in memory at the same time, so that interleaved requests do not suffer a latency penalty due to repeated load-unload cycles. This enhancement is especially useful when two users annotate at the same time on different projects, on when a user quickly switches between two models for comparison. The max number of models loaded simultaneously can be configured through the env variable
INFERENCE_MAX_MODELS(default is 2), while the eviction of idle models is controlled viaINFERENCE_MODEL_TTL(default 120s). - Cleaner real-time inference metrics – the charts are now more understandable thanks to the addition of labels and tooltips.
⚙️️ REST API changes
Always refer to the API docs to see the full specification.
Differences from the previous release:
- Introduced a new endpoint
POST /api/projects/{project_id}/pipeline:captureto capture individual frames from a running pipeline. - Introduced a new endpoint
GET /api/model_architectures/{architecture_id}, with consistent semantics and response structure w.r.t. the existingGET /api/model_architectures. - In the response of
GET /api/model_architectures, license-related information is now returned in a structuredlicenseobject withnameandurlproperties. - Introduced a new endpoint
GET /dataset/media/idsto efficiently retrieve the ids of all media in the dataset. This endpoint supports the same filtering options as the media listing endpoint (GET ../dataset/media). - Dataset view-related extensions
– Dataset item, media, and statistics endpoints acceptdataset_view_idto scope results to a specific dataset view.
– Dataset export job parameters acceptdataset_view_id;dataset_idanddataset_view_idremain mutually exclusive.
– Training job parameters acceptdataset_view_id. - The training configuration now accepts a new key
num_workers(int, 0 means that data is loaded by the main process).
🐞 Bug fixes
- Resolved some inefficiencies that caused an excessive memory usage for D-FINE, ECDet and some other model architectures. Because of these issues, some users would experience out-of-memory failures during training or evaluation, especially with large or high-resolution datasets.
- Training jobs that fail abruptly, e.g. due to OOM, no longer cause the model to linger in "in progress" state and disappear from the model screen.
- In instance segmentation projects, evaluation no longer throws errors when some of the items are annotated with the "Empty" label.
- Cancelled jobs no longer appear as "failed" in some cases.
- In the video annotator, the predicted labels previewed in the frame selector now correctly match the actual classes shown when opening the respective frames in Prediction mode.
- The "Select all" checkbox now truly select all media that match the current filters.
- Datasets with more than 256 labels now load without errors.
- Upload of large media and dataset no longer timeouts after some minutes.
- Users should no longer see "database locked" errors when performing operations while a bulk media upload is in progress.
- For trained timm-based classification models, the respective license is now correctly shown in the Models list.
- Label color changes are now correctly reflected in the predicted labels displayed in the inference stream.
- The "Input size" configurable parameter now displays correctly when there's only one possible value.
- Orphan videos uploaded during an unfinished video-file source creation are now properly cleaned up.
- When launching Geti in development mode for the first time, API requests no longer fail with "error_cert_authority_invalid" due to an untrusted self-signed certificate.
📖 Documentation
- Various improvements to the README and guides for installation, upgrade and contributing.
- Launched the new Geti blog and published the first technical article, covering the MobileSAM inference architecture that combines native OpenVINO execution with browser workers for responsive interactive segmentation.
Download this release
Windows Installer (run Geti as a native Windows application, with prebuilt images for Intel® XPU, NVIDIA® CUDA, and CPU-only environments):
Download CPU-only version installer.
Download Intel® XPU version installer.
Download Nvidia® CUDA version installer
Docker Images
ghcr.io/open-edge-platform/geti-cpu:3.3.0
ghcr.io/open-edge-platform/geti-xpu:3.3.0
ghcr.io/open-edge-platform/geti-cuda:3.3.0
Refer to the installation and upgrade documentation for more details, including advanced deployment scenarios.
Geti Library (getitune) v0.4.0
getitune is the low-code transfer-learning library that powers Geti training, export, optimization, and inference. Version 0.4.0 expands the backend options for vision-model development and improves repeatable deployment validation.
The new release is available as a Pypi package (getitune) or it can be installed from source following the documentation.
Key new features and improvements
- Hugging Face Transformers Engine Support: Added support for the Hugging Face Transformers engine, expanding model enablement across all computer vision tasks supported by Geti™. External contributors can now easily integrate new models from supported Transformers AutoModel collection.
- Enhance getitune benchmark with OpenVINO performance benchmark capabilities
Refactoring and bug fixes
- Bound cached mosaic and mixup augmentations image memory, reduce default number of pre-processing threads to reduce memory consumption during training and inference.
- Make Ultralytics XPU EMA updates compatible with BF16 model weights.
- Change backbone for DEIMV2 to HF Transformers version to reduce manual implementation burden and increase performance.
- Clean up unnecessary warnings in training logs
- Fix flaky ultralytics integration tests and enable semantic segmentation models in getitune benchmark
Source code for open source components, provided as required by license.