Hoe wij op 2 weken een Edge AI telpaal bouwden

Sam Hendrickx
Raccoons Group
Published in
6 min readFeb 21, 2022

Een virus in China, ver van ons bed, dachten we. Jammer genoeg zorgde dat virus voor een wereldwijde lockdown, met als resultaat een ongeziene sociale, gezondheids- en economische impact. Tijdens die lockdown werd Crowd Management vliegensvlug een hot topic.

Bij Edgise zagen we de mogelijkheid om Edge Computing en Edge AI te gebruiken om mensen in veiligheid te stellen. We gingen quasi meteen aan de slag met onze expertises om een oplossing te zoeken om na de lockdown weer veilig op te kunnen starten. (TL;DR hier!)

Er werd gezocht naar een oplossing om de bevolking in staat te stellen veilig inkopen te doen of om zich in sociale situaties te begeven. We zagen al zeer snel eenvoudige, maar effectieve, oplossingen ontstaan in de markt. Zoals het beperken van een aantal winkelkarretjes of mandjes, plaatsen van extra medewerkers aan het onthaal of zelfs een schoenlepel meegeven…

Dat werkte goed tot de winkelkarretjes niet langer verplicht werden en de kosten van personeel, die de karretjes ontsmetten en controleren, toch aardig begonnen op te lopen. Daarnaast kwamen er ook andere oplossingen, zoals apparatuur met stereocamera’s of sensoren. Die werken tot op een zekere hoogte goed, maar missen de verdere mogelijkheden van artificiële intelligentie en image recognition. Kort gezegd, ze missen de mogelijkheden van Edge AI.

And that’s where Telly comes in: de Edge AI telpaal die meer kan dan uitsluitend mensen tellen.

telpaal
Edge-AI telpaal Telly in the field

Hoe zit dit dan technisch allemaal in elkaar?

Edge AI Telpaal

De eerste versie van onze telpaal bestaat uit een raspberry pi gelinkt aan een google coral. Op de pi draaien we software, geschreven in Python, die de coördinatie en communicatie afhandelt binnen het device alsook naar de cloud toe. Alle beelden worden, na wat resizing, via de een camera naar de google coral gestuurd, waar de data wordt geanalyseerd door middel van een Edge AI model. Wanneer deze een persoon wordt gekwalificeerd, wordt door het systeem berekend of de persoon naar binnen of buiten gaat. Die informatie wordt als resultaat door middel van MQTT communicatie verstuurd naar de achterliggende services. Doordat we enkel de berekende waardes doorsturen, verzekeren we de anonimiteit en privacy van de “getelde” personen.

De firmware is geschreven in een multiprocessing pipelined framework. Een frame van de camera wordt telkens doorgegeven naar de volgende functie of stage. Elke stage in de pipeline doet een manipulatie op de frame. Zo’n opbouw laat ons toe om op een flexibele manier nieuwe functies (stages) toe te voegen in de pipeline structuur. Het multiprocessing karakter zorgt er dan weer voor dat we de beschikbare rekenkracht op de hardware efficiënt gebruiken.

Event formaat van telling

Dashboarding

Om zowel de bezoekers als de klanten duidelijk te informeren, hebben we verschillende dashboards voorzien. Hiervoor werden dashboards ontwikkeld met Ionic en Angular voor de frontend. Daarnaast worden ze aangestuurd door een Java Spring Boot backend. Bij het deel Architectuur vind je het volledige overzicht van de backend.

De communicatie tussen de dashboards wordt gedaan met Rest API’s en Server Sent Events. Deze Server Sent Events laten toe om snel updates te versturen zonder voortdurend de content te komen opvragen.

Consumer facing bezoekers dashboard
Bezoekers dashboard
Edge-AI telpaal Admin dashboard
Admin dashboard

Dashboards

Edge-AI Management Platform

Om al onze telpalen remote te kunnen beheren en monitoren, hebben we een “Edge Ai / IOT Asset Management Platform gebouwd” bovenop AWS IoT Core. Daar werd gekozen om te werken met React voor de frontend en Java Spring Boot backend. Opnieuw maken we gebruik van Server Sent Events voor snel updates binnen het platform te visualiseren.

Via het platform kunnen we groepen en devices beheren. Tijdens het beheren van de groepen worden achterliggend heel wat zaken aangemaakt en geconfigureerd op AWS. Zo worden de juiste SNS topics en SQS queues aangemaakt met de juiste filters policies alsook de S3 buckets om data op te slaan.

Hieronder krijg je een impressie van de lay-out van het platform. Om de privacy van onze klanten te beschermen, hebben we enkele zaken geblurd, maar onderstaande afbeelding geeft aan dat een klant bijvoorbeeld specifiek op het tweede verdiep van het gebouw een telpaal kan plaatsen.

Project / Locatie overzicht
Project overzicht
Edge-AI devices overzicht
Edge-AI devices overzicht
Edge Device Details overzicht
Edge Device Details overzicht
Edge Device State overzicht
Edge Device State overzicht
Edge-AI Device Configuratie
Edge-AI Device Configuratie
Edge Device Alert / Monitoring Configuratie
Edge Device Alert / Monitoring Configuratie

Platform Tour

Architectuur

De architectuur is zo opgezet dat we elk soort van IoT Device kunnen beheren. Daarnaast zet het platform alles op zodat specifieke use cases kunnen gerealiseerd worden.

Enkele keywords

  • Ionic
  • Angular
  • React
  • Java Spring Boot
  • MongoDB Atlas
  • MQTT
  • Server Sent Events (SSE)
  • Event Sourcing
  • AWS (IoT Core, SNS, SQS, S3, Fargate, …)

Device > platform > device communicatie

Al de communicatie, met uitzondering van file-upload/download en registratieproces, verloopt over MQTT. Dit om zo lightweight mogelijke communicatie te voorzien naar onze Edge AI devices. Er wordt sterk gebruik gemaakt van de topic filtering die MQTT ondersteunt om slim om te gaan met updates, commands, telemetry en state data.

communicatieoverzicht

Communicatieflow

Onze telpalen kunnen pas actief hun werk doen nadat ze door een onboarding process zijn gegaan. Tijdens dit onboarding process worden de correcte certificaten aangemaakt en verstuurd naar de Edge AI devices. Op deze manier garanderen we veilige communicatie en vermijden we security breaches.

Na het onboarding process zal de telpaal in een soort sleep state wachten tot het een configuratie krijgt via MQTT. Wanneer de configuration voorzien is op de telpaal heeft die alle informatie om zijn volledige MQTT communicatie op te starten, alsook de configuratie om zijn tellingen te starten.

Communicatie flow

Specifieke use cases

Naast platformfunctionaliteiten, die vooral focussen op beheer en monitoring, worden componenten opgezet om specifieke use cases toe te laten. Hiervoor wordt gebruik gemaakt van SNS en SQS om aparte event-stromen te voorzien.

Specifieke use-case

AWS infrastructuur overzicht

Een overzicht van alle componenten die gebruikt worden op AWS en hoe ze samenwerken:

AWS Componenten

TL;DR

Telly is een 3D-geprinte telpaal die edge-computing en AI combineert om aan image recognition te doen. Zo kunnen we mensen tellen, mondmaskers detecteren, geslacht herkennen, leeftijd inschatten… Alle telpalen worden door een gecentraliseerd platform beheerd en gemonitord. Dat laat ons toe om onze telpalen remote te updaten en te configureren zonder dat er nog een fysieke interventie nodig is. Daarnaast hebben we specifieke Telly-applicaties gebouwd die omgaan met de telgegevens om een historie op te bouwen en tendensen waar te nemen.

Meer weten over Telly, onze Edge-AI telpaal? Contacteer ons! Telly is een initiatief van Edgise, een start-up die gespecialiseerd is in Edge Computing.

--

--