31.10.2012 Aufrufe

Abb. - ACIN - Technische Universität Wien

Abb. - ACIN - Technische Universität Wien

Abb. - ACIN - Technische Universität Wien

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!