Was ist coffAI?

coffAI ist ein Projekt der Abteilung Data & AI zur Erfassung und Visualisierung des Konsums von Heißgetränken im Ettlinger Büro der esentri AG. Anhand von Daten, die via Sensoren an der Kaffeemaschine ermittelt werden, können wir erkennen, welches Getränk ausgegeben wird – in Echtzeit und vollständig ohne Interaktion mit der Steuerung der Kaffeemaschine. Es dient als Demonstrationsprojekt, dessen Vorgehen sich auf weitere Anwendungsfälle im Bereich Industrial Analytics übertragen lässt, wie das Erkennen von Betriebszuständen einer Maschine, Anomalieerkennungs-Services oder Predictive Maintenance.

coffAI ist ein Projekt der Abteilung Data & AI der esentri AG

Zum Einstieg ein kleines Erkärvideo

Ein kleiner Überblick bevor wir einsteigen

Im Folgenden wird die Realisierung des Projekts mithilfe von Architekturgrafiken erläutert. Dabei wird die Gesamtarchitektur in die Blöcke IoT Devices, Data Ingestion und Storage, Data Transformation und Machine Learning und Reporting unterteilt sowie auf die verwendeten Technologien eingegangen.

1
2
3
4
Die Gesamtarchitektur der coffAI Lösung
1

Die IoT-Hardware reagiert auf Ereignisse (Vibrationen) und transportiert via Streaming Telemetriedaten ohne Datenverlust in die Cloud.

2

Durch moderne Streaming- und eventdriven Services werden eingehende Daten in einer kosteneffizienten Infrastruktur in Echtzeit transformiert sowie persistiert. Es kommen pro Sekunde über 10.000 Datenpunkte an.

3

Eine Pattern-Recognition-Implementierung sorgt für die nötige Performance, um die Vibrationsdaten, die Abtastraten von mehreren Kilohertz besitzen, klassifizieren zu können.

4

Das eigenentwickelte Dashboard besitzt stets aktuelle Statistiken und switched automatisch zu einer visuellen Darstellung, sobald neue Vibrationsdaten in Echtzeit eingehen.

Falls Sie sich schon mal einen Überblick verschaffen möchten, können sie hierfür auf den unteren Button klicken.

Features

  • Klassifizierung von 15 Heißgetränken (von Caffe Crema, Tee bis zum Latte Macchiato)
  • Dashboard mit Anbindung an eine Cloud-Infrastruktur
  • Vibrationsdaten werden in Echtzeit erkannt und auf einem Dashboard visualisiert
  • Das Dashboard bietet eine Vielzahl an deskriptiven Statistiken, die den Konsum der Mitarbeitenden widerspiegeln
  • Eine In-House-App wird zur Verfügung gestellt, um Getränke selbst labeln zu können, um so die Datenqualität zu erhöhen

Tech Stack

Das Tech Stack der coffAI Lösung der esentri AG

IoT-Devices

  • IoT-Sensor ist seitlich am Kaffeeautomat angebracht
  • Generiert Vibrations,- Luftfeuchtigkeits- und Raumtemperaturdaten
  • Händisches Labeln von Heißgetränken via In-House-App möglich
1
2
3
Anbringung der Sensoren an den Devices der coffAi Lösung
1

Der Bosch IoT-Sensor wurde mit dem Cross Domain Development Kit (kurz XDK) programmiert.

2

Die Telemetriedaten werden mithilfe eines definierten Rule Topics in AWS IoT über ein WLAN-Gateway in eine DynamoDB-Tabelle geschrieben.

3

Mit Google Form kann schnell und einfach sein Getränk labeln. Die Daten werden automatisch in eine AWS DynamoDB-Tabelle gesendet. Ein falsch klassifiziertes Getränk kann so automatisch durch eine manuell gelabelte Instanz ersetzt werden.

Data Ingestion und Storage

Cloud-Infrastruktur

AWS bietet folgende Funktionen, die innerhalb des coffAI-Projekts benötigt werden:

  • Streaming
  • Data Ingestion
  • Storage
  • Alarming

    Kostenersparnis durch intelligente Service-Nutzung

    Der gefährliche Vorteil der Cloud allgemein ist die einfache Skalierung, falls weitere Ressourcen benötigt werden. Wir versuchen bei coffAI die Infrastruktur so kosteneffizient wie nur möglich zu gestalten. Deshalb achten wir darauf, passende Dienste zu ervaluieren, eventbasierte Ansätze zu implementieren sowie unnötige Scheduler und Jobs zu vermeiden.

    Infrastructure as Code

    Es wird der IaC-Ansatz mittels Terraform verfolgt, um die Infrastruktur bereitzustellen

    • Architektonische Konfiguration findet über deklarative Sprache statt
    • Datenbanken, Computing-Services und Berechtigungskonzepte werden über HCL-Code definiert
    • Vorteil: Müheloses Deployment und einfache Replikation der Infrastruktur
      1
      2
      3
      4
      5
      6
      7
      Data Ingestion und Storage
      1

      Für das Monitoring der Sensordaten wurde ein Alarming-Service implementiert, der E-Mailbenachrichtigungen versendet, sobald nach 24 Stunden keine neuen Daten zur coffai_date-Tabelle gesendet wurden. Die als AWS Lambda implementierte Alarming-Funktion wird mithilfe eines Cron-Ausdrucks ausgeführt. Dieser Datenverarbeitungsservice ist äußerst effizient, da er als ereignisgesteuerte Plattform nur zur Ausführungszeit Ressourcen verbraucht. Die E-Mails werden mittels AWS Simple Notification Service (kurz SNS) versandt.

      2

      MQTT ist für Umgebungen mit niedriger Bandbreite und hohen Latenzen ausgelegt und stellt daher eine gute Wahl für die Kommunikation zwischen IoT-Device und Cloud dar. MQTT basiert auf dem Publish-and-Subscribe-Prinzip und benötigt ein Topic, auf dem der Client sich abonnieren kann.

      3

      AWS Kinesis erfasst die Daten als Echtzeit-Streaming, puffert diese als Batches und überträgt diese schließlich zur Klassifizierung an den Lambda-Service coffai-classification. Kinesis wird pro Stunde abgerechnet, weswegen ein Scheduling-Dienst von AWS, Amazon Event Bridge, zum Einsatz kommt, um den Streaming-Job über den Abend zu beenden und am nächsten Morgen wieder zu aktivieren, um die Kosten weiter zu senken.

      4

      Falls ein Segment aufgrund fehlender Daten nicht klassifiziert werden kann, wird dieses gecached und mithilfe der Daten aus dem nächsten Batch gelabelt. Die gelabelten Daten werden anschließend in die Dynamo-Tabelle coffai_predictions übertragen, in der sich alle bisher klassifizierten Instanzen befinden.

      5

      Die Tabellen coffai_predictions und coffai_label beinhalten die klassifizierten Datensätze und dienen als Grundlage zur Berechnung deskriptiver Statistiken, die später im Dashboard angezeigt werden.

      6

      Die Lambda-Funktion coffai-classification wird zur Klassifizierung aktiviert, sobald Kinesis neue Streaming-Daten empfängt. Dieser Event-getriebene Ansatz stellt im Vergleich zu einer Cron-Lösung, in der ein festes Zeitfenster für das Polling definiert worden wäre, eine ressourcenschonende Lösung dar.

      7

      AWS DynamoDB wird verwendet, da in diesem Service nur Kosten anfallen, sobald Lese- und Schreiboperationen ausgeführt werden. Dies entspricht der kosteneffizienten Philosophie, die in diesem Projekt konsequent vorangetrieben wird.

      Transformation und Datenanalyse

      • Transformation tabellarischer Daten mittels Python (pandas, …)
      • Berechnung deskriptiver Statistiken, die im Dashboard angezeigt werden
      1
      2
      3
      4
      Schaubild zu Data Analysis und Transformation des Projektes CoffAI
      1

      Die Datenschnittstelle wurde mit Boto3, dem AWS SDK für Python, implementiert. Boto3 bietet einen Low-Level-Zugang zu AWS Services und kann daher verwendet werden, um Daten von S3 oder aus DynamoDB-Tabellen zu beziehen.

      2

      In dieser Komponente werden die Daten aus coffai_predictions sowie coffai_label zusammengeführt, wobei die Daten von coffai_label bei zeitlichen Überschneidungen priorisiert werden. Auf Basis der Annahme, dass Mitarbeiter die Getränke korrekt labeln, können so fehlerhafte Vorhersagen des Modells reduziert werden.

      3

      Es werden außerdem Jupyter-Notebooks eingesetzt, um Codefragmente zu testen und Data Exploration zu betreiben.

      4

      Die Integration- und Unit-Tests werden mithilfe der etablierten Testbibliothek pytest entwickelt. Für modellspezifische Tests und Validierungen wird das Pattern Recognition Model in dieser Komponente ebenfalls verwendet. Im Projekt werden außerdem pre-commit-Hooks verwendet, um vor einem git-commit automatisch statische Code-Analysen durchzuführen, die einen robusten Quellcode sicherstellen.

      Machine Learning und Reporting

      • Das Model enthät pro Getränk jeweils ein Musterbeispiel an Vibrationsdaten
      • Die Daten werden in AWS S3 abgelegt und vor der Verwendung für die Dashboard-App heruntergeladen
      • Eine Inferencing-Methode wird fortlaufend ausgeführt, solange ein Getränk rausgelassen wird
      • Das STUMPY-Modell vergleicht das eingehende Signal mit den Musterbeispielen und wertet aus, welche Klasse dem Eingangssignal am meisten ähnelt

      Visualisierung der Echtzeitdaten mit Klassifizierung

      1
      2
      3
      Schaubild zu Machine Learning Reporting
      1

      Das Frontend wird mit dem Framework Streamlit implementiert. Mit Streamlit ist es möglich, bestehende Data Science-Skripts als Web-Applikationen umzubauen, um so Resultate ansprechend darstellen zu können. Die Bibliothek von Streamlit beinhaltet Annotationen, um Datenmengen zu cachen, um so die Performance der Anwendung zu erhöhen und ein Nachladen zu vermeiden.

      2

      In Kombination mit den eigens erstellten Python-Bibliotheken zur Ausführung der ML-Modelle sowie Methoden, um UI-Elemente neu zu laden, können die auf Zeitreihen basierende Vibrationsdaten als Animationen durch Liniendiagrammen dargestellt werden. Während der Darstellung wird das Modell zur Getränkeklassifizierung ausgeführt. Falls das System zum Ausführungszeitpunkt kein Produkt klassifizieren kann, wird ein Dialog angezeigt, der um das anschließende Labeling des Produkts bittet, um die Datenqualität zu erhöhen.

      3

      Im Fall, dass kein Getränk ausgelassen wird, spielt in einer Endlosschleife eine Slideshow deskriptive Statistiken über den allgemeinen Konsum auf Basis historischer Daten ab. Für eine benutzerspezifische Präsentation sind außerdem Animationen von LottieFiles sowie eigene HTML/CSS-Codefragemente für Überschriften und Ladebalken integriert.

      Zusammen die Zukunft gestalten

      coffAI demonstriert, wie das Team von IoT & Industrial Analytics State-of-the-Art-Technologien nutzt, um komplexe Vibrationsdaten in nahezu Echtzeit zu analysieren und zu klassifizieren. Die spezialisierte AWS Cloud-Architektur ist in der Lage, große Mengen an Daten effizient zu verarbeiten.

      Unsere Fähigkeit, Telemetriedaten von alltäglichen Geräten wie Kaffeemaschinen zu erfassen und zu analysieren, ist nur ein Beispiel für die Vielfalt der Anwendungen, die wir im Bereich Industrial Analytics anbieten. Diese Technologie kann auf eine Vielzahl von Industriebereichen angewendet werden, um betriebliche Effizienz zu steigern und Geschäftsentscheidungen zu unterstützen.

      Wir bieten wertvolle Einblicke in das Verhalten und die Leistung von Maschinen. Wenn Sie bereit sind, die Potenziale Ihrer Sensor- und Industriedaten zu nutzen, freuen wir uns auf Ihre Kontaktaufnahme. Lassen Sie uns gemeinsam mit intelligenten Architekturlösungen und Künstlicher Intelligenz die Zukunft Ihrer Industrie gestalten.

      coffAI zeigt die Nutzung von State-of-the-Art-Technologien, um komplexe Vibrationsdaten in nahezu Echtzeit zu analysieren und zu klassifizieren

      Nimm gerne Kontakt zu uns auf!

      Ich hoffe die Seite konnte Dir einen Einblick darüber geben, wie man die Brücke von Sensor in die Cloud im Umfeld Industrial Analytics schlagen kann.

      Du stehst vor der Herausforderung Deine Sensor- und Telemetriedaten in Mehrwert umzuwandeln? Dann freue ich mich über den Austausch mit Dir!

      Simon Kneller, Senior Consultant, Industrial Analytics & IoT

      Simon Kneller
      Lead Industrial Analytics & IoT