chevron_left
chevron_right

Wenn Maschinen sehen lernen

Zunehmend wird moderne Bildverarbeitung nicht mehr nur auf PCs gefordert, sondern direkt auf Embedded-Systemen. Maschinen und Geräte werden sehend. Dies stellt spezielle Anforderungen an Kameras, Schnittstellen und Rechner, denn Standards sind hier keine vorhanden.

 

Mikroprozessoren und kleine PC-Module sind so leistungsfähig geworden, dass inzwischen selbst die digitale Bildverarbeitung in den Embedded-Bereich vorgedrungen ist. Das ist nicht selbstverständlich, denn die numerische Verarbeitung von Kamerabildern erfordert in der Regel sehr viel Rechenleistung auf Grund der hohen Pixelzahlen. Oft werden darum nicht die hochauflösendsten Kameras eingesetzt, sondern jene, die das betreffende Objekt zweckmässig abbilden.

 

Herausforderung für Entwickler sind primär elementare Fragen

 

Der Entwickler von Embedded-Image-Processing-Systemen ist indessen zuerst mit elementareren Fragen konfrontiert. Wie wird die Kamera an den eigenen Rechner angeschlossen? Wie gelangen die Bilder in die eigene Software? Welche Standards gibt es? Um die Antwort gleich vorweg zu nehmen: Es ist schlecht bestellt um Standards, jedenfalls im Embedded-Bereich. Und das ist ganz gut so. Denn Embedded-Systeme sind so vielfältig wie ihre Anwendungen. Jeder Standard würde nur einer kleinen Gruppe von entsprechenden Lösungen gerecht und brächte in der Folge wenig Nutzen. Beispielsweise sind LVDS und CSI verbreitete Standards für die Anbindung von Kameras, aber es fehlen genormte Kabel und Stecker. UVC ist eine populäre USB-Device-Klasse in der Consumer-Welt, jedoch ist der Standard wegen seiner Komplexität wenig geeignet für Embedded-Systeme.

 

Zahlreiche Anbieter umschiffen die Probleme, indem sie zu ihren Kameraprodukten vorkompilierte Treiber abgeben. Diese sind aber oft nur für eine kleine Anzahl von Betriebssystemen – in der Regel Windows – und Prozessorarchitekturen (primär x86) verfügbar. Mit beiden wird der Embedded-Entwickler in vielen Fällen nicht glücklich.

 

Offengelegtes Kamerainterface als Lösung

 

Stettbacher Signal Processing AG geht mit seinen O-3000-Kameras (Bild 1) einen ganz anderen Weg: Statt sich an halbherzig passende Standards anzubiedern, wird einfach das Kamerainterface offengelegt (www.open-cam.ch). Der Anwender hat über ein einfaches XML-Protokoll direkten Zugriff auf alle Funktionen der Kamera und auf die Bilddaten. Ein im Quellcode offengelegter Treiber und Anwendungsbeispiele erleichtern dem Entwickler den Einstieg und das Einbinden der Kameras in sein System. Dabei ist es egal, ob es sich um einen Mikrocontroller, ein FPGA oder einen Embedded-PC handelt. Es bestehen keine Einschränkungen bezüglich Hardware, Betriebssystem, Programmiersprache usw.

 

Textilprüfgerät als Beispiel

 

Als Beispiel zeigt Bild 2 die Elektronik eines Textilprüfgeräts. Die Bildverarbeitung läuft auf dem ARM-Cortex A9-basierten Rechnermodul, das auch für die Maschinensteuerung zuständig ist. Die O-3000-Kamera (links im Bild) ist via USB verbunden. Als Betriebssystem kommt Embedded Linux zum Einsatz. Harte Echtzeitfunktionen des Geräts sind in einem FPGA realisiert. 

 

Infoservice

 

Stettbacher Signal Processing AG

Neugutstrasse 54, 8600 Dübendorf

Tel. 043 299 57 23, Fax 043 299 57 25

dsp@stettbacher.ch, www.stettbacher.ch