Wenn es um die Integration von Vision in Embedded-Systeme geht, setzen Entwickler bis heute auf CMOS-Sensormodule (Complementary Metal Oxide Semiconductor), um Bilder zu erfassen. Diese Geräte sollten eher als Sensormodul bezeichnet werden, da ihre Funktionalitäten auf die Anbindung des Bildsensors an den Host – in der Regel ein Embedded-Board – beschränkt sind. Integriert in Smartphones, Tablets und Laptops liefern diese kleinen und preiswerten Module eine akzeptable Bildqualität.
Bildqualität versus Rechenkapazität
Doch genau hier liegt ein Nachteil dieser Kamera-Optionen für Embedded-Vision: Sie verfügen über sehr geringe Bildverarbeitungskapazitäten in der Kamera. Lediglich eine minimale Vorverarbeitung findet direkt auf dem Sensormodul statt. Die Embedded-Community hat sich daher mit der Verlagerung wichtiger Bildverarbeitungsaufgaben auf die CPU oder einen dedizierten Bildsensorik-Prozessors (Image Sensing Processor, ISP) auf dem Embedded-Board arrangiert.
Sowohl jene, die Bildqualität verbessernde, Bildkorrektur als auch die anwendungsspezifische Bildverarbeitung läuft auf dem Host-Embedded-Board. Dies reduziert die verfügbare Leistungs- und Rechenkapazität des zentralen Prozessors des Embedded-Boards, sodass für wichtigere Prozesse weniger Rechenleistung zur Verfügung steht. Um das auszugleichen oder die gewünschte Leistungsfähigkeit zu erhalten, werden immer leistungsfähigere und damit teurere Boards notwendig.
Die heute verwendeten und bevorzugten CMOS-Sensormodule fanden, einmal in Handys eingeführt, aufgrund ihres attraktiven Preises, ihrer geringen Größe und ihres geringen Stromverbrauchs ihren Weg auch in andere Anwendungen. Die meisten Module verfügen über eine Reihe grundlegender Algorithmen für die Bildverarbeitung.
Diese beinhalten beispielsweise eine Reihe von automatischen Bildkontrollfunktionen wie automatische Belichtung, Weißabgleich oder Schwarzwertkalibrierung. Vor allem aber nutzen sie einfache Algorithmen, um die Bildqualität zu verbessern, indem sie etwa Schärfe, Linsenkorrektur, Defektpixelkorrektur oder Rauschunterdrückung anwenden. Dies sind Standardfunktionalitäten in modernen CMOS-Sensormodulen, die von Designern so konfiguriert werden, dass sie ein akzeptables Bild auf das Embedded-Board bringen.
Die Stufen der Bilderverarbeitung
Doch für viele Anwendungen und Aufgaben reicht diese Bildqualität inzwischen nicht mehr aus. Der Bedarf nach leistungsfähigerer Bildverarbeitung, bekannt von den sogenannten Machine-Vision-Kameras, nimmt daher rasant zu. Die industrielle Bildverarbeitung setzt sich dabei aus den folgenden drei Stufen der Bildverarbeitung zusammen: Vorverarbeitung, erweiterte Bildverarbeitung und anwendungsspezifische nachgelagerte Verarbeitung. In jedem Schritt werden unterschiedliche Algorithmen angewendet, um das Bild zu bearbeiten und zu analysieren.
Nach der Aufnahme eines Bildes ist zunächst das RAW-Bild vorhanden. Dieses wird so genannt, da es bisher noch nicht von Algorithmen berührt worden ist. Als erster Schritt findet nun zunächst die Bildvorverarbeitung statt. Diese Bildkorrektur und -optimierung ist die Summe der Verarbeitungsaufgaben, die durchgeführt werden, um die vom Sensor gelieferten Rohbilddaten in ein Bild umzuwandeln, dessen Qualität den Anforderungen der jeweiligen Systemanwendung entspricht. Die Bildvorverarbeitung kann Funktionen wie Pixelkorrektur, Weißabgleich, Verstärkung und Rauschunterdrückung beinhalten, die das Bild für die jeweilige Aufgabe der Bildverarbeitungssoftware optimieren.
Nachdem die Bilder optimiert worden sind, ermöglicht die erweiterte Verarbeitung – manchmal auch nur Bildverarbeitung genannt – komplexere Verbesserungen, um die anwendungsspezifische Bildanalyse zu erleichtern. Beispiele für fortgeschrittene Bearbeitungen sind Schärfe- oder Farbkorrekturen mit Hilfe von Look-up-Tabellen.
Der letzte Schritt ist die Nachbearbeitung. Diese Nachbearbeitungsanwendung kann je nach Systemvorgabe beliebig sein. Es ist beispielsweise möglich, ein Gesicht im Bild zu identifizieren, ein Nummernschild in einer Verkehrsüberwachungsanwendung zu lokalisieren und zu lesen oder die Qualität von Objekten in einer industriellen Inspektionsanwendung zu überprüfen. Diese Aufgaben werden durch komplexe, anwendungsspezifische Software-Algorithmen auf dem Hauptprozessor des Embedded-Boards gelöst.
Beim Einsatz eines Sensormoduls erfolgt sowohl die erweitere Bildverarbeitung als auch die anwendungsspezifische Bildverarbeitung auf dem Host-Embedded-Board. Das bedeutet, dass ein Großteil der Aufgaben und die notwendige Rechenleistung vom Embedded-Board übernommen werden muss, da das Sensormodul dies nicht leisten kann. Das wiederum belastet die Leistungsfähigkeit des Embedded-Boards. Es wird zum einen langsamer, zum anderen steht dadurch auch weniger Leistungskapazität für andere Aufgaben zur Verfügung.
Kapazitätsengpässe bei Embedded-Boards
Wenn keine anspruchsvollen Algorithmen angewendet werden müssen, mag dies durchaus von einem einfachen Board ohne große Leistungseinbußen zu bewältigen sein. Doch werden die Anforderungen an die Bildverarbeitungsalgorithmen und an die Bildqualität größer, bedarf es eines zusätzlichen Co-Prozessors oder einer dedizierten ISP auf dem Embedded-Board. Denn wenn es um weitergehende Algorithmen und Bildverarbeitung wie spezielle Filter, Pixel- und Signalverarbeitung geht, stoßen CPUs schnell an ihre Grenzen.
Eine Alternative, diesen Kapazitätsengpass zu lösen, ist die Wahl eines leistungsfähigeren Embedded-Boards. Bei der Entwicklung von kostensensitiven Embedded-Systemen sind diese teureren Boards häufig keine akzeptable Alternative, weswegen lieber Abstriche bei der Bildqualität in Kauf genommen werden.
Eine andere Möglichkeit, um die Anforderungen an die Bildverarbeitung zu erfüllen, ohne zu teureren Embedded-Boards greifen zu müssen, besteht darin, die Bildverarbeitungsaufgaben in die Kamera zu verlagern. Kamerahersteller aus der industriellen Bildverarbeitung bieten fortschrittlichere Kameramodule an, die die in der industriellen und wissenschaftlichen Bildverarbeitung auf PC-Basis bekannte Leistung und Intelligenz bieten.
System-on-Chip-Technologie als Lösung
Der Grundstein dieses alternativen Ansatzes ist ein neuartiges Kameramodul, das auf einem Application-Specific Integrated Circuit (ASIC) mit integriertem Bildsensorik-Prozessor und Bildverarbeitungsbibliothek basiert. Es erweitert die Bildverarbeitung wie die moderner CMOS-Kameramodule um die Bildverarbeitung von High-End-Embedded-Boards mit dedizierten Image-Sensing-Prozessoren (ISP) oder integrierten Field-Programmable-Gate-Arrays (FPGAs) und digitalen Signalprozessoren (Digital Signal Processors, DSP). Dazu gehören sowohl die Vorverarbeitung als auch erweiterte Bildverarbeitungsfunktionen wie Filter, Pixelkorrekturen, Farbkorrekturen, Zuschneiden auf einen definierten Bereich oder Farbraumkonversation. Solche Kameramodule liefern fertige Bilder an die Host-Anwendung und benötigen auf der Host-Seite keinen ISP.
Ein großer Vorteil, mehr Bildverarbeitung in der Kamera, statt auf dem Embedded-Board durchzuführen, ist die Reduzierung der Prozessor- und Co-Prozessorlast. Dies ermöglicht freie Ressourcen für potenziell andere Aufgaben und hilft dem Embedded-Designer gleichzeitig dabei, die Entwicklungsphase zu beschleunigen und zu entscheiden, wo bestimmte Bildverarbeitungsaufgaben für die anwendungsspezifische Nachbearbeitung am besten ausgeführt werden.
Für spezifische Anwendungen kann gegebenenfalls noch ein FPGA oder DSP benötigt werden, aber durch die Verlagerung einiger Bildverarbeitungsaufgaben auf die Kamera werden weniger Logikzellen auf dem FPGA- oder DSP-Teil benötigt. Die Anforderung an die Leistungsfähigkeit des Boards werden minimiert und die Gesamtsystemkosten reduziert.
Allied Visions Alvium-Technologie
Allied Vision hat eine eigene System-on-chip-Technologie entwickelt, die auf einem ASIC anstatt eines Standard-FPGS basiert. Die Alvium-Technologie besteht aus einem proprietären Chipdesign, das für eine hochentwickelte, digitale Bildverarbeitung optimiert worden ist. Eine umfangreiche Bildverarbeitungsbibliothek ist elementarer Bestandteil der Technologie. Indem Aufgaben im Bereich der Bildkorrektur und -verarbeitung vom Embedded-Board auf die Bildverarbeitungsbibliothek des Alvium verlagert werden, haben Systemingenieure nun die Möglichkeit, die CPU-Kapazität des Host-Prozessors für anspruchsvollere Aufgaben zu nutzen. Die Alvium-Technologie ist das Herzstück von Allied Visions neuer Kameraserie für Embedded Vision.