KI auf dem Gerät statt in der Cloud: Bildverarbeitung auf Embedded-Hardware

Wärmebild eines Kopfes in Falschfarben, das erkannte Gesicht ist mit einer Ellipse markiert

KI und Machine Learning

Ein Gerät soll Bilder selbst auswerten – im Feld, im Labor oder an der Maschine. Die Cloud wäre bequem, doch Reaktionszeit, Datenschutz und fehlende Netzverbindung sprechen oft dagegen. Dann muss die Bildverarbeitung auf knapper Hardware laufen, und genau dort scheitern viele Ansätze, die auf dem Entwickler-PC gut aussahen.

Warum auf dem Gerät?

  • Reaktionszeit: Entscheidungen im Maschinentakt vertragen keinen Umweg über das Netz.
  • Verfügbarkeit: Das Gerät arbeitet auch ohne Internetverbindung.
  • Datenschutz: Bilder von Personen oder Patientenproben verlassen das Gerät nicht.
  • Laufende Kosten: keine Gebühren je Bild und keine Abhängigkeit von einem Cloud-Anbieter.

Die Cloud bleibt sinnvoll für Training, Auswertungen über viele Geräte hinweg und Updates. Bewährt hat sich oft diese Aufteilung: lernen im Rechenzentrum, entscheiden auf dem Gerät.

Cloud oder Gerät?

KriteriumCloudEmbedded-Hardware
Reaktionszeit abhängig vom Netz planbar, im Takt
Rechenleistung praktisch frei skalierbar begrenzt, das Modell muss passen
Datenschutz Bilder verlassen das Gerät Bilder bleiben lokal
Betrieb ohne Netz nicht möglich möglich
Modellaktualisierung zentral und einfach über den Update-Prozess des Geräts
Kosten laufend je Nutzung einmalig für Hardware und Optimierung

Die Hardware bestimmt das Verfahren

Embedded-Plattformen reichen vom Mikrocontroller über ARM-Prozessoren bis zu Modulen mit eigener GPU oder KI-Beschleuniger. Jede Klasse hat andere Grenzen bei Speicher, Rechenleistung und Energie. Deshalb gehört die Zielhardware an den Anfang des Projekts, nicht ans Ende. Ein Netz, das auf einer Grafikkarte flüssig läuft, kann auf einem kleinen ARM-Prozessor um ein Vielfaches zu langsam sein.

Modelle schlank machen

  • Kleinere Netzarchitekturen wählen, die für mobile Geräte entwickelt wurden.
  • Eingangsbilder verkleinern oder nur den relevanten Bildausschnitt auswerten.
  • Quantisieren: Gewichte von 32-Bit-Gleitkommazahlen auf 8-Bit-Ganzzahlen umstellen. Laut Dokumentation von Googles LiteRT (früher TensorFlow Lite) wird ein Modell so etwa viermal kleiner und läuft auf der CPU deutlich schneller. Der Genauigkeitsverlust ist meist gering, muss aber mit echten Bildern geprüft werden.
  • Eine Laufzeitumgebung nutzen, die zur Hardware passt, etwa ONNX Runtime, LiteRT oder die Werkzeuge des Chipherstellers.
  • Klassische Vorverarbeitung vorschalten, damit das Netz nur noch die schwierigen Fälle bewerten muss.

Laufzeit messen – auf dem echten Gerät

Messen Sie die Inferenzzeit immer auf der Zielhardware und nicht nur als Mittelwert. Für den Takt zählen auch Ausreißer. Ein einfaches Messskript mit ONNX Runtime:

import statistics
import time

import numpy as np
import onnxruntime as ort

sitzung = ort.InferenceSession("modell_int8.onnx", providers=["CPUExecutionProvider"])
eingang = sitzung.get_inputs()[0]
form = [d if isinstance(d, int) else 1 for d in eingang.shape]
daten = np.random.rand(*form).astype(np.float32)  # Eingang als float32 angenommen

for _ in range(10):  # Aufwärmen
    sitzung.run(None, {eingang.name: daten})

zeiten_ms = []
for _ in range(200):
    start = time.perf_counter()
    sitzung.run(None, {eingang.name: daten})
    zeiten_ms.append((time.perf_counter() - start) * 1000)

p95 = statistics.quantiles(zeiten_ms, n=20)[-1]
print(f"Median {statistics.median(zeiten_ms):.1f} ms, 95 %: {p95:.1f} ms")

Hinzu kommen Bildaufnahme, Vorverarbeitung und Ergebnisübergabe. Erst die Summe zeigt, ob der Takt hält.

Aus der Praxis: Gesichter finden ohne rechenintensive KI

Ein Hersteller von Wärmebildkameras wollte die Körpertemperatur von Menschen messen. Dafür musste die Kamera zuerst die Lage der Gesichter im Bild finden – nicht die Identität der Personen. Die Software lief auf einem eingebetteten System mit stark begrenzter Rechenleistung, und Lampen und andere Wärmequellen störten die Erkennung. Wir haben Algorithmen und neuronale Netze auf Tempo und Erkennungsqualität untersucht. Das Ergebnis waren eigene, schlanke Verfahren, die Gesichter zuverlässig von anderen Wärmequellen unterscheiden und in Echtzeit auf der eingebetteten Hardware laufen. Die Lehre: Intelligenz auf dem Gerät heißt nicht automatisch neuronales Netz auf dem Gerät.

Typische Fehler

  • Ein Modell auf dem PC entwickeln und erst zum Schluss auf die Zielhardware bringen.
  • Nur die Inferenz messen, nicht die ganze Kette von der Aufnahme bis zum Ergebnis.
  • Quantisieren, ohne die Genauigkeit danach mit echten Bildern erneut zu prüfen.
  • Speicherbedarf und Wärmeentwicklung im Dauerbetrieb übersehen.
  • Keinen Weg für Modell-Updates im Feld vorsehen.
  • Neuronale Netze einsetzen, wo ein schlankes klassisches Verfahren schneller und robuster wäre.

So helfen wir

Aus unseren Projekten: Gesichtserkennung auf Wärmebildkameras mit eingebetteter Hardware, Echtzeit-Treiber für Thermografiekameras. Fachquellen: LiteRT – Post-Training-Quantisierung, ONNX Runtime – Quantisierung.

KONTAKT

Sprache auswählen

ErstgesprächvereinbarenErstgesprächvereinbaren