Post on 19-Jan-2016
description
transcript
Computer Vision
1_Seite 1
Prof. Dr. Norbert Link
Computer VisionMaschinensehen
Computer Vision
1_Seite 2
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/ laubenheimer@iitb.fraunhofer.de
Wer bin ich?
Computer Vision
1_Seite 3
Was ist ein Bild?
Wie entsteht ein Bild?
Anwendungsbeispiele
Zusammenfassung
Inhalte der Einführung
Computer Vision
1_Seite 4
Was ist ein Bild?
Farbbild
Schwarz-Weiß-Bild (Grauwertbild)
Einführung
Computer Vision
1_Seite 5
Intensität(Helligkeit)
Farbe, z.B. RGB Wärme: IR(Infrarot)
Diese Bilder visualisieren die reflektierte elektromagnetische Energie. (verschiedene Frequenzbänder)
Passiv
Aktiv
Röntgenstrahlung Mikrowellen-Radar
Was ist ein Bild? Einführung
sichtbar!
Magnet Resonanz
Computer Vision
1_Seite 6
Mikrowellen-Radar-Bild der Venus
Ausschnitt
Picture element: „Pixel“Koordinaten: Spalte x = 151, Zeile y = 55, Grauwert g = 208Schreibweise: g(151,55) = 208
Was ist ein Bild? Einführung
Ein Bild als Zahlenmatrix:
Spalte
Zeile
Computer Vision
1_Seite 7
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 y von 0 ... 199 und Spaltenindex x von 0 ... 199
hier: Ursprung (0,0) in der linken oberen Ecke
• Ursprüngliche Messwerte: Rückgestreute Mikrowellenenergie des jeweiligen Venus-Oberflächenelements.
• Bild repräsentiert diese Messwerte durch Grauwerte 0 ... 255 (8 bit):
0: keine Energie rückgestreut schwarz,255: maximale Energie rückgestreut weiß
x
y
Was ist ein Bild? Einführung
Computer Vision
1_Seite 8
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.
Was ist ein Bild? Einführung
Computer Vision
1_Seite 9
Farbbilder: Enthält für jedes Pixel mehrere Werte (mehrere Kanäle)
Beispiel: Rot Grün Blau (RGB)
Koordinaten:Spalte x = 151, Zeile y = 55, Kanal d = 0Schreibweise: g(151,55, 0) = 255
Was ist ein Bild?
x
y
d
Einführung
Lena(oder Lenna)
rot
grün
blau
Computer Vision
1_Seite 10
Farbbilder: Enthält für jedes Pixel mehrere Werte (mehrere Kanäle)
Beispiel: Hue Saturation Intensity (HSI) - Farbton, Sättigung, Helligkeit
Was ist ein Bild? Einführung
Lena(oder Lenna)
Farbton
Sättigung
Helligkeit
Sättigung
Helligkeit
Farbton
Computer Vision
1_Seite 11
Volumenbilder: 3D-Anordnung von Grauwerten
• Computer Tomographie (CT) oder• Magnet Resonanz (MR):
Was ist ein Bild? Einführung
x
y
z
MR Studie.
Quelle: The Stanford volume data archive.http://www-graphics.stanford.edu/data/voldata/
Computer Vision
1_Seite 12
// Grauwertbild als Matrixunsigned char g[breite][hoehe];
// Referenzierung: g[x][y] = ...
// Grauwertbild als arrayunsigned char g[breite*hoehe];
// Referenzierung:g[y*breite + x] = ...
Was ist ein Bild? Einführung
Ein Bild im Rechner:
oder
// Farbbild als Matrixunsigned char g[breite][hoehe][tiefe];
// Referenzierung: g[x][y][d] = ...
// Farbbild als arrayunsigned char g[breite*hoehe*tiefe];
// Referenzierung:g[d*breite*hoehe + y*breite + x] = ...
Computer Vision
1_Seite 13
Was ist ein Bild?
template<typename T> 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; } }
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<unsigned char> myImage(200, 200, 1, 1);...
Einführung
Ein Bild als Instanz einer Klasse: Angelehnt an CImg von INRIA
INRIA:INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE
www.inria.fr
Computer Vision
1_Seite 14
Was ist ein Bild? Einführung
y-Achse
g(x,y)
xy-Ebene
Ein Bild als Höhenmodell: „Grauwertgebirge“
x
y
Das Bild g kann als (diskrete) Funktion auf (einem Gitter) der xy-Ebene aufgefasst werden: g(x,y)
Computer Vision
1_Seite 15
Was ist ein Bild? Einführung
Umgekehrt: Eine Funktion als Bild?
Beispiel Gaußfunktion:
20
410
y-Achse
x-Achse
x‘
y‘
2
22
222
1),(
yx
eyxG
???
Computer Vision
1_Seite 16
Was ist ein Bild?
g(x)
x
QuantisierenAbtasten
x x
Diskretisierung im Eindimensionalen:
Gegeben: Kontinuierliche Funktion bzw. analoges Signal gGesucht: Diskrete Funktion bzw. digitales Signal
• 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).
Einführung
Computer Vision
1_Seite 17
Was ist ein Bild?
Diskretisierung im Zweidimensionalen:
• Die Funktion wird an jedem Gitterpunkt abgetastet.• Die Funktionswerte werden quantisiert.
2
410
2
22
222
1),(
yx
eyxG
Einführung
x
y
g(x,y)
Computer Vision
1_Seite 18
Was ist ein Bild?
Resampling zum ganzzahligen Verkleinern eines Bildes
Wie grob kann abgetastet werden, ohne dass Informationsverluste bzw. Informationsverfälschungen entstehen?
Antwort: Abtasttheorem (später)...
Original...
jedes 2. Pixel
jedes 3. Pixel
jedes 2. Pixeljedes 3. Pixel ... 4. ...
... 5. ...
jedes 2. Pixel
Einführung
Computer Vision
1_Seite 19
Was ist ein Bild? Einführung
Resampling zum Verkleinern eines Bildes
Original...
jedes 1,5te Pixelx x+1
y
y+1
x+x
y+y
Allgemeiner: Wie können Grauwerte zwischen den ganzzahligen Indizes bestimmt werden?
Computer Vision
1_Seite 20
Was ist ein Bild? Einführung
Nächster Nachbar
x x+1
y
y+1
x+x
y+y
Suche den nächstgelegenen Gitterpunkt und verwende dessen Grauwert.
Computer Vision
1_Seite 21
Was ist ein Bild? Einführung
Bilineare Interpolation
(x,y+1)
(x+1,y+1)
(x,y)
(x+1,y)
x x+1
y
y+1
x+x
y+y
)1,1()1,()1(
),1()1(),()1)(1(),(
yxgyxg
yxgyxgyxg
yxyx
yxyxyx
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 22
Was ist ein Bild?
Quantisieren zur Reduktion der Grauwerte (oder Farben)
Wie grob kann quantisiert werden, ohne dass Informationsverluste entstehen?Antwort: Quantisierungstheorem
256 Grauwerte 5 Grauwerte
Einführung
Quantisieren
Computer Vision
1_Seite 23
Wie entsteht ein Bild? Einführung
Consumer Kameras und Camcorder
Radar (SAR)
Videokameras für den industriellen Einsatz
IR-Videokameras
Scanner
MR-Tomograph
CT-Gerät
Computer Vision
1_Seite 24
Von einem Weltpunktrückgestreute Lichtenergie
Auf einen Bildpunktauftreffende Lichtenergie
• Objektiv lenkt Lichtenergiestrom von einem Weltpunkt auf einen Bildpunkt der Sensorfläche.
• Sensor wandelt Lichtenergiestrom in elektrisches Signal.
Wie entsteht ein Bild? Einführung
Computer Vision
1_Seite 25
Wie entsteht ein Bild? Einführung
Beispiel für einen Bildsensor: CCD-Sensor (Charge Coupled Device)
1
2
3
4
1) Ausleseregister2) Schieberegister3) Fotodiodenfeld4) Videosignal
• 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.
Signal am Chip-Ausgang ist analog (Spannung)
-> A/D Wandler
Computer Vision
1_Seite 26
CCD-Kamera-Chip
Sensorfläche
Ausleselogik
Ausschnitt
Sensorelemente(Pixel), ca. 5 µm Abmessung
Farbfilter
Linsen
Fotozellen
Wie entsteht ein Bild?
Computer Vision
1_Seite 27
Wie entsteht ein Bild? Einführung
Alternativen zum Frame Grabber:
Übertragung des Videosignals via
• USB• Firewire
Computer Vision
1_Seite 28
• MedizinDigitale MammographieKrebszellendetektion
• ProduktionRumpfschalenLogistik
• ÜberwachungVerkehrFlughafenSecurityEinzelhandel
• FahrzeugführungAndocksystemFahrerassistenzsysteme
Anwendungsbeispiele für maschinelles Sehen
Computer Vision
1_Seite 29
Anwendungsbeispiele: Digitale Mammographie
DetektierteMikro-Kalzi-fikationen
Einführung
Computer Vision
1_Seite 30
Anwendungsbeispiele: Krebszellendetektion Einführung
Klassifikator, der die Farbeneines Pixels und seiner
Nachbarn betrachtet
Mikroskopbild RGB
HSI
Ergebnisbild
Lösung:Schritt 1 FarbraumtransformationSchritt 2 Klassifikation
Krebs(weiß)
Gesund(schwarz)
Schritt 3 Entfernung zu kleiner Strukturen, Auftrennung von ClusternSchritt 4 Zählung
H S I
Computer Vision
1_Seite 31
Anwendungsbeispiele: Produktion Einführung
Rumpfschalen-QualitätsprüfungAufgaben:
• Vollständigkeit• Richtigkeit• Maßhaltigkeit
Flugzeug-Rumpfschalen-Produktion
Anbauteile- Mustervergleich
• Randabstandsprüfung der Nieten• Vollständigkeit und Richtigkeit der
Anbauteile
Computer Vision
1_Seite 32
Anwendungsbeispiele: Produktion Einführung
Logistik: Depalettierung
Roboterarm (KuKa) mit
• Matrixgreifer• Kamera
Scandurchlauf:
• Lagebestimmung
Computer Vision
1_Seite 33
Anwendungsbeispiele: Verkehr
Verkehrsstrommessung
Verkehrssituationsanalyse
Einführung
Bewegungsschätzung!
Computer Vision
1_Seite 34
Übersichtskamera
Segmentkamera
Nachgeführte Detailkamera
Landungsüberwachung auf Flughäfen
EinführungAnwendungsbeispiele: Verkehr
Computer Vision
1_Seite 35
Anwendungsbeispiele: Überwachung
Security: Freigelände-und Gebäudeüberwachung
Statische Kamera
Master-Slave-Kamera
Schwenk-Neige-Kamera
Einführung
Computer Vision
1_Seite 36
Anwendungsbeispiele: Überwachung
Aufklärung mittels Luft- und Satellitenbildauswertung
• Landnutzung• Umweltüberwachung• Städtewachstum• Aufklärung
Abrüstungskontrolle
Einführung
Computer Vision
1_Seite 37
Anwendungsbeispiele: Einzelhandel
Kundenstrom-Messung
Einführung
Computer Vision
1_Seite 38
Anwendungsbeispiele: Fahrzeugführung
Flugzeug-Andockleitsysteme
Flugha
feng
ebäu
de
Passagierbrücke
Rollfeld
Einroll-leitlinie
StoppositionVideokamera
B 737-300
Display
Einführung
Computer Vision
1_Seite 39
Anwendungsbeispiele: Fahrzeugführung
Fahrerassistenzsysteme
• Spurhalteassistent• Automatische Kollisionsvermeidung• Kollisionswarnung
...
Detektion und Verfolgung anderer Verkehrsteilnehmeraus Bildfolgen
Einführung
Computer Vision
1_Seite 40
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
Computer-Fähigkeiten
Menschl.Fähigkeiten gutschwach
gut
2
4
6
Kognitive Verarbeitung
Quantitative Auswertung
Daten-Speicherung / -
Zugriff
Sensorvielfalt
Muster- erkennung
Bildauswertung ist ein universell einsetzbares Werkzeug!
EinführungZusammenfassung
Computer Vision
1_Seite 41
xy
z
Kamerakoordinatensystemmit focus (Brennweite) f:
Bildebene
f
Sehstrahl
Wie wird die Abbildung modelliert? Einführung
Modellierung der Projektion:
Lochkamerasystem (Zentralprojektion)Orthogonalprojektion
z
y
Szenenpunkt
Projektionen aufdie Bildebene
Bildebene
Sehstrahl
Interne Parameter=
Kameraparameter!
Computer Vision
1_Seite 42
Wie wird die Abbildung modelliert? Einführung
Welt-zu-Kameratransformation:
xy
z
x
y
z
Welt-zu-KameraTransformation
Kamerakoordinatensystem
Szenen-, Objekt- oderWeltkoordinatensystem
Lageparameter=
Externe Parameter!