Aktuelle wissenschaftliche Untersuchungen gehen heute davon aus, dass der Besitz eines intelligenten autonomen Fahrzeugs bis 2050 zur Norm für Verbraucher werden wird. Jetzt schon werden intelligente sensorgestützte elektronische Systeme wie kamerabasierte Fahrerassistenzsysteme in den modernen Fahrzeugen eingesetzt.
Der Einsatz der Kameras dient nicht nur der Bildaufnahme, sondern ebenfalls der Auswertung des Bildinhalts mithilfe eines Steuergerätes. Die besondere Herausforderung hierbei stellt die schnelle korrekte Erfassung und Erkennung von sich bewegenden Gegenständen bzw. Objekten im Bild während der Fahrt dar. Das Problem liegt an der Varietät im Aussehen von Objekten derselben Kategorie im digitalen Kamerabild. Um Objekte eindeutig zu erkennen und deren Klassenzugehörigkeit zu bestimmen (z.B. Fahrrad oder Motorrad), werden Klassifikatoren eingesetzt, die nach komplexen mathematischen Modellen entwickelt sind.

Für die schnelle Prototypenentwicklung und Systemspezifikation können frei verfügbare Programmierbibliotheken wie OpenCV (Open Source Computer Vision) oder Shogun eingesetzt werden. Mit einer Vielzahl von Anwendern und bisher über mehrere Millionen Downloads, ist OpenCV eine weit verbreitete Computer-Vision-Bibliothek für die Applikationsentwicklung in den Bereichen wie Automotive, Medizin oder Robotertechnik.

OpenCV stellt Funktionen für den Einsatz im Bereich der Bildverarbeitung sowie des maschinellen Sehens zur Verfügung. Die Bibliothek bietet Schnittstellen für die gängigen Programmiersprachen wie C/C++, JAVA, MATLAB etc. und kann unter Windows, Mac OS, Linux sowie Android betrieben werden. Dabei stellt OpenCV ein breites Spektrum an fertigen Routinen neben Bildsegmentierung, Merkmalsextraktion und Klassifikation auch Methoden der Objektverfolgung bereit. Im Wesentlichen kann OpenCV in folgende vier Bereiche unterteilt werden:


Abbildung 1: Struktur OpenCV

CV (computer vision) hier sind Routinen zur Verarbeitung und Analyse von Bilddaten angesiedelt.
MLL (machine learning) bietet Funktionen zur statischen Bildanalyse und Algorithmen für das maschinelle Lernen.
HighGUI beinhaltet Routinen zur Bildein- und -ausgabe und stellt weiterhin Funktionen zur Erstellung graphischer Fenster bereit.
CXCORE ist der Kernbereich von OpenCV. Hier sind jegliche Datenstrukturen, Fehlerbehandlungen, Routinen für die Speicherverwaltung sowie Datentransformationen ansässig.

Mittels der GPU-Beschleunigung können OpenCV-Algorithmen in Echtzeit und bei höherer Auflösung genutzt werden. Diese Eigenschaft macht OpenCV für den Einsatz in eingebettete Systeme in der Automobilindustrie (z.B. Straßenschilder-Erkennung) sowie Medizintechnik (z.B. Analyse von MRT-Aufnahmen, um Tumore besser zu erkennen) interessant.

Quelle
G. Bradski and A. Kaehler. Learning OpenCV: Computer Vision with the OpenCV Library. O’Reilly Media, 2008, Seite 13
https://www.nvidia.com/de-de/drivers/nvidia-for-opencv-press-20100923/