Category: AI

AI

Download the Developer’s Guide to Building AI Applications

O'Reilly  E-book

Thinking about getting started with AI can be a daunting task. Thankfully there is a free e-book called A Developer’s Guide to Building AI Applications that is available to help get you started.

Artificial intelligence (AI) is accelerating the digital transformation for every industry, with examples spanning manufacturing, retail, finance, healthcare, and many others. At this rate, every industry will be able to use AI to amplify human ingenuity. In this e-book, Anand Raman and Wee Hyong Tok from Microsoft provide a comprehensive roadmap for developers to build their first AI-infused application.

This e-book provides an easy introduction to the tooling, infrastructure, and services provided by Microsoft AI Platform for creating powerful, intelligent applications. With this e-book you will learn the key ingredients needed to develop an intelligent chatbot. In addition you will also…

  • Understand how the intersection of cloud, data, and AI is enabling organizations to build intelligent systems.
  • Learn the tools, infrastructure, and services available as part of the Microsoft AI Platform for developing AI applications.
  • Teach the Conference Buddy application new AI skills, using pre-built AI capabilities such as vision, translation, and speech.
  • Learn about the Open Neural Network Exchange.

Download your copy now.

Enjoy!

    References

    https://info.microsoft.com/ww-landing-ai-developers-bot-ebook.html

    AIAzureDevelopmentEventsProductivity

    Microsoft Build 2018–Day 2 Highlights

    Today’s keynote by Joe Belfiore was focused on Multi-sense + Multi-device for Microsoft 365, which is Windows, Office and EMS

    Image showing how Microsoft 365 brings together Office 365, Windows 10, and Enterprise Mobility + Security (EMS), a complete, intelligent, and secure solution to empower employees.

    Announcements

    • Fluent Design System updates.
    • UWP XAML Islands, which lets you incorporate UWP into WinForms, WPF and Win32 applications. This also means you can start to bring in the Fluent Design System into these UI frameworks.
    • Windows UI Library, which brings native platform controls as NuGet packages instead of being tied to the OS version. This will work from the Windows Anniversary Update and newer.
    • .NET Core 3.0, which will support side-by-side runtimes, along with support for WinForms, WPF and UWP.
    • MSIX, which is dubbed the best technology for installing applications on Windows. This inherits the Universal Windows Platform (UWP) features, works across Enterprise or Store distributions, and supports all Windows applications.
    • Windows SDK Insider Preview – https://aka.ms/winsdk
    • New developer revenue sharing model. Developers will get 85% when their app is found in the Microsoft store, and 95% when you provide your customers to your app in the Microsoft store.
    • Microsoft Launcher on Android will support Timeline for cross-device application launching. On iOS this will be supported through Microsoft Edge.
    • A new “Your Phone” experience coming soon to Windows 10 that enables you to see your connected phone text messages, photos and notifications and then interact with them without having to use your phone. Really neat experience – now if only they support Windows Mobile 10 Smile
    • Microsoft Sets was officially shown and demonstrated how it can be used for an easier way to organize your work and allow you to get back to work where you left off when ready. This means not having to have 25+ tabs open in Chrome or Edge. Nice!
    • Adaptive Cards is being added to Microsoft 365, which will enable developers to create rich interactive content within conversations. They demonstrated a GitHub Adaptive Card for Outlook (365) where you could comment and close an issue. Another example shown was paying for your invoice from an email.
    • There was a lot of buzz for Microsoft Graph, which is core to the Microsoft 365 platform. Microsoft Graph helps developers connect the dots between people, schedules, conversations, and content within the Microsoft cloud.
    • Cortana and Alexa start speaking to one another. Sometime in the future you will be able to access your Alexa device through Windows 10 and likewise on an Amazon Echo you will ne able to speak to Cortana.

    Enjoy!

    References

    https://developer.microsoft.com/en-us/events/build

    Modernizing applications for our multi-sense, multi-device world

    Microsoft 365 empowers developers to build intelligent apps for where and how the world works

    AIAzureDevelopmentEventsProductivity

    Microsoft Build 2018 – Day 1 Highlights

    This is my first attendance at the annual Microsoft Build conference taking place in Seattle, WA. I have to tell you that so far I’m not disappointed. Here are some of the highlights from today’s events:

    • Azure is becoming the world’s computer: Azure | Azure Stack | Azure IoT Edge | Azure Sphere.
    • Azure IoT Edge runtime which runs on Windows or Linux is now being open sourced.
    • Microsoft showed off Cortana and Alexa integration which was pretty cool.
    • New Azure AI infrastructure announced: Project Brainwave which is a real-time AI on cloud and edge devices.
    • Announced Project Kinect for Azure, an Azure AI-enabled edge device.
    • Visual Studio Live Share is now generally available. This provides real-time collaborative development, shared debugging, independent views and works across Visual Studio and Visual Studio Code (Windows, Mac and Linux).
    • Azure Event Grid is getting new improvements like dead lettering (DLQ) and custom retry policies. Event Grid is also adding new event publishers for Azure Media Services and Azure Container Registry, and new event handlers for Storage Queue and Relay Hybrid Connections. Finally Azure Event Grid is providing an alternative form of endpoint validation. Event Grid provides reliable event delivery at massive scale (millions of events per second), and it eliminates long polling and hammer polling, and the associated costs of latency.
    • Azure Cosmos had some interesting updates like the new multi-master write support. It also provides API support for MongoDB, SQL, Table Storage, Gremlin Graph, Spark, and Casandra.
    • Azure Search now integrates Azure Cognitive Services to provide built-in enrichment of content using AI models, and it enables immersive search experiences over any data.
    • The Fluent Design System which Microsoft first debuted at Build 2017, is expanding beyond Universal Windows Platform (UWP) apps and will be available for Windows Forms, WPF and native Win32 applications.
    • Windows Timeline is coming to iOS and Android.
    • Azure Functions updates: Durable Functions reaches general availability, and Azure Functions now leverages the App Service Diagnostics.
    • .NET Core 3.0 and .NET Framework 4.8 announced were announced, and .NET Core 3.0 is coming to desktop development (awesome!)
    • Visual Studio 2017 version 15.7 and the next update version 15.8 preview 1 were released.
    • Visual Studio App Center integration with GitHub.
      • Visual Studio IntelliCode announced, which brings you the next generation of developer productivity by providing AI-assisted development.

      This already feels like a lot but really it’s just scratching the surface. I’m looking forward to what is announced today in the keynote followed by more technical workshops and sessions.

      Enjoy!

      References

      https://developer.microsoft.com/en-us/events/build

      AIAzureDevelopment

      Using the Face API from Microsoft Cognitive Services (part 2)–Face Verification

      In part 1 of this series I showed you how to create a Face API subscription from Microsoft Cognitive Services and then use the Face API library to detect faces from an image. In this post we’ll expand on the previous to include Face Verification. Let’s get started.

      Picking up where we left off, we will want to detect the most prominent face from an image and then use the detected face and verify it to see if they belong to the same person.

      1. I refactored the code in the BrowsePhoto method to return an image that was selected. This method is then used by both the Identification and Verification images processes.

      2. I refactored the UI to show 2 different images files, so means there is now 2 click events to identify the person in the image and then use this identification to verify its the same person when we load up another image. Both of these events can be seen here:

      image

      3. Finally we will be using the Face API VerifyAsync method to check to faces and determine if they belong to the same person.

      image

      4. Now let’s run the application across a few images and see how well it performs with two images of me from different years. In the first result I have an image from 10+ years ago and the Face API has come back that its 66% certain it’s the same person.

      image

      How about using something more recent. In this next test run the Face API again detects its 75% certain its the same person.

      image

      Wrap up

      As you can see I’m able to use the Face API from Microsoft Cognitive Services to not only detect by also verify identity. The Face API provides other methods that can be used for grouping, people together and training it to recognize specific people with their identification method.The Face API has also recently been updated to support a large group of people (1,000 in the free tier and over 1,000,000 in the paid tier).

      Enjoy!

      References

      Sample Code

      Face API Documentation

      AIAzureDevelopment

      Using the Face API from Microsoft Cognitive Services (part 1)–Face Detection

      Earlier this month I wrote about giving your applications a more human side with Microsoft Cognitive Services, which provides a number of API’s that you can start using immediately in your applications. Today I’ll dive into the vision API’s and show you how you can leverage the Face API to detect faces in your images.

      What is the Face API?

      The Face API provides facial and emotion recognition and location in an image. There are 5 main areas for this API:

      – Face detection
      – Face verification
      – Find similar faces
      – Face grouping
      – Face identification

      Potential uses for this technology include facial login, photo tagging, and home monitoring. You can also use it for attribute detection to know age, gender, facial hair, whether the person is wearing a hat, wearing glasses, or has a beard. This API can also be used to determine if two faces belong to the same person, identify previously tagged people, find similar-looking faces in a collection.

      So let’s get started with creating an Face API resource and then a small application to detect faces. In the next post I’ll extend this example to do face verification to determine if it’s the same person.

      Step 1 – Requirements

      To get started with Microsoft Cognitive Services and specifically the Face API you will need to have an Azure Subscription. If you don’t have one you can get a free trial subscription which includes $250 of credits to be used for any Azure services.

      You will also need to have Visual Studio 2017 installed, which you can download for free.

      Step 2 – Subscribe to the Face API

      1. Log in to the Azure portal and click on the Create a resource link in top left corner. From here select AI + Cognitive Services and then select Face API as shown here:

      image

      2. Give your Face API a name, select your subscription, location, resource group and then select the F0 Free tie for pricingr:

      image

      3. After a few seconds your Face API subscription will be created and ready for you to start using. At this point you will need to get two items, your subscription key and your endpoint location.

      The endpoint URL is shown on the Overview section and your subscription keys are located under Keys in the Resource Management section as shown here:

      image

      Now that we have the subscription key and endpoint let’s create our application.

      Step 3 – Create new Application and reference the Face API

      1. Open Visual Studio and from the File menu, click on New then Project. From here you can select any type of application but for me I’m going to create a new WPF application in C#. This code will also work with Xamarin.Forms project if you wanted to try this out for mobile.

      image

      2. Go to the Solution Explorer pane in Visual Studio, right click your project and then click Manage NuGet Packages.

      3. Click on the Include prerelease checkbox and then search for Microsoft.Azure.CognitiveServices.Vision.Face. You might be wondering why are these API’s still in preview? Well the Cognitive Services API’s were previously called Microsoft.ProjectOxford.* and are now being moved over to Microsoft.Azure.CognitiveServices.*. Once that migration is complete they should be out of prerelease and is what you should be using from then on.

      image

      4.Now let’s go to the code and configure the Face API client library.

      Step 4 – Configure the Face API Client Library

      1. Open up your MainWindow.cs file and declare a new FaceServiceClient instance as shown here

      image

      2. Insert your Face API subscription key and endpoint. Replace “YOUR-SUBSCRIPTION-KEY-GOES-HERE” with your subscription key from step 2. Do the same for the second parameter which is your endpoint URL.

      Step 5 – Upload images, detect faces, and show facial attributes

      I wont walk through the entire code as you can do that on my GitHub repository. Instead in this step I’ll show you how I used the Face API to detect the faces, draw a square around each detected face, and finally show you the facial attributes when the mouse hovers over a detected face.

      It’s worth mentioning that the maximum size of the image to upload is 4 MB.

      image

      As highlighted above you will take a photo you have and upload it to the Face API where it will detect an array of faces. The largest face in the image is usually what is returned first in the array. Using the DetectAsync method, you have the option to pass in an IEnumerable of FaceAttributeTypes. Just declare a list of the attributes you want back in the results like so:

      image

      The second highlighted code shows were we store the facial attributes returned for each face. The GetFaceDescription method is used when you mouse over a detected face and you want to show the attributes that were returned from the Face API:

      image

      Now let’s run our application and try detecting some faces for an image containing one or more faces. After a few seconds the API will return back with the results. As you can see we’re drawing blue squares for the makes and pink for the females, and when you hover your mouse over one of the faces I’m displaying the description of all the facial attributes returned by the API.

      image

      Wrap up

      As you can see its very easy to add AI to your application with Microsoft Cognitive Services. Today I showed you how you can leverage the Face API for facial recognition.

      Enjoy!

      Resources

      Sample Code

      Face API Documentation

      AIAzure

      Give your solutions a more human side with Microsoft Cognitive Services

      image

      Making AI Possible

      Today there are three mega trends converging that are making AI possible:

        1. Big Compute
        2. Powerful Algorithms
        3. Massive Data

          Microsoft is in a unique position to help you take advantage of these trends with three important assets:

            1. Microsoft Azure, providing the best cloud for developers
            2. Breakthrough in AI Innovations, through Microsoft Azure and their AI resources this innovation is brought to you as a developer
            3. Data. Microsoft Graph gives you access to the most important data for your business and/or application, your data!

              Microsoft has a strong vision that AI should be democratized and be available to everyone – developers, data scientists, enterprises, and yes even your dog. Microsoft has been involved and conducting research into AI for the last couple decades and infusing it into their products and services (Bing, Xbox, Office 365, Skype, Cortana, LinkedIn, etc). This research eventually found its way into a product known as Microsoft Cognitive Services.

              Introducing Microsoft Cognitive Services

              Microsoft Cognitive Services, formerly known as “Project Oxford” was first announced at Build 2016 conference and released as a preview. This is a rich collection of cloud-hosted APIs that let’s developers add AI capabilities such as vision, speech, language, knowledge and search into any application across any platform (Windows, Mac, iOS, Android, and Web) using simple RESTful APIs and/or SDKs (NuGet packages). Rather than having to deal with the complexities that come with machine learning, Cognitive Services provides simple APIs that handle common use cases, such as recognizing speech or performing facial recognition on an image.These APIs are based off machine learning and fit perfectly into the conversation-as-a-platform philosophy.

              With Microsoft Cognitive Services, you can give your applications a human side. To date there are currently 29 APIs across 5 categories of Vision, Speech, Language, Knowledge, and Search. Let’s take a look at each of these categories:

              azure-meetup-getting-started-cognitive-services-7-638

              Vision – From faces to feelings, allow your apps to understand images and videos

              Speech – Hear and speak to your users by filtering noise, identifying speakers, and understanding intent

              Language – Process text and learn how to recognize what users want

              Knowledge – Tap into rich knowledge amassed from the web, academia, or your own data

              Search – Access billions of web pages, images, videos and news with the power of Bing API’s

              Labs – Microsoft Cognitive Services Labs is an early look at emerging technologies that you can discover, try and provide feedback before they become generally available

              Why Use Microsoft Cognitive Services?

              So why choose these APIs? It’s simple, they just work, their easy to work with, flexible to fit into any application or platform and their tested.

              Easy – The APIs are easy to implement because their simple REST calls.

              Flexible – These APIs all work on whatever language, framework, or platform your choose. This means you can easily incorporate into your Windows, iOS, Android and Web apps using the tools and frameworks you already use and love (.NET, Python, Node.js, Xamarin, etc.).

              Tested – Tap into the ever growing collection of APIs developed by the experts. You as developers can trust the quality and expertise built into each API by experts in their field from Microsoft Research, Bing, and Azure Machine Learning.

              What’s also nice to know is that Microsoft Cognitive Services is now using the same terms as other Azure services. Under these new terms you as a Microsoft Cognitive Services customer, you own and can manage and delete your data.

              Cognitive Services Real-World Applications

              The following is a set of possible real-world application scenarios:

              image

              The Computer Vision API is able to extract rich information from images to categorize and process visual data and protect your users from unwanted content. Here, the API is able to tell us what the photo contains, indicate the most common colors, and lets us know that the content would not be considered inappropriate for users.

              The Bing Speech API is capable of converting audio to text, understanding intent, and converting text back to speech for natural responsiveness. This case shows us that the user has asked for directions verbally, the intent has been extracted, and a map with directions provided.

              Language Understanding Intelligent Service, known as LUIS, can be trained to understand user language contextually, so your app communicates with people in the way they speak. The example we see here demonstrates Language Understanding’s ability to understand what a person wants, and to find the pieces of information that are relevant to the user’s intent.

              Knowledge Exploration Service adds interactive search over structured data to reduce user effort and increase efficiency. The Knowledge Exploration API example here demonstrates the usefulness of this API for answering questions posed in natural language in an interactive experience.

              Bing Image Search API enables you to add a variety of image search options to your app or website, from trending images to detailed insights. Users can do a simple search, and this API scours the web for thumbnails, full image URLs, publishing website info, image metadata, and more before returning results.

              These APIs are available as stand-alone solutions, or as past of the Cortana Intelligence Suite. These APIs can also be used in conjunction with the Microsoft Bot Framework.

              Use Case: How Uber is Using Driver Selfies to Enhance Security

              There is a use case where Uber is using Microsoft Cognitive Services to offer real-time ID check. Using the Face API, drivers are prompted to verify their identity by taking a selfie and then verifying that image with the one they have one file. The Face API is smart enough to recognize if you’re wearing glasses or a hat letting you take action and ask your users to remove and retry the verification process. Uber has made rides safer by giving their clients peace of mind that the drivers have been verified.

              image

              Dig Deeper into AI

              If you’re interested in learning more about Microsoft AI then be sure to checkout these two websites:

              http://azure.com/ai

              http://aischool.microsoft.com

              62e3621c-efa5-4df8-81fa-53ed5187f9c9

              In my next post I’ll dig deeper into one of these APIs and walk through the code on how easily it is to incorporate into your applications.

              Enjoy!

              References

              Microsoft Cognitive Services homepage

              Microsoft Cognitive Services blog

              Try Microsoft Cognitive Services

              Cognitive Services Labs

              Microsoft updates Cognitive Services terms

              How Uber is using driver selfies to enhance security, powered by Microsoft Cognitive Services