Computer Vision Maschinensehen Prof. Dr. Norbert Link
Computer Vision
1_Seite 1
Wer bin ich?
Dr.-Ing. Astrid Laubenheimer
Diplom-Mathematikerin
Fachhochschule Karlsruhe - Hochschule für Technik, IAF (damals IIT) Projektarbeit (BMBF und EU) im Bereich Bildverarbeitung und Intelligente Systeme
Fraunhofer Institut für Informations- und Datenverarbeitung IITB Abteilung Autonome Systeme und Maschinensehen Gruppe Bildgestützte Echtzeitsysteme Promoviert an der Fakultät für Elektrotechnik und Informationstechnik
Skripte und email: http://www.home.hs-karlsruhe.de/~laas0002/
[email protected]
Computer Vision
1_Seite 2
Inhalte der Einführung
Was ist ein Bild? Wie entsteht ein Bild? Anwendungsbeispiele Zusammenfassung
Computer Vision
1_Seite 3
Was ist ein Bild?
Einführung
Farbbild
Schwarz-Weiß-Bild (Grauwertbild)
Computer Vision
1_Seite 4
Was ist ein Bild?
Einführung
sichtbar!
Passiv
Intensität (Helligkeit)
Farbe, z.B. RGB
Wärme: IR (Infrarot)
Diese Bilder visualisieren die reflektierte elektromagnetische Energie. (verschiedene Frequenzbänder)
Aktiv
Röntgenstrahlung
Magnet Resonanz Computer Vision
Mikrowellen-Radar 1_Seite 5
Was ist ein Bild?
Einführung
Ein Bild als Zahlenmatrix: Spalte
Ausschnitt
Zeile
Mikrowellen-Radar-Bild der Venus
Picture element: „Pixel“ Koordinaten: Spalte x = 151, Zeile y = 55, Grauwert g = 208 Computer Vision Schreibweise: g(151,55) = 208
1_Seite 6
Was ist ein Bild?
Einführung
Das Venus-Bild: • • •
40.000 Messwerte der Oberfläche der Venus angeordnet in einer Zahlenmatrix mit 200 Spalten und 200 Zeilen Die Werte werden indiziert mit Zeilenindex Spaltenindex
y x
von 0 ... 199 und von 0 ... 199
hier: Ursprung (0,0) in der linken oberen Ecke • •
x
y
Ursprüngliche Messwerte: Rückgestreute Mikrowellenenergie des jeweiligen Venus-Oberflächenelements. Bild repräsentiert diese Messwerte durch Grauwerte 0 ... 255 (8 bit): 0: 255:
keine Energie rückgestreut Ù maximale Energie rückgestreut Ù
Computer Vision
schwarz, weiß
1_Seite 7
Was ist ein Bild?
Einführung
Allgemeiner: •
Anzahl Zeilen und Spalten (Bildgröße) sensorabhängig (bis 12 000 x 240 000) Typische Bildgrößen sind z.B.: • • •
768 x 576 Pixel 640 x 480 Pixel (VGA-Bildgröße), 320 x 240, ... 800 x 600 (SVGA)
•
Grauwerteanzahl (Dynamikbereich) ist sensorabhängig (heute bis 16 bit).
•
Auch Bilder mit anderen Datentypen (float, int32 etc.) finden Anwendung: z.B. als Zwischenergebnis bei der Bildverarbeitung.
Computer Vision
1_Seite 8
Was ist ein Bild?
Einführung
Farbbilder: Enthält für jedes Pixel mehrere Werte (mehrere Kanäle) Beispiel: Rot Grün Blau (RGB) d
x blau
Lena (oder Lenna)
y
grün
Koordinaten: Spalte x = 151, Zeile y = 55, Kanal d = 0 Schreibweise: g(151,55, 0) = 255 rot Computer Vision
1_Seite 9
Was ist ein Bild?
Einführung
Farbbilder: Enthält für jedes Pixel mehrere Werte (mehrere Kanäle) Beispiel: Hue Saturation Intensity (HSI) - Farbton, Sättigung, Helligkeit Farbton
Sättigung
Helligkeit
Lena (oder Lenna)
Helligkeit
Sättigung
Farbton Computer Vision
1_Seite 10
Was ist ein Bild?
Einführung
Volumenbilder: 3D-Anordnung von Grauwerten • •
Computer Tomographie (CT) oder Magnet Resonanz (MR): z
x
MR Studie. Quelle: The Stanford volume data archive. http://www-graphics.stanford.edu/data/voldata/
y
Computer Vision
1_Seite 11
Was ist ein Bild?
Einführung
Ein Bild im Rechner: // Grauwertbild als Matrix unsigned char g[breite][hoehe];
// Farbbild als Matrix unsigned char g[breite][hoehe][tiefe];
// Referenzierung: g[x][y] = ...
// Referenzierung: g[x][y][d] = ...
oder // Grauwertbild als array unsigned char g[breite*hoehe];
// Farbbild als array unsigned char g[breite*hoehe*tiefe];
// Referenzierung: g[y*breite + x] = ...
// Referenzierung: g[d*breite*hoehe + y*breite + x] = ...
Computer Vision
1_Seite 12
Was ist ein Bild?
Einführung
Ein Bild als Instanz einer Klasse: Angelehnt an CImg von INRIA template struct CImg { // Membervariablen unsigned int width; // Breite unsigned int height; // Hoehe unsigned int depth; // Anzahl Kanaele unsigned int dim; // Anzahl Bilder T *data; // Bilddaten // Memberfunktionen CImg(const unsigned int dx=0, const unsigned int dy=1, const unsigned int dz=1, const unsigned int dv=1) { width = dx; height = dy; depth = dz; dim = dy; const unsigned int s = size(); if (s > 0) data = new T[s]; else { data = NULL; width=height=depth=dim=0; } Computer Vision }
const unsigned int size() const { return width*height*depth*dim; } ~CImg() { if (data != NULL) delete[] data; } // ...viele weitere Memberfunktionen.... }; // Instanzierung z.B. fuer 8bit-Bild: ... CImg myImage(200, 200, 1, 1); ...
INRIA: INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET1_Seite EN AUTOMATIQUE 13 www.inria.fr
Was ist ein Bild?
Einführung
Ein Bild als Höhenmodell: „Grauwertgebirge“ x g(x,y)
xy-Ebene y-Achse
y
Das Bild g kann als (diskrete) Funktion auf (einem Gitter) der xy-Ebene aufgefasst werden: g(x,y) Computer Vision
1_Seite 14
Was ist ein Bild?
Einführung
Umgekehrt: Eine Funktion als Bild? Beispiel Gaußfunktion:
G ( x, y ) =
1 2πσ 2
−
e
x2 + y2 2σ 2
x‘ ⋅ 10−4
x-Achse
???
y‘ y-Achse
σ = 20 Computer Vision
1_Seite 15
Was ist ein Bild?
Einführung
Diskretisierung im Eindimensionalen: Gegeben: Gesucht: g(x)
Kontinuierliche Funktion bzw. analoges Signal g Diskrete Funktion bzw. digitales Signal
Abtasten
Quantisieren
x
x
x
•
Abtasten (Sampling): Die Funktion wird an diskreten, äquidistanten Punkten abgetastet.
•
Quantisieren: Der kontinuierliche Wertebereich wird auf endlich viele Werte eingeschränkt (z. B. durch Runden). Computer Vision
1_Seite 16
Was ist ein Bild?
Einführung
Diskretisierung im Zweidimensionalen: • •
Die Funktion wird an jedem Gitterpunkt abgetastet. Die Funktionswerte werden quantisiert.
G ( x, y ) =
g(x,y)
x
1 2πσ 2
−
e
x2 + y2 2σ 2
⋅ 10−4
σ =2 y
Computer Vision
1_Seite 17
Was ist ein Bild?
Einführung
Resampling zum ganzzahligen Verkleinern eines Bildes
jedes 2. Pixel jedes 3. Pixel jedes 2. Pixel
Original... jedes 2. Pixel jedes 3. Pixel
... 4. ...
... 5. ...
Wie grob kann abgetastet werden, ohne dass Informationsverluste bzw. Informationsverfälschungen entstehen? Antwort: Abtasttheorem (später)... Computer Vision
1_Seite 18
Was ist ein Bild?
Einführung
Resampling zum Verkleinern eines Bildes
x+δx x x+1
jedes 1,5te Pixel
y y+δy y+1 Original...
Allgemeiner: Wie können Grauwerte zwischen den ganzzahligen Indizes bestimmt werden?
Computer Vision
1_Seite 19
Was ist ein Bild?
Einführung
Nächster Nachbar
x+δx x x+1
y y+δy y+1
Suche den nächstgelegenen Gitterpunkt und verwende dessen Grauwert.
Computer Vision
1_Seite 20
Was ist ein Bild?
Einführung
Bilineare Interpolation x+δx x x+1 (x+1,y) y y+δy
(x+1,y+1)
y+1
(x,y)
(x,y+1)
g ( x + δ x , y + δ y ) = (1 − δ x )(1 − δ y ) g ( x, y ) + δ x (1 − δ y ) g ( x + 1, y ) + (1 − δ x )δ y g ( x, y + 1) + δ xδ y g ( x + 1, y + 1) Gewichteter Mittelwert der vier benachbarten Grauwerte durch • zwei lineare Interpolationen längs x-Achse (grün), • anschließend eine lineare Interpolation längs y-Achse (rot) und Das Ergebnis ist i.A. keine ganze Zahl ⇒ Quantisierung erforderlich! Computer Vision
1_Seite 21
Was ist ein Bild?
Einführung
Quantisieren zur Reduktion der Grauwerte (oder Farben)
Quantisieren
256 Grauwerte
5 Grauwerte
Wie grob kann quantisiert werden, ohne dass Informationsverluste entstehen? Antwort: Quantisierungstheorem Computer Vision
1_Seite 22
Wie entsteht ein Bild?
Consumer Kameras und Camcorder
Einführung
Videokameras für den industriellen Einsatz
IR-Videokameras
CT-Gerät Radar (SAR)
MR-Tomograph Computer Vision
Scanner
1_Seite 23
Wie entsteht ein Bild?
Einführung
Von einem Weltpunkt rückgestreute Lichtenergie
Auf einen Bildpunkt auftreffende Lichtenergie
•
Objektiv lenkt Lichtenergiestrom von einem Weltpunkt auf einen Bildpunkt der Sensorfläche.
•
Sensor wandelt Lichtenergiestrom in elektrisches Signal.
Computer Vision
1_Seite 24
Wie entsteht ein Bild?
Einführung
Beispiel für einen Bildsensor: CCD-Sensor (Charge Coupled Device) 2
•
Photonen treffen auf die Fotodioden und erzeugen Ladung.
•
Die Ladungen werden in die Schieberegister ausgelesen.
•
Die Ladung wird Zeile für Zeile ins Ausleseregister transportiert.
3 4
1
1) 2) 3) 4)
Ausleseregister Schieberegister Fotodiodenfeld Videosignal
Signal am Chip-Ausgang ist analog (Spannung) -> A/D Wandler Computer Vision
1_Seite 25
Wie entsteht ein Bild? Sensorfläche Ausleselogik Linsen Farbfilter Fotozellen Ausschnitt
CCD-Kamera-Chip
Computer Vision
Sensorelemente (Pixel), ca. 5 µm Abmessung 1_Seite 26
Wie entsteht ein Bild?
Einführung
Alternativen zum Frame Grabber: Übertragung des Videosignals via • •
USB Firewire Computer Vision
1_Seite 27
Anwendungsbeispiele für maschinelles Sehen
•
•
•
•
Medizin Digitale Mammographie Krebszellendetektion Produktion Rumpfschalen Logistik Überwachung Verkehr Flughafen Security Einzelhandel Fahrzeugführung Andocksystem Fahrerassistenzsysteme
Computer Vision
1_Seite 28
Anwendungsbeispiele: Digitale Mammographie
Einführung
Detektierte Mikro-Kalzifikationen
Computer Vision
1_Seite 29
Anwendungsbeispiele: Krebszellendetektion
Einführung
Schritt 3 Entfernung zu kleiner Strukturen, Auftrennung von Clustern Schritt 4 Zählung
Lösung: Schritt 1 Farbraumtransformation Schritt 2 Klassifikation H
S
I
Krebs Gesund (weiß) (schwarz) Mikroskopbild RGB ⇓ HSI
Klassifikator, der die Farben eines Pixels und seiner Nachbarn betrachtet Computer Vision
Ergebnisbild
1_Seite 30
Anwendungsbeispiele: Produktion
Einführung
Flugzeug-Rumpfschalen-Produktion • •
Randabstandsprüfung der Nieten Vollständigkeit und Richtigkeit der Anbauteile
Anbauteile- Mustervergleich
Rumpfschalen-Qualitätsprüfung Aufgaben: • Vollständigkeit • Richtigkeit • Maßhaltigkeit Computer Vision
1_Seite 31
Anwendungsbeispiele: Produktion
Einführung
Logistik: Depalettierung Roboterarm (KuKa) mit • Matrixgreifer • Kamera Scandurchlauf: • Lagebestimmung
Computer Vision
1_Seite 32
Anwendungsbeispiele: Verkehr Verkehrsstrommessung
Einführung Bewegungsschätzung!
Verkehrssituationsanalyse
Computer Vision
1_Seite 33
Anwendungsbeispiele: Verkehr
Einführung
Landungsüberwachung auf Flughäfen Übersichtskamera Segmentkamera Nachgeführte Detailkamera
Computer Vision
1_Seite 34
Anwendungsbeispiele: Überwachung
Einführung
Security: Freigelände-und Gebäudeüberwachung
Schwenk-Neige-Kamera
Statische Kamera
Master-Slave-Kamera Computer Vision
1_Seite 35
Anwendungsbeispiele: Überwachung
Einführung
Aufklärung mittels Luft- und Satellitenbildauswertung • • • •
Landnutzung Umweltüberwachung Städtewachstum Aufklärung
Abrüstungskontrolle
Computer Vision
1_Seite 36
Anwendungsbeispiele: Einzelhandel
Einführung
Kundenstrom-Messung
Computer Vision
1_Seite 37
Anwendungsbeispiele: Fahrzeugführung
Einführung
Flugzeug-Andockleitsysteme
Passagierbrücke
Fl ug ha fe ng eb äu de
Einrollleitlinie
B 737-300
Rollfeld Stopposition
Videokamera
Display Computer Vision
1_Seite 38
Anwendungsbeispiele: Fahrzeugführung
Einführung
Fahrerassistenzsysteme • Spurhalteassistent • Automatische Kollisionsvermeidung • Kollisionswarnung ...
Detektion und Verfolgung anderer Verkehrsteilnehmer aus Bildfolgen
Computer Vision
1_Seite 39
Zusammenfassung
Einführung
Bildauswertung ist ein universell einsetzbares Werkzeug! Arten der Anwendung: • Emulation (funktionelles Nachbilden) von Teilfähigkeiten des menschlichen Sehens • Quantitative Messung in Bildern • Auswertung von (für den Menschen) nicht sichtbaren Spektren
gut
ComputerFähigkeiten 2
Quantitative Auswertung Daten4 Speicherung / Zugriff 6 Mustererkennung Sensorvielfalt Kognitive Verarbeitung
schwach
Computer Vision
Menschl. Fähigkeiten
gut
1_Seite 40
Wie wird die Abbildung modelliert?
Einführung
Modellierung der Projektion: Projektionen auf die Bildebene
Bildebene Sehstrahl
Szenenpunkt
z
f
z
x
Sehstrahl
y
Kamerakoordinatensystem mit focus (Brennweite) f:
y
Bildebene Lochkamerasystem (Zentralprojektion) Orthogonalprojektion
Interne Parameter = Kameraparameter!
Computer Vision
1_Seite 41
Wie wird die Abbildung modelliert?
Einführung
Welt-zu-Kameratransformation:
Welt-zu-Kamera Transformation
Lageparameter = Externe Parameter!
y
z x z
x y
Szenen-, Objekt- oder Weltkoordinatensystem
Kamerakoordinatensystem
Computer Vision
1_Seite 42