Computer Vision (engl. Aussprache) ist eine Wissenschaft im Grenzbereich zwischen Informatik und den Ingenieurwissenschaften und versucht die von Kameras aufgenommenen Bilder auf unterschiedlichste Art und Weise zu verarbeiten und zu analysieren, um deren Inhalt zu verstehen oder geometrische Informationen zu extrahieren. Der Begriff Computer Vision bedeutet auf Deutsch so viel wie computerbasiertes Sehen (oder kurz: Computer-Sehen). Im englischen Sprachraum wird ebenfalls der Begriff Machine Vision (auf Deutsch: Maschinelles Sehen) synonym zu Computer Vision verwendet, wobei die Anwendung im industriellen Umfeld betont wird.
Typische Aufgaben der Computer Vision sind die Objekterkennung und die Vermessung der geometrischen Struktur von Objekten sowie von Bewegungen (Fremdbewegung, Eigenbewegung). Dabei wird auf Algorithmen aus der Bildverarbeitung zurückgegriffen, zum Beispiel die Segmentierung und auf Verfahren der Mustererkennung, beispielsweise zur Klassifizierung von Objekten. Dabei kommen statistische (bzw. probabilistische) Methoden zum Einsatz, Methoden der Bildverarbeitung, der projektiven Geometrie, aus der Künstlichen Intelligenz und der Computergrafik. Die Werkzeuge stammen meistens aus der Mathematik, insbesondere aus Geometrie, linearer Algebra, Statistik, Operations Research (Optimierung) und Funktionalanalysis. Darüber hinaus besteht eine enge Verwandtschaft zu benachbarten Fachgebieten, wie der Photogrammetrie, der Fernerkundung und der Kartografie.David A. Forsyth, Jean Ponce: Computer Vision: A Modern Approach. 2. Auflage. 2012, Pearson Education, Prentice Hall 2012, ISBN 978-0-13-608592-8.Reinhard Klette: Concise Computer Vision - An Introduction into Theory and Algorithms. Springer-Verlag, London 2014, ISBN 978-1-4471-6319-0, doi:10.1007/978-1-4471-6320-6Richard Szeliski: Computer Vision - Algorithms and Applications. Springer-Verlag, London 2011, ISBN 978-1-84882-934-3, doi:10.1007/978-1-84882-935-0 (szeliski.org)
Anwendungsgebiete sind z. B. die autonome Navigation von Robotern (Fahrerassistenzsysteme), die Filmindustrie zur Erschaffung virtueller Welten (virtual reality), die Spieleindustrie zum Eintauchen und Interagieren in virtuellen Räumen (augmented reality), die Erkennung und Verfolgung von Objekten (z. B. Fußgänger) oder die Registrierung von medizinischen CT-Aufnahmen und die Erkennung von krankem Gewebe.
Geschichte Seit ungefähr den 1960er Jahren gab es erste Versuche eine Szene durch Kantenextraktion und ihrer topologischen Struktur zu verstehen. Die Extraktion verschiedener Merkmale, wie Kanten und Ecken, war in den 1970er bis 1980er Jahren ein aktives Forschungsgebiet. Anfang der 1980er Jahre wurde untersucht, wie Variationen von Schattierungen durch topografische (Höhen-)Änderungen verursacht werden und damit der Grundstein für Fotometrie und die 3D-Rekonstruktion mittels Schattenwurf gelegt. Gleichzeitig wurden erste merkmalsbasierte Stereo-Korrespondenz-Algorithmen entwickelt sowie intensitätsbasierte Algorithmen zur Berechnung des optischen Fluss. Außerdem wurden 1979 erste Arbeiten zur simultanen Wiederherstellung der 3D-Struktur und der Kamerabewegung (Structure from Motion) begonnen.
Mit dem Aufkommen digitaler Kameras in den 1980er Jahren wurden mehr und mehr Anwendungen erforscht und entwickelt. So wurden Bildpyramiden erstmals 1980 von Rosenfeld eingesetzt als Grob-zu-Fein-Strategie zur Suche homologer Bildpunkte (Korrespondenz-Suche). Auch das Konzept des Maßstabsraumes (scale-space) beruht auf Bildpyramiden und wurde maßgeblich erforscht, was die Grundlage moderner Methoden wie SIFT (Scale Invariant Feature Transform) ist.
Ab den 1990er Jahren begann man projektive Invarianten zu untersuchen, um Probleme zu lösen wie Struktur-aus-Bewegung (structure from motion) und projektive 3D-Rekonstruktion, die ohne Kenntnis der Kamerakalibrierung auskommt. Gleichzeitig wurden effiziente Algorithmen entwickelt wie Faktorisierungstechniken und globale Optimierungsalgorithmen.
Seitdem es günstige Kameras gibt und die PCs immer leistungsfähiger wurden, bekam dieses Fachgebiet einen enormen Aufschwung.
Komplexität Die Aufgabenstellungen sind oftmals inverse Probleme, wo versucht wird, aus zweidimensionalen Abbildungen die Komplexität der dreidimensionalen Welt wieder herzustellen. Computer Vision versucht aus Bildern Eigenschaften zu rekonstruieren, wie die farbliche Gestalt, die Beleuchtung oder deren Form, und darauf basierend versucht man z. B. Gesichter zu erkennen, landwirtschaftliche Flächen zu klassifizieren oder komplexe Objekte zu erkennen (PKW, Fahrrad, Fußgänger). All das gelingt einem Menschen scheinbar spielerisch, es ist aber extrem schwer dies einem Computer beizubringen.
Der Versuch, unsere sichtbare Welt in all seiner Gesamtheit modellieren zu wollen, ist bei weitem schwerer, als beispielsweise eine Computer-generierte künstliche Stimme zu erzeugen (Szeliski 2010, S. 3). Dies wird von Wissenschaftlern, die nicht in diesem Gebiet arbeiten, oft unterschätzt, wie schwierig die Probleme sind und wie fehleranfällig darum deren Lösungen teilweise sind. Das führt einerseits dazu, dass man für Problemstellungen oft maßgeschneiderte Lösungen braucht. Andererseits wird dadurch jedoch deren Vielseitigkeit stark beschränkt. Unter anderem aus diesem Grunde gibt es für keine Aufgabenstellung nur eine Lösung, sondern viele verschiedene Lösungen, je nach den Anforderungen, und erklärt damit auch, warum so viele konkurrierende Lösungswege in der Fachwelt existieren.
Überblick der Methodik Die eigentliche Aufgabe des Computer Vision besteht darin, einer am Computer angeschlossenen Kamera das Sehen und Verstehen beizubringen. Dafür sind verschiedene Schritte notwendig und es gibt je nach Aufgabenstellung entsprechende unterschiedliche Methoden. Diese sollen hier kurz skizziert werden.
Zunächst einmal benötigt man ein aufgenommenes Bild (Abschnitt Bildentstehung) welches meist verbessert werden muss (z. B. Helligkeits- und Kontrastausgleich). Anschließend versucht man meist Merkmale zu extrahieren wie Kanten oder Eckpunkte (Abschnitt Merkmalsextraktion). Je nach Aufgabenstellung verwendet man z. B. Eckpunkte für die Korrespondenzsuche in Stereo-Bildern. Darüber hinaus können weitere geometrische Elemente wie Geraden und Kreise mittels der Hough-Transformation erkannt werden (Abschnitt Hough-Transformation). Bestimmte Anwendungen versuchen mittels Bildsegmentierung uninteressante Bildbestandteile wie den Himmel oder den unbewegten Hintergrund zu selektieren (Abschnitt Bildsegmentierung).
Möchte man eine Kamera zum Messen einsetzen werden i. d. R. die Parameter des Kameramodells (innere Orientierung) durch eine Kamerakalibrierung bestimmt (Abschnitt Kamerakalibrierung). Um die gegenseitige Lage eines Stereo-Bildpaars aus dem Bildinhalt zu schätzen, kommen verschiedene Algorithmen zur Berechnung der Fundamentalmatrix zum Einsatz (siehe Epipolargeometrie Fundamentalmatrix).
Bevor man eine 3D-Rekonstruktion durchführen kann, benötigt man zunächst homologe (korrespondierende) Bildpunkte (Abschnitt Korrespondenzproblem). Anschließend ist man in der Lage die 3D-Punkte durch Vorwärtsschnitt (Triangulation) zu bestimmen. Daneben gibt es verschiedene Möglichkeiten die Form eines Objektes dreidimensional zu bestimmen. Im englischen Sprachgebrauch hat sich hier der Terminus Shape-from-X eingebürgert. Das X steht hierbei für eine dieser Methoden (Abschnitt Shape-from-X).
Bildentstehung mini|Bei der Lochkamera wird ein Objektpunkt über einen geradlinigen Projektionsstrahl, der durch das Loch der Kamera fällt, in die Bildebene abgebildet. Das so entstandene Bild steht auf dem Kopf und ist seitenverkehrt.
Die Bildentstehung beschreibt den komplexen Prozess der Bildaufnahme beginnend bei der elektromagnetischen Strahlung, der Interaktion mit der Oberfläche (Absorption und Reflexion), der optischen Abbildung und der Detektion mittels Kamerasensoren.
Lochkameramodell
Neben anderen Möglichkeiten eine Kamera zu modellieren ist das am häufigsten verwendete Modell die Lochkamera. Die Lochkamera ist ein idealisiertes Modell einer Kamera, welches eine Realisierung des geometrischen Modells der Zentralprojektion darstellt. Mittels Strahlensätze lassen sich damit auf einfache Art und Weise Abbildungsformeln herleiten.
Reale Kamera mini|Aufbau einer modernen digitalen Farbkamera
Eine reale Kamera weicht in vielerlei Hinsicht vom Lochkameramodell ab. Man benötigt Linsen, um mehr Licht einzufangen und einen lichtempfindlichen Sensor um das Bild zu erfassen und zu speichern. Dabei kommt es zu diversen Abweichungen, die einerseits physikalisch bedingt sind und andererseits durch unvermeidliche Fertigungsungenauigkeiten entstehen. Beides führt zu Verzerrungen im aufgenommenen Bild. Sie werden einerseits durch den Sensor und andererseits durch das Objektiv verursacht.
Es kommt beim Sensor zu farblichen Abweichungen (radiometrische bzw. fotometrische Abweichung) und geometrischen Abweichungen (Verzeichnung). Abweichungen, die durch das Objektiv, also durch die einzelnen Linsen verursacht werden, bezeichnet man als Aberrationen. Sie führt ebenfalls zu farblichen Abweichungen (z. B. Farbsäume) und geometrischen Verzerrungen (Verzeichnung).
Es kommt außerdem zu atmosphärischer Refraktion (Lichtbrechung). Im Nahbereich ist der Effekt jedoch so gering, dass man ihn meist vernachlässigen kann.
Digitale Sensoren
Zur Detektion des Lichts benötigt man lichtempfindliche Sensoren, die Licht in Strom umwandeln können. Schon 1970 wurde ein CCD-Sensor (Englisch: charge coupled device, auf Deutsch: ladungsgekoppeltes Bauelement) zur Bildaufnahme entwickelt. Durch Aneinanderreihung in einer Zeile erhält man einen Zeilensensor und entsprechende Anordnung in einer Fläche erhält man einen flächenhaften Sensor. Jedes einzelne Element wird dabei als Pixel (Englisch: picture element) bezeichnet.
Alternativ dazu gibt es auch einen flächenhaften Sensor CMOS (Englisch: complementary metal-oxide-semiconductor, auf Deutsch: komplementärer / sich ergänzender Metall-Oxid-Halbleiter) genannt.
mini|Prinzip einer 3-Sensor-Farbkamera mittels Strahlteiler
Ein solcher Sensor ist in der Regel über das Spektrum des sichtbaren Lichtes hinaus empfindlich im ultra-violetten Bereich und weit in den infraroten Bereich des Lichts. Um ein Farbbild aufnehmen zu können, muss man für die jeweiligen Grundfarben Rot, Grün und Blau (kurz: RGB) einen eigenen Sensor haben. Dies kann man durch Aufteilung des Lichtes auf drei unterschiedliche Flächen machen (s. Abb. rechts). Eine andere Möglichkeit besteht darin, nebeneinander liegende Pixel jeweils mit unterschiedlichen Farbfiltern zu versehen. Meist wird dafür ein von Bayer entwickeltes Muster verwendet (Bayer pattern).
Darüber hinaus sind auch andere – meist wissenschaftlich motivierte – Farbkanäle im Einsatz.
Kamerakalibrierung mini|Darstellung der optischen Abbildungsgeometrie einer realen Kamera
Im engeren Sinne wird unter einer Kamerakalibrierung die Bestimmung der inneren Orientierung verstanden. Dies sind alle Modellparameter, welche die Kamerageometrie beschreiben. Dazu zählen i. d. R. die Koordinaten des Hauptpunktes, die Kamerakonstante sowie Verzeichnungsparameter. Im weiteren Sinne wird unter einer Kamerakalibrierung aber auch die gleichzeitige Bestimmung der äußeren Orientierung verstanden. Da man sowieso meistens beides bestimmen muss, zumindest wenn man eine Kalibrierung mittels bekannten 3D-Koordinaten durchführt, wird dies im Computer Vision oft synonym verwendet. In der Photogrammetrie hingegen ist es durchaus noch üblich eine Laborkalibierung (z. B. mittels Goniometer) auszuführen, wo die innere Orientierung direkt bestimmt werden kann.