Having implemented a facial recognition chat-bot that analyzes images of random people for hilarious results. I wanted to do more with the amazing A.I. suite on Azure. The Azure IOT Hackathon was the perfect opportunity to combine my knowledge of facial recognition with Azure IOT and serverless technology to develop a practical solution for businesses, and learn more about all of the great services on Azure in the process.

What it does

Mobot is Automated Surveillance System built and deployed completely on Azure. Using the latest Facial Recognition technology and motion detection algorithms, Mobot automatically detects and recognizes known individuals and sends an automated message to you notifying you of their exact location at any point in time. By setting up Mobot at key locations of your operation, you can easily track the movement of your employees/clients as they go about their day. In addition, if an unknown/unauthorized person is detected, an automated alert will be sent to you to help you react quickly to security risks.

As Mobot is built on the Azure IOT suite, it is highly scalable. You can have as few or as many devices connected as you like without affecting performance. So whether you are a small organization looking for a simple way to keep tabs on your operation; Or a large organization looking to enhance and automate your existing security infrastructure. Mobot makes it easy.

How I built it

Mobot was fully built almost completely using the services on Azure.

  • The IOT motion detection cameras were build using simulated devices deployed as a web service on ASP.NET core, using webcams as the source of the video feed with the motion detection algorithm written in Javascript.
  • The ASP.NET web service also provided a easy way to access and train the Azure Face API with new people.
  • Captured images from the Devices are analyzed with Azure Face API to determine if any known faces are found.
  • Images are uploaded to Azure Blob Storage for access and record keeping.
  • Results are sent through the Azure IOT hub through event hub to an Azure Function for notification and storage.
  • Notification are sent through a Slack Messaging API or Email using Sendgrid for visualization of the results.

Challenges I ran into

  • The motion detection Algorithm required quite a bit of tinkering to be sensitive enough to detect movement but not so much that it would constantly spam the IOT hub with messages.
  • The rate limit on the free-tier Face API service restricted frequency at which images can be analyzed. My free trial ran out a long time ago and I can't afford the premier tier rates. :(
  • Connecting and debugging through the Azure Function was a bit difficult due to incomplete understanding of how connection strings through the Event Hub works with Azure Function.

Accomplishments that I'm proud of

  • Building a web app that can be deployed on any machine with a webcam and internet connection to simulate an IOT device.
  • Configuring a motion detection algorithm to capture and upload any images once it detects motion.

What I learned

  • Serverless architecture is pretty sweet, it's very scalable and maintainable.
  • There are some pretty amazing service on offer in Azure, can't wait to try out some other things.

What's next for Automated Surveillance Unlimited

  • I would like to explore Azure Stream Analytics to throttle the rate at which images are processed to circumvent the Azure Face API rate limits.
  • Deploy Mobot on real IOT devices instead of simulated device built on a web interface.
  • Set up Mobot on at work to spy on my co-workers (Just kidding ;-) ).
Share this project: