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