Embedded-Vision-Lösung mit USB-3.0-Boardlevel-Kamera

Das fliegende Auge

Embedded-Vision-Lösung mit USB-3.0-Boardlevel-Kamera

Neben 3D und Robot Vision zählt Embedded Vision zu den Trendthemen der Bildverarbeitung. Denn autonome Transportsysteme und Roboter im Industrie-4.0-Umfeld, selbstfahrende Automobile oder autark agierende Drohnen sind ohne Echtzeit-Bildverarbeitung nicht denkbar. Klassische BV-Systeme aber scheiden aus Platz- oder Kostengründen hier aus, so genannte Smart Cameras sind in ihrer Funktionalität meist stark eingeschränkt. Erst die Kombination aus miniaturisierter Kamera, kompaktem Prozessorboard und flexibel programmierbarer Software ermöglicht es, BV-Applikationen individuell zu entwickeln und direkt in Maschinen oder in Fahrzeuge „einzubetten“.

An der Technischen Universität Braunschweig beispielsweise hat man einen Multicopter für die Echtzeit-Kartographierung von Katastrophengebieten gebaut. Die Karten werden von einem an Bord montierten Embedded-Vision-System, bestehend aus einem ARM-basierten Single-Board-Computer und einer USB 3.0 Platinenkamera von IDS erstellt. Wie kann eine Drohne in einer Katastrophensituation helfen? Indem sie beispielsweise Wasserproben nimmt, Rettungsringe abwirft oder Geodaten und Bilder aus Gebieten liefert, wo Menschen nicht oder nur mit Mühe hingelangen. Für letztere Aufgabenstellung hat das Team AKAMAV, eine Arbeitsgruppe aus Studierenden und Beschäftigten der Technischen Universität Braunschweig, die durch das Institut für Flugführung (IFF) der TU Braunschweig unterstützt wird, einen speziell ausgestatteten Multicopter gebaut.

Dieses Micro Air Vehicle (MAV) überfliegt Katastrophengebiete – das können Erdbebengebiete oder überflutete Städte sein, aber auch brennende Fabrikanlagen - und liefert in Echtzeit Karten, die Rettungskräfte sofort als Hilfestellung zur Missionsplanung nutzen können. Der Multicopter operiert autark. Sein Einsatzgebiet wird anhand eines vorliegenden georeferenzierten Satellitenbildes abgesteckt. Daraus wird automatisch, in Abhängigkeit von der Größe des Areals und der gewünschten Bodenauflösung, eine Wegpunktliste erzeugt. Diese wird dann mit Hilfe von GNSS (Global Navigation Satellite System) oder GPS abgeflogen. Der Start und die Landung des Multicopters erfolgen ebenfalls automatisiert.

Die Echtzeitanforderungen schließen gängige Ansätze der Fernerkundung, wie zum Beispiel die Photogrammetrie aus. Diese liefert erst Ergebnisse, nachdem alle Bilder aufgenommen und auf Basis meist sehr rechenintensiver Algorithmen zusammengesetzt wurden. Entsprechend erstellte Karten sind dann zwar sehr präzise, jedoch ist die Genauigkeit für einen ersten Überblick im Katastrophenfall zweitrangig und verzögert Rettungseinsätze nur unnötig. Die von AKAMAV konzipierte Lösung basiert dagegen auf dem Prinzip des Image Mosaicing beziehungsweise Stitching, ein bewährtes Verfahren, um aus vielen einzelnen Bildern sehr schnell ein großes Gesamtbild zusammenzusetzen.

Um dieses Prinzip an Bord eines Multicopters umzusetzen, müssen die von einer Kamera gelieferten Bilder aber zeit- und ortsnah von einem Rechner verarbeitet werden. Das „klassische“ Vision-System besteht aus einer Industriekamera, die via USB, GigE oder Firewire an einen Desktop-PC oder Box-PC angeschlossen ist; auf dem Rechner erfolgt die eigentliche Bildverarbeitung über eine entsprechende BV-Software und gegebenenfalls die Steuerung weiterer Komponenten innerhalb der Applikation. Eine solche Konfiguration braucht Platz, ist vergleichsweise teuer und bietet viel Funktionalität, die letztlich nicht benötigt wird. Embedded-Vision-Systeme auf der Basis von Einplatinencomputern und in Verbindung mit Open-Source-Betriebssystemen können sehr platzsparend ausgelegt werden, sind dennoch flexibel programmierbar und meist sehr günstig zu realisieren.

Ein dementsprechend perfektes Gespann bilden Boardlevel-Kameras mit USB-Interface und ARM-basierte Single-Board-Rechner. Diese bieten eine ausreichende Rechenleistung, weisen einen geringen Energieverbrauch auf, sind in verschiedenen, meist sehr kleinen Formfaktoren und bereits ab unter 100 Euro erhältlich. Man denke beispielsweise an den bekannten Raspberry Pi. Die AKAMAV setzt auf das nur 83 x 60 mm kleine, aber sehr leistungsfähige ODROID-XU4 Board mit OctaCore-ARM-CPU und Linux-Betriebssystem. Der Single-Board-Computer verfügt über alle wichtigen Schnittstellen (u.a. GigE, USB 2.0 und USB 3.0) und ist mit dem Autopiloten des Flugsystems via USB-Interface verbunden. Über diesen Datenlink erhält der Rechner neben Statusinformationen des Flugsystems auch Infos zur aktuellen Position in Längen- und Breitengraden sowie zur barometrischen Höhe und zur Höhe über dem Referenzellipsoiden.

Kamera

Die Bilderfassung übernimmt eine Platinenkamera aus der USB 3 uEye LE Serie von IDS. Die Industriekamera mit USB 3.0 Anschluss misst in der Boardlevel-Variante nur 36 x 36 mm und bietet dennoch alle wesentlichen Funktionen. Erhältlich ist sie mit CMOS-Sensoren der neuesten Generation von onsemi und e2v und mit Auflösungen bis 18 Megapixel. Ein 8 Pin Konnektor mit 5 V Stromversorgung, Trigger und Blitz, 2 GPIOs sowie ein I2C-Bus zur Ansteuerung der Peripherie sorgen für nahezu uneingeschränkte Konnektivität und hohe Flexibilität.

Die AKAMAV montiert am Multicopter das Modell UI-3251LE-C-HQ mit 2 MPixel CMOS-Sensor und S-Mount-Objektivanschluss, wobei die Auflösung der Kamera in diesem Fall sekundär ist, wie Alexander Kern, studentisches Mitglied der AKAMAV, betont. „Es wird mit den originalen Bilddaten gearbeitet, die gegebenenfalls sogar verkleinert werden, um die notwendige Performance des Gesamtalgorithmus zu gewährleisten. Sobald ein Bild von der Kamera aufgenommen und an den Single-Board-Rechner weitergeleitet wurde, wird in diesem Bild nach markanten Punkten, sogenannten Features, gesucht und diese werden extrahiert. Auch beim nächsten Bild werden die Features sondiert und mit denen aus dem vorangegangenen Bild gematched. Aus den korrespondierenden Punktpaaren lässt sich dann feststellen, wie die Bilder relativ zueinander getätigt wurden und entsprechend kann jedes neue Bild schnell zu einer Gesamtkarte hinzugefügt werden.“

Für ein ein Hektar großes Areal benötigt der Multicopter circa vier bis fünf Minuten, wenn Start und Landung unmittelbar am Rand des zu kartographierenden Gebiets erfolgen. Bei einer Flughöhe von etwa 40 m und einer skalierten Bildauflösung von 1200 x 800 Pixel beträgt die Bodenauflösung dann im Mittel circa 7 cm/px. Das Embedded-Vision-System ist dabei auf die Fluggeschwindigkeit des Multicopters von max. 5 m/s ausgelegt, entsprechend reicht eine vergleichsweise niedrige Bilderfassungsrate von 1-2 fps aus und eine Pufferung der Bilddaten ist ebenfalls nicht nötig.

Besteht eine Funkverbindung zwischen dem Flugsystem und der Kontrollstation, lässt sich der Stitching-Prozess live vom Boden aus verfolgen. Nach Abschluss der Kartographierung kann die komplette Karte entweder per Fernzugriff abgerufen werden, sofern sich der Multicopter in Funkreichweite befindet, oder nach dessen Landung auf einen externen Datenträger kopiert und weiter verbreitet werden.

Software

Die Bildverarbeitung hat die AKAMAV mit der Open-Source-Bibliothek OpenCV und C++ realisiert. „Da die Problemstellung eine Echtzeit-Anforderung enthält, muss die Software möglichst performant sein, weshalb nur eine Hochsprache in Frage kommt. OpenCV hat sich dabei in den letzten Jahren als Standard für die Bildverarbeitung im Forschungsbereich durchgesetzt und überzeugt mit allerhand existierenden Funktionen für die Bildanalyse oder für maschinelles Sehen“, argumentiert Mario Gäbel von der studentischen Arbeitsgruppe AKAMAV.

Die Einbindung der Kamera erfolgt über das uEye API. Insbesondere dem API kommt bei allen Vision-Applikationen eine Schlüsselrolle zu, denn es entscheidet erstens, wie einfach es ist, die Kamerafunktionalität zu nutzen und zweitens, wie gut das Potential der Kamera ausgeschöpft werden kann. IDS bietet hier mit seinem eigenen „Standard“ einen entscheidenden Vorteil, von dem insbesondere Entwickler von Embedded-Vision-Anwendungen enorm profitieren: Denn egal, welche Kamera des Herstellers eingesetzt wird, egal welche Schnittstellentechnologie (USB 2.0, USB 3.0 oder GigE) benötigt wird, und egal, ob eine Desktop- oder Embedded-Plattform zum Einsatz kommt – das uEye API ist immer gleich. Das erleichtert nicht nur die Austauschbarkeit von Kamera oder Plattform, es ermöglicht Entwicklern auch, Projekte auf einem Desktop-PC zu entwickeln und später 1:1 und ohne aufwändige Anpassungen des Codes auf dem Embedded-Rechner zu verwenden.

Da die Problemstellung eine Echtzeit-Anforderung enthält, muss die Software möglichst performant sein, weshalb nur eine Hochsprache in Frage kommt.

— Mario Gäbel von der studentischen Arbeitsgruppe AKAMAV —

Sowohl die Integration der Kamera als auch die Adaption an eine Third-Party-Bildverarbeitungssoftware, wie zum Beispiel Halcon, ist auf der Embedded-Plattform absolut identisch zur Desktop-Umgebung. Spezielle Tools, wie das uEye Cockpit, das ebenfalls Teil des IDS-eigenen Software-Development-Kits ist, reduzieren den Aufwand für Programmierer darüber hinaus. Nach dem Motto „Konfigurieren statt programmieren“ kann die Kamera am Desktop-PC mit wenigen Mausklicks vor-konfiguriert werden. Die Konfiguration lässt sich speichern und später einfach in die Embedded-Vision-Applikation laden. Gerade im Embedded-Bereich ist die Programmierung durch die Cross-Kompilierung in der Regel sehr aufwändig und aufgrund fehlender Display- und Tastaturanschlüsse gibt es oft keine Möglichkeiten, die angeschlossene Kamera direkt am Gerät einzustellen. Gerade in so einer Situation ist eine Vorkonfiguration der Kameraeinstellungen im uEye Cockpit Gold wert.

USB 3 uEye LE - Die kosten- und platzsparende Projektkamera

IDS Industriekamera USB 3 uEye LE Boardlevel