Bildverarbeitung auf schlanken, preiswerten Embedded-Systemen

Flexibilität ohne lästige Standards

| Redakteur: Silvano Böni

O-3000-Embedded-­Kamera vom Stettbacher Signal Processing.
Bildergalerie: 2 Bilder
O-3000-Embedded-­Kamera vom Stettbacher Signal Processing. (Bild: Stettbacher Signal Processing)

Firmen zum Thema

Zunehmend wird moderne Bildverarbeitung nicht mehr nur auf sperrigen PCs implementiert, sondern direkt auch auf schlanken und preiswerten Embedded-Systemen. Maschinen und Geräte werden so sehend! Aber einige Gewohnheiten und Reflexe, die sonst Gültigkeit haben, sind bei der Anwendung im Embedded-Bereich zu überdenken.

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 in Echtzeit erfordert auf Grund der grossen Datenmengen und der Komplexität der Vision-­Algorithmen in der Regel sehr viel Rechenleistung. Zum Glück sind Leistungsaufnahme und Preis bei den neuen Computer-Modulen nicht proportional zur Rechenleistung gestiegen. Im Unterschied zu Desktop-PCs kommen moderne Dual- oder Quad-Core-PCs im Kreditkartenformat mit wenigen Watt aus und kosten nur 100 bis 200 Franken.

Eine ähnliche Entwicklung fand auch bei den Kameras statt: Günstige und kompakte CMOS-Sensoren haben die aufwändige CCD-Technologie weitgehend abgelöst. Allerdings werden nach wie vor nicht die hochauflösendsten Kameras eingesetzt, sondern vorzugsweise jene, die das betreffende Objekt zweckmässig abbilden. Denn so spart man viel unnötige Rechenleistung.

Herausforderung für Entwickler

Es gilt nicht grundsätzlich «mehr ist besser, grösser ist schöner». Stattdessen ist der Entwickler von Embedded-Image-Processing-Systemen mit einer Reihe von ganz elementaren Fragen konfrontiert:

  • Wie wird die Bildverarbeitung realisiert (Standard-Software)?
  • Welcher Rechner wird eingesetzt (Standard-Formfaktoren)?
  • Wie wird die Kamera an den eigenen Rechner angeschlossen (Standard-Schnittstelle)?
  • Wie gelangen die Bilder in die eigene Software (Standard-Treiber)?

Um die Antwort gleich vorwegzunehmen: Um Standards ist es schlecht bestellt, zumindest im Embedded-Bereich. Das muss aber nicht unbedingt schlecht sein. Denn Embedded-Systeme sind so vielfältig, wie ihre Anwendungen heterogen sind. Entscheidend sind letztendlich der Stückpreis, die Baugrösse, die Anschlussleistung et cetera. Jeder Standard würde nur einer kleinen Gruppe von entsprechenden Lösungen gerecht und hätte in der Folge nur wenig Nutzen. Zudem verursacht jeder Standard im Vergleich zu einer spezifischen Lösung Mehrkosten für die Einarbeitung, die Hardware, den grösseren Platzbedarf und allenfalls die lizenzpflichtige Software. All dies widerspricht den ursprünglichen Zielen – vorausgesetzt natürlich, man verfügt über geeignetes Personal, das in der Lage ist, die spezifische Lösung zu entwickeln.

Alternativen zu gängigen Standards

In der Regel sind weder die klassischen Embedded-Mikroprozessoren noch Rechnermodule x86-kompatibel, sondern sehr oft ARM-basiert. Damit entfallen typischerweise die diversen ressourcenhungrigen Windows-Derivate. Ebenfalls aus dem Rennen ist in der Folge so manches schwergewichtige und teure Standard-Bildverarbeitungsprogramm. Stattdessen haben schlanke, auf die Anwendung zugeschnittene Linux-Derivate das Feld erobert. Diese Lösungen lassen sich sehr leicht für den betreffenden Anwendungsfall skalieren. Freie Tools wie OpenEmbedded, BitBake oder Build­root unterstützen diesen Prozess. Statt einem käuflichen Standardprogramm für die Bildverarbeitung wird oft eine der grossen und sehr weit entwickelten Open-Source-Grafikbibliotheken für C/C++ verwendet. Ein professionelles Beispiel dafür ist OpenCV, das mit Blick auf Anwendungen in Echtzeit entwickelt wurde und dank der Unterstützung von OpenCL und CUDA die spezifischen Fähigkeiten der betreffenden Hardware nutzt, wie Grafikbeschleunigung und Multiprocessing. Auf diese Weise erhält man für wenig Geld ein leistungsstarkes und überaus vielseitiges Bildverarbeitungssystem.

LVDS und MIPI CSI sind verbreitete Standards für die Anbindung von Kameras an Rechner. Aber es fehlen genormte Kabel und Stecker, daher verfügen die meisten Embedded-PCs über keine entsprechenden Anschlüsse. Dagegen ist praktisch jeder Rechner, ob gross oder klein, mit USB und Ethernet ausgestattet. Selbst kleinere Mikroprozessoren sind mit diesen Schnittstellen versehen. Sie sind folglich primäre Kandidaten für den Anschluss von Kameras an Embedded-Systeme. Dabei ist USB preiswerter und kompakter als Ethernet. Ausserdem ist die Übertragungsrate von USB 2.0 höher als jene von Ethernet 100 Mbit/s.

Schliesslich bleibt die Frage nach dem Kamera-­Treiber für die Software-Anbindung. UVC ist eine populäre USB-Device-Klasse in der Consumer-Welt, jedoch ist der Standard wegen seiner ausufernden Komplexität wenig geeignet für Embedded-Systeme. Er verursacht lediglich einen grossen Overhead. Zahlreiche Anbieter umschiffen die Probleme, indem sie zu ihren Kameraprodukten eigene vorkompilierte Treiber abgeben. Aber auch dies hat seine Tücken, denn welche Kombinationen von Hardware und Betriebssystem werden unterstützt? In der Regel sind es gerade nicht jene, die man gerne im Embedded-Bereich einsetzen würde. Eine Alternative bietet Stettbacher mit seinen O-3000-­Kameras: Statt sich an halbherzig passende Standards anzubiedern, wird einfach das Kamera-Interface offengelegt. 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 oder Programmiersprache.

Das könnte Sie auch noch interessieren

Standardlösungen sind nicht immer günstiger

Bedürfnisgerechte Maschinen-Steuerungen

Standardlösungen sind nicht immer günstiger

07.10.16 - Automation – Eine spezifisch auf die Anforderungen angepasste Steuerungslösung ist oft deutlich kostengünstiger als eine Standard-Steuerung. lesen

Einfaches Anwendungsbeispiel

Ein Raspberry Pi 3 kann in wenigen Handgriffen dazu gebracht werden, Bilder von einer O-3000-­Kamera aufzunehmen und im TIFF-Format zu speichern. Die O-3000-Kamera ist dabei mit dem Rasp­berry per USB verbunden. Die Kamera wird dabei gleichzeitig mit Strom versorgt, so dass nur ein Kabel notwendig ist.

Nun wird auf dem Raspberry eine Shell geöffnet und die Befehlsfolge wie auf der Abbildung ersichtlich eingegeben. Dabei muss eine Internetverbindung bestehen. Die mit «1» markierten Zeilen sorgen dafür, dass das System aktuell ist und dass die für die App notwendigen Software-Pakete sicher installiert sind. Bei «2» wird die O-3000-Software von Github heruntergeladen. Die Befehle unter «3» bilden und installieren den O-3000-Treiber. Unter «4» wird die Demo-App kompiliert. Mit dem Befehl auf Zeile «5» wird das Demo-Programm ausgeführt. Der Raspberry liest nun Bilder von der Kamera ein und speichert sie je in eine TIFF-Datei. Der Vorgang kann mit CTRL-C beendet werden. Die aufgezeichneten Fotos lassen sich mit jedem geeigneten Programm ansehen. SMM

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44992563 / Sensorik)