Awesome
Intelligent Experiences On Containers
Hands-on workshop to create a container-based backend platform that exposes async AI services
Service | Build | Release |
---|---|---|
Cognitive Orchestrator | ||
Cam-Frame Analyzer | ||
Crowd Analyzer | ||
Core Lib | ||
Cognitive Services Helper |
Overview
Follow this detailed walk through guide to see how a Crowd Analytics platform, built on Azure, can provide occupancy insights in a workspace, or some other location, while having technical fun with an AI-driven platform on Kubernetes.
Almost all enterprises already operate networked CCTV cameras in their buildings and stores. This Crowd Analytics Platform extends the capabilities of these cameras to include additional useful intelligence, to improve customer experience and safety, through AI.
NOTE: It is important to mention before diving into the platform that leveraging and designing AI powered solutions should always adhere to responsible and ethical principles that reflect trust and timeless values. I personally like Microsoft's principles about fairness, inclusiveness, reliability, safety, transparency, privacy, security and accountability. Read more
Crowd Analytics
Crowd analytics (also known as footfall analytics) is about gaining a better understanding of the demographics (age, gender,...) of who is visiting your location, when they are visting, and how many are visting.
This workshop walks through a guided deployment of a connected, secure and reliable Crowd Analytics platform, leveraging cloud native technologies.
Crowd analytics scenarios can be used in:
- Retail shops in many industries (like telecom shops, consumer goods retailers, mallsā¦)
- Public and Private Parks
- Events
- Building safety and evacuation readiness
- And many other scenarios
Advanced cloud technologies can provide key business metrics that allow stakeholders to make informative decisions on how to improve experience and/or performance.
Open Source and Azure Technologies
Azure already provides a sophisticated platform to develop and operate such a system, and the Crowd Analytics platform makes use of a number of Azure's services.
Kubernetes has become the defacto cloud native technology to develop and operate sophisticated containerized systems anywhere, and Azure Kubernetes Service (AKS) takes care of a lot of the cluster management tasks, allowing you to focus more on the solution you want to build.
Key technologies used in the workshop include:
- Azure Kubernetes Service (AKS)
- Azure Container Registry (ACR)
- Azure Service Bus
- Azure IoT Hub
- Azure Cognitive Services
- Azure Storage
- Azure DevOps
- Power BI
- and many more
I'm really excited to share with you the great journey I took to build this system.
Workshop Agenda
- Dev Environment Setup
- Visual Studio Code
- Azure CLI
- Other tools
- Solution Whiteboarding & Architecture
- Walkthrough the system objectives
- Review Azure architecture
- Creating Azure Prerequisites
- Resource Group
- Storage Account
- Cosmos DB
- Service Bus
- Cognitive Service
- Container Registry
- Virtual Network
- Log Analytics
- App Insights for each app
- AKS Cluster
- Essential kubernetes cluster provisioning
- Kubernetes cluster preparations
- Creating IoT Hub and IoT Edge Device
- IoT Hub Provisioning
- Message Routing to Service Bus
- Device Options
- Workshop Device Setup
- Services Deployment & Testing
- Connecting to Azure
- Source Code
- Continuos Integration
- Continuos Delivery
- Testing
- Data Visualization
- Power BI Desktop
- Connecting to Cosmos Db
- Query edit and data prep
- Design the report
- Publish the report
- BONUS Track: Crowd Analytics APIs
- Overview
- Deployment
- API Testing
- BONUS Tracks (coming soon)
- Advanced AKS Provisioning
- AKS Preview Features
- Azure AD Integration
- Helm initialization
- Node pools (with Windows Pool)
- Virtual Nodes
- Application Gateway Ingress Controller
- Azure Firewall and Egress Lockdown
- API Management
- Azure AD Integration
- Realtime Communication
- Cosmos DB Change Feed
- SignalR client communication
- IoT Edge Deployment
- IoT Edge on Kubernetes
- Custom Modules
- IoT Edge on Raspberry Pi with USB Camera
- Advanced AKS Provisioning
Suggested 1-Day Workshop Agenda
Topic | Duration |
---|---|
Registration and Setup | 15 mins |
Why Intelligent Experiences? | 20 mins |
Intelligent Retail - Crowd Analytics Overview | 25 mins |
Break | |
Solution White-boarding | 30 mins |
Lab - Azure Services Provisioning | 60 mins |
Lab - AKS Provisioning | 60 mins |
Lunch | |
Lab - IoT Hub Provisioning | 30 mins |
Lab - DevOps & Services Deployment | 90 mins |
Break | |
Lab - Dashboard & Data Visualization | 30 mins |
Q and A + Next Steps | 30 mins |
Bonus Workshop Material (Take home tasks) | |
Bonus 1 - Advanced AKS Provisioning | - |
Bonus 2 - IoT Edge Development | - |
About the project
I tried to make sure I covered all aspects and best practices while building this project, but all included architecture, code, documentation, and any other artefacts represent my personal opinion only. Think of it as one suggested way in which this platform could be built.
Keep in mind that this is a work-in-progress, and I will continue to contribute to it when I can.
All constructive feedback is welcomed š
Support
You can always create issue, suggest an update through PR or direct message me on Twitter.
Contributors
Cognitive-Samples-IntelligentKiosk
Part of this workshop source code is based on Cognitive-Samples-IntelligentKiosk. Visit the GitHub repo to know more about all of the great capabilities of Azure Cognitive Services.
HTML5 UserMedia
Using a webcam through HTML5/JS code based partially on the great demo from DaveVoyles
Author
Mohamed Saif |
GitHub |
Blog |
License
All Intelligent Experiences On Containers documentation and samples are licensed with the MIT License. For more details, see LICENSE
Developer Code of Conduct
The image, voice, video or text understanding capabilities of the Intelligent Kiosk Sample uses Microsoft Cognitive Services. Microsoft will receive the images, audio, video, and other data that you upload (via this app) for service improvement purposes. To report abuse of the Microsoft Cognitive Services to Microsoft, please visit the Microsoft Cognitive Services website at https://www.microsoft.com/cognitive-services, and use the āReport Abuseā link at the bottom of the page to contact Microsoft. For more information about Microsoft privacy policies please see their privacy statement here: https://go.microsoft.com/fwlink/?LinkId=521839.
Developers using Cognitive Services, including this sample, are expected to follow the āDeveloper Code of Conduct for Microsoft Cognitive Servicesā, found at http://go.microsoft.com/fwlink/?LinkId=698895