Building End-to-End Pipelines with the Intel® Geti™ SDK

May 14, 2024

Get Started with Intel Geti Software.

author-image

By

The demo showcases key features and functionalities of the Intel® Geti™ to help developers build end-to-end AI application pipelines, utilizing the computer vision models built using Intel Geti software.

 

Transcript:

The Intel Geti platform has been making major strides in improving customer workflows for computer vision model development and speeding up the time to model. With an easy-to-use interface, bringing together various stages of computer vision model development, from data annotations to model training and hyperparameter tuning, it has gotten easier than ever before for organizations to innovate with AI.

Furthermore, optimizing the trained model is crucial to deliver the best performance on a target hardware, be it for the edge or a data center computing environment. And, with built-in optimizations for the OpenVINO toolkit, the Intel Geti platform has further simplified the model optimization and deployment workflows as well.

Once the model is trained, developers and data scientists often need to build optimization pipelines, and pre-processing and post-processing pipelines to put the trained model in production. They may often also need to capture new data using a separate pipeline that may be assessed and potentially utilized for retraining, completing the end-to-end pipeline.

The glue that makes it easy to take not only the optimized model for the OpenVINO toolkit for deployment but also integrate model development and retraining workflows in the pipeline is the Intel Geti SDK. While the Intel Geti platform delivers value by hiding the technical complexities behind an intuitive user interface, the Intel Geti SDK is a powerful toolkit for developers and data scientists building end-to-end computer vision solutions.

Through easy-to-use functions calling the same RESTful APIs that the Intel Geti web application does, Intel Geti SDK makes it easy for developers to interact with the platform through their development pipeline – for creating new projects, uploading data and annotations, triggering training, modify training and optimization parameters etc. It also provides functionalities that simplify deployment pipelines, making them agnostic of model architecture or task types – and doing all the hard work of identifying task types and model architectures, and invoking the right pre-processing and post-processing functions automatically.

The RESTful APIs make it easy to interact with the platform over an HTTPS network. The user interface does the same through a client-server mechanism, where the client web application makes requests to the server for information to be displayed on user's web browser. While developers have the flexibility to use the APIs in their own way to integrate into their end-to-end pipeline, the Intel Geti SDK provides easy functionalities to do the same.

The key elements of the Intel Geti SDK for such interactions are termed as REST clients – and comprise of Geti clients, project clients, media clients, configuration clients, etc.

The Geti client helps manage the user’s session and provides direct-to-use basic functionalities, such as uploading and downloading projects, creating new projects from a dataset, uploading media to the server and using the model to make predictions, or creating deployments by downloading the model, etc.

The first step to begin such interactions is to invoke the Geti client and activate a session with user’s authentication.

Now, we will use this Geti client to download a project by its name. Similarly, upload_project function enables us to download a project by name.

Creating a ProjectClient object makes it even easier to interact with all projects in the workspace. It allows for getting a list of all projects, look into details of any specific project, etc.

Similary, ImageClient or VideoClient can be used to upload, download, or delete a set of images or videos to or from a project.

AnnotationClient object can help with uploading or downloading annotations for respective media in a project. Useful for ongoing projects to be trained using the Intel Geti platform.

Other important client classes are ModelClient and ConfigurationClient. ModelClient enables users to look at the details of available models and interact with the specific versions, formats, or optimizations. ConfigurationClient enables users to update or change editable training and optimization parameters, without interacting with the UI. DeploymentClient has the most important function to help deploy the trained model, and run the deployment in your choice device

This step is very important, as models are known to drift on deployment, and new data needs to be collected to retrain and redeploy the model. So, the Intel Geti SDK can be used here to push the new data back to the project, provide feedback, retrain the model, and download the updated model for redeployment.

With these versatile functionalities, the Intel Geti SDK truly enables enterprise developers to easily integrate the entire model development workflow into their end-to-end development pipeline, to automate ingesting new data, retraining the model with new data, and deploying the newly trained model back into production. Learn more about the Intel Geti SDK on the github repository.