An AI on the Edge : a Microsoft Azure Story

Remember when I started by last internship four months ago ? Well, now is the time to deploy it using Microsoft Azure IoT Edge !

This is my first experience working on the Azure IoT Edge Solutions provided by Microsoft, and I have to say : this is real fun. Here what I want to achieve is to deploy my AI algorithm on “edge” devices. This process will then allow them to work disconnected from the cloud but with all the advantages of it.

Here is the architecture that I am working on :


The key of this strategy is that everything is deployed as an Edge Module in a Docker Container. Every one of those modules is autonomous and they are all able to communicate with each other through the IoT Edge Runtime (purple in the frame). All those modules can do some processing inside the device and then send their conclusion on the cloud using the Azure IoT Hub. This solution avoids a lot of messages traffic that can coast a lot of money. Indeed if my AI DCOP is in on the cloud, every device will have to send their data on it (let's say every second) which will make my system a really slow one.

What I also really like is that the system is modulate which allow me to add a lot of other process to improve my artificial intelligence. For instance, I can add to the DCOP system another AI (like a Machine Learning model) that will do some video recognition (Emotion Recognition on the frame). In some specific scenarios, we would like to add a camera in the room able to detect facial emotions, and therefore, detect when a patient is in pain.

Here, all my modules (IA DCOP, Emotion Recognition and Database) are written in Python and are running on Docker Ubuntu Xenial containers. I also add an Azure Stream Analytics that will aggregate values coming from my different modules.

To use all of this Microsoft magic, I use the Azure Portal with the Azure CLI and the Azure IoT Edge Sdk.

For those interested, I also started a little cheat sheet where I store all azure-iot-edge-runtime-ctl and docker commands that I use : https://github.com/SachaLhopital/azure-iot-edge-cheatsheet.
   

Improve the Configuration of Docker Compose with Environment Variables

I recently started working on a new python project (yeah!). This project is really interesting, but the first lines of code are at least a d...