Abb. - ACIN - Technische Universität Wien
Abb. - ACIN - Technische Universität Wien
Abb. - ACIN - Technische Universität Wien
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Komponenten der Automation<br />
Teil 2<br />
Markus Vincze<br />
Automatisierungs- und Regelungstechnik Institut<br />
<strong>Technische</strong> <strong>Universität</strong> <strong>Wien</strong><br />
vincze@acin.tuwien.ac.at
Inhaltsangabe<br />
Robotik und Sensorik in der Automation<br />
• Bildverarbeitung für die Robotik und<br />
Automation<br />
– Anwendungen<br />
– Maschinelles Sehen – Komponenten<br />
– Bildverarbeitung<br />
– Objekte verfolgen<br />
– Objekte erkennen<br />
• Kalman Filter<br />
2
Industrielle Projekte<br />
• FESTO – Checkbox<br />
(Bauteilprüfung und -<br />
erkennung)<br />
• AVL – Engine Videoscope<br />
(Temperaturmessung im<br />
Motorraum)<br />
• IAEA/FAO – Trennung von<br />
männlichen und weiblichen<br />
Tsetsefliegen<br />
• EADS – Vernähen von<br />
Kohlefaserstofftextilien<br />
3
Prototypen-Entwicklung<br />
• Holzer – Trainings-Optimierungs-System (TOS)<br />
4
Forschungsprojekte<br />
• CARAK – Vermessung der Hornhaut<br />
• FlexPaint – Lackieren beliebiger Teile<br />
• FibreScope – automatische Bohrlochprüfung<br />
5
Forschungsprojekte<br />
• RobVision – Navigation in Schiffsrumpf<br />
• ActIPret – Interpretation von Handlungen<br />
eines Menschen mit Gegenständen<br />
• MOVEMENT – zuverlässig Sehen<br />
in Innenräumen<br />
• „Kognitives Sehen“ –<br />
Verstecken verstehen<br />
• XPERO – Lernen<br />
durch Experimentieren<br />
Kind.mov<br />
6
EU Projekt robots@home<br />
• Meilensteine<br />
– 2007: Start<br />
– 2008: Lernen eines Raumes<br />
– 2009: Lernen einer Wohnung<br />
– 2010: Navigation in 4 Wohnungen<br />
• Objektklassifizierung<br />
anhand der Funktion<br />
• Stereo und<br />
Laufzeit-Kameras<br />
7
Computer Vision<br />
(Computer/maschinelles Sehen)<br />
• Computer Vision: Teilgebiet der KI, das sich mit dem<br />
Verarbeiten von Bildern der realen Welt befasst [1]<br />
• Ziel: Computer programmieren um eine Szene oder<br />
Merkmale in einem Bild zu „verstehen"<br />
• Methoden: Segmentieren, Verfolgen,<br />
Pose bestimmen, 3D Modelle, Erkennen<br />
von Objekten in Bildern (z.B., Gesichter)<br />
• Erzielt mit Hilfe von Mustererkennung, statistischen<br />
Lernmethoden, projektiver Geometrie, BV, KI, ...<br />
[1] Dana H. Ballard, Christopher M. Brown, (1982) Computer Vision<br />
(2nd edition), Prentice Hall.<br />
8
Mustererkennung (Pattern Recognition)<br />
• "the act of taking in raw data and taking an<br />
action based on the category of the data" [1]<br />
• Ziel: vorgegebene Muster erkennen<br />
• Methoden: Statistik, maschinelles Lernen, ...<br />
[1] Richard O. Duda, Peter E. Hart, David G. Stork (2001) Pattern<br />
classification (2nd edition), Wiley, New York.<br />
9
Bildverarbeitung (Image Processing)<br />
• Bild zu Bild Verarbeitung [1]<br />
• Teilgebiet des maschinellen Sehens<br />
<strong>Abb</strong>.: Nummerntafelerkennung, 7 Spektren des NASA LANDSAT<br />
[1] Rafael C. Gonzales, Richard E. Woods, (2002) Digital Image<br />
Processing (2nd edition), Prentice Hall.<br />
10
Machine Vision (Maschinensehen)<br />
• = Anwendung von Computer Vision für die<br />
Automatisierung von Prozessen<br />
• MV System ist ein Computer der Entscheidungen<br />
aufgrund der Analyse von digitalen Bildern trifft<br />
Medium Reflektion<br />
Licht Objekt<br />
Regelung,<br />
Steuerung<br />
Sensor,<br />
Bild<br />
Daten,<br />
Ergebnis<br />
<strong>Abb</strong>.: Komponenten eines Machine Vision Systems.<br />
Verarbeitung<br />
11
In Bildern gesuchte Information<br />
• Bestimmung von<br />
– Geometrie: Form, Größe<br />
– Position und Orientierung<br />
(Pose)<br />
– Materialeigenschaften: Farbe,<br />
Textur, Fehler<br />
• Objekte finden und erkennen<br />
– Gesichter, Personen,<br />
Aktivitäten, ...<br />
– Nummernschilder, Tische,<br />
Häferl, ...<br />
12
Von der Lichtquelle zum Bild<br />
• Viele verschiedene Einflüsse<br />
• Vollständige Modellieren nicht möglich<br />
• Lösungen unter bestimmten Bedingungen<br />
13
Elektromagnetisches Spektrum<br />
[Encarta]<br />
14
Radiometrie – Photometrie<br />
• Radiometrie ist die<br />
Wissenschaft von der<br />
Messung<br />
elektromagnetischer<br />
Strahlung (Licht)<br />
• Photometrie beinhaltet<br />
den Aspekt wie der<br />
Mensch Licht wahrnimmt<br />
– d.h., radiometrische<br />
Größen angepasst an das<br />
Spektrum des<br />
menschlichen Auges<br />
– Menschliches Auge<br />
genormt durch Versuche<br />
der CIE (Commission<br />
Internationale de<br />
l‘Eclairage)<br />
15
Standard-Beobachter<br />
<strong>Abb</strong>.: Empfindlichkeit des<br />
menschlichen Farbsehens<br />
[Padgham 1975]<br />
<strong>Abb</strong>.: Die CIE Standard-<br />
Beobachter-Kurve [B1.19]<br />
16
Radiometrische und<br />
photometrische Größen<br />
Einheiten:<br />
Lm Lumen<br />
W Watt = J/s<br />
Cd Candela<br />
Sr Steradiant = m 2 /m 2<br />
Lx Lux<br />
17
Strahlungsfluss – Lichtstrom<br />
• (radiant flux)<br />
• Strahlungsmenge<br />
(Photonen) pro<br />
Sekunde in Watt [W]<br />
<strong>Abb</strong>.: Spektrale Empfindlichkeit<br />
des menschlichen Auges nach<br />
CIE für Tageslicht, 1931, 1964<br />
• (luminous flux)<br />
• Strahlungsmenge<br />
wahrgenommen durch<br />
Standard-Beobachter in<br />
Lumen [lm]<br />
18
Tag- und Nachtsehen<br />
<strong>Abb</strong>.: Spektrale Intensitätsfunktion ν λ (Effizienz) des menschlichen<br />
Auges nach CIE für Nachtlicht (1951) und Summe Taglicht [B1.17]<br />
19
Strahlungsfluss – Lichtstrom<br />
• Strahlungsfluss Fe<br />
ist<br />
das Integral über das<br />
ganze Spektrum S<br />
F<br />
∞<br />
= ∫ S<br />
0<br />
Fe<br />
( δ / δλ)<br />
dλ<br />
∫<br />
e v<br />
• Lichtstrom v gewichtet<br />
die spektralen Anteile<br />
mit den Werten der<br />
Intensitätsfunktion<br />
750<br />
F = 683 S(<br />
δFe / δλ)<br />
νλ<br />
dλ<br />
Beispiel: Quelle mit Strahlungsfluss von 1W bei einer Wellenlänge<br />
von 555nm emittiert 683 Lumen<br />
Frage: Wieviele Lumens emittiert eine infrarote 0.7 mW LED?<br />
380<br />
F<br />
20
Strahlstärke – Lichtstärke<br />
• (radiant intensity)<br />
• Strahlungsfluss pro<br />
Raumwinkel [W/sr]<br />
2 2<br />
1ω[<br />
sr ] = 1A<br />
/ 1r<br />
[ m / m<br />
Raumwinkel der<br />
Einheitskugel: 4π<br />
2<br />
]<br />
• (luminous intensity)<br />
• Gemessen in der SI-<br />
Basiseinheit Candela<br />
[cd]<br />
<strong>Abb</strong>.: Definition des Raumwinkels (steradians [sr]) [B1.8]<br />
21
Bestrahlungsstärke – Beleuchtungsstärke<br />
• (irradiance)<br />
• auf dem Sensor<br />
eintreffender<br />
Strahlungsfluss [W/m²]<br />
E • (illuminance) Ev<br />
e<br />
• Einheit: Lux [lux]<br />
<strong>Abb</strong>.: Definition der Beleuchtungsstärke [B1.21]<br />
22
Beispiele zur Beleuchtungsstärke<br />
Lux Beschreibung<br />
100,000 Sonnenlicht, mittags<br />
32,000 Bewölkt, mittags<br />
2,000 bewölkt, 1 Stunde nach Sonnenuntergang<br />
600 Supermarktbeleuchtung<br />
450 durchschnittliche Bürobeleuchtung<br />
175 Straßenlicht, nachts<br />
10 Kerze in 20 cm, Taschenlampe<br />
0.3 helles Mondlicht, klarer Himmel<br />
23
Strahldichte – Leuchtdichte<br />
• (radiance)<br />
• ausgestrahlte Intensität<br />
(z.B. vom Objekt) pro<br />
Einheitsfläche [W/m²/sr]<br />
L • (luminance) v L<br />
e<br />
• Strahldichte auf die das<br />
Auge bzw. ein Sensor<br />
reagiert [cd/m²]<br />
<strong>Abb</strong>.: Definition der Leuchtdichte [B1.24]<br />
24
• Punktlichtquelle<br />
Lichtquelle<br />
<strong>Abb</strong>.: Intensitätsverteilung einer Punktlichtquelle [B1.9]<br />
25
Verkürzungseffekt (fore-shortening)<br />
<strong>Abb</strong>.: Abnahme der Intensität [lux]<br />
mit Distanz und Winkel [B1.22].<br />
<strong>Abb</strong>.: Verkürzungseffekt [H10.3].<br />
26
Eigenschaften von Objekten<br />
• Lambert‘sche Oberfläche<br />
(Lambertian surface)<br />
– Gleich hell aus jeder Richtung<br />
– Alles eintreffende Licht wird reflektiert<br />
• Spiegelnde Oberfläche<br />
– Alles eintreffende Licht wird reflektiert<br />
• Albedo<br />
– Gibt an wie viel Licht eine Oberfläche<br />
reflektiert relativ zu idealer Oberfläche ohne<br />
Absorption [0..1]<br />
– Lambert‘sche Oberfläche: albedo = .<br />
27
Dichromatisches Reflektionsmodell<br />
• Mischt Lambert‘sches Modell und Spiegelmodell<br />
E e (λ)<br />
<strong>Abb</strong>.: Körper- und Oberflächenreflektion.<br />
28
Reflektionsmodelle<br />
<strong>Abb</strong>.: Reflektionsmodelle [Bajscy]<br />
29
Dichromatisches Reflektionsmodell<br />
• Allgemeine (Ab)strahldichte:<br />
• Dichromatisches Modell: S ( λ ) =<br />
Ss<br />
( λ)<br />
Gs<br />
( θe<br />
, ϕe<br />
) + Sb<br />
( λ)<br />
G<br />
• Lambert‘sche Geometriefunktion G b<br />
unabhängig von Blickwinkel<br />
Le = Ee(<br />
λ) ⋅ S(<br />
λ)<br />
<strong>Abb</strong>.: Typisches, reales Reflektionsmuster [B3.7]<br />
b<br />
30
Geometrie einer Szene<br />
<strong>Abb</strong>.: Winkel relativ zur Oberfläche<br />
des Objektes [H10.7].<br />
<strong>Abb</strong>.: Definition von Polarwinkel θ<br />
und Azimut φ [H10.6].<br />
31
Ee = Le<br />
Entstehung des Bildes<br />
2<br />
π ⎛ D ⎞ 4<br />
4<br />
⎜<br />
⎝<br />
f<br />
⎟<br />
⎠<br />
E e<br />
cos<br />
α<br />
Annahme: α ist klein � konstant<br />
f z<br />
<strong>Abb</strong>.: Relation zwischen Strahldichte einer Oberfläche (Radianz Le) und Bestrahlungsstärke auf der Bildebene (Irradianz Ee) [H10.4].<br />
• Anwendung: „shape from shading“ � Oberflächenform<br />
α<br />
θ<br />
L e . ... Strahldichte<br />
32
Orthographische Projektion<br />
• Normal- oder Parallelprojektion: x = X, y = Y<br />
• Vereinfachung wenn Objekt weit weg<br />
33
Perspektivische Projektion<br />
• Lochmodell (pin-hole model) einer Kamera<br />
u =<br />
v =<br />
f<br />
z<br />
f<br />
z<br />
x<br />
y<br />
<strong>Abb</strong>.: Modell des <strong>Abb</strong>ildungsprozesses.<br />
<strong>Abb</strong>.: Lochmodell.<br />
34
Pose der Kamera im Raum<br />
• Homogene Matrizen:<br />
p c = R ⋅p<br />
i +<br />
p<br />
c<br />
Ao =<br />
⎛<br />
⎜<br />
⎝<br />
R<br />
0<br />
p⎞<br />
⎟<br />
1⎠<br />
c<br />
Ao<br />
<strong>Abb</strong>.: Kamera- und Objektkoordinatensystem.<br />
• Posebestimmung: aus 3 Punkten oder 3<br />
Linien des Objektes bei bekannter Geometrie<br />
35
Linsen, Objektive (lens)<br />
1 1 1<br />
• Gauss‘sche Linsengleichungen: = + und<br />
f b g<br />
• Fokuslänge:<br />
f<br />
=<br />
gB<br />
G + B<br />
<strong>Abb</strong>.: Das Linsengesetz [DBS].<br />
B<br />
=<br />
G<br />
b<br />
g<br />
36
Beleuchtung (illumination)<br />
Dunkelfeld Hellfeld diffus:Glocke od. Ringlicht<br />
Durchlicht transparentes Objekt Schattenwurf<br />
<strong>Abb</strong>n.: [DBS]<br />
37
Bildwinkel (field of view, FOV)<br />
⎛ B<br />
• Kleiner Fokus � großer Bildwinkel: θ<br />
= 2atan⎜<br />
⎝ 2<br />
Tiefenschärfe<br />
(depth of view)<br />
• Erlangt man durch<br />
– Kleine Blende (aperture)<br />
– Kleinen Fokus<br />
– Große Distanz zum Objekt<br />
max<br />
<strong>Abb</strong>.: Geometrie Bildwinkel<br />
[DBS].<br />
f<br />
⎞<br />
⎟<br />
⎠<br />
38
• Unschärfekreis<br />
' d<br />
u = a − b<br />
b<br />
d ... Blendenöffnung<br />
• Dioptrien = 1/f<br />
(power of a lens)<br />
Unschärfe (image blur)<br />
<strong>Abb</strong>.: Unschärfekreis je nach<br />
Blendendurchmesser [DBS].<br />
39
Bilder<br />
• Bildinformation: Intensität, Farbe, multispektrale<br />
Bilder, Tiefe/Distanz, ...<br />
<strong>Abb</strong>.: Eines der drei Stereobilder zur Berechung des Tiefenbildes<br />
[PointGrey]<br />
40
Auflösung, Bildpyramide<br />
<strong>Abb</strong>.: Bild bei verschiedenen Auflösungen (120x120, 60x60, 30x30)<br />
<strong>Abb</strong>.: Bildpyramide: Bilder wie oben nur mit gleicher Größe [G. Sandini]<br />
41
Auflösungsvariante (space-variant) Bilder<br />
<strong>Abb</strong>.: Bilder mit gleicher Pixelanzahl und jeweils verdoppeltem Bildwinkel<br />
<strong>Abb</strong>.: Variable Bildauflösung mit Überlagerung obiger Bilder [G. Sandini]<br />
42
[IBIDEM retina]<br />
Log-polare Bilder, Fovea<br />
<strong>Abb</strong>.: Log-polare Pixelanordnung [G. Sandini]<br />
• Vorteil: angepaßt an Charakteristik<br />
des menschlichen Auges<br />
• Effiziente Kodierung, z.B.<br />
Videokonferenz (64 kPixel)<br />
<strong>Abb</strong>.:<br />
Rücktransformation<br />
des log-polaren<br />
Bildes in eine<br />
rechtwinkelige<br />
Pixelanordnung<br />
[G. Sandini]<br />
43
Log-polare Bilder: Anwendungen<br />
<strong>Abb</strong>.: Zentrische<br />
Kreise im log-polaren<br />
Bild werden auf eine<br />
„vertikale“ Linie<br />
abgebildet.<br />
<strong>Abb</strong>.: Radiale Linien<br />
bei Fokusierung auf<br />
den Fluchtpunkt<br />
werden auf eine<br />
horizontale Linie<br />
abgebildet [Peters,<br />
Bishay, 1996].<br />
44
Inhaltsangabe<br />
Robotik und Sensorik in der Automation<br />
• Bildverarbeitung für die Robotik und Automation<br />
– Anwendungen<br />
– Maschinelles Sehen – Komponenten<br />
– Objekte verfolgen<br />
• Dynamische Betrachtungen<br />
• Robuste Bildverarbeitung<br />
– Objekte erkennen<br />
• Kalman Filter<br />
45
3D (6DoF) Objekte verfolgen<br />
46
Objektverfolgung - Prinzip<br />
• Modell-basierter Ansatz<br />
• Robustheit durch Integration von Hinweisen (cues)<br />
Bild<br />
Merkmale<br />
3D Objektpose<br />
Object<br />
tracking<br />
3D Objektpose<br />
47
• Aufgabe ist bekannt<br />
Systemsicht<br />
• Objekte sind bekannt ⇒ Modell<br />
• Umgebung teilweise bekannt<br />
48
Ziel der Objektverfolgung<br />
• Beliebige Bewegung in 3D<br />
– Navigation, Handhabung von Teilen<br />
• Robustheit: normale Umgebung<br />
• Systemintegration: dynamische Aspekte<br />
49
Inhaltsangabe<br />
Robotik und Sensorik in der Automation<br />
• Bildverarbeitung für die Robotik und Automation<br />
– Anwendungen<br />
– Maschinelles Sehen – Komponenten<br />
– Objekte verfolgen<br />
• Dynamische Betrachtungen<br />
• Robuste Bildverarbeitung<br />
– Objekte erkennen<br />
• Kalman Filter<br />
50
Geschwindigkeit des Objektes<br />
Video: Langsame Bewegung der Zielobjektes.<br />
51
Geschwindigkeit des Objektes<br />
Video: Schnelle Bewegung der Zielobjektes.<br />
52
Maximale Geschwindigkeit<br />
Fenster<br />
Radius<br />
Radius<br />
• Maximale Geschwindigkeit im Bild:<br />
Latenzzeit<br />
Ziel<br />
Radius<br />
Bild<br />
[ pixel]<br />
[ s]<br />
53
Radius<br />
• Rechenzeit: ∝ #Pixel = 4Cr 2<br />
• C abhängig von Bildverarbeitungsmethode<br />
– Z.B.: PETS Workshops, IEEE ICRA, ECCV<br />
2r<br />
2r<br />
54
Latenzzeit<br />
• Summe aller Zeitverzögerungen der gesamten<br />
Regelschleife (T )<br />
– Bildaufnahme, Totzeiten (z.B. Datentransfer)<br />
• + Zeit für Bildverarbeitung<br />
Steuersignal<br />
Regler<br />
Δx<br />
Δy<br />
BV<br />
System<br />
55
v<br />
=<br />
Maximale<br />
Verfolgungsgeschwindigkeit<br />
Radius<br />
Latenzzeit<br />
=<br />
T<br />
r<br />
+ 4Cr<br />
2<br />
[ pixel]<br />
[ s]<br />
⇒ Maximum bei T = 4Cr2 bzw. bei r =<br />
1/<br />
2 T / C<br />
⇒ Rechenzeit = Summe Latenzzeiten<br />
56
Anordnung der Pixel mit Fovea<br />
[Sandini]<br />
Log-polar Fovea<br />
[IBIDEM retina]<br />
Bildpyramide<br />
57
Verfolgungsgeschwindigkeit<br />
Video: Schnelle Bewegung des Zielobjekts<br />
58
Maximale<br />
Verfolgungsgeschwindigkeit<br />
⇒ vollen Blickwinkel nützen<br />
59
Experimente<br />
60
Ergebnisse: Erzielen hoher<br />
Verfolgungsgeschwindigkeit<br />
• Kameras mit Fovea<br />
• Derzeit: CCD, CMOS Sensoren<br />
– Fenstergröße an Latenzzeit anpassen<br />
• Latenzzeit bzw. Auflösung reduzieren (1:1)<br />
• Schnellerer Computer, höhere Bildfrequenz<br />
(2: 2<br />
)<br />
• Ergebnisse unabhängig von Regler<br />
61
Stand der Technik<br />
62
Inhaltsangabe<br />
Robotik und Sensorik in der Automation<br />
• Bildverarbeitung für die Robotik und Automation<br />
– Anwendungen<br />
– Maschinelles Sehen – Komponenten<br />
– Objekte verfolgen<br />
• Dynamische Betrachtungen<br />
• Robuste Bildverarbeitung<br />
– Objekte erkennen<br />
• Kalman Filter<br />
63
Stand der Technik (1/2)<br />
• Modellbasierte Objektverfolgung<br />
– Gradient: Dickmanns‘88, Harris‘88, Lowe‘92, Nagel‘00,<br />
Thompson‘01, Drummond‘02, Kragic‘03<br />
– Bewegungsmodell: Gennery‘92, Isard‘98<br />
[Thompson’01] [Drummond’02] [Kragic‘03]<br />
64
Stand der Technik (2/2)<br />
• Integration von Bildhinweisen (cue integration)<br />
– Kantenbestimmung: Hoff‘89, Poggio‘89<br />
– Regionenbasiert: Aloimonos‘89, Toyama‘99, Kragic’01,<br />
Schiele‘02<br />
Objekt zeigen: Farbbewertung + Texturbewertung = gefunden<br />
65
Bild<br />
Modell<br />
3D Objektpose<br />
3D Pose<br />
Projektion<br />
Bild<br />
Fenster<br />
Modellbasierte<br />
Objektverfolgung<br />
EPIC<br />
Objektverfolgung<br />
Objektseite Modell<br />
Geometrie<br />
einpassen<br />
Objektverfolgung<br />
3D Objektpose<br />
Bild<br />
Verdeckung<br />
3D Pose<br />
Pose<br />
einpassen<br />
neue<br />
3D<br />
Pose<br />
66
3D Pose<br />
Projektion<br />
Bild<br />
Fenster<br />
Verfolgungsfenster<br />
Warping [Hager98]<br />
...<br />
...<br />
67
Integration von Bild- und<br />
Modellhinweisen (1/2)<br />
(EPIC - Edge Projected Integration of Cues)<br />
1. Kantenbestimmung: alle Kanten<br />
2. Für jedes Kantenelement:<br />
Objektseite<br />
EPIC<br />
e<br />
=<br />
cues<br />
∑<br />
i=<br />
1<br />
w<br />
links<br />
Modell: Objektseite<br />
H<br />
i,<br />
links<br />
+<br />
w<br />
rechts<br />
H<br />
i,<br />
rechts<br />
Bild: Intensität, Farbe<br />
Adaption: m und s<br />
Y<br />
T1<br />
T2<br />
68
Integration von Bild- und<br />
Modellhinweisen (2/2)<br />
3. Auswahl der wahrscheinlichsten Kantenelemente<br />
Objektseite<br />
EPIC<br />
Anzahl Kantenelemente<br />
Adaptiver<br />
Schwellwert<br />
Wahrscheinlichkeit e<br />
69
Selbsteinschätzung (self-evaluation)<br />
• Szenenabhängige Einschätzung der Hinweise<br />
• Wahrgenommene Szenenkomplexität<br />
– Mehrdeutigkeit der Elemente<br />
– Hinweis-Stufe: # Kantenelemente / Kantenlänge<br />
– Merkmal-Stufe: # Kandidaten / Merkmal<br />
• Implementierung: Optionaler Aufruf der<br />
Methoden<br />
– Hinweis-Stufe: mehr, andere Bildhinweise<br />
– Merkmal-Stufe: TOPIC und/oder Pose Validatierung<br />
70
Selbsteinschätzung<br />
• Wahrgenommene Komplexität<br />
der Kantenelemente<br />
• Nach Berechnung der<br />
Bildhinweise<br />
• Maßzahl:<br />
# Kantenelemente / Kantenlänge<br />
<strong>Abb</strong>.: Nur Gradient: 4.3 EPIC: 1.16<br />
71
Modell<br />
Geometrie<br />
einpassen<br />
Einpassen der Geometrie<br />
• Fehler der Abstandquadrate (Least Mean<br />
Square): Ausreißer nicht erkannt/entfernt<br />
• Besser: RANSAC Random Sample Consensus<br />
oder Least Median Square<br />
E1<br />
E1<br />
E2<br />
E2<br />
E3<br />
E3<br />
E4<br />
E4<br />
E5<br />
E6<br />
E5<br />
E6<br />
72
Einpassen der Geometrie<br />
• Wahrscheinlichkeit korrektes Merkmal:<br />
Modell<br />
Geometrie<br />
einpassen<br />
l<br />
Anteil korrekte Kantenelemente g<br />
l<br />
= 1−<br />
1<br />
( ) k n<br />
− g<br />
Linie: n=2<br />
73
E 2<br />
E<br />
E<br />
3<br />
2<br />
E 3<br />
E 4<br />
E 1<br />
12<br />
E E 10<br />
9<br />
11 E<br />
E 4<br />
5 E<br />
Einpassen der Geometrie<br />
• Wahrscheinlichkeit korrektes Merkmal: ( ) k<br />
E<br />
1<br />
Modell<br />
E<br />
E 11<br />
12<br />
Geometrie<br />
einpassen<br />
E 5<br />
E<br />
10<br />
E 6<br />
E<br />
E 6<br />
E 9<br />
E 7<br />
E 7<br />
E 8<br />
E 8<br />
l<br />
Anteil korrekte Kantenelemente g<br />
l<br />
= 1−<br />
1−<br />
g<br />
n<br />
Linie: n=2<br />
Ellipse: n=5<br />
74
Bild<br />
Verdeckung<br />
Beispiel – Lampenschirm<br />
Nur Gradient Mit EPIC<br />
75
Beispiel – Ellipsensegment<br />
76
Bild<br />
Topologie<br />
Topologie und Pose<br />
• Topological Integration of Cues (TOPIC)<br />
– Abgleich der Topologie der Merkmale mit dem Model<br />
• Schnittpunkte (junctions), parallele Linien<br />
– Abschätzen von Kombinationen an<br />
Merkmalskandidaten<br />
• Pose Validierung<br />
– Einpassen der Bild- in Modellmerkmale<br />
– Erkennung von Ausreissern<br />
– Letztendliche Wahl der Merkmale<br />
3D Pose<br />
Pose<br />
einpasen<br />
Neue<br />
3D<br />
Pose<br />
Wahl der richtigen Kanten<br />
mittels Topologie<br />
77
Topologie – Selbsteinschätzung<br />
• Wahrgenommene<br />
Szenenkomplexität<br />
• Vor topologischer Validierung<br />
• Maßzahl:<br />
# Kandidaten / Merkmal<br />
<strong>Abb</strong>.: einfache Szene: 1.22 Schwierige Szene: 2.22<br />
percentage<br />
1<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
0<br />
1 2<br />
correct features<br />
wrong features<br />
no candidates<br />
Gefundene Merkmale:<br />
für Beispiel: +27%<br />
78
3D Pose<br />
Pose<br />
einpassen<br />
neue<br />
3D<br />
Pose<br />
Beispiel – Ordner<br />
Gradient EPIC, Topologie und Pose<br />
79
Beipsiel – Spielzeughubschrauber<br />
EPIC<br />
EPIC, topology and pose<br />
80
Leistungsbewertung<br />
(performance evaluation)<br />
• Kanten verfolgt: 77.6 % (von 96.2%)<br />
• Falsche Kante: 4.6%<br />
• Rest: 14.0%<br />
– Schlechter Kontrast, Reflexionen, Kamerasättigung<br />
81
Zusammenfassung<br />
• Erzielte Robustheit<br />
– gezieltes Nützen von Bild- und Modellwissen<br />
– Selbstevaluierung mit verbleibender Mehrdeutigkeit<br />
– Vermeiden von Schwellwerten<br />
• Weitere Verbesserung<br />
– Mehr Bildhinweise (Textur, optischer Fluß)<br />
– Verwenden von Relationen in der Szene<br />
82
ActIPret – IST „Cognitive Vision“ Project<br />
ActIPret - Activity Interpretation<br />
Markus Vincze, Wolfgang Ponweiser,<br />
Michael Zillich, Minu Ayromlou<br />
Vaclav Hlaváč, Jiří Matas, Stepan<br />
Obdrzalek, Jan Paleček,<br />
Hilary Buxton, Jon Howell,<br />
Kingsley Sage<br />
Stelios Orphanoudakis, Antonis Argyros,<br />
Cedric Groyer, Manolis Lourakis<br />
Christof Eberst , Gerald Umgeher<br />
http://actipret.acin.tuwien.ac.at<br />
83
Sehen für natürliche Interaktion<br />
ActIPret: Interpretation<br />
von Tätigkeiten eines<br />
Menschen mit Objekten<br />
Systemfunktionen<br />
• Robustes Finden, Verfolgen,<br />
Erkennen<br />
• Räumlich-zeitliche<br />
Objektrelationen (in 3D)<br />
ActIPret<br />
• Semantische Interpretation<br />
84
ActIPret<br />
Persönlicher Assistent - Anwendungen<br />
• Anwenderführung um eine Maschine<br />
zu bedienen (z.B. Kopierer, Video)<br />
• Anwenderführung in der Montage<br />
(z.B., Möbel, Wartung von Maschinen)<br />
• Ausnützen von Augmented Reality<br />
Brillen zur Informationsanzeige<br />
• On-line Interpretation um Hinweise<br />
zu geben oder Korrekturen<br />
vorzuschlagen<br />
85
Stereo<br />
Beobachtung<br />
Anzeigemöglichkeiten<br />
Off-line VR Lehrvideo<br />
ActIPret<br />
'Hand 0 pressed button ejectButton-2'<br />
'Hand 0 picked up object cd-linux-0'<br />
On-line Anzeige der 3D<br />
Ergennisse (Trajectorien,<br />
Erkennung, Interpretation, ...)<br />
86
Komponenten<br />
• Robuste Hand- und Objektverfolgung<br />
• Objekte<br />
finden und<br />
erkennen<br />
• Gestenerkennung<br />
• Räumlich-zeitliche<br />
Objektanalyse<br />
(in 3D)<br />
• Semantische<br />
Interpretation:<br />
'Hand 0 picked up<br />
object cd-linux-0'<br />
ActIPret<br />
87
Framework: Architektur für ActIPret<br />
88
Inhaltsangabe<br />
Robotik und Sensorik in der Automation<br />
• Bildverarbeitung für die Robotik und Automation<br />
– Anwendungen<br />
– Maschinelles Sehen – Komponenten<br />
– Objekte verfolgen<br />
– Objekte erkennen<br />
• Aussehen-basiert<br />
• Gestalt-basiert<br />
• Kalman Filter<br />
90
Aufgaben - Ansätze<br />
• Aufgaben: Erkennen, Verfolgen, ...<br />
• Ansätze<br />
– Modell-basiert<br />
• CAD Modell des Objektes, Umgebung<br />
• geometrische Merkmale<br />
– Aussehen-basiert (appearance based)<br />
• Interest points oder „ganzes“ Objekt<br />
– Gestalt Prinzipien<br />
• Struktur in Daten betrachten, Merkmale<br />
• perceptual grouping<br />
91
Objekte und Interestpunkte<br />
(interest points, IPs)<br />
1. Extraktion von<br />
Interestpunkten<br />
(charakteristische Bildpunkt)<br />
2. Berechnung einer lokalen<br />
Beschreibung<br />
3. Bestimmung der<br />
Korrespondenz<br />
4. Erkennen ähnlicher<br />
Bildpunkte/regionen (Objekte)<br />
92
Extraktion von IPs<br />
• Eckpunkt (corner) Detektoren<br />
– Harris, Hessian<br />
• Multi-scale Eckpunkt Detektoren mit Größenauswahl (scale<br />
selection)<br />
– Scale invariant Harris and Hessian corners<br />
– Difference of Gaussian (DoG) (Lowe)<br />
• Affine covariant Regionen<br />
– Harris-Affine (Mikolajczyk, Schmid ‘02, Schaffalitzky, Zisserman ’02)<br />
– Hessian-Affine (Mikolajczyk and Schmid ’02)<br />
– Maximally stable extremal regions (MSER) (Matas et al. ’02)<br />
– Intensity based regions (IBR) (Tuytelaars and Van Gool ’00)<br />
– Edge based regions (EBR) (Tuytelaars and Van Gool ’00)<br />
– Entropy-based regions (salient regions) (Kadir et al. ’04<br />
93
Größen -invariante Harris Punkte<br />
• Harris Eckpunkte:<br />
• Eckpunkt wenn Gradienten (Eigenwerte) hoch<br />
• Maximaler Gradient in Bildpyramide<br />
[Mikolajczyk 04]<br />
A<br />
⎡ Ix<br />
⎢<br />
⎢⎣<br />
IxI<br />
I<br />
I<br />
=<br />
2<br />
y<br />
x y<br />
2<br />
Iy<br />
⎤<br />
⎥<br />
⎥⎦<br />
94
Größen -invariante Harris Punkte<br />
• Auswahl von Punkten bei ihrer<br />
charakteristischen Größe in „scale space“<br />
Charakteristische Größe:<br />
• Maximum Gradient in<br />
scale space<br />
– Im Vergleich zu allen 8<br />
+ 2 mal 9 Nachbarn<br />
• � Größen-invariant<br />
95
Difference of Gaussian (DoG)<br />
• Gauss‘sche Glättung (z.B. 5x) für jede Bildgröße<br />
• Bildgröße halbieren und erneut Glätten<br />
• Bilden benachbarter Differenzbilder<br />
[Lowe 04]<br />
96
Affine Covariant Regions<br />
• Ebene Transformation von Bildregionen<br />
[Mikolajczyk 04]<br />
97
Harris-Affine and Hessian-Affine (1)<br />
[Mik05]<br />
98
Harris-Affine and Hessian-Affine (2)<br />
• Initialisierung mit multi-scale IPs<br />
• Iterative Modifikation der Position, Größe und<br />
Nachbarschaft<br />
[Mik04]<br />
99
Maximally Stable Extremal Regions<br />
[Mik05]<br />
(MSER)<br />
100
Maximally Stable Extremal Regions<br />
(MSER)<br />
• Schwellwert für Bildintensitäten: I > I 0<br />
• Bestimmen verbundener “Extremal Regions”<br />
• Finden des Schwellwerts wenn Region “Maximally<br />
Stable”, z.B. Minimum des relativen Wachstums des umschreibenden<br />
Quadrats<br />
• Näherung der<br />
Region mit einer<br />
Ellipse<br />
• Lokale affine<br />
Transformation<br />
[Matas 02]<br />
101
Berechnung einer lokalen<br />
• Gut unterscheidbar<br />
• Robust<br />
Beschreibung<br />
• Invariant bei geometri. & photometri. Transformationen<br />
• Beschreibungen<br />
– Sampled image patch<br />
– Gradient orientation histogram – SIFT (Lowe)<br />
– Shape context (Belongie et al. ’02)<br />
– PCA-SIFT (Ke and Sukthankar ’04)<br />
– Moment invariants (Van Gool ’96)<br />
– Gaussian derivative-based (Koenderink ’87, Freeman ’91)<br />
– Complex filters (Baumberg ’00, Schaffalitzky and Zisserman ’02)<br />
102
Gradient Orientation Histogram<br />
(SIFT – Scale Invariant Feature Transform)<br />
• Schwellwert Bildgradienten in 16x16 Fenster der<br />
Position in der Bildpyramide (scale space)<br />
• Füllen mehrer Histogramme der Gradienten<br />
• 8 Orientierungen x 4 x 4 Histogramme = 128 dim.<br />
[Lowe 04]<br />
103
Anwendung von IPs<br />
• Objekterkennung<br />
• Objekterkennung und Segmentierung<br />
• Lokalisierung eines Roboters<br />
• Objektverfolgung<br />
• ...<br />
104
Erkennung ebener Objekte<br />
• Ebene Flächen<br />
zuverlässig erkannt mit<br />
bis zu 60° Drehung weg<br />
von der Kamera<br />
• Affine Transformation<br />
schätzt die<br />
perspektivische<br />
Projektion<br />
• 3 Punkte genügen<br />
� Gut bei Verdeckung [Lowe]<br />
105
[Lowe]<br />
Erkennung mit Verdeckungen<br />
106
Erkennung und Segmentierung<br />
• Initialisierung<br />
der<br />
Objektfläche<br />
mit<br />
vielen/dichten<br />
Merkmalen<br />
• Iterative Suche<br />
nach<br />
Merkmalen mit<br />
affiner<br />
Verfeinerung<br />
[Ferrari 04]<br />
107
Lokalisierung eines Roboters<br />
[Se 05]<br />
108
Objektverfolgung mit IPs<br />
109
Objektverfolgung mit IPs und<br />
Schlussfolgern der Verdeckungen<br />
• Gruppieren von KLT IPs basierend auf Bewegung<br />
• Erkennen der Verdeckung anhand des<br />
Verschwindens bzw. Erscheinens der IPs<br />
110
Aufgaben - Ansätze<br />
• Aufgaben: Erkennen, Verfolgen, ...<br />
• Ansätze<br />
– Modellbasiert<br />
• CAD Model des Objektes, Umgebung<br />
• geometrische Merkmale<br />
– Aussehen (appearance based)<br />
• Interest points oder „ganzes“ Objekt<br />
– Gestalt Prinzipien<br />
• Struktur in Daten betrachten Merkmale<br />
• perceptual grouping<br />
111
Objekterkennung nach Aussehen<br />
(appearance-based object recognition)<br />
• Training mit segmentierten Bildern<br />
• Representierung in vieldimensionalem<br />
oder reduziertem<br />
Raum (Principal Component<br />
Analysis PCA)<br />
• Unterscheidung durch lineare oder<br />
non-lineare (kernel) Methoden<br />
(SVM)<br />
• Probleme: Beleuchtung, Größe,<br />
Verdeckung [Bischof, Summerschool 2005]<br />
112
PCA für Objekterkennung und<br />
[Bischof 02]<br />
Bestimmung der Pose<br />
113
Objekterkennung mit SVM<br />
(Support Vector Machine)<br />
• Rund 200 Trainingsbilder / Objekt (RGB,<br />
verschiedene Ansichten und Beleuchtung)<br />
• Trainingsbilder auch für den Hintergrund<br />
• Hyperspace mit 3072 Dimensionen<br />
• Iterative Berechnung der<br />
Trennfläche zwischen<br />
jeweils zwei Objektklassen<br />
Origin<br />
[Zillich 01]<br />
H 1<br />
w<br />
H 2<br />
Margin<br />
114
Database of histograms of<br />
object models<br />
...<br />
...<br />
Histogramm zur<br />
Beschreibung von Objekten<br />
... ...<br />
...<br />
[Swain 90]<br />
histogram<br />
intersection<br />
Image with an<br />
unknown object<br />
115
Objektverfolgung mittels<br />
Farbhistogramm<br />
• Einfacher Ansatz, zeigen des Objektes möglich<br />
• Schnell (~30 Hz) für Hand und Objekt<br />
116
Zusammenfassung<br />
• Modellbasierter Ansatz<br />
– Modelle nicht immer vorhanden<br />
– Schwierig Modelle zu erhalten, insbesondere die<br />
automatische Extraktion einer kompakten<br />
Beschreibung (z.B. Wireframe)<br />
• Aussehensbasierter Ansatz<br />
– Einlernen der Objekte durch zeigen möglich<br />
– Empfindlich gegenüber Beleuchtung, Blickwinkel,<br />
Pose<br />
– IPs sind derzeit sehr in Mode<br />
117
Inhaltsangabe<br />
Robotik und Sensorik in der Automation<br />
• Bildverarbeitung für die Robotik und Automation<br />
– Anwendungen<br />
– Maschinelles Sehen – Komponenten<br />
– Objekte verfolgen<br />
– Objekte erkennen<br />
• Aussehen-basiert<br />
• Gestalt-basiert<br />
• Kalman Filter<br />
118
Aufgaben - Ansätze<br />
• Aufgaben: Erkennen, Verfolgen, ...<br />
• Ansätze<br />
– Modellbasiert<br />
• CAD Modell des Objektes, Umgebung<br />
• geometrische Merkmale<br />
– Aussehen (appearance based)<br />
• Interest points oder „ganzes“ Objekt<br />
– Gestalt Prinzipien<br />
• Struktur in Daten betrachten, Merkmale<br />
• perceptual grouping<br />
119
Gruppieren (Perceptual Grouping)<br />
• Idee: ausnützen von Struktur in Bilddaten<br />
• Lernen was Objekte ausmacht (in Bezug auf die<br />
Anwendung), statt ein Bestimmtes erkennen<br />
• Verwendet<br />
– Gestalt Prinzipien<br />
– Bekanntes Wissen<br />
– Hierarchische Abstraktion<br />
• Helmholtz Prinzip: nicht-zufällige Gruppierungen von<br />
Merkmalen werden als Gestalt wahrgenommen<br />
• Je unwahrscheinlicher Gruppierung � höher Signifikanz<br />
120
Perceptual Grouping –<br />
Stand der Technik<br />
• Recognition by components: Theorie des<br />
menschlichen Bildverstehens [Biederman 1987,<br />
Dickinson, Bergevin, Biederman 1997]<br />
– Funktion hängt ab<br />
von Relationen<br />
der Teile<br />
– 36 Geons<br />
• 3D Object Recognition from single 2D images<br />
[Lowe 1987]<br />
121
Modell-basierte Objekterkennung<br />
Modell<br />
Bild Kanten<br />
Gruppierungen Rückprojektion<br />
[Lowe 87]<br />
122
Grundlagen des Perceptual Grouping<br />
• Wahrgenomme<br />
Organisation formt<br />
Gruppierungen von<br />
Strukturen im Bild<br />
–Nähe<br />
– Parallelität<br />
– Kollinearität<br />
• 13 Prinzipien [Palmer]<br />
[Lowe 87]<br />
123
Hierarchisches Gruppieren<br />
• Zusammenarbeit M. Zillich, J. Matas, CMP<br />
1. Kantenelemente (edgels) verbinden<br />
2. Lokale Form: Bogen- oder Liniensegmente<br />
3. Geometrisches Gruppieren: Konvexität<br />
4. Einpassen von Ellipsen, Rechtecken,<br />
Zylinder<br />
124
Canny Edges<br />
125
Canny Edges<br />
126
Hierarchisches Gruppieren<br />
1. Kantenelemente (edgels) verbinden<br />
2. Lokale Form: Bogen- oder Liniensegmente<br />
3. Geometrisches Gruppieren: Konvexität<br />
4. Einpassen von Ellipsen, Rechtecken, Zylinder<br />
127
Teilen der Kantensegmente<br />
Wie in einzelne Bögen<br />
teilen?<br />
• SPLIT<br />
• GROW<br />
• RANSAC<br />
1. Wachsen von zufälligen<br />
Startpunkten (GROW +<br />
RANSAC)<br />
2. Auswahl der längsten<br />
Bogen<br />
128
SPLIT (Rosin, West 1995)<br />
• Problem: Wann<br />
Unterteilung stoppen?<br />
129
Hierarchisches Gruppieren<br />
1. Kantenelemente (edgels) verbinden<br />
2. Lokale Form: Bogen- oder Liniensegmente<br />
3. Geometrisches Gruppieren: Konvexität<br />
4. Einpassen von Ellipsen, Rechtecken,<br />
Zylinder<br />
130
Konvexe Bogen Gruppieren<br />
konvex nicht konvex<br />
Problem: Jeden Bogen mit jedem testen: O(n 2)<br />
131
Abstimmen im Bild<br />
Stimme = Schnittpunkt der Bogen-Tanenten/Normalen<br />
132
Bogen mit den meisten Stimmen<br />
Hängt stark von der Länge der Tangenten/Normalen ab<br />
Länge = Radius<br />
Rechenzeit: O(n)<br />
Unendliche Länge<br />
Rechenzeit: O(n 2)<br />
133
Hierarchisches Gruppieren<br />
1. Kantenelemente (edgels) verbinden<br />
2. Lokale Form: Bogen- oder Liniensegmente<br />
3. Geometrisches Gruppieren: Konvexität<br />
4. Einpassen von Ellipsen, Rechtecken,<br />
Zylinder<br />
134
Alle Ellipsen<br />
135
„Gute“ Ellipsen<br />
136
137
Rechtecke<br />
line(A,B) :- left(A,X), right(B,X).<br />
rect(A,B,C,D) :- line(A,B), line(B,C), line(C,D), line(D,A)<br />
rect(A,B,C,D) :- u(A,B,C), u(C,D,A)<br />
138
Originalbild<br />
Buchszene<br />
3847 Kantenelemente<br />
Beste 2 Rechtecke Alle Rechtecke<br />
139
Regalszene<br />
140
Küchenszene<br />
Originalbild Kantenelemente Bester Zylinder<br />
141
Zusammenfassung Gruppieren<br />
• Gleiche Methode für verschiedene Formen<br />
• Ausnützen der lokalen Struktur im Bild<br />
• Keine Parameter: Reihung mittels Gütemassen<br />
• Perceptual grouping hilft wenig wahrscheinliche<br />
Hypothesen zu vernachlässigen<br />
• Abstimmen im Bild: O(n 2 ) � O(n)<br />
142
Detection and Tracking<br />
143
Inhaltsangabe<br />
Robotik und Sensorik in der Automation<br />
• Bildverarbeitung für die Robotik und Automation<br />
– Anwendungen<br />
– Maschinelles Sehen – Komponenten<br />
– Objekte verfolgen<br />
– Objekte erkennen<br />
• Aussehen-basiert<br />
• Gestalt-basiert<br />
• Kalman Filter<br />
• Zusammenfassung und Ausblick<br />
144
Objekte verfolgen<br />
• Erkennung in jedem Bild ist sehr aufwendig<br />
• Aus der Bewegung vorhersagen wo sich das<br />
Objekt befinden wird<br />
� Fenster (optimale Größe)<br />
� Vorhersage zur Plazierung des Fensters<br />
• Vorhersage anhand von<br />
– Bewegungsmodellen (z.B. konstante Geschwindigkeit)<br />
– Statistischer Wahrscheinlichkeit des Ortes<br />
145
Typische Vorgehensweise<br />
• Verfolgen bestimmter Objekteigenschaften<br />
• Echtzeit � erlaubt sofortige Reaktion<br />
• Ermöglicht Anwendungen wie<br />
– Mensch-Maschinen Schnittstellen<br />
– Gefahren erkennen<br />
146
Kalman Filter (KF)<br />
• Rudolf Emil Kalman, Ungarn, 1960<br />
• Rechenschema, erzielt minimale Fehlerquadrate<br />
• Vielseitig einsetzbar<br />
– Schätzung<br />
– Filterung<br />
– Vorhersage<br />
– Bestimmung nicht gemessener Größen (Zustände)<br />
– Fusion verschiedenster Daten<br />
• Meistverwendet zur Posebestimmung<br />
– Flugkörper, Roboternavigation, Wirtschaft<br />
147
Warum Kalman Filter?<br />
• Effiziente rekursive Berechnung<br />
• Minimiert Fehlerquadrate<br />
• Optimal unter vielen Bedingungen<br />
• Messung der Schätzqualität (Varianz)<br />
• Robust<br />
[Welch, Bishop]<br />
– Stabil bei vielen Bedingungen<br />
– Vergibt falsche Verwendung (Welch: „tolerant<br />
against abuse“)<br />
– Aber: für eine „glatte“ Bewegung oder Messgröße<br />
148
Annahmen<br />
• Kamera bewegt sich langsam<br />
• Objekte unterliegen physikalischen Gesetzen<br />
• Relation zwischen Objekt und Kamera ändert<br />
sich schrittweise<br />
• Bewegung kann modelliert werden<br />
149
Kalman Filter: Idee<br />
• Lineares System: f(a+b) = f(a) + f(b)<br />
• Input: verrauschte Daten<br />
• Output: (hoffentlich) weniger verrauschte Daten<br />
• Preis für Filterung: Zeitverzögerung<br />
• Beispiel: kombinieren 2er Messungen<br />
150
1. Messung<br />
• Mittelwert und Varianz<br />
2<br />
z , σ z<br />
1 1<br />
• Schätzung (^)<br />
ˆ z<br />
ˆ σ = σ z<br />
x 1 = 1<br />
2 2<br />
1 1<br />
<strong>Abb</strong>.: Wahrscheinlichkeitsverteilung<br />
(conditional<br />
probability distribution)<br />
[Welch, Bishop]<br />
151
Schätzung nach 2. Messung?<br />
• 2. Messung<br />
z , σ z<br />
2<br />
2 2<br />
• Schätzung:<br />
xˆ<br />
2 = ... ?<br />
ˆ 2<br />
σ 2 =<br />
... ?<br />
<strong>Abb</strong>.: Wahrscheinlichkeitsverteilung<br />
[Welch, Bishop]<br />
2<br />
2<br />
152
• Mittelwert<br />
• Varianz<br />
Kombinierte Schätzung<br />
xˆ<br />
2<br />
=<br />
=<br />
σ<br />
xˆ<br />
1<br />
2<br />
z<br />
σ<br />
1<br />
+<br />
2<br />
z<br />
2<br />
+ σ<br />
K<br />
2 2 2<br />
1/ σ = 1/<br />
σ z + 1/<br />
σ z<br />
• Schätzung<br />
2 1<br />
2<br />
ˆ xˆ<br />
ˆ σ = σ<br />
x = 2<br />
2 2<br />
2<br />
2<br />
2<br />
z<br />
2<br />
( z − xˆ<br />
)<br />
2<br />
z<br />
1<br />
+<br />
σ<br />
1<br />
2<br />
z<br />
σ<br />
1<br />
2<br />
z<br />
1<br />
+ σ<br />
2<br />
z<br />
2<br />
z<br />
2<br />
( 2 2<br />
σ )<br />
2<br />
mit K = σ z z + σ z<br />
2 1 1 2 /<br />
<strong>Abb</strong>.: Wahrscheinlichkeitsverteilung<br />
153
Diskussion<br />
• Annahme bisher: statischer Beobachter<br />
– Zustand: Skalar (Ort in 1D), “keine Änderung”<br />
• Aber: Beobachter könnte sich Bewegen<br />
• Dann erzeugt nicht nur Beobachtung Fehler<br />
sondern auch Bewegung �<br />
• KF mit Bewegungsmodell<br />
– Prozessmodell (modelliert angenommene Bewegung)<br />
– Messmodell (Relation Messung zu Zuständen)<br />
154
Diskreter Kalman Filter<br />
• Arbeitet mit ersten zwei statistischen Momenten:<br />
Mittelwert und Standardabweichung<br />
[Welch, Bishop]<br />
155
KF - Modelle<br />
• Diskretes Prozessmodell<br />
– Beschreibt die Änderung der Zustände über Zeit<br />
– Lineare Differenzgleichung<br />
• Diskretes Messmodell<br />
– Relation zwischen Zuständen und Messung<br />
– Lineare Funktion<br />
• Modellparameter<br />
– Rauschen des Prozesses<br />
– Rauschen der Messung<br />
156
Funktion der Modelle<br />
Prozessmodell<br />
Messmodell<br />
[Welch, Bishop]<br />
157
Berechnung:<br />
Vorhersage � Korrektur<br />
• Kalman Filter arbeit mit<br />
• Vorhersage der neuen Zustände und deren<br />
Unsicherheit aus den letzten Zuständen<br />
(Gauss‘sche Wahrscheinlichkeitverteilung)<br />
• Korrektur mit der neuen Messung<br />
• Beispiel: Bewegung in 2D<br />
158
2D Position: Prozessmodell<br />
⎡x<br />
⎢<br />
⎣y<br />
k<br />
k<br />
⎤<br />
⎥<br />
⎦<br />
⎡1<br />
= ⎢<br />
⎣0<br />
0⎤⎡<br />
x<br />
1<br />
⎥⎢<br />
⎦⎣<br />
y<br />
k −1<br />
k −1<br />
⎤ ⎡~<br />
x<br />
⎥ + ⎢<br />
⎦ ⎣~<br />
y<br />
x k = A x k-1 + w k-1<br />
x k ... Zustandsvektor zum Zeitpunkt k (state vector)<br />
A ... Zustandsmatrix zum Zeitpunkt k<br />
(state transition matrix)<br />
w k ... Prozessrauschen zum Zeitpunkt k modelliert<br />
durch N(0, Q) (process noise)<br />
k<br />
k<br />
⎤<br />
⎥<br />
⎦<br />
159
2D Position: Messmodell<br />
⎡u<br />
⎢<br />
⎣v<br />
k<br />
k<br />
⎤<br />
⎥<br />
⎦<br />
=<br />
⎡H<br />
⎢<br />
⎣ 0<br />
x<br />
0<br />
H<br />
y<br />
⎤⎡<br />
x<br />
⎥⎢<br />
⎦⎣<br />
y<br />
k<br />
k<br />
⎤<br />
⎥<br />
⎦<br />
⎡~<br />
u<br />
+ ⎢<br />
⎣~<br />
v<br />
z k = H x k + v k<br />
z k ... Messvektor zum Zeitpunkt k (measurement)<br />
H ... Messmatrix zum Zeitpunkt k<br />
v k ... Messrauschen zum Zeitpunkt k modelliert<br />
durch N(0, R)<br />
k<br />
k<br />
⎤<br />
⎥<br />
⎦<br />
160
Kovarianzmatrizen<br />
• Kovarianz des<br />
Prozessrauschens<br />
• Kovarianz des<br />
Messrauschens<br />
• Kovarianz des<br />
Fehler (Kalman<br />
Schätzung)<br />
P<br />
=<br />
E<br />
Q<br />
R<br />
=<br />
=<br />
E<br />
⎡Q<br />
{ t}<br />
xx<br />
w*<br />
w = ⎢<br />
0 Q<br />
⎥<br />
yy ⎦<br />
E<br />
⎣<br />
⎡R<br />
0<br />
{ t}<br />
xx<br />
v*<br />
v = ⎢<br />
0 R<br />
⎥<br />
yy ⎦<br />
⎣<br />
{ ( )( ) } t xx<br />
xk<br />
− xˆ<br />
k xk<br />
− xˆ<br />
k = ⎢<br />
0 P<br />
⎥<br />
yy ⎦<br />
⎣<br />
0<br />
⎡P<br />
⎤<br />
⎤<br />
0<br />
⎤<br />
161
Vorhersage und Korrektur<br />
• Zeitlicher Schritt:<br />
Vorhersage der<br />
Systemzustände<br />
xˆ<br />
k −<br />
– �<br />
1<br />
• Schritt durch<br />
Messung:<br />
Korrektur der<br />
Systemzustände<br />
xˆ<br />
−<br />
k<br />
– �<br />
xˆ<br />
−<br />
k<br />
xˆ<br />
k<br />
[Welch, Bishop]<br />
162
Vorhersage<br />
• A priori (vor der Korrektur) Zustände und<br />
Fehlerkovarianz<br />
– Initialisierung:<br />
− = k<br />
xˆ<br />
Axˆ<br />
k −<br />
−<br />
P AP<br />
k k<br />
xˆ<br />
0<br />
P<br />
0<br />
1<br />
= −1<br />
=<br />
=<br />
Hz<br />
⎡ε<br />
⎢<br />
⎣0<br />
0<br />
0⎤<br />
ε<br />
⎥<br />
⎦<br />
A<br />
+<br />
Q<br />
163
Korrektur<br />
• Kalmanverstärkung (gain)<br />
K<br />
k<br />
( ) 1 −<br />
− t<br />
HP H +<br />
− t<br />
= Pk<br />
H k R<br />
• A Posteriori Zustände und Fehlerkovarianz<br />
xˆ<br />
k<br />
P<br />
k<br />
=<br />
=<br />
xˆ<br />
−<br />
k<br />
( I<br />
+<br />
−<br />
K<br />
K<br />
k<br />
k<br />
( −<br />
z − Hxˆ<br />
)<br />
k<br />
H ) P<br />
−<br />
k<br />
k<br />
„Zähler“<br />
Messraum<br />
Vorhersage<br />
Aktuelle<br />
Messung<br />
164
Verfolgung in 2D: Positionsmodell<br />
signifikante<br />
Verzögerung<br />
während der<br />
Bewegung<br />
[Welch, Bishop]<br />
... relativ glatt<br />
bei Stillstand<br />
165
Prozessmodell<br />
• Neue Zustände: (Position p, Geschwindigkeit vel)<br />
• Konstantes Geschwindigkeitsmodell<br />
– p n+1 = p n + vel n t<br />
– vel n+1 = vel n<br />
Messmodell<br />
• Beschreibt „was man sieht von wo man ist“<br />
• Nicht „wo man ist aus was man sieht“<br />
166
167<br />
Geschwindigkeitsmodell<br />
• Prozessmodell: Zustände Zustandsmatrix<br />
• Messmodell: Messmatrix<br />
⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
1<br />
0<br />
0<br />
0<br />
0<br />
1<br />
0<br />
0<br />
0<br />
1<br />
0<br />
0<br />
0<br />
1<br />
dt<br />
dt<br />
⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
dt<br />
dy<br />
dt<br />
dx<br />
y<br />
x<br />
/<br />
/<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
0<br />
0<br />
0<br />
0<br />
0<br />
0<br />
y<br />
x<br />
H<br />
H
verbesserte<br />
Verzögerung<br />
während der<br />
Bewegung<br />
Geschwindigkeitsmodell<br />
[Welch, Bishop]<br />
... relativ<br />
verrauscht bei<br />
Stillstand<br />
168
Zusammenfassung KF<br />
• Glättet verrauschte Beobachtung<br />
• Kann Bewegung Vorraussagen<br />
– Keine Bewegung � Positionsmodell gut<br />
– Bewegung � Geschwindigkeitsmodell gut<br />
• Bildverarbeitung ergibt Zeitverzögerung<br />
� KF kompensiert diese Verzögerung<br />
• Erweiterungen:<br />
– plötzliche Änderung der Bewegung<br />
– Fusion von Sensordaten<br />
– Strukturschätzung<br />
169
Verbesserung der Vorhersage<br />
• Bewegung entspricht nicht dem Modell<br />
• Lösung: adaptierender KF<br />
[Chroust]<br />
– Beobachtung des Vorhersagefehlers (Prediction<br />
Monitor)<br />
– Aufschalten des jeweils am besten geeigneten Modells<br />
Position<br />
letzte<br />
Messungen<br />
wirkliche<br />
Position<br />
Vorhersage<br />
wirkliche<br />
Bahn<br />
Time<br />
170
FWF-Projekt SmartTracking<br />
Integration Kameradaten und<br />
Trägheitssensordaten<br />
• Ziel: Navigation in<br />
„unbekannter“ Umgebung<br />
• Ausnützen der verschiedenen<br />
Messcharakteristiken<br />
• Trägheitssensoren für die<br />
Schätzung der<br />
Eigenbewegung<br />
• Kamera(s) für Schätzung<br />
Eigenbewegung und<br />
Struktur der Umgebung<br />
uncertainty<br />
Inertial<br />
Sensor<br />
velocity<br />
CMOS<br />
camera<br />
<strong>Abb</strong>.: Sensorkopf entwickelt<br />
am EMT, TU Graz<br />
171
Sensorkopf, Fusion<br />
• Trägheitsensoren: 100 Hz<br />
– Messen Beschleunigung, Winkelgeschwindigkeit<br />
• Kamera: CMOS 2000Hz<br />
– Messen Eckpunkte in Szene (2D) � 3D Pose (6 DOF)<br />
• Fusion: Schätzung der Eigenbewegung<br />
– EKF (Extended KF) da nicht-lineares System<br />
<strong>Abb</strong>.: Szene mit<br />
Referenzobjekten:<br />
rot (hell) – Modell,<br />
schwarz – neue Strukturpunkte<br />
FWF-Projekt SmartTracking<br />
172
FWF-Projekt SmartTracking<br />
Strukturschätzung<br />
• Poseschätzung jedes einzelnen Punktes (EKF)<br />
• Wenn hohe Sicherheit � Modell aufgenommen<br />
<strong>Abb</strong>.: Konfidenzellipsen aus der Messung der Eckpunkte eines Würfels,<br />
Grundriss. Links: nach der 1. Messung, Rechts: nach 14 Messungen<br />
173
Strukturschätzung – Beispiel<br />
• Verringerung der Unsicherheitsellipse durch<br />
Beobachtung eines Punktes (z.B. 162 im Bild)<br />
während einer Eigenbewegung<br />
<strong>Abb</strong>.: Bilder 35, 135, 190<br />
(Aufnahme mit 25 Hz)<br />
174
Strukturschätzung – Anwendung<br />
• Schätzung der Struktur der Umgebung während<br />
• Schätzung der Eigenbewegung des Roboters<br />
175
Inhaltsangabe<br />
Robotik und Sensorik in der Automation<br />
• Bildverarbeitung für die Robotik und Automation<br />
– Anwendungen<br />
– Maschinelles Sehen – Komponenten<br />
– Objekte verfolgen<br />
• Dynamische Betrachtungen<br />
• Robuste Bildverarbeitung<br />
• Kalman Filter<br />
• Zusammenfassung und Ausblick<br />
176
Zusammenfassung<br />
• Überblick Sensoren für mobile Roboter<br />
• Kinematik<br />
• Konzepte zur Kollissionsvermeidung<br />
• Komponenten eines Machine Vision Systems<br />
• Objekte verfolgen und finden<br />
• Fusion und Vorhersage mittels Kalman Filter<br />
177
Robotik Herausforderungen<br />
• Energietransport mobiler Systeme<br />
• Bewegung auf verschiedenen Böden, Schwellen<br />
• Rasche 3D Umgebungserfassung, Lokalisation<br />
• Interaktion Sehen/Agieren<br />
• Lernen und Anpassen<br />
• Einfache Schnittstelle<br />
zum Menschen<br />
178
Sensorik Herausforderungen<br />
• Robuste Erkennung und Verfolgung von Objekten<br />
• Verschiedene Lichtverhältnisse<br />
• Viele Objekte, > 100<br />
• Klassen von Objekten<br />
• Funktion von Objekten<br />
• Echtzeit<br />
• Kameras: bessere Dynamik, direkte 3D Bilder<br />
179
EU Projekt robots@home<br />
Vertiefung: Bildverarbeitung<br />
• Von Beispielen lernen (z.B. IKEA)<br />
• Kanten � Struktur � gemeinsame Merkmale �<br />
Kategorie von Objekten, z.B. Häferl<br />
• Erkennen der Raumorientierung und<br />
Plätzen wie „Tisch“ oder „Sofa“<br />
180
• Objekt einlernen<br />
• Einmal Sehen<br />
• Ein Scan<br />
• Z.B., Tasse, Häferl<br />
• Zielobjeckt am Tisch erkennen � Griff planen �<br />
Greifen � Übergabe an „mich“<br />
• Ziel: jedes<br />
Objekt lernen<br />
und greifen<br />
NFN „Kognitives Sehen“ & EU Projekt GRASP<br />
Vertiefung: Form und Greifen<br />
181
• Siehe extra Blatt<br />
Literatur<br />
182