Hardware-Applets sind ein nur wenige MByte großer Software-Code für FPGA-Prozessoren. Innerhalb weniger Millisekunden ist er in den Chip geladen und strukturiert dessen Hardware-Aufbau neu. Hierdurch erhält der Prozessor neue Funktionen, die direkt auf der Hardware und unter Echtzeitbedingungen ausgeführt werden können. FPGAs sind in den vergangenen Jahren in ihrer Logikdichte deutlich gewachsen und ermöglichen inzwischen komplexe Programmabläufe. Statt monolithischer Programmierungen, die nur einmal geladen werden und die gesamte Funktionalität eines Gerätes beschreiben, bewährt sich das Konzept der Funktions-Applets. Spezialisiert auf ihren Einsatz, werden die verfügbaren Ressourcen effizient für die benötigten Funktionen verwendet. Soll der eingesetzte Frame Grabber für eine weitere Aufgabe genutzt werden, so wird anstelle des alten ein neues Applet geladen. Dieser Vorgang wird über die Software-Programmierung automatisiert und bremst das System durch die kurzen Ladevorgänge nicht aus.
Die Realisierung einer Anwendung definiert sich u.a. durch die Wahl des Kamera-Typs oder des Farbmodus. Über diese Kriterien werden die so genannten AcquisitionApplets von Silicon Software ausgewählt. Flächen- oder Zeilenkameras unterscheiden sich neben dem Sensortyp auch deutlich durch die benötigten Trigger-Funktionen oder Sensorkorrekturen. Die Koppelung an Encoder-Signale ist beispielsweise eine typische Zeilenanforderung. Eine Spatial Correction, die den Versatz der RGB-Farbzeilen korrigiert, findet hingegen bei monochromen Sensoren keine Verwendung. Das Tap Sorting, die Resortierung der Sensordaten zu einem kompletten Bild, hat für Flächen- und Zeilenkameras eine Bedeutung. Durch diese funktionale Matrix können auch für kleine FPGAs effiziente und spezialisierte Programmierungen erstellt werden.
Die AquisitionApplets von Silicon Software decken die Grundfunktionalität des Bildeinzugs und einer Bildvorverarbeitung ab. Oberhalb dieser Funktionalität setzen die SmartApplets an. Nach dem selben Prinzip werden erweiterte Bildverarbeitungs-Funktionen anwendungsbezogen geladen.
Dabei ähnelt die Grundidee der Frame Grabber-Apps der der Smartphones: Es werden einfach zu bedienende Zusatzfunktionen angeboten, die auf das ausführende Gerät zugeschnitten sind. So wie bei den Apps der Desktop-Rechner nicht ersetzt wird, wird die Bildverarbeitungs-Software nicht durch die Hardware-Applets verdrängt. Das Gesamtsystem wird durch die Verlagerung der Bildvorverarbeitung auf die dedizierte Hardware beschleunigt und gleichzeitig die CPU entlastet.
Dabei ist die Bedienbarkeit der Frame Grabber-Apps ein wichtiges Argument. Statt zu Programmieren wird nur noch konfiguriert. Das Bildvorverarbeitungssystem definiert sich über Funktionsblöcke, die aktiviert oder deaktiviert und parametrisiert werden. Analog zu den Apps kann ein SmartApplet intuitiv und sofort in Betrieb genommen werden.
Trotz komplexer Funktionen und einer Hardware-Verarbeitung mus sich der Anwender nicht mit dieser Materie im Detail auseinandersetzen. Die Vorschau der Funktionen zeigt sofort das Ergebnis, auf dessen Basis die Entscheidung für die Konfiguration getroffen werden kann. Da die Bibliotheken konstant ausgebaut werden, wird der Anwender, wie heute schon im App-Shop, zunehmend mehr passende Funktionen für seine Anwendung finden, auswählen und laden können.
> <b>Zwei Bibliotheken für wichtige Anwendungsbereiche</b>
> Die Binarisierung sowie die Segmentierung und Objektklassifikation zählen zu den wichtigsten Funktionen in der Bildverarbeitung. Silicon Software hat für diese beiden Bereiche je eine eigene SmartApplets-Bibliothek entwickelt. Weitere Bibliotheken für Vermessungsaufgaben, Kompression und Farbverarbeitung sind derzeit in Vorbereitung.
> Der am häufigsten eingesetzte Schritt in der Bildverarbeitung ist die Binarisierung, auf deren Basis die meisten Bildauswertungen durchgeführt werden. Hierfür wird ein globaler Schwellwert für die Graustufen in einem Bild definiert, oberhalb dessen die Pixel weiß bzw. unterhalb schwarz dargestellt werden. Für einfache Erkennungsaufgaben reicht diese Methode meist aus. Aufwändiger ist die Berechnung lokaler Schwellwerte, die diese Unterscheidung umgebungsbezogen durchführen. Für jedes Pixel wird eine Umgebung von bis zu 64 x 64 Pixel betrachtet, um die Entscheidung für schwarz oder weiß zu fällen. Die so genannte adaptive Binarisierung arbeitet hierdurch unabhängiger von inhomogenen oder wechselnden Beleuchtungs-Verhältnissen oder auch von Materialwechseln. Neben vorausgehenden Bildverbesserungen und einem Median-Rauschfilter können über eine zweifache Morphologie ungewollte kleine Objekte unterdrückt werden. Der Anwender erhält im Zeittakt der Bildaufnahme eine algorithmisch hochqualitative Bildverarbeitung ohne zusätzliche Belastung der CPU und kann auf dieser Basis seine software-basierte Bildanalyse fortsetzen. Die SmartApplets-Bibliothek »Binarisierung« besteht insgesamt aus 20 Applets.
> Eine weitere wichtige Funktion ist die Erkennung von Objekten. Hierfür müssen Pixelbereiche von ihrem Hintergrund herausgelöst werden. Die Blob-Analyse ist eines der bekanntesten Verfahren hierfür. Der Algorithmus bewertet die Umgebung jedes Pixels auf eine Objektzugehörigkeit. Wurde eine zusammenhängende Pixelfläche als Objekt detektiert, so wird sie über ihre Eigenschaften klassifiziert. Hierzu gehören u.a. die Größe und Lage eines umgebenden Rechteckes (»Bounding Box«), die Pixelfläche und die Konturlänge. Diese Eigenschaften ermöglichen die Auswahl oder den Ausschluss von Objekten. Die Methode kommt häufig dann zum Einsatz, wenn z.B. Objekte gezählt oder Bildbereiche für eine weitergehende Bildanalyse ausgeschnitten und übertragen werden müssen. Hierdurch kann die Bandbreite intelligent reduziert werden. Da die Applets auf Basis binarisierter Bilder arbeiten, werden viele Vorverarbeitungsstufen der SmartApplets-Bibliothek »Binarisierung« verwendet. Die SmartApplets-Bibliothek »Segmentierung und Objektklassifikation« besteht aus 22 Applets.