Microsoft Azure Cognitive Services: Custom Vision API

The Custom Vision Service is a machine learning algorithm, provided as a service, supporting image classification for the subject of your choice. This course will show you how to train a model and to integrate it into a variety of applications.
Course info
Level
Beginner
Updated
Nov 7, 2018
Duration
1h 32m
Table of contents
Course Overview
Introducing the Custom Vision Service
Building and Training a Custom Vision Service Model
Working with the Custom Vision Service Prediction API
Working with the Custom Vision Service Training API
Using a Custom Vision Service Model Offline
Description
Course info
Level
Beginner
Updated
Nov 7, 2018
Duration
1h 32m
Description

The Microsoft Cognitive Services, hosted in Azure, provides a range of APIs that support developers in integrating artificial intelligence (AI) features within their applications. In this course, Microsoft Azure Cognitive Services: Custom Vision API, you will gain the ability to work with the Custom Vision Service, understand its benefits and limitations, create, train and improve an image classification model, and work with it within a range of applications. First, you will learn about the problem of image classification that the Custom Vision Service is designed to solve, and how you can create a model for image recognition dedicated to your subject of interest. Next, you will discover via the service APIs how you can integrate image prediction and model training functionality into your own web applications. Finally, you will explore how to export the model for use in offline contexts, such as within a desktop application or embedded in a mobile app. When you are finished with this course, you will have the skills and knowledge of working with the Custom Vision Service needed to develop and use your own classification models to provide image recognition.

About the author
About the author

Andy is a developer and architect, working at a digital agency with a primary technical focus on using .Net and Azure to deliver solutions for clients. Future interests include, .Net, Azure, Azure Functions, Bot Framework, Alexa, Umbraco, Sitecore, and EPiServer.

Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone. My name is Andy Butland, and welcome to my course on the Custom Vision Service, part of the Microsoft Azure Cognitive Services. I've been working as a software developer for 20 years primarily on the web, but focusing on. NET and Azure. In recent years, the availability of machine learning algorithms as services has transformed our ability as developers to add artificial intelligence features to our applications. Functionality that once was the _____ of hard core AI experts, can now be accessed by anyone with some development experience and a Cloud subscription. In this course, we're going to investigate one such service, the Custom Vision service, available from Microsoft and hosted on Azure. Some of the major topics topics we will cover include understanding image classification, the problem the service is designed to solve, training a model via the Azure portal and service APIs, integrating the prediction API into a web application, and exporting a model for offline use within mobile and desktop apps. By the end of this course, you will know how to create and train effective custom vision service models and be able to integrate them within a range of applications. Before beginning this course, you should be familiar with the C# programming language. I hope you'll join me on this journey to learn about the Custom Vision service with the Microsoft Azure Cognitive Services Custom Vision API course, at Pluralsight.

Introducing the Custom Vision Service
Hello. My name is Andy, and welcome to this course introducing the Custom Vision API, part of the suite of artificial intelligence offerings provided by Microsoft under the banner of Cognitive Services. In this module of the course, we'll introduce the service and discuss the types of problems it's designed to solve. By the end of the module, you'll have a good understanding of where it fits within Microsoft's AI offerings and how we might use it to add features to our applications. Here's an overview of the topics we'll cover in this module. Firstly, I'll briefly introduce the Microsoft Cognitive Services and the range of intelligent algorithms provided that we can use within our websites and apps. We'll discuss the differences between Custom Vision and the related Computer Vision service so we can see which one might be most appropriate for our needs. Lastly, we'll look at the problem that a Custom Vision service is looking to solve, that of image classification. We'll review the process of building and training a model and using it to make predictions. Although not necessary for utilizing the service or API, we'll also take what I hope will be a short, but interesting diversion into the theory of image classification problems and how algorithms can be used to solve them.

Building and Training a Custom Vision Service Model
Welcome back to this course introducing the Custom Vision service available through Microsoft Azure. In the last module, we took a little time to introduce the service and the problem of image classification that it's designed to solve. Here we'll be taking a more practical focus, stepping through how we create a Custom Vision service project and build, train, and test a model within it, all via Azure portal interfaces. By the end of this module, you'll understand how to carry out these tasks to create an image classification model dedicated to your chosen subject or domain. Although touched on in the previous model, in this one we'll introduce more fully the example problem domain, model, and application we're going to build throughout this course, that of a garden birds classifier. We're then going to see how, given a preexisting set of source images already classified with the garden bird they show, we can create a model to predict which bird is seen in further pictures. We'll do this in a walkthrough from start to finish using the interfaces provided via the Azure portal.

Working with the Custom Vision Service Prediction API
Thanks for joining me in this next module on working with a Custom Vision service, part of the Cognitive Services suite from Microsoft Azure. In previous modules we've looked at the image classification problem and how the Custom Vision service can help us with solving this using a model trained on a set of images drawn from a single domain. We've seen how we can create, train, and evaluate a model using the Azure portal interfaces. In this module, we're going to step away from the portal and into code demonstrating how we can incorporate the model's predictive results within a web application. Within this module, we'll demonstrate the web application we're going to build, which will incorporate image classification features provided by the Custom Vision service model. We'll cover the information we need to obtain from the portal in order to access the prediction API, which we'll also introduce. After that, we'll carry out a detailed walkthrough of the architecture and code used to build the application, focusing in particular on how we integrate with a prediction API.

Working with the Custom Vision Service Training API
Welcome back to a further module in this Pluralsight course on working with the Azure Custom Vision service. We've seen so far how we can work with the service via the portal interfaces, to build and train a model, and using the Prediction API, how we can integrate the results of image classification operations using that model in our applications. In addition, the service offers a second API, known as the training API, and that's going to be the subject of this module. In a previous module, we've looked at how we can use the Azure Custom Vision portal interface to carry out the various tasks needed in building and training an image classification model. This has involved creating tags, uploading images, and assigning them to those tags, and training the model, creating new iterations of hopefully improving accuracy as we do so. All those actions are supported by an API offered by the service, which means we have the option of integrating model building features into our own applications. Whilst this won't always be useful, and we can of course continue to use the portal for such tasks, there could be cases where maintaining a model becomes part of a business process, and as such it makes sense to provide such features within a custom application. In the upcoming module, we'll see a web application in which some of these features have been implemented, which will serve to demonstrate how we can build an equivalent means of carrying out the model training tasks that are available via the portal. As before, we'll then review the application architecture and step through the source code to show how this has been carried out.

Using a Custom Vision Service Model Offline
Thanks for joining me in this final module on the subject of the Azure Custom Vision service. We've looked in previous modules how we can create and train an image classification model via the Azure portal and APIs, as well as how to integrate predictions for the model into a web application by calling the Prediction API over HTTP. Sometimes though, a real time request over the internet isn't feasible or appropriate, perhaps for a mobile or desktop application where network connectivity may not be permanently available. In this module, we'll look at how we can handle offline scenarios like this by exporting the model into a file that we can embed and use within our applications. We've previously looked at integrating the image classification features offered by the Custom Vision service using the Prediction API, which requires real time, REST-based HTTP calls. To support offline use of the model, we can export it into a format that can be packaged up and distributed with our application. We'll first look at the portal interface steps we need to go through to prepare and export an iteration of our model into the appropriate format for use in different types of applications. Once we have an exported model, we'll then look at how we can use it on three different platforms. Firstly, a Windows 10 UWP application, then a Xamarin-based Android mobile app, and finally, a Python script.