Intelligente, vernetzte Systeme bilden die Grundlagen vieler neuer Services, die aus dem Alltag nicht mehr wegzudenken sind. Oftmals sind für die Bereitstellung dieser Dienste mehrere Komponenten notwendig, wie zum Beispiel Apps für Smartphones, Edge Devices für die Hausautomatisierungen oder Clouddienste für die Ausführung von KI-Algorithmen. Das Innovationsprojekt „Smart Fridge“ deckt dabei das gesamte Leistungsspektrum von Smart Mechatronics ab und zeigt, wie durch strukturierte Entwicklung aus einer Idee ein komponentenübergreifendes Produkt entstehen kann.
Ein Embedded Device dient als Schnittstelle zwischen der digitalen und realen Welt und befindet sich am Rand des digitalen Systems. Daher spricht man auch von Edge Device. Es wird vor allem für das Aufnehmen und die Aufbereitung von Daten genutzt. Doch nicht nur die Ansteuerung der dafür notwendigen Sensoren und das Weiterleiten zum nächsten Internet-Knoten sind seine Aufgaben. Für kluge Zusammenführen von Daten die so genannte Sensorfusion ist die Auswahl von geeigneten Prozessoren und Algorithmen sehr wichtig.
In diesem Projekt wurden verschiedene Betriebssysteme hinsichtlich ihrer Tauglichkeit für den Anwendungsfall untersucht. Die Hardware des eingebetteten Systems muss dabei den Ansprüchen eines Serienprodukts gerecht werden und verschiedene Dienste wie zum Beispiel Connectivity und Sensorik bereitstellen.
Der erste Schritt dieses Innovationsprojektes „Smart Fridge“ war die Konzeptionierung und der Aufbau eines Demonstrators. Dieser diente bei der Umsetzung neuer Technologien zur Prüfung der Machbarkeit und der weiteren Planung einer Entwicklung als Serienprodukt. Dabei wurde die lokale und die Cloud-gestützte Erkennung von Lebensmitteln in Kühlschränken evaluiert.
In dem Proof of Concept kamen zwei Hauptsensoren, eine Kamera und eine Thermalkamera, zum Einsatz. Beide Kameras wurden so konfiguriert, dass Sie nach dem Schließen der Kühlschranktür Bilder des Inhalts aufnimmt. Durch die Anwendung von Klassifikationsalgorithmen wurden die Informationen über die im Kühlschrank enthaltenen Lebensmittel gewonnen. Die Informationen aus dem Bild und dem Thermalbild wurden überlagert, um daraus einen Mehrwert zu generieren. Die Grundidee in diesem Proof of Concept war die Demonstration, welches Lebensmittel bereits gekühlt ist.
In der weiteren Bearbeitung des Innovationsprojektes „Smart Fridge“ wurden Machine-Learning-Algorithmen auf eingebetteten Systemen untersucht. Mit Hilfe leistungsfähiger Werkzeuge zum Design und der Inferenz neuronaler Netze lassen sich diese Algorithmen auf verschiedene Plattformen übertragen und somit für verschiedene Anwendungen zugänglich gemacht werden.
Durch geeignete Optimierungsalgorithmen konnten sowohl die Ausführungsgeschwindigkeit wie auch der Speicherplatzverbrauch der eingesetzten neuronalen Netze erheblich reduziert werden. Zusätzlich kann das eingebettete System - durch die entsprechende Absicherung – einen Vorteil im Security und Datenschutz bieten, wenn die Algorithmen nur lokal ausgeführt werden. Die Anwendung künstlicher neuronaler Netze auf Mikrocontrollern bietet also eine Alternative zum Cloud Computing.
In der Regel werden Bilder komprimiert übertragen, um die Bandbreite der verfügbaren Verbindung optimal auszunutzen. Da es sich in diesem Projekt um jeweils sehr ähnliche Bilder handelt, lässt sich zusätzlich wie bei einem Video-Codec mittels Differenzbildverfahren die Datenrate senken. Der Informationsgehalt wird also auf die Änderungen im Bild reduziert. So werden möglichst wenig Daten in die Cloud übertragen und der Upstream wird reduziert.
Da die Bilder nicht für einen Betrachter genutzt werden, sondern für einen KI-Algorithmus, konnte die Bildkompression dahingehend weiter optimiert werden. Zum Beispiel ließ sich die Auflösung weiter reduzieren und der Punkt ermittelt werden, an dem die Erkennungsrate der Objekte einbricht. Mit einer Bildvorverarbeitung ließ sich in Form von Rauschminderung und Verzeichnungskorrektur die Datenrate weiter verringern. Das Ergebnis des Algorithmus wurde dabei sogar verbessert.
Der Einsatz von Linux auf dem Device bringt viele Vorteile mit sich. So unterstützt der Linux Kernel bereits jetzt eine Vielzahl von gängigen Embedded Architekturen und Hardware Treibern und ermöglicht damit die Portierbarkeit auf weitere Zielhardware. Das Linux Betriebssystem stellt zudem unzählige Frameworks und Toolkits sowie Netzwerk- und Protokoll-Stacks bereit und ermöglicht so eine schnelle und unkomplizierte Umsetzung der gewünschten Anwendung.
Für die zahlreichen Aufgaben unseres Edge Devices haben wir daher auch ein Embedded Linux gewählt, welches auf die Software- und Hardwarearchitektur der ausgewählten Plattform mit Yocto angepasst wurde. Alle verwendeten Komponenten sind flexibel austauschbar und durch vorhandene Treiber im Kernel bzw. durch Open-Source oder Drittanbieter Bibliotheken einfach über die Buildumgebung zu integrieren.
Das Linux Device kontrolliert dabei die Schnittstellen zu Sensoren und dem HMI:
In unserem Smart Fridge wurden Bildinformationen und weitere sensible Daten mit Cloud – Diensten geteilt. Diese Daten gewähren Aufschluss über das Nutzungsverhalten und über die Identität des Benutzers selbst. Aber auch Softwarepakete als Teil eines Updates werden über unsichere Netzwerke geteilt. Es handelt sich zum einem um Daten, die vertraulich behandelt werden müssen und zum andern um Daten, deren Integrität gewahrt werden muss. Daher spielen Authentifikation, Integritätsüberprüfung und Verschlüsselung eine tragende Rolle, bei der Kommunikation über unsichere Netzwerke. Die Wahrung der Softwareintegrität muss aber auch am Edge Device gewährleistet sein. Im Smart Fridge wurde dazu ein TPM (Trusted Platform Module) eingesetzt, dass die Integrität der Firmware feststellt und kryptografische Funktionen für die verschlüsselte Kommunikation erzeugt. Je nach Ausprägung von neuen Features und Diensten müssen die Anforderungen an die Sicherheit neu evaluiert und gegebenenfalls angepasst werden.
Für die Spannungsversorgung und die einfache Montage der externen Kamera und Sensorik, wurden neben dem Entwicklungsboard noch ein Breakout Board und Trägerplatinen für den BOSCH BME688 Sensor verwendet. Das Breakout Board umfasst dabei alle erforderlichen Schnittstellen zur Kontaktierung der Peripherie, sowie einen Spannungswandler für deren Versorgung. Die Trägerplatinen ermöglichten eine direkte Einbindung des BME688 in das System. Eine Entwicklungsmethodik, die hier zum Einsatz kam, war CONHARD. Diese Methode ermöglichte unter anderem die Erfassung und strukturierte Darstellung intelligenter, vernetzter Systeme und erleichtert somit die domänenübergreifende Entwicklung solcher Systeme essenziell.
Das globale Ausrollen von neuen Features und Updates lässt sich mit konfektionierten Lösungen der Public-Cloud-Anbieter oder mittels eigenen Private-Clouds umsetzen. Für das Ausführen von komplexen Objektkennungsalgorithmen als Service steht genug Rechenleistung zur Verfügung. Die Verwaltung und das Tracking aller erkannten Lebensmittel werden in einer Datenbank abgelegt, diese werden so über eine ReST-API zur Verfügung gestellt. Über diesen Cloud Service können nun alle Bilder und Informationen jederzeit zur Verfügung gestellt werden und über Smartphone und andere Geräte abgerufen werden.
Über die Erweiterung der Services und Dienste ist eine Anbindung an Lebensmitteleinzelhändler und Lieferdienste möglich. Diese Erweiterung eröffnet neue Möglichkeiten für das autonome Nachfüllen von Lebensmittel.
Die Erkennung der Lebensmittel im Smart Fridge erfolgt mittels Faltungsnetzwerk (Convolutional Neural Network). Dabei wird die Objekterkennung mit dem Algorithmus Faster-RCNN durchgeführt. Dieser erzeugt zunächst Regionen, in denen ein Objekt erkannt wurde (Region Proposals), um hier eine Klassifikation der jeweiligen Region durchzuführen. Der verwendete Algorithmus ist im Vergleich zu seinen Vorgängern, um einiges schneller und eignet sich auch für Echtzeitanwendungen. Durch die Benutzung von freien, vortrainierten Netzen, lässt sich auch mit einer kleineren Datenbank ein gutes Ergebnis erzielen und spart Aufwände bei der Erstellung und Labeln.
Die erstellten neuronalen Netze können sowohl auf leistungsstarken Edge Devices, wie auch bei kommerziellen Cloudanbieter ausgeführt werden. Cloudanbieter bieten dafür die passende Infrastruktur für die Skalierung solcher Anwendungen. Dabei steht der Anwendungsfall bei der Auswahl des Cloudanbieters im Fokus. Gerne beraten wir Sie und finden die beste Lösung für Ihre Herausforderung.
Eine Mobile App ermöglicht den Zugriff auf die Cloud-Datenbank und zeigt dem Nutzer (visuell als Bild oder in einer Liste) seinen Kühlschrankinhalt an. Für den Prototypen wird dabei auf Multiplattformentwicklungsumgebungen wie Flutter oder Qt zurückgegriffen, um für alle gängigen Smartphone Betriebssysteme die gleiche Basis zu haben und den Entwicklungsaufwand so gering wie möglich zu halten. Mit Hilfe der gewonnenen Benutzerdaten wie Temperatur, Uhrzeit oder Luftfeuchtigkeit lassen sich weitere Services realisieren. Ein Abgleich mit Rezeptdatenbanken, könnten dem Nutzer zum Beispiel Vorschläge machen und so die Lebensmittel, die kurz vor dem Verfallsdatum stehen, zu verbrauchen. Die Benutzeroberfläche wird mit der CONSENS Methode für HMI entwickelt und realisiert.
Das Testen von vernetzten Systemen bringt immer großen Herausforderungen mit sich, so auch bei unserem Smart Fridge. Das Gesamtsystem muss auch nach einem Update von einer oder mehreren Teilkomponenten weiterhin den vollen Funktionsumfang anbieten. Dazu werden Regressionstests auf allen Ebenen vom Unit Test bis hin zur Gesamtfunktionalität und der Connectivity zwischen den Teilkomponenten abgeprüft.
Schlussendlich muss auch für die aktualisierte Software auf den verteilten Devices die Integrität sichergestellt werden, weshalb auch im Regressionstest die Anforderungen an die Security des Produktes erfüllt werden müssen.