Robotvision: Unterschied zwischen den Versionen
Sonne (Diskussion | Beiträge) K (→Randprobleme) |
Sonne (Diskussion | Beiträge) |
||
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 23: | Zeile 23: | ||
*# Geschichtete 2D-Repräsentationen | *# Geschichtete 2D-Repräsentationen | ||
− | == Funktionelle Abbildungen <math>R^n \rightarrow | + | == Funktionelle Abbildungen <math>R^n \rightarrow R^2</math> == |
* Beschreibung der Abbildung der n-dimensionalen Sensor/Merkmalskarten auf 2-dimensionale Karten | * Beschreibung der Abbildung der n-dimensionalen Sensor/Merkmalskarten auf 2-dimensionale Karten | ||
Zeile 217: | Zeile 217: | ||
= Farbverarbeitung = | = Farbverarbeitung = | ||
− | [... | + | |
+ | == Farbumstimmung == | ||
+ | * nur Strahlungsverteilung des mittleren Tageslichts führt zu einer vollen Ausnutzung der spektralen Empfindlichkeitskurven aller drei Zapentypen und somit auch zur vollen Ausnutzung der Farbempfindung des physiologischen Farbraumes | ||
+ | * für alle anderen Beleuchtungsverhältnisse (vor allem dynamische) muss eine Farbumstimmung erfolgen | ||
+ | |||
+ | '''Weißringkorrektur:''' | ||
+ | * weißer Referenzring an Omnikamera zur Messung des Umgebungslichts | ||
+ | * Bestimmung der Farbigkeit des Umgebungslichts | ||
+ | * damit Korrektur von U,V | ||
+ | |||
+ | '''White Patch:''' | ||
+ | * Farbe des hellsten Pixels = Farbe des einstrahlenden Lichtes | ||
+ | * Korrektur auf Bild oder in Kamera möglich (kanalweise) | ||
+ | * Problem: hellstes Pixel in Sättigung | ||
+ | |||
+ | '''Grey World:''' | ||
+ | * Annahme: durchschnittliches Bild ist Grau | ||
+ | * Korrektur so, das Annahme erfüllt ist | ||
+ | * Problem bei sehr einfarbigen Szenen | ||
+ | |||
+ | '''Histogrammausgleich:''' | ||
+ | * zur Kontrastverbesserung | ||
+ | * häufige GW auseinandergezogen, weniger häufige zusammengeschoben | ||
+ | * Problem: Bilder zum Teil unnatürlich verfälscht, dienen deshalb nicht zur Weiterverarbeitung | ||
+ | * liefert beste Ergebnisse für Positionswiedererkennung | ||
+ | |||
+ | '''Retinex:''' | ||
+ | * bildet Vorgänge im biologischen visuellen System nach | ||
+ | * inhibitorische Verschaltung des Reizes mit Umgebungsreizen | ||
+ | * stärkere Einbeziehung naher Umgebungspixel | ||
+ | * implizite GW-Mittelung des Bildes | ||
+ | * Probleme: nur lokale Verbesserung | ||
+ | |||
+ | '''Automatic Color Equalization:''' | ||
+ | * ähnlich Retinex | ||
+ | * Umgebungspixel wirken hemmend | ||
+ | * nahe Pixel stärker berücksichtigt | ||
+ | |||
+ | == Der physiologische Elementarfarbraum == | ||
+ | * entsteht aus allen möglichen RG-, BY-, WS-Aktivierungen | ||
+ | ** bilden die 3 Achsen die Farbraum aufspannen | ||
+ | ** werden durch eine lineare Transformation aus den RGB-Werten gewonnen | ||
+ | * besitzt eine quantitativ gleichabständige Ordnung (aber nicht empfindungsgemäß) | ||
+ | * umfasst alle möglichen Farbempfindungen des Menschen | ||
+ | * Vorteil: Dekorrelation von Farbe und Helligkeit | ||
+ | |||
+ | [[Datei:RV-physiologischerFarbraum.jpg|400px]] | ||
+ | |||
+ | === Elementarfarbraumverfahren === | ||
+ | * durchschnittliche Tagesbeleuchtung einer farblich ausgewogenen Szene führt zu einer Pixelwolke die senkrecht im Farbraum steht (entlang der WS-Achse) | ||
+ | * bei anderen Lichtverhältnissen wird Pixelwolke ausgelenkt (gekippt, verformt etc.) | ||
+ | |||
+ | '''Korrektur:''' | ||
+ | * für jede ausgelenkte Pixelwolke ist die Bestimmung einer Achse möglich die in WS-Achse überführt werden kann | ||
+ | # Bestimmung der Hauptachse der Pixelwolke (wenn diese gekippt) | ||
+ | #* durch Bestimmung des größten Eigenvektors (bzw. im einfachsten Fall des Schwerpunktes) | ||
+ | #* anschließend Verschiebung auf WS-Achse (durch lineare Scherung) und Skalierung auf volle Länge der WS-Achse | ||
+ | #* zuletzt Sättigungskorrektur | ||
+ | # Bestimmung der Hauptmannigfaltigkeit der Pixelwolke (wenn diese verformt) | ||
+ | #* durch Approximation einer 1D-topologieerhaltenden Abbildung | ||
+ | #* anschließend nichtlineare Verschiebung auf WS-Achse und Skalierung auf volle Länge der WS-Achse | ||
+ | #* zuletzt Sättigungskorrektur | ||
+ | |||
+ | '''Voraussetzungen für Bildtransformation:''' | ||
+ | * übersteuerungsfreie Aufnahme | ||
+ | * kein Weißabgleich | ||
+ | * keine Gammakorrektur | ||
+ | |||
+ | == Weitere Farbräume == | ||
+ | === YUV-Farbraum === | ||
+ | * Farbinformation: Luminanz Y (Lichtsstärke) und Crominanz U,V (Farbdifferenz) | ||
+ | * Referenzbasierte Farbumstimmung | ||
+ | * empfindungsmäßig nicht gleichabständig | ||
+ | * Einsatz in Kameras | ||
+ | ** Regelung von U&V dirket in Kamera | ||
+ | ** Regelung von Y über Blende | ||
+ | |||
+ | === RGB-Farbraum === | ||
+ | * Farbe und Helligkeit stark korreliert | ||
+ | * empfindungsmäßig nicht gleichabständig | ||
+ | * Einsatz in Anzeigegeräten (Scanner, Monitor etc.) | ||
+ | * zur Objekterkennung bei konstanter Beleuchtung | ||
+ | ** Farbe als Merkmal zur Unterscheidung von Positionen in der Umgebung | ||
+ | ** Positionen durch Erscheinung beschrieben -> appearance-basierte Merkmale | ||
+ | |||
+ | === HSV-Farbraum === | ||
+ | * Trennung von Farbe und Helligkeit | ||
+ | * entspricht mehr dem menschlichen Empfinden | ||
+ | * Hue (Farbwinkel: 0° = Rot, 360° = Cyan), Saturation (Sättigung: 0% = keine, 100% = reine Farbe), Value (Dunkelstufen: 0% = keine, 100% = volle Helligkeit) | ||
+ | * zur Hindernisvermeidung | ||
+ | ** Farbe zur Segmentierung (Referenztrapez vor Roboter als Freiraumbesipiel) | ||
+ | |||
+ | === rg-Farbraum === | ||
+ | * helligkeitsnormiert und zweidimensional | ||
+ | * für Trackingaufgaben mit dynamischer Beleuchtung | ||
+ | ** Tracking über objektspezifische rg-Werte (z.B. Hautfarbe) ist helligkeitsinvariant | ||
+ | ** Transformation nach RGB nicht mehr möglich | ||
+ | |||
+ | == Vergleichsmetriken == | ||
+ | * zur Bestimmung der Ähnlichkeit | ||
+ | |||
+ | === Sum of Absolute Differences === | ||
+ | * <math> SAD(g,h) = \sum_{k=1}^n |g_k - h_k| </math> | ||
+ | * einfach, schnell, geringer Rechenaufwand | ||
+ | |||
+ | === Sum of Square Differences === | ||
+ | * <math> SSD(g,h) = \sqrt {\sum_{k=1}^n (g_k - h_k)^2} </math> | ||
+ | * Ausreißer stärker gewichtet | ||
+ | * langsamer als SAD da höherer Rechenaufwand | ||
+ | |||
+ | === Histogramm-Intersection === | ||
+ | * <math> \bigcap (g,h) = \frac {\sum_{k=1}^n \min (g_k,h_k)} {\sum_{k=1}^n g_k} </math> | ||
+ | * Berechnung im HSV-Raum | ||
+ | * direkter Vergleich zweier Hue-Histogramme | ||
+ | * einfach, sehr schnell | ||
+ | |||
+ | === <math>\chi^2</math>-Statistik === | ||
+ | * <math> \chi^2 = \sum_{k=1}^n \frac {(g_k - h_k)^2} {(g_k + h_k)} </math> | ||
+ | * direkter Vergleich zweier Hue-Histogramme | ||
+ | * Ausreißer stärker gewichtet | ||
+ | * langsamer als Histrogrammschnitt, da höherer Rechenaufwand | ||
= Basisoperationen für die Visuelle Wahrnehmung der Umgebung = | = Basisoperationen für die Visuelle Wahrnehmung der Umgebung = | ||
== Bewegungsanalyse == | == Bewegungsanalyse == | ||
− | * Ziel: Erfassen von Bewegungsgrößen innerhalb einer | + | * Ziel: Erfassen von Bewegungsgrößen innerhalb einer Szene durch Auswertung zeitlicher Änderungen in einer Bildsequenz |
− | * Interpretation der gefundenen Änderungen | + | * Interpretation der gefundenen Änderungen als |
*# Bewegung des Objektes | *# Bewegung des Objektes | ||
*# Eigenbewegung des Sehsystems | *# Eigenbewegung des Sehsystems | ||
− | * | + | |
− | + | '''Grundidee:''' | |
− | + | * suchen der Bewegung in einem 3D-Raum durch stapeln der einzelnen Aufnahmen | |
− | + | ||
− | + | '''Typischer Ablauf:''' | |
− | * Die Bildmerkmale sind vielfältigen Störungen unterworfen | + | # Extraktion bestimmter Bildmerkmale (Textur, Ecken, Konturlinien, Grauwert- oder Farbwertverläufe) |
+ | # Matching der verwendeten Bildmerkmale in den anderen Bildern der Bildsequenz | ||
+ | # aus dem Matching Bewegungsschätzungen ableiten | ||
+ | |||
+ | * Die Bildmerkmale sind vielfältigen Störungen unterworfen: | ||
** bildspezifische Störungen (Verdeckung, Beläuchtungsänderung, Bewegungsänderung durch Eigenbewegung) | ** bildspezifische Störungen (Verdeckung, Beläuchtungsänderung, Bewegungsänderung durch Eigenbewegung) | ||
** statistische Rauscheinflüsse (Pixelrauschen, Umweltschwankungen,...) | ** statistische Rauscheinflüsse (Pixelrauschen, Umweltschwankungen,...) | ||
** Reduktion der Bildinformation (Quantisierung bei der Umwandlung) | ** Reduktion der Bildinformation (Quantisierung bei der Umwandlung) | ||
+ | |||
=== Optischer Fluss === | === Optischer Fluss === | ||
− | * Der optische Fluss ist die Scheinbewegung, die aus der zeitlichen Änderung von Helligkeitsmustern in Bildsequenzen entsteht | + | |
+ | * Der '''optische Fluss''' ist die Scheinbewegung, die aus der zeitlichen Änderung von Helligkeitsmustern in Bildsequenzen entsteht | ||
** Verschiebung der Bildkoordinaten ist von der Entfernung abhängig → implizite Tiefeninformation | ** Verschiebung der Bildkoordinaten ist von der Entfernung abhängig → implizite Tiefeninformation | ||
− | * Das Bewegungsfeld in einem | + | ** Vorteile: Farb-, Textur-, Helligkeitsinvariant |
+ | * Das '''Bewegungsfeld''' in einem Bild entsteht durch reale Bewegungen der Objekte welche auf die Bildebene projiziert werden | ||
** Beschreibung erfolgt durch ein Vektorfeld | ** Beschreibung erfolgt durch ein Vektorfeld | ||
+ | |||
* Die Schätzung des optischen Flusses basiert auf dem Korrespondenzproblem | * Die Schätzung des optischen Flusses basiert auf dem Korrespondenzproblem | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === Das Korrespondenzproblem === | + | ==== Das Korrespondenzproblem ==== |
* Problem: Auffinden von Bildpunkten in aufeinanderfolgenden Bildern, die in der realen Umwelt den gleichen Ursprung haben | * Problem: Auffinden von Bildpunkten in aufeinanderfolgenden Bildern, die in der realen Umwelt den gleichen Ursprung haben | ||
+ | * Aus der Notwendigkeit zur Lösung ergeben sich weitere Probleme: | ||
+ | *# das Apertur- (Blenden) Problem | ||
+ | *# Spielarten des Korrespondenzproblems | ||
− | + | '''Das Apertur- (Blenden) Problem:''' | |
* Intensitätsänderungen können bei der Bildanalyse nicht eindeutig detektiert werden wenn zu kleine Bildauschnitte verwendet werden | * Intensitätsänderungen können bei der Bildanalyse nicht eindeutig detektiert werden wenn zu kleine Bildauschnitte verwendet werden | ||
* die Verschiebung von geraden linien kann nicht exakt bestimmt werden wenn die Eckpunkte nicht bekannt sind | * die Verschiebung von geraden linien kann nicht exakt bestimmt werden wenn die Eckpunkte nicht bekannt sind | ||
− | + | '''Spielarten des Korrespondenzproblems:''' | |
# bei deformierbaren Körpern kann man nicht auf die innere Bewegung schließen, da keine eindeutigen Merkmale vorhanden sind | # bei deformierbaren Körpern kann man nicht auf die innere Bewegung schließen, da keine eindeutigen Merkmale vorhanden sind | ||
− | # bei periodische Texturen kann ein lokaler Operator nicht | + | # bei periodische Texturen kann ein lokaler Operator nicht unterscheiden ob es sich um eine einfache oder vielfache Bewegung, um die Periode, handelt (Verwechslungsgefahr) |
− | # viele ähnliche Objekte können nur durch Hochgeschwindigkeitsaufnahmen unterschieden werden, bei denen sich die Objekte langsamer bewegen als der mittlere Abstand zwischen diesen ist | + | # viele ähnliche Objekte können nur durch Hochgeschwindigkeitsaufnahmen unterschieden werden, bei denen sich die Objekte langsamer bewegen als der mittlere Abstand zwischen diesen ist (Auch hier gilt: Verwechslungsgefahr) |
+ | # weitere Erkennungsprobleme: | ||
+ | #* Homogene unstrukturierte Bereiche | ||
+ | #* Perspektivische Ansichtsänderung | ||
+ | #* Lokale Helligkeitschwankungen | ||
+ | #* Bildrauschen | ||
+ | #* Kameraverzeichnung | ||
+ | # weitere Interpretationsprobleme bei: | ||
+ | #* unbekannter Eigenbewegung | ||
+ | #* dynamischer Umwelt | ||
+ | #* rotatorischer Bewegung des Sehsystems | ||
− | + | ==== Verfahren zur Bestimmung des OF ==== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Verschiedene Spielarten für Schätzung der Bewegung möglich: | |
+ | * merkmalsbasiert | ||
+ | ** Sift | ||
+ | ** Surf | ||
+ | * helligkeitsbasiert | ||
+ | ** korrelationsbasiert | ||
+ | ** differentiell | ||
+ | ** phasenbasiert | ||
+ | |||
+ | '''Korrelationsbasierte Schätzverfahren:''' | ||
* Suche nach Bildregionen im Folgebild | * Suche nach Bildregionen im Folgebild | ||
− | * Ähnlichkeitsmaß ist die | + | * Ähnlichkeitsmaß ist die 2D-Kreuzkorrelation der Grauwertgebirge |
− | * | + | ** <math> R(\nu _{x},\nu _{y})=\sum _{j}\sum _{i}g(i,j)\cdot g'(\nu _{x}+i,\nu _{y}+j) </math> |
− | ** sehr | + | * wird für alle möglichen Verschiebungen berechnet |
+ | ** sehr rechenaufwendig | ||
** mögliche Verschiebungen müssen auf sinnvolle Bewegungen begrenzt werden | ** mögliche Verschiebungen müssen auf sinnvolle Bewegungen begrenzt werden | ||
− | ** sinnvolle Definiton der Größe | + | ** sinnvolle Definiton der Größe der Bildausschnitte |
− | + | ||
− | + | '''Alternativen zur Kreuzkorrelation:''' | |
− | + | * Kovarianz: <math> \mathit{cov}(\nu _{x},\nu _{y})=\sum _{j}\sum_{i}[g(i,j)-\overline{g}]\cdot [g'(\nu_{x}+i,\nu _{y}+j)-\overline{g}'] </math> | |
− | + | * Summe der absoluten Differenzen: <math>\mathit{SAD}(\nu _{x},\nu _{y})=\sum _{j}\sum_{i}\left\|g(i,j)-g'(\nu _{x}+i,\nu_{y}+j)\right\|</math> | |
− | + | * Summe der quadratischen Differenzen: <math>\mathit{SQD}(\nu _{x},\nu _{y})=\sum _{j}\sum_{i}[g(i,j)-g'(\nu _{x}+i,\nu _{y}+j)]^{2}</math> | |
− | + | * Normierte Kreuzkorrelation: <math>R^{\text{*}}(\nu _{x},\nu _{y})=\frac{\sum _{j}\sum _{i}g(i,j)\cdot g'(\nu _{x}+i,\nu _{y}+j)}{\sqrt{\sum _{j}\sum _{i}g(i,j)^{2}}\cdot \sqrt{\sum_{i}\sum _{j}g'(\nu _{x}+i,\nu _{y}+j)}-\overline{g}'}</math> | |
− | + | * Summe der absoluten Streuungsdifferenzen: <math>\mathit{SMAD}(\nu _{x},\nu _{y})=\sum _{i}\sum _{j}\left\|[g(i,j)-\overline{g}]-[g'(\nu _{x}+i,\nu _{y}+j)-\overline{g}']\right\|</math> | |
+ | |||
+ | '''Ablauf für realwelttaugliche OF-Berechnung:''' | ||
+ | # Vorselektion mit Hilfe eines Interest Operators um die geeignete Bildregionen zu finden (z.B. besonderst starke Grauwertänderungen) | ||
+ | # Berechnung der Flussvektoren an den vorselektierten Stellen (z.B. mit Korrelationsverfahren(SAD)) | ||
+ | # Bewertung der berechneten Flussvektoren auf ihre Eignung für die nachfolgenden Berechnungsschritte | ||
+ | #* Es werden nur Vektoren ausgewählt für die die Korrelation über einer Schwelle liegt und der zweitbeste Wert einen bestimmten Sicherheitsabstand vom besten gefundenen Wert hat | ||
== Tiefenwahrnehmung == | == Tiefenwahrnehmung == | ||
+ | * Für Bewegungskoordination wichtig | ||
+ | * Gewinnung von Tiefeninformationen aus: | ||
+ | ** okulomotorsichen Informationen | ||
+ | ** berechneter Tiefenkarte aus 2D-Daten | ||
+ | |||
+ | '''Informationsquellen für räumliche Tiefe:''' | ||
# Okulomotorische Tiefeninformation | # Okulomotorische Tiefeninformation | ||
− | #* Akkomodation der Augen, um | + | #* Akkomodation der Augen, um scharf zu sehen → Nahbereich 0,2m - 3 m |
#* Konvergenzbewegung der Augen, um ein Objekt zu fokusieren → Nahbereich bis max. 6 m | #* Konvergenzbewegung der Augen, um ein Objekt zu fokusieren → Nahbereich bis max. 6 m | ||
#* relative Höhe im Blickfeld (Auslenkung der Augen aus der Horizontallinie, um ein Objekt zu Fokusieren) | #* relative Höhe im Blickfeld (Auslenkung der Augen aus der Horizontallinie, um ein Objekt zu Fokusieren) | ||
Zeile 298: | Zeile 443: | ||
#* "Gewohnte" Größe | #* "Gewohnte" Größe | ||
#* Lineare Perspektive | #* Lineare Perspektive | ||
− | #* Schattierung | + | #* Schattierung |
+ | #* Texturgradient | ||
#* Atmosphärische Perspektive | #* Atmosphärische Perspektive | ||
# Bewegungsinduzierte Tiefeninformation | # Bewegungsinduzierte Tiefeninformation | ||
− | #* Relativbewegung von beobachteten Objekten | + | #* Relativbewegung von beobachteten Objekten (nahe Objekte erzeugen größere Verschiebungsvektoren als weiter entfernte Objekte) |
# Binokulare, stereoskopische Tiefeninformation | # Binokulare, stereoskopische Tiefeninformation | ||
− | #* Tiefeninformation ist in den leicht unterschiedlichen Bildern der selben Szene enthalten (Disparität) | + | #* Tiefeninformation ist in den leicht unterschiedlichen Bildern der selben Szene auf Netzhäuten beider Augen enthalten (retinale Disparität) |
# Polyokulare Tiefeninformation | # Polyokulare Tiefeninformation | ||
#* Wie Binokulare Systeme nur das eine höhere Genauigkeit möglich ist, da mehrere Bilder verwendet werden können | #* Wie Binokulare Systeme nur das eine höhere Genauigkeit möglich ist, da mehrere Bilder verwendet werden können | ||
=== Binokulares Stereosehen === | === Binokulares Stereosehen === | ||
− | + | ====Grundbegriffe==== | |
− | * | + | * ''Basisabstand'': Abstand zwischen den Augen/Kameras |
− | * | + | * ''Binokulares visuelles Feld'': Region in der sich die Sichtbereiche beider Augen/Kameras überlappen |
− | * | + | * ''Retinale Disparität'': horizontale Verschiebung eines Objektes zwischen der Position auf der Bildebene im linken und rechten Auge |
− | + | * ''Horopter'': Imaginärere 3D Kurve im Raum auf der alle Punkte eine Disparität von Null haben | |
− | * | + | * ''Gekreuzte Querdisparität'': Punkte die vor dem Horopter liegen (Bei der Projektion ins linke Auge werden die Punkte rechts von der Fixationsline abgebildet) |
− | + | * ''Ungekreuzute Querdisparität'': Punkte die hinter dem Horopter liegen (Bei der Projektion ins linke Auge werden die Punkte links von der Fixationslinie abgebildet) | |
− | + | * ''Panums-Area'': Der Bereich um den Horopter , in dem eine fusion der Stereobilder möglich ist | |
− | * | + | ====Kameraanordnungen==== |
− | * | + | * kleiner Basisabstand -> Korrespondenzen leicht zu finden -> geringe Tiefenauflösung |
− | + | * großer Basisabstand -> Korrespondenzen schwer zu finden -> hohe Tiefenauflösung | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | '''Parallelangeordnete Kameras:''' | |
* Fixationspunkt liegt im Unendlichen → immer gekreuzte Disparität | * Fixationspunkt liegt im Unendlichen → immer gekreuzte Disparität | ||
− | * jeder Punkt der Szene wird immer | + | * jeder Punkt der Szene wird immer auf unterschiedlichrn Punkten der gemeinsamen Bildebene abgebildet |
− | * die Linie die die beiden abgebildeten Punkte verbindet heißt Epipolarlinie und sie verläuft immer parallel zur Basislinie | + | * die Linie, die die beiden abgebildeten Punkte verbindet, heißt Epipolarlinie und sie verläuft immer parallel zur Basislinie |
− | * | + | * Vorteil: Damit müssen Korrespondenzen nur auf dieser Linie gesucht werden |
* Nachteil der Anordnung: nur sehr kleines binokulares visuelles Feld | * Nachteil der Anordnung: nur sehr kleines binokulares visuelles Feld | ||
* Berechnung der Tiefe erfolgt mit Triangulation | * Berechnung der Tiefe erfolgt mit Triangulation | ||
− | + | '''Kameras mit Fixationspunkt:''' | |
− | * Fixiertes Objekt hat stets die Disparität Null | + | * Fixiertes Objekt hat stets die Disparität Null (liegt in Bildmitte) |
* Rückschluss von den Bildkoordinaten ist recht aufwendig da die Orientierung der Kameras mit erfasst werden muss | * Rückschluss von den Bildkoordinaten ist recht aufwendig da die Orientierung der Kameras mit erfasst werden muss | ||
* benötigt Active-Vision-System zur Kameranachführung | * benötigt Active-Vision-System zur Kameranachführung | ||
* Objekte werden auf der linken und rechten Bildebene unterschiedlich abgebildet → Korrespondenzproblem | * Objekte werden auf der linken und rechten Bildebene unterschiedlich abgebildet → Korrespondenzproblem | ||
− | ==== Methoden zur Korrespondenzanalyse ==== | + | ====Notwendigkeit der Kamerakalibrierung==== |
− | * | + | * verwendete Kameras müssen kalibriert werden um Unterschiede (zwischen CCD-Chips, Kissenverzeichnungen, Basisabstand ungenau, Ausrichtung der Kameraachsen) ausgleichen zu können |
− | ** 2D Korrelation | + | * eine geeignete Kalibrierung kann die Korrespondenzanalyse stark vereinfachen (Testmuster; Raumkoordinaten ausmessen, zugehörige Bildkoordinaten ermitteln & Gleichungssystem lösen) |
− | ** Genauigkeit hängt von der Größe des | + | |
+ | ====Schritte zur Berechnung einer 2D-Tiefenkarte==== | ||
+ | # Bildvorverarbeitung | ||
+ | # Korrespondenzanalyse (erstellen eines Disparitätswürfels) | ||
+ | # Aggregation (innerhalb des Disparitätswürfels) | ||
+ | # Disparitätsauswahl | ||
+ | # Tiefenberechnung | ||
+ | |||
+ | =====Bildvorverarbeitung===== | ||
+ | * Rauschminderung (TP-Filter) | ||
+ | * Kamerakalibrierung | ||
+ | * Ausgleich von Beleuchtungsunterschieden | ||
+ | |||
+ | ===== Methoden zur Korrespondenzanalyse ===== | ||
+ | * Intensitätsbasiert | ||
+ | ** 2D-Korrelation zwischen Ausschnitt aus einem Bild und sukzessiv verschobenem Ausschnitt aus anderem Bild | ||
+ | ** Genauigkeit hängt von der Größe des Korrelationsfensters ab | ||
* Merkmalsbasiert | * Merkmalsbasiert | ||
− | ** | + | ** berechnen von charakteristischen Merkmalen aus den Intensitätsverteilung |
− | ** Merkmale sollten robust gegenüber | + | ** Merkmale sollten robust gegenüber Störungen sein |
− | ** | + | ** unter Umständen werden nur wenige Merkmale gefunden → spärliche Tiefeninformation |
** Ein Merkmal kann mit jedem anderen Merkmal korrespondieren → sehr spezifische Merkmale nötig um Verwechslungen auszuschließen | ** Ein Merkmal kann mit jedem anderen Merkmal korrespondieren → sehr spezifische Merkmale nötig um Verwechslungen auszuschließen | ||
* Phasenbasiert | * Phasenbasiert | ||
** Bestimmung der Phasenlage in lokalen Bildregionen (z.B. mit Gaborfilter) | ** Bestimmung der Phasenlage in lokalen Bildregionen (z.B. mit Gaborfilter) | ||
− | ** Phasenverschiebung entspricht der | + | ** Phasenverschiebung entspricht der Disparität |
− | * Probleme sind die selben wie beim | + | * Probleme sind die selben wie beim optischen Fluss -> selbe Verfahren anwendbar |
+ | * spezielle Probleme: Sensorrauschen, unterschiedliche Transferfunktionen zwischen Kameras, Verdeckung, Verzerrung/Verkürzung, Reflexionen | ||
* alle möglichen Korrespondenzen werden im Disparitätswürfel gespeichert | * alle möglichen Korrespondenzen werden im Disparitätswürfel gespeichert | ||
− | + | <br> | |
− | # Epipolar Constraint (bei parallelen | + | '''Heuristiken für eine robuste Suche:''' |
− | # Compatibility Constraint (hohe Korrelation gefordert) | + | # Epipolar Constraint (bei parallelen Kameras müssen die Korrespondenzen auf einer Linie liegen) |
− | # Uniqueness Constraint ( | + | # Compatibility Constraint (hohe Korrelation gefordert; ähnliche Merkmale müssen ausgewählt werden) |
− | # Ordering Constraint (Reihenfolge der | + | # Uniqueness Constraint (ein Punkt kann nur einmal matchen) |
+ | # Ordering Constraint (Reihenfolge der Primitiven muss gleich der Reihenfolge auf der Bildzeile sein, bei parallelen Kameras) | ||
# Continuity Constrain (Disparität darf sich nicht sprunghaft ändern) | # Continuity Constrain (Disparität darf sich nicht sprunghaft ändern) | ||
# Disparity Gradient Limit (Gradient darf eine bestimmte Schwelle nicht überschreiten) | # Disparity Gradient Limit (Gradient darf eine bestimmte Schwelle nicht überschreiten) | ||
− | # Geometric Similarity Constraint (Liniensegmente müssen in beiden Bildern ähnliche Orientierungen und Längen haben) | + | # Geometric Similarity Constraint (Liniensegmente müssen in beiden Bildern ähnliche Orientierungen und Längen haben, d.h. kleiner Basisabstand) |
− | # Coarse-to-fine multiresolution matching scheme ( | + | # Coarse-to-fine multiresolution matching scheme (arbeiten auf Auflösungspyramiden und mit der gröbsten Ebene wird angefangen) |
− | ==== Aggregation des Disparitätswürfels ==== | + | ===== Aggregation des Disparitätswürfels ===== |
− | * Ziel ist die Nachbearbeitung der gestörten Einzelergebnisse | + | * Ziel ist die Nachbearbeitung der gestörten Einzelergebnisse der Korrespondenzanalyse |
− | * Berücksichtigung der Heuristiken | + | * wird erreicht durch: |
+ | ** Berücksichtigung der Heuristiken | ||
+ | ** Glättung des Würfels | ||
* Aggregationsarten | * Aggregationsarten | ||
** Glättungsfilter 2D / 3D | ** Glättungsfilter 2D / 3D | ||
Zeile 373: | Zeile 534: | ||
*** iteratives Verfahren | *** iteratives Verfahren | ||
*** nur eine Ebene im Disparitätswürfel → Fehler bei schrägen Flächen | *** nur eine Ebene im Disparitätswürfel → Fehler bei schrägen Flächen | ||
− | *** berücksichtigt das | + | *** berücksichtigt das Koninuitätskriterium |
*** Faltungskern ist einem Tiefpassfilter ähnlich | *** Faltungskern ist einem Tiefpassfilter ähnlich | ||
** 2D-Aggregation mittels Support Region | ** 2D-Aggregation mittels Support Region | ||
− | ==== Disparitätsauswahl ==== | + | ===== Disparitätsauswahl ===== |
− | * Ziel ist die Auswahl der richtigen Disparität für jede x-y- | + | * Ziel ist die Auswahl der richtigen Disparität für jede x-y-Position aus dem Disparitätswürfel |
* Arten | * Arten | ||
− | ** Max- Auswahl ( | + | ** Max- Auswahl (nimmt einfach den besten Match -> berücksichtigt Heuristiken nicht und hat Probleme bei Mehrdeutigkeiten) |
** WTA-Auswahl (Verrechnung von lokalen Hypothese aus der Nachbarschaft) | ** WTA-Auswahl (Verrechnung von lokalen Hypothese aus der Nachbarschaft) | ||
− | ** Dynamische Programmierung ( | + | ** Dynamische Programmierung (suche den Weg mit den geringsten Kosten durch den Disparitätswürfel) |
− | ==== Tiefenberechnung ==== | + | ===== Tiefenberechnung ===== |
* Berechnung des Teifenwertes aus der Disparität | * Berechnung des Teifenwertes aus der Disparität | ||
* Representation meist in Grauwertbildern → Tiefenbilder | * Representation meist in Grauwertbildern → Tiefenbilder | ||
− | * Berechnung erfolgt mittels Triangulation | + | * Berechnung erfolgt mittels Triangulation bei parallelen Kameras |
* <math> h_{b}=\frac{b\cdot f}{d}</math> | * <math> h_{b}=\frac{b\cdot f}{d}</math> | ||
** <math>h_b</math> ... Abstand zu Basislinie | ** <math>h_b</math> ... Abstand zu Basislinie | ||
** b ... Basisabstand | ** b ... Basisabstand | ||
** d ... Disparität | ** d ... Disparität | ||
+ | |||
+ | ==== Nutzung von Tiefeninformationen ==== | ||
+ | * Hindernisvermeidung | ||
+ | * Aufbau von Umweltmodellen | ||
+ | * Objelttracking | ||
= Vision-basierte Roboternavigation = | = Vision-basierte Roboternavigation = | ||
Zeile 397: | Zeile 563: | ||
* Robuste Hindernisvermeidung ist Voraussetzung für Roboter im Praxiseinsatz | * Robuste Hindernisvermeidung ist Voraussetzung für Roboter im Praxiseinsatz | ||
* Sonar- und Laser erfassen nur einen kleinen Teil des Raums | * Sonar- und Laser erfassen nur einen kleinen Teil des Raums | ||
+ | * durch visuelle Systeme mehr Informationen aus Umwelt erlangbar | ||
+ | |||
+ | == Einteilung der Verfahren == | ||
+ | [[Datei:RV-VerfahrenVisuelleHindernisvermeidung.jpg|550px]] | ||
=== Monokulare Verfahren === | === Monokulare Verfahren === | ||
* kein Kalibrierungsaufwand für eine zweite Kamera | * kein Kalibrierungsaufwand für eine zweite Kamera | ||
* nur geringer Platzbedarf am Roboter | * nur geringer Platzbedarf am Roboter | ||
+ | * geringeres Datenaufkommen | ||
+ | * günstiger | ||
==== ALVINN ==== | ==== ALVINN ==== | ||
* Basiert auf Expertenkloning mit einem neuronalen Netzwerk | * Basiert auf Expertenkloning mit einem neuronalen Netzwerk | ||
* Realisierung einer komplexen Funktionsapproximation von Bilddaten auf den Lenkwinkel | * Realisierung einer komplexen Funktionsapproximation von Bilddaten auf den Lenkwinkel | ||
− | * 32x32 | + | |
− | * | + | '''Ablaufphasen:''' |
+ | # Vorführphase | ||
+ | #* Experte steuert Fahrzeug | ||
+ | #* Lenkwinkel und Expertensicht wird Synchron aufgezeichnet | ||
+ | #* Daten enthalten implizit die gewünschte Fahrstrategie und auch die Fahrzeugeigenschaften | ||
+ | # Trainingsphase | ||
+ | #* Lernen der Abbildingsfunktion mittels Supervised Lerning | ||
+ | #* Trainingsdaten werden Generalisiert und sind auch auf unbekannte Situatuionen anwendbar | ||
+ | # Reproduktionsphase | ||
+ | #* Das trainierte Netzwerk wird eingesetzt um das Fahrzeug zu steuern | ||
+ | |||
+ | '''Netzwerkstruktur:''' | ||
+ | * 32x32 Kamera Neuronen + 8x32 Laserscanner Neuronen | ||
+ | * 29 Neuronen in einer Hiddenschicht | ||
+ | * 45 Ausgabeneuronen für den Lenkwinkel | ||
+ | * Lenkwinkel wird in der Teachingphase Fuzzyfiziert | ||
** Erhöht Lerngeschwindigkeit durch vergrößerte Kodierungskapazität | ** Erhöht Lerngeschwindigkeit durch vergrößerte Kodierungskapazität | ||
** Erhöht Robustheit durch Nachbarschaftserhaltung | ** Erhöht Robustheit durch Nachbarschaftserhaltung | ||
− | ** In der Kannphase muss der Lenkwinkel dann entsprechend | + | ** In der Kannphase muss der Lenkwinkel dann entsprechend defuzzyfiziert werden |
*** wird durch "intelligente" Schwerpunktbildung realisiert | *** wird durch "intelligente" Schwerpunktbildung realisiert | ||
− | * Neuronen fungieren als Detektoren für ganze Straßenverläufe | + | * Neuronen fungieren als Detektoren für ganze Straßenverläufe oder Straßenränder |
− | * Ein einzelnes Neuron kann den Wagen nicht steuern | + | * Ein einzelnes Neuron kann den Wagen nicht steuern, erst die Gesamtheit schafft das |
− | * Funktioniert im | + | * Funktioniert im Indoor- und Outdoorbereich sehr gut |
− | * Probleme bei | + | * Probleme bei wechselnder Texturierung der Hindernisse und des Untergrundes |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==== | + | ==== Flussbasierte Hindernisvermeidung ==== |
* weit entfernte Objekte erzeugen einen kleinen Flussvektor | * weit entfernte Objekte erzeugen einen kleinen Flussvektor | ||
* nahe Objekte erzeugen einen großen Flussvektor | * nahe Objekte erzeugen einen großen Flussvektor | ||
* Freiraum erzeugt nahezu keine Flussvektoren | * Freiraum erzeugt nahezu keine Flussvektoren | ||
− | * Durch Symetrierung der Flussvektoren zwischen der linken und rechten Bildhälfte kann eine | + | * mittig befahrene Gänge erzeugen symmetrische Flussvektoren |
+ | * Durch Symetrierung der Flussvektoren zwischen der linken und rechten Bildhälfte kann eine einfache Navigationsstrategie erreicht werden | ||
− | ==== Untergrund | + | ==== Untergrund-Referenzfluss zur Hindernisvermeidung ==== |
* Kamera schräg auf den Boden gerichtet | * Kamera schräg auf den Boden gerichtet | ||
* Optischer Fluss, der durch Hindernisse verursacht wird unterscheidet sich deutlich von dem des Untergrundes | * Optischer Fluss, der durch Hindernisse verursacht wird unterscheidet sich deutlich von dem des Untergrundes | ||
− | * Durch Klassifikation des Flusses ist so | + | * Durch Klassifikation des Flusses ist so eine einfache Hindernisvermeidung möglich |
* Analyse des Flusses erfolgt nur über eine Bildzeile | * Analyse des Flusses erfolgt nur über eine Bildzeile | ||
** Entfernung die die Zeile sieht bleibt immer konstant | ** Entfernung die die Zeile sieht bleibt immer konstant | ||
* Zur Klassifikation des Flusses muss der Referenzfluss für den Untergrund bestimmt werden (Annahme der Roboter sieht am Anfang nur Freiraum) | * Zur Klassifikation des Flusses muss der Referenzfluss für den Untergrund bestimmt werden (Annahme der Roboter sieht am Anfang nur Freiraum) | ||
− | * Mit Hilfe von Korrelation kann nun der Fluss ermittelt werden bei | + | * Mit Hilfe von Korrelation kann nun der Fluss ermittelt werden → bei Abweichungen zum Referenzfluss wird ein Hindernis detektiert |
− | * | + | * um Fehldetektionen zu verhindern muss die Abweichung über mehrere Bilder bestehen bleiben |
− | * Einfache Regeln zum Umfahren der Hindernisse ( | + | * Einfache Regeln zum Umfahren der Hindernisse (hier eignen sich Fuzzy-Regeln → guter Querverweis) |
− | * | + | * robust gegenüber Texturveränderungen, da diese den Fluss kaum beeinflussen |
− | * | + | * ungeeignet bei unstrukturiertem Boden (Mindeststrukturierung notwendig) |
− | * einfach zu | + | * einfach zu berechnen |
==== Untergrund Farbreferenz ==== | ==== Untergrund Farbreferenz ==== | ||
* Detektion der Hindernisse aufgrund ihrer Farbe (im HSL/HSI Farbraum) | * Detektion der Hindernisse aufgrund ihrer Farbe (im HSL/HSI Farbraum) | ||
− | * Untergrundsegmentierung durch angelerntes | + | * Untergrundsegmentierung durch angelerntes Untergrund-Farbhistogramm |
− | * Annahmen | + | * pixelweiser Vergleich erzeugt Hindernis/Untergrund-Karte |
− | + | * diese kann dann zur Bewegungssteuerung genutzt werden | |
− | + | ||
− | + | '''Annahmen:''' | |
− | + | * flacher Untergrund | |
− | + | * Hindernisse unterscheiden sich farblich vom Untergrund | |
− | + | * alle Hindernisse stehen auf dem Boden | |
− | + | * beim Start sind keine Hindernisse vor dem Roboter | |
− | + | ||
− | + | '''Ablauf:''' | |
− | * | + | # Gaußfilter zur Rauschminderung |
− | ** Können aber entfernt werden da | + | # Transformation in HSI bzw. HSL Farbraum |
+ | # Referenzhistogramme für Untergrund berechnen | ||
+ | # pixelweise Klassifikation des Bildes mit Referenzhistogramm | ||
+ | |||
+ | '''Probleme:''' | ||
+ | * Reflexionen führen zu Scheinhindernissen | ||
+ | ** Können aber entfernt werden, da sich Reflexionen immer vor dem Roboter her bewegen und nicht auf ihn zukommen | ||
+ | * Plötzlicher Wechsel des Untergrundes | ||
+ | ** nur durch Kombination mit anderen farb- und texturunabhängigen Techniken lösbar (z.B. optischer Fluss) | ||
+ | * Referenzregion ist nicht frei von Hindernissen | ||
+ | * bei starker Helligkeit werden Schatten zu Hindernissen | ||
+ | ** nur durch Kombination mit anderen farb- und texturunabhängigen Techniken lösbar | ||
+ | * Hindernisse und Untergrund farblich ehr ähnlich | ||
+ | ** nur durch Kombination mit anderen farb- und texturunabhängigen Techniken lösbar | ||
+ | |||
+ | '''Mögliche Erweiterungen:''' | ||
+ | * Erweiterung der Histogramme um zurückliegende Komponenten -> da Roboter diese schon überfahren hat sind sie frei von Hindernissen | ||
+ | * Auswertung der Histogramme zur Untergrunderkennung | ||
* Histogramme des Untergrundes können zur Lokalisierung verwendet werden | * Histogramme des Untergrundes können zur Lokalisierung verwendet werden | ||
* Kartenaufbau anhand der Hindernissegmentierung möglich | * Kartenaufbau anhand der Hindernissegmentierung möglich | ||
− | |||
=== Binokulare Verfahren === | === Binokulare Verfahren === | ||
− | + | '''Typische Verarbeitungsschritte:''' | |
− | + | # berechnen der Disparitäts- und Tiefenkarte aus binokularen Kameradaten (Siehe [[#Binokulares Stereosehen|Binokulares Stereosehen]]) | |
− | + | # bei Bedarf: Transformation der Kamera- in Roboterkoordinaten | |
− | *# Grundfläche muss entfernt werden | + | #* unterscheiden sich durch Rotation und Translation |
− | + | # Grundfläche muss entfernt werden | |
− | + | #* durch implizites Schätzen (Suche einer Ebene in der Punktwolke, welche die meisten Datenpunkte enthält (Annahme: die meisten Punkte sind Grundfläche)) | |
− | + | #* durch explizite Berechnung unter Berücksichtigung der Kamerageometrie | |
− | + | # Berechnung einer 3D Hinderniskarte ohne die Grundfläche | |
− | + | #* Distanz des Punktes zur Grundfläche | |
− | + | #* Schwellwertoperationen | |
− | + | # Projektion der 3D-Daten in eine 2D-Draufsicht | |
− | + | #* 3.Dimension wird einfach entfernt | |
− | *#* Occupancy Map ( | + | # Übernehmen der 2D-Hinderniskarte in eine Belegtheitskarte |
− | + | #* für jede Zelle eines Gittermodells wird die Belegtheitswahrscheinlichkeit ermittelt | |
− | + | #* Occupancy Map (mit Bayes-Update Regel) | |
− | + | #* Cerainty Map (einfaches Addieren der Werte) | |
− | * Belegtheitskarte wird dann zur Hindernisvermeidung eingesetzt | + | #* Siehe auch [[Kognitive Robotik#Umgebungsmodelle| Umgebungsmodelle in KogRob]] |
+ | #* Belegtheitskarte wird dann zur Hindernisvermeidung eingesetzt | ||
=== Vektorfeldhistogramm === | === Vektorfeldhistogramm === | ||
Zeile 489: | Zeile 683: | ||
== Visuelle Selbstlokalisation == | == Visuelle Selbstlokalisation == | ||
− | * Kenntnis der Position oder der Pose des Roboters ist | + | '''Notwendigkeit:''' |
+ | * Kenntnis der Position oder der Pose des Roboters ist für eine Planung von Handlungen notwendig | ||
* Aufgaben der Lokalisation | * Aufgaben der Lokalisation | ||
*# Position/Pose Tracking | *# Position/Pose Tracking | ||
*#* Anfangsposition und Pose sind bekannt und müssen aktualisiert werden | *#* Anfangsposition und Pose sind bekannt und müssen aktualisiert werden | ||
− | *# Global | + | *# Global Localization |
*#* Anfangsposition und Pose unbekannt, globale Pose muss anhand der Umgebung ermittelt werden | *#* Anfangsposition und Pose unbekannt, globale Pose muss anhand der Umgebung ermittelt werden | ||
*# Kidnapped Robot | *# Kidnapped Robot | ||
− | *#* Roboter denkt er sei | + | *#* Roboter denkt er sei woanders, muss erkennen das er sich irrt und seine neue Position ermitteln |
* Typische Verfahren zur Selbstlokalisation | * Typische Verfahren zur Selbstlokalisation | ||
Zeile 503: | Zeile 698: | ||
*# [[Kognitive Robotik#Odometrie und lokale sowie globale Sensorinformationen|Odometrie und lokale sowie globale Sensorinformationen (KogRob)]] | *# [[Kognitive Robotik#Odometrie und lokale sowie globale Sensorinformationen|Odometrie und lokale sowie globale Sensorinformationen (KogRob)]] | ||
− | * Roboter nutzt zur | + | === Ansichtsbasierte Selbstlokalisation === |
− | * Regelmäßige Gangstrukturen können sich mit einer Kamera besser unterscheiden lassen | + | * Roboter nutzt zur visuellen Wahrnehmung seiner Umwelt eine omnidirektionale Kamera → 360° Ansicht |
− | * Verwendung aller Bilddaten würde zu viel Rechenaufwand bedeuten → Merkmalsextraktion | + | * Regelmäßige Gangstrukturen können sich mit einer Kamera besser unterscheiden lassen (durchz Farb- und Texturunterschiede) |
− | * Karte der Umgebung enthält Referenzmerkmale | + | * Verwendung aller Bilddaten würde zu viel Rechenaufwand bedeuten → Segmentation → Merkmalsextraktion |
− | ** | + | * Karte der Umgebung enthält Referenzmerkmale (z.B. Helligkeit, Farbwert, Histogramm, Frequenz) |
− | * | + | ** diese Merkmale werden nicht kontinuierlich in der Karte abgelegt sonder lediglich markante Stellen werden gespeichert |
+ | * um dann eine Lokalisierung des Roboters durchzuführen kann ein deterministisches Verfahren zum Einsatz kommen, meist wird aber ein [[Kognitive Robotik#Probabilistische Lokalisation|probabilistisches Verfahren (KogRob)]] eingesetzt | ||
+ | |||
+ | === Monte-Carlo Lokalisation === | ||
+ | siehe [[Kognitive Robotik#Monte Carlo Localization|Monte Carlo Localization (KogRob)]] | ||
=== Visuelles SLAM === | === Visuelles SLAM === |
Aktuelle Version vom 2. August 2009, 10:01 Uhr
<hiddenlogin linktext="Login">nistudws0809:WS0809N!</hiddenlogin>
Neuronaler Instruktionssatz
- Basisoperationen bzw. Verarbeitungsprinzipien mit denen sich biologisch inspirierte Systeme:
- mathematisch Beschreiben lassen
- algorithmisch umsetzen lassen
- technisch nachbilden lassen
- umfasst folgende wesentliche Operationen und Prinzipien:
- Funktionelle Abbildungen
- Topographische Abbildungen
- Ortsvariante Info-verarbeitung
- Auflösungspyramiden
- Topologisch kodierte neuronale Felder im
- Neuronale Felddynamiken
- Geschichtete 2D-Repräsentationen
Funktionelle Abbildungen
- Beschreibung der Abbildung der n-dimensionalen Sensor/Merkmalskarten auf 2-dimensionale Karten
- beschreiben lineare und nicht lineare, ortszeitliche Faltungsprozesse
- Typische Vertreter:
- Filteroperationen
- lokal operierende Klassifikatoren (Gesichtserkennung)
- beliebige lokale Abbildungen (Funktionsapproximation mit z.B. neuronalen Netzen)
Orts-& Zeitvariante, nichtlineare Abbildung
Orts-& Zeitinvariante, lineare Abbildung
Beispiele:
- Boxoperator (Mittelwertoperator)
- Gaußtiefpass
- Laplace-Operator
- Soebel-Operator
- Kirsch-Operator (Kantendetektion)
Der DoG Operator
- Zwei mögliche Realisierungen:
- erregendem Zentrum und hemmendem Saum (on-center)
- hemmendem Zentrum und erregendem Saum (off-center)
- Inspiriert durch die Retina und dem visuellem Cortex
- Wird gebildet durch die Differenz zweier Rotationssymetrischer 2D- Gaußverteilungen
- Das Integral über den DoG sollte 0 sein (inhibitorischer Anteil = exzitatorischer Anteil) -> Faltungsoperator ist dann mittelwertfrei
ortsvarianter DoG Operator:
- im Zentrum kleine DoG-RF (rezeptive Felder) zur Extraktion visueller Details
- zum Rand hin immer größer werdend zur Erhöhung der Empfindlichkeit bei Verringerung der Auflösung
- Polarkoordinaten mit Abhängigkeit vom Radius:
Gabor-Wavelet-Funktionen
- Faltungskerne zur Detektion von orientierten Kanten, Linien bzw. Grauwertverläufen
- spezifisch angepasst auf bestimmte Orientierungen und Ortsfrequenzen
- enstehen durch multiplikative Überlagerung
- einer Gaußfunktion -> Lokalisierung im Ort
- einer komplexwertigen Exponentialfunktion (Sin-Cos Kombination) -> Frequenz- und Orientierungsspezifik
- dienen der Ermittlung von lokalen Änderungen (Grauwert, Farbe) im Inputbild mit bestimmter Vorzugsrichtung, -frequenz
- wichtig für Bewegungs- und Szenenanalyse
- haben richtungsselektiven Bandpasscharakter
- kleine Varianz im FB
- bestmögliche Beschränkung im ZB
- Unschärferelation der Signaltheorie beachten!
mathematische Beschreibung:
- 1D:
- 2D:
Analyse im FB:
- statt Faltung im ZB Verarbeitung im FB
- d.h. Multiplikation des transformierten Inputs mit Gaußfiltern im FB, die sich in Vorzugsrichtung und Frequenz unterscheiden
- Vortel: deutlich verringerte Berechnungskomplexität
Jets:
- Filterung des Bilders mit klar definiertem Satz von Gaborfiltern unterschiedlicher Vorzugsrichtung und Frequenz
- Ziel: gleichmäßige Abdeckung des gesamten Frequenz- und Orientierungsbereichs
- alle Filterergebnisse an einem Bildpunkt werden als Jet bezeichnet
Topographische Abbildungen
Wesen:
- lokal nachbarschaftserhaltende Abbildung
- lokale Nachbarschaften bleiben, können aber verzerrt sein
Zweck:
- Datentransfer
- um für nachfolgende Operationen geeignete Repräsentationen zu erzeugen und Invarianzleistungen zu erzielen
Retino-cortikale Projektion
- kommt aus der biologischen Verarbeitung von Bildern im Gehirn
- nachgewiesen durch Tierversuche mit radioaktiver Glukose
Charakteristika:
- topographische Abbildung
- Topologieerhaltung
- Punkt-zu-Punkt Projektion (Bereiche in der Mitte des Sehfeldes werden größer abgebildet als periphere Bereiche)
Mathematische Modellierung:
- komplexe Exponentialfunktion:
- von Rechteck in z-Ebene (Cortex) → Kreisring in w-Ebene (Retina)
- ,
- horizontale Linien → Radialstrahlen
- vertikale Linien → Kreise
- Kreisring im Ursprung nicht definiert
- komplexe Logarithmusfunktion:
- von Kreisring in w-Ebene → Rechteck in z-Ebene
- ,
Abbildungseigenschaften:
- Skalierung
- Multiplikation aller Pixel mir reeler Konstante
- Translation in x-Richtung
- Erhalt der geometrischen Ähnlichkeit → Pseudoinvarianz
- Roation über Ursprung
- Multiplikation aller Pixel mit komplexer Zahl
- Translation in y-Richtung
- Erhalt der geometrischen Ähnlichkeit → Pseudoinvarianz
- Translation
- keine Formerhaltung
- aktive Sehsysteme erforderlich
Ortsvariante Informationsverarbeitung
- Realisierung ortsabhängiger funktioneller Abbildungen
- zur Reduktion des Datenstromes
- zur Organisation unterschiedlicher Repräsentationen (Menschliches Sehsystem hat hohe Auflösung im Zentrum und geringe am Rand)
Auflösungspyramiden
- erlaubt kleinere Operatoren auf großen Bildern
- Auflösungspyramiden erhöhen die Ortsfrequenzen in Bildern
- erzeugen verschiedene Skalierungsstufen durch Unterabtastung des Originalbildes
- damit können, mit einem Fenster konstanter Größe, große Gesichter im verkleinerten Bild und kleine Gesichter im Originalbild gefunden werden
- Jedes Bild muss vor der Skalierung mit einem Tiefpass gefiltert werden, da sonst das Nyquistkriterium verletzt wird
- Realisierung TP-Filter: Gauß, Mittelwert, optische TP-Filter
Vorteile:
- Effizienzerhöhung der Filteroperation
- Verwendbarkeit eines Operators auf allen Ebenen
Nachteile:
- hoher Berechnungsaufwand
- starres Ebenenraster
Topologisch kodierte neuronale Felder im
- einheitliches Datenformat zur Kodierung und Kommunikation über Karten
- in Anlehnung an Fuzzy-Logic
- räumliche Kodierung durch Blobs (Gaußähnliche Verteilung von Werten auf der Karte)
- die Position eines Blobs kodiert die Bedeutung
- die Breite des Blobs kodiert die Sicherheit
- die Höhe des Blobs kodiert sein Gewicht/Stärke
- erlaubt einfache Verhaltenskoordination durch additive oder multiplikative Überlagerung verschiedener Karten
Neuronale Felddynamiken
- Selektion von sensorischen/motorischen Alternativen innerhalb einer m-dimensionalen Karte
- Verwendung nichtlinearer rückgekoppelter neuronaler Felder
- verschiedene Spielarten:
- AMARI-Dynamik → Regionsbasierter Ansatz (am stärksten aktivierte Region gewinnt)
- KOHONEN-Dynamik → Punktbasierter Ansatz (das am stärksten aktivierte Neuron gewinnt)
AMARI-Dynamik
- beschrieben durch eine DGL:
- Der Faltungskern w bestimmt die Selektionseigenschaften
- Gauß → mehr zentrale Bereiche
- DoG → "auffällige" hochfrequente Bereiche
Eigenschaften:
- Bedingte Maximum-Selektion
- Selektion eines Gewinnerblob wenn
- Inputaktivität überschreitet
- eine Mindestamplitude
- räumliche Ausdehnung
- Zeitdauer des Anliegens
- Zeitliche Vorgeschichte (Hystereseverhalten)
- Inputaktivität überschreitet
- Selektion eines Gewinnerblob wenn
- Hystereseverhalten
- keine sofortige Verlagerung auf neue Region
- Winnerblob für bestimmte Zeit auf ursprünglicher Region gehalten
- Gewinnerblobs werden auch räumlich verfolgt → effizientes Objekt-Tracking möglich
- Siehe auch Konsultation
Implementierung
- die AMARI-Dynamik ist relativ unempfindlich gegenüber numerischen Lösungverfahren
- typischerweise wird die Einschrittapproximation nach EULER eingesetzt
- aus der DGL wird so eine iterativ lösbare Gleichung
Geschichtete 2D-Repräsentation
- Verrechnung von 2D - Daten im → Form der Sensorfusion
- Multi-Cue Ansatz zur Verrechnung der Merkmalskarten bei gleichzeitiger Bewahrung ihrer Spezifität
- Operationen zwischen den Karten:
- Mittelwertbildung
- Fuzzy-Operatoren
- Fuzzy-Und, Fuzzy-Oder
- Min-Max-Operator
- Gamma-Operator (kompensatorisches Und)
- 3D-Amari-Dynamiken
- benötigt für den Aufbau von Multi-Cue Ansätzen (z.B. Detektion von Gesichtern anhand von Farbe, Textur und Kopfsiluette)
Techniken zur Behandlung der Randprobleme
Randbehandlung der Operatoren:
- auffüllen fehlender Werte
- mit Nullen, zufällige Werte
- Mittelwert
- Spiegelung
- Extrapolation
- Wrap-around-Technik
- Weglassen der Ränder (Ergebnis wird kleiner)
- Anpassen der Operatoren an den Rändern
Farbverarbeitung
Farbumstimmung
- nur Strahlungsverteilung des mittleren Tageslichts führt zu einer vollen Ausnutzung der spektralen Empfindlichkeitskurven aller drei Zapentypen und somit auch zur vollen Ausnutzung der Farbempfindung des physiologischen Farbraumes
- für alle anderen Beleuchtungsverhältnisse (vor allem dynamische) muss eine Farbumstimmung erfolgen
Weißringkorrektur:
- weißer Referenzring an Omnikamera zur Messung des Umgebungslichts
- Bestimmung der Farbigkeit des Umgebungslichts
- damit Korrektur von U,V
White Patch:
- Farbe des hellsten Pixels = Farbe des einstrahlenden Lichtes
- Korrektur auf Bild oder in Kamera möglich (kanalweise)
- Problem: hellstes Pixel in Sättigung
Grey World:
- Annahme: durchschnittliches Bild ist Grau
- Korrektur so, das Annahme erfüllt ist
- Problem bei sehr einfarbigen Szenen
Histogrammausgleich:
- zur Kontrastverbesserung
- häufige GW auseinandergezogen, weniger häufige zusammengeschoben
- Problem: Bilder zum Teil unnatürlich verfälscht, dienen deshalb nicht zur Weiterverarbeitung
- liefert beste Ergebnisse für Positionswiedererkennung
Retinex:
- bildet Vorgänge im biologischen visuellen System nach
- inhibitorische Verschaltung des Reizes mit Umgebungsreizen
- stärkere Einbeziehung naher Umgebungspixel
- implizite GW-Mittelung des Bildes
- Probleme: nur lokale Verbesserung
Automatic Color Equalization:
- ähnlich Retinex
- Umgebungspixel wirken hemmend
- nahe Pixel stärker berücksichtigt
Der physiologische Elementarfarbraum
- entsteht aus allen möglichen RG-, BY-, WS-Aktivierungen
- bilden die 3 Achsen die Farbraum aufspannen
- werden durch eine lineare Transformation aus den RGB-Werten gewonnen
- besitzt eine quantitativ gleichabständige Ordnung (aber nicht empfindungsgemäß)
- umfasst alle möglichen Farbempfindungen des Menschen
- Vorteil: Dekorrelation von Farbe und Helligkeit
Elementarfarbraumverfahren
- durchschnittliche Tagesbeleuchtung einer farblich ausgewogenen Szene führt zu einer Pixelwolke die senkrecht im Farbraum steht (entlang der WS-Achse)
- bei anderen Lichtverhältnissen wird Pixelwolke ausgelenkt (gekippt, verformt etc.)
Korrektur:
- für jede ausgelenkte Pixelwolke ist die Bestimmung einer Achse möglich die in WS-Achse überführt werden kann
- Bestimmung der Hauptachse der Pixelwolke (wenn diese gekippt)
- durch Bestimmung des größten Eigenvektors (bzw. im einfachsten Fall des Schwerpunktes)
- anschließend Verschiebung auf WS-Achse (durch lineare Scherung) und Skalierung auf volle Länge der WS-Achse
- zuletzt Sättigungskorrektur
- Bestimmung der Hauptmannigfaltigkeit der Pixelwolke (wenn diese verformt)
- durch Approximation einer 1D-topologieerhaltenden Abbildung
- anschließend nichtlineare Verschiebung auf WS-Achse und Skalierung auf volle Länge der WS-Achse
- zuletzt Sättigungskorrektur
Voraussetzungen für Bildtransformation:
- übersteuerungsfreie Aufnahme
- kein Weißabgleich
- keine Gammakorrektur
Weitere Farbräume
YUV-Farbraum
- Farbinformation: Luminanz Y (Lichtsstärke) und Crominanz U,V (Farbdifferenz)
- Referenzbasierte Farbumstimmung
- empfindungsmäßig nicht gleichabständig
- Einsatz in Kameras
- Regelung von U&V dirket in Kamera
- Regelung von Y über Blende
RGB-Farbraum
- Farbe und Helligkeit stark korreliert
- empfindungsmäßig nicht gleichabständig
- Einsatz in Anzeigegeräten (Scanner, Monitor etc.)
- zur Objekterkennung bei konstanter Beleuchtung
- Farbe als Merkmal zur Unterscheidung von Positionen in der Umgebung
- Positionen durch Erscheinung beschrieben -> appearance-basierte Merkmale
HSV-Farbraum
- Trennung von Farbe und Helligkeit
- entspricht mehr dem menschlichen Empfinden
- Hue (Farbwinkel: 0° = Rot, 360° = Cyan), Saturation (Sättigung: 0% = keine, 100% = reine Farbe), Value (Dunkelstufen: 0% = keine, 100% = volle Helligkeit)
- zur Hindernisvermeidung
- Farbe zur Segmentierung (Referenztrapez vor Roboter als Freiraumbesipiel)
rg-Farbraum
- helligkeitsnormiert und zweidimensional
- für Trackingaufgaben mit dynamischer Beleuchtung
- Tracking über objektspezifische rg-Werte (z.B. Hautfarbe) ist helligkeitsinvariant
- Transformation nach RGB nicht mehr möglich
Vergleichsmetriken
- zur Bestimmung der Ähnlichkeit
Sum of Absolute Differences
- einfach, schnell, geringer Rechenaufwand
Sum of Square Differences
- Ausreißer stärker gewichtet
- langsamer als SAD da höherer Rechenaufwand
Histogramm-Intersection
- Berechnung im HSV-Raum
- direkter Vergleich zweier Hue-Histogramme
- einfach, sehr schnell
-Statistik
- direkter Vergleich zweier Hue-Histogramme
- Ausreißer stärker gewichtet
- langsamer als Histrogrammschnitt, da höherer Rechenaufwand
Basisoperationen für die Visuelle Wahrnehmung der Umgebung
Bewegungsanalyse
- Ziel: Erfassen von Bewegungsgrößen innerhalb einer Szene durch Auswertung zeitlicher Änderungen in einer Bildsequenz
- Interpretation der gefundenen Änderungen als
- Bewegung des Objektes
- Eigenbewegung des Sehsystems
Grundidee:
- suchen der Bewegung in einem 3D-Raum durch stapeln der einzelnen Aufnahmen
Typischer Ablauf:
- Extraktion bestimmter Bildmerkmale (Textur, Ecken, Konturlinien, Grauwert- oder Farbwertverläufe)
- Matching der verwendeten Bildmerkmale in den anderen Bildern der Bildsequenz
- aus dem Matching Bewegungsschätzungen ableiten
- Die Bildmerkmale sind vielfältigen Störungen unterworfen:
- bildspezifische Störungen (Verdeckung, Beläuchtungsänderung, Bewegungsänderung durch Eigenbewegung)
- statistische Rauscheinflüsse (Pixelrauschen, Umweltschwankungen,...)
- Reduktion der Bildinformation (Quantisierung bei der Umwandlung)
Optischer Fluss
- Der optische Fluss ist die Scheinbewegung, die aus der zeitlichen Änderung von Helligkeitsmustern in Bildsequenzen entsteht
- Verschiebung der Bildkoordinaten ist von der Entfernung abhängig → implizite Tiefeninformation
- Vorteile: Farb-, Textur-, Helligkeitsinvariant
- Das Bewegungsfeld in einem Bild entsteht durch reale Bewegungen der Objekte welche auf die Bildebene projiziert werden
- Beschreibung erfolgt durch ein Vektorfeld
- Die Schätzung des optischen Flusses basiert auf dem Korrespondenzproblem
Das Korrespondenzproblem
- Problem: Auffinden von Bildpunkten in aufeinanderfolgenden Bildern, die in der realen Umwelt den gleichen Ursprung haben
- Aus der Notwendigkeit zur Lösung ergeben sich weitere Probleme:
- das Apertur- (Blenden) Problem
- Spielarten des Korrespondenzproblems
Das Apertur- (Blenden) Problem:
- Intensitätsänderungen können bei der Bildanalyse nicht eindeutig detektiert werden wenn zu kleine Bildauschnitte verwendet werden
- die Verschiebung von geraden linien kann nicht exakt bestimmt werden wenn die Eckpunkte nicht bekannt sind
Spielarten des Korrespondenzproblems:
- bei deformierbaren Körpern kann man nicht auf die innere Bewegung schließen, da keine eindeutigen Merkmale vorhanden sind
- bei periodische Texturen kann ein lokaler Operator nicht unterscheiden ob es sich um eine einfache oder vielfache Bewegung, um die Periode, handelt (Verwechslungsgefahr)
- viele ähnliche Objekte können nur durch Hochgeschwindigkeitsaufnahmen unterschieden werden, bei denen sich die Objekte langsamer bewegen als der mittlere Abstand zwischen diesen ist (Auch hier gilt: Verwechslungsgefahr)
- weitere Erkennungsprobleme:
- Homogene unstrukturierte Bereiche
- Perspektivische Ansichtsänderung
- Lokale Helligkeitschwankungen
- Bildrauschen
- Kameraverzeichnung
- weitere Interpretationsprobleme bei:
- unbekannter Eigenbewegung
- dynamischer Umwelt
- rotatorischer Bewegung des Sehsystems
Verfahren zur Bestimmung des OF
Verschiedene Spielarten für Schätzung der Bewegung möglich:
- merkmalsbasiert
- Sift
- Surf
- helligkeitsbasiert
- korrelationsbasiert
- differentiell
- phasenbasiert
Korrelationsbasierte Schätzverfahren:
- Suche nach Bildregionen im Folgebild
- Ähnlichkeitsmaß ist die 2D-Kreuzkorrelation der Grauwertgebirge
- wird für alle möglichen Verschiebungen berechnet
- sehr rechenaufwendig
- mögliche Verschiebungen müssen auf sinnvolle Bewegungen begrenzt werden
- sinnvolle Definiton der Größe der Bildausschnitte
Alternativen zur Kreuzkorrelation:
- Kovarianz:
- Summe der absoluten Differenzen:
- Summe der quadratischen Differenzen:
- Normierte Kreuzkorrelation:
- Summe der absoluten Streuungsdifferenzen:
Ablauf für realwelttaugliche OF-Berechnung:
- Vorselektion mit Hilfe eines Interest Operators um die geeignete Bildregionen zu finden (z.B. besonderst starke Grauwertänderungen)
- Berechnung der Flussvektoren an den vorselektierten Stellen (z.B. mit Korrelationsverfahren(SAD))
- Bewertung der berechneten Flussvektoren auf ihre Eignung für die nachfolgenden Berechnungsschritte
- Es werden nur Vektoren ausgewählt für die die Korrelation über einer Schwelle liegt und der zweitbeste Wert einen bestimmten Sicherheitsabstand vom besten gefundenen Wert hat
Tiefenwahrnehmung
- Für Bewegungskoordination wichtig
- Gewinnung von Tiefeninformationen aus:
- okulomotorsichen Informationen
- berechneter Tiefenkarte aus 2D-Daten
Informationsquellen für räumliche Tiefe:
- Okulomotorische Tiefeninformation
- Akkomodation der Augen, um scharf zu sehen → Nahbereich 0,2m - 3 m
- Konvergenzbewegung der Augen, um ein Objekt zu fokusieren → Nahbereich bis max. 6 m
- relative Höhe im Blickfeld (Auslenkung der Augen aus der Horizontallinie, um ein Objekt zu Fokusieren)
- Monokulare Tiefeninformation
- Verdeckung von Objekten
- relative Höhe/Größe im Gesichtsfeld
- "Gewohnte" Größe
- Lineare Perspektive
- Schattierung
- Texturgradient
- Atmosphärische Perspektive
- Bewegungsinduzierte Tiefeninformation
- Relativbewegung von beobachteten Objekten (nahe Objekte erzeugen größere Verschiebungsvektoren als weiter entfernte Objekte)
- Binokulare, stereoskopische Tiefeninformation
- Tiefeninformation ist in den leicht unterschiedlichen Bildern der selben Szene auf Netzhäuten beider Augen enthalten (retinale Disparität)
- Polyokulare Tiefeninformation
- Wie Binokulare Systeme nur das eine höhere Genauigkeit möglich ist, da mehrere Bilder verwendet werden können
Binokulares Stereosehen
Grundbegriffe
- Basisabstand: Abstand zwischen den Augen/Kameras
- Binokulares visuelles Feld: Region in der sich die Sichtbereiche beider Augen/Kameras überlappen
- Retinale Disparität: horizontale Verschiebung eines Objektes zwischen der Position auf der Bildebene im linken und rechten Auge
- Horopter: Imaginärere 3D Kurve im Raum auf der alle Punkte eine Disparität von Null haben
- Gekreuzte Querdisparität: Punkte die vor dem Horopter liegen (Bei der Projektion ins linke Auge werden die Punkte rechts von der Fixationsline abgebildet)
- Ungekreuzute Querdisparität: Punkte die hinter dem Horopter liegen (Bei der Projektion ins linke Auge werden die Punkte links von der Fixationslinie abgebildet)
- Panums-Area: Der Bereich um den Horopter , in dem eine fusion der Stereobilder möglich ist
Kameraanordnungen
- kleiner Basisabstand -> Korrespondenzen leicht zu finden -> geringe Tiefenauflösung
- großer Basisabstand -> Korrespondenzen schwer zu finden -> hohe Tiefenauflösung
Parallelangeordnete Kameras:
- Fixationspunkt liegt im Unendlichen → immer gekreuzte Disparität
- jeder Punkt der Szene wird immer auf unterschiedlichrn Punkten der gemeinsamen Bildebene abgebildet
- die Linie, die die beiden abgebildeten Punkte verbindet, heißt Epipolarlinie und sie verläuft immer parallel zur Basislinie
- Vorteil: Damit müssen Korrespondenzen nur auf dieser Linie gesucht werden
- Nachteil der Anordnung: nur sehr kleines binokulares visuelles Feld
- Berechnung der Tiefe erfolgt mit Triangulation
Kameras mit Fixationspunkt:
- Fixiertes Objekt hat stets die Disparität Null (liegt in Bildmitte)
- Rückschluss von den Bildkoordinaten ist recht aufwendig da die Orientierung der Kameras mit erfasst werden muss
- benötigt Active-Vision-System zur Kameranachführung
- Objekte werden auf der linken und rechten Bildebene unterschiedlich abgebildet → Korrespondenzproblem
Notwendigkeit der Kamerakalibrierung
- verwendete Kameras müssen kalibriert werden um Unterschiede (zwischen CCD-Chips, Kissenverzeichnungen, Basisabstand ungenau, Ausrichtung der Kameraachsen) ausgleichen zu können
- eine geeignete Kalibrierung kann die Korrespondenzanalyse stark vereinfachen (Testmuster; Raumkoordinaten ausmessen, zugehörige Bildkoordinaten ermitteln & Gleichungssystem lösen)
Schritte zur Berechnung einer 2D-Tiefenkarte
- Bildvorverarbeitung
- Korrespondenzanalyse (erstellen eines Disparitätswürfels)
- Aggregation (innerhalb des Disparitätswürfels)
- Disparitätsauswahl
- Tiefenberechnung
Bildvorverarbeitung
- Rauschminderung (TP-Filter)
- Kamerakalibrierung
- Ausgleich von Beleuchtungsunterschieden
Methoden zur Korrespondenzanalyse
- Intensitätsbasiert
- 2D-Korrelation zwischen Ausschnitt aus einem Bild und sukzessiv verschobenem Ausschnitt aus anderem Bild
- Genauigkeit hängt von der Größe des Korrelationsfensters ab
- Merkmalsbasiert
- berechnen von charakteristischen Merkmalen aus den Intensitätsverteilung
- Merkmale sollten robust gegenüber Störungen sein
- unter Umständen werden nur wenige Merkmale gefunden → spärliche Tiefeninformation
- Ein Merkmal kann mit jedem anderen Merkmal korrespondieren → sehr spezifische Merkmale nötig um Verwechslungen auszuschließen
- Phasenbasiert
- Bestimmung der Phasenlage in lokalen Bildregionen (z.B. mit Gaborfilter)
- Phasenverschiebung entspricht der Disparität
- Probleme sind die selben wie beim optischen Fluss -> selbe Verfahren anwendbar
- spezielle Probleme: Sensorrauschen, unterschiedliche Transferfunktionen zwischen Kameras, Verdeckung, Verzerrung/Verkürzung, Reflexionen
- alle möglichen Korrespondenzen werden im Disparitätswürfel gespeichert
Heuristiken für eine robuste Suche:
- Epipolar Constraint (bei parallelen Kameras müssen die Korrespondenzen auf einer Linie liegen)
- Compatibility Constraint (hohe Korrelation gefordert; ähnliche Merkmale müssen ausgewählt werden)
- Uniqueness Constraint (ein Punkt kann nur einmal matchen)
- Ordering Constraint (Reihenfolge der Primitiven muss gleich der Reihenfolge auf der Bildzeile sein, bei parallelen Kameras)
- Continuity Constrain (Disparität darf sich nicht sprunghaft ändern)
- Disparity Gradient Limit (Gradient darf eine bestimmte Schwelle nicht überschreiten)
- Geometric Similarity Constraint (Liniensegmente müssen in beiden Bildern ähnliche Orientierungen und Längen haben, d.h. kleiner Basisabstand)
- Coarse-to-fine multiresolution matching scheme (arbeiten auf Auflösungspyramiden und mit der gröbsten Ebene wird angefangen)
Aggregation des Disparitätswürfels
- Ziel ist die Nachbearbeitung der gestörten Einzelergebnisse der Korrespondenzanalyse
- wird erreicht durch:
- Berücksichtigung der Heuristiken
- Glättung des Würfels
- Aggregationsarten
- Glättungsfilter 2D / 3D
- 2D-Aggregation mittels Membran-Diffusion
- iteratives Verfahren
- nur eine Ebene im Disparitätswürfel → Fehler bei schrägen Flächen
- berücksichtigt das Koninuitätskriterium
- Faltungskern ist einem Tiefpassfilter ähnlich
- 2D-Aggregation mittels Support Region
Disparitätsauswahl
- Ziel ist die Auswahl der richtigen Disparität für jede x-y-Position aus dem Disparitätswürfel
- Arten
- Max- Auswahl (nimmt einfach den besten Match -> berücksichtigt Heuristiken nicht und hat Probleme bei Mehrdeutigkeiten)
- WTA-Auswahl (Verrechnung von lokalen Hypothese aus der Nachbarschaft)
- Dynamische Programmierung (suche den Weg mit den geringsten Kosten durch den Disparitätswürfel)
Tiefenberechnung
- Berechnung des Teifenwertes aus der Disparität
- Representation meist in Grauwertbildern → Tiefenbilder
- Berechnung erfolgt mittels Triangulation bei parallelen Kameras
-
- ... Abstand zu Basislinie
- b ... Basisabstand
- d ... Disparität
Nutzung von Tiefeninformationen
- Hindernisvermeidung
- Aufbau von Umweltmodellen
- Objelttracking
Visuelle Hindernisvermeidung
- Robuste Hindernisvermeidung ist Voraussetzung für Roboter im Praxiseinsatz
- Sonar- und Laser erfassen nur einen kleinen Teil des Raums
- durch visuelle Systeme mehr Informationen aus Umwelt erlangbar
Einteilung der Verfahren
Monokulare Verfahren
- kein Kalibrierungsaufwand für eine zweite Kamera
- nur geringer Platzbedarf am Roboter
- geringeres Datenaufkommen
- günstiger
ALVINN
- Basiert auf Expertenkloning mit einem neuronalen Netzwerk
- Realisierung einer komplexen Funktionsapproximation von Bilddaten auf den Lenkwinkel
Ablaufphasen:
- Vorführphase
- Experte steuert Fahrzeug
- Lenkwinkel und Expertensicht wird Synchron aufgezeichnet
- Daten enthalten implizit die gewünschte Fahrstrategie und auch die Fahrzeugeigenschaften
- Trainingsphase
- Lernen der Abbildingsfunktion mittels Supervised Lerning
- Trainingsdaten werden Generalisiert und sind auch auf unbekannte Situatuionen anwendbar
- Reproduktionsphase
- Das trainierte Netzwerk wird eingesetzt um das Fahrzeug zu steuern
Netzwerkstruktur:
- 32x32 Kamera Neuronen + 8x32 Laserscanner Neuronen
- 29 Neuronen in einer Hiddenschicht
- 45 Ausgabeneuronen für den Lenkwinkel
- Lenkwinkel wird in der Teachingphase Fuzzyfiziert
- Erhöht Lerngeschwindigkeit durch vergrößerte Kodierungskapazität
- Erhöht Robustheit durch Nachbarschaftserhaltung
- In der Kannphase muss der Lenkwinkel dann entsprechend defuzzyfiziert werden
- wird durch "intelligente" Schwerpunktbildung realisiert
- Neuronen fungieren als Detektoren für ganze Straßenverläufe oder Straßenränder
- Ein einzelnes Neuron kann den Wagen nicht steuern, erst die Gesamtheit schafft das
- Funktioniert im Indoor- und Outdoorbereich sehr gut
- Probleme bei wechselnder Texturierung der Hindernisse und des Untergrundes
Flussbasierte Hindernisvermeidung
- weit entfernte Objekte erzeugen einen kleinen Flussvektor
- nahe Objekte erzeugen einen großen Flussvektor
- Freiraum erzeugt nahezu keine Flussvektoren
- mittig befahrene Gänge erzeugen symmetrische Flussvektoren
- Durch Symetrierung der Flussvektoren zwischen der linken und rechten Bildhälfte kann eine einfache Navigationsstrategie erreicht werden
Untergrund-Referenzfluss zur Hindernisvermeidung
- Kamera schräg auf den Boden gerichtet
- Optischer Fluss, der durch Hindernisse verursacht wird unterscheidet sich deutlich von dem des Untergrundes
- Durch Klassifikation des Flusses ist so eine einfache Hindernisvermeidung möglich
- Analyse des Flusses erfolgt nur über eine Bildzeile
- Entfernung die die Zeile sieht bleibt immer konstant
- Zur Klassifikation des Flusses muss der Referenzfluss für den Untergrund bestimmt werden (Annahme der Roboter sieht am Anfang nur Freiraum)
- Mit Hilfe von Korrelation kann nun der Fluss ermittelt werden → bei Abweichungen zum Referenzfluss wird ein Hindernis detektiert
- um Fehldetektionen zu verhindern muss die Abweichung über mehrere Bilder bestehen bleiben
- Einfache Regeln zum Umfahren der Hindernisse (hier eignen sich Fuzzy-Regeln → guter Querverweis)
- robust gegenüber Texturveränderungen, da diese den Fluss kaum beeinflussen
- ungeeignet bei unstrukturiertem Boden (Mindeststrukturierung notwendig)
- einfach zu berechnen
Untergrund Farbreferenz
- Detektion der Hindernisse aufgrund ihrer Farbe (im HSL/HSI Farbraum)
- Untergrundsegmentierung durch angelerntes Untergrund-Farbhistogramm
- pixelweiser Vergleich erzeugt Hindernis/Untergrund-Karte
- diese kann dann zur Bewegungssteuerung genutzt werden
Annahmen:
- flacher Untergrund
- Hindernisse unterscheiden sich farblich vom Untergrund
- alle Hindernisse stehen auf dem Boden
- beim Start sind keine Hindernisse vor dem Roboter
Ablauf:
- Gaußfilter zur Rauschminderung
- Transformation in HSI bzw. HSL Farbraum
- Referenzhistogramme für Untergrund berechnen
- pixelweise Klassifikation des Bildes mit Referenzhistogramm
Probleme:
- Reflexionen führen zu Scheinhindernissen
- Können aber entfernt werden, da sich Reflexionen immer vor dem Roboter her bewegen und nicht auf ihn zukommen
- Plötzlicher Wechsel des Untergrundes
- nur durch Kombination mit anderen farb- und texturunabhängigen Techniken lösbar (z.B. optischer Fluss)
- Referenzregion ist nicht frei von Hindernissen
- bei starker Helligkeit werden Schatten zu Hindernissen
- nur durch Kombination mit anderen farb- und texturunabhängigen Techniken lösbar
- Hindernisse und Untergrund farblich ehr ähnlich
- nur durch Kombination mit anderen farb- und texturunabhängigen Techniken lösbar
Mögliche Erweiterungen:
- Erweiterung der Histogramme um zurückliegende Komponenten -> da Roboter diese schon überfahren hat sind sie frei von Hindernissen
- Auswertung der Histogramme zur Untergrunderkennung
- Histogramme des Untergrundes können zur Lokalisierung verwendet werden
- Kartenaufbau anhand der Hindernissegmentierung möglich
Binokulare Verfahren
Typische Verarbeitungsschritte:
- berechnen der Disparitäts- und Tiefenkarte aus binokularen Kameradaten (Siehe Binokulares Stereosehen)
- bei Bedarf: Transformation der Kamera- in Roboterkoordinaten
- unterscheiden sich durch Rotation und Translation
- Grundfläche muss entfernt werden
- durch implizites Schätzen (Suche einer Ebene in der Punktwolke, welche die meisten Datenpunkte enthält (Annahme: die meisten Punkte sind Grundfläche))
- durch explizite Berechnung unter Berücksichtigung der Kamerageometrie
- Berechnung einer 3D Hinderniskarte ohne die Grundfläche
- Distanz des Punktes zur Grundfläche
- Schwellwertoperationen
- Projektion der 3D-Daten in eine 2D-Draufsicht
- 3.Dimension wird einfach entfernt
- Übernehmen der 2D-Hinderniskarte in eine Belegtheitskarte
- für jede Zelle eines Gittermodells wird die Belegtheitswahrscheinlichkeit ermittelt
- Occupancy Map (mit Bayes-Update Regel)
- Cerainty Map (einfaches Addieren der Werte)
- Siehe auch Umgebungsmodelle in KogRob
- Belegtheitskarte wird dann zur Hindernisvermeidung eingesetzt
Vektorfeldhistogramm
Siehe KogRob Vektorfeldhistogramm
Visuelle Selbstlokalisation
Notwendigkeit:
- Kenntnis der Position oder der Pose des Roboters ist für eine Planung von Handlungen notwendig
- Aufgaben der Lokalisation
- Position/Pose Tracking
- Anfangsposition und Pose sind bekannt und müssen aktualisiert werden
- Global Localization
- Anfangsposition und Pose unbekannt, globale Pose muss anhand der Umgebung ermittelt werden
- Kidnapped Robot
- Roboter denkt er sei woanders, muss erkennen das er sich irrt und seine neue Position ermitteln
- Position/Pose Tracking
- Typische Verfahren zur Selbstlokalisation
Ansichtsbasierte Selbstlokalisation
- Roboter nutzt zur visuellen Wahrnehmung seiner Umwelt eine omnidirektionale Kamera → 360° Ansicht
- Regelmäßige Gangstrukturen können sich mit einer Kamera besser unterscheiden lassen (durchz Farb- und Texturunterschiede)
- Verwendung aller Bilddaten würde zu viel Rechenaufwand bedeuten → Segmentation → Merkmalsextraktion
- Karte der Umgebung enthält Referenzmerkmale (z.B. Helligkeit, Farbwert, Histogramm, Frequenz)
- diese Merkmale werden nicht kontinuierlich in der Karte abgelegt sonder lediglich markante Stellen werden gespeichert
- um dann eine Lokalisierung des Roboters durchzuführen kann ein deterministisches Verfahren zum Einsatz kommen, meist wird aber ein probabilistisches Verfahren (KogRob) eingesetzt
Monte-Carlo Lokalisation
siehe Monte Carlo Localization (KogRob)
Visuelles SLAM
- Gleichzeitiger Kartenaufbau und Lokalisation
- Roboter bewegt sich in einer unbekannten Umgebung, ohne Positionsinformationen
- Aufgabe ist das gleichzeitige Schätzen der Pose und der Karte der Umgebung aus den Beobachtungen
- geschlossene Lösung nicht möglich
- Lösung nur durch Separierung des Problems in
- Posenschätzung
- Kartenaufbau
- Verwendung von Kalman-, und Partikelfiltern
Rao-Blackwellized Particele Filters
- Partikel modellieren eine mögliche Position
- jeder Partikel baut seine eigene Karte anhand seiner Position und seinem Weg
- dafür hat jedes Partikel eine Globale Karte und eine lokale Karte
- Das Gewicht jedes Partikels ergibt sich aus der Übereinstimmung der Lokalen mit der globalen Karte
- Die Lokale Karte wird Zeitverzögert in die globale Karte übernommen
- Jedes Partikel wird bei der Bewegung des Roboters mit bewegt und ein wenig Rauschen wird noch hinzugefügt unter Berücksichtigung des Bewegungsmodells
- Map-Match mit Graphen funktioniert ähnlich nur das Graphen aufgebaut werden und keine Gridkarten (andere Abstraktionsebene der Umgebung)
Konsultation
- Bewertung von optischen Flußvektoren
- Suche nach Minimum (Summer der Absoluten Differenzen (SAD))
- Mehrere Lösungen möglich ... durch Aggergation wird eine Lösung ausgewählt
- Minimas ersteinmal finden
- Sicherheitsspanne zwischen den Lösungen
- Amari-Dynamik
- Pixel eines Videodatenstroms werden Neuroknoten zugeordnet
- Jeder Input hat x,y und t als Inputparameter
- Jedes Inputneuron projeziert auf sein Korrespondierendes Neuron in der Amari schicht
- Jedes Neuron wird druch seine Nachbarn möglicherweise unterstützt (Gaus) ... durchsetzen der Mitte (Bei Rechteck im Input)
- Jedes Neuron wird durch seine Nachbarn unterstützt aber auch gehemmt (DoG) .. durchsetzen der Ecken (Bei Rechteck im Input)
- Wächterneuron
- Geht eigentlich auch ohne
- hämmd das ganze Feld um die "Grundlast" um Hintergrund zu unterdrücken
- Zeitlich versetzt
- Gleichung für jedes Neuron(Folie 2c-6)
- -z(r,t) ... Abklingterm (Neuron als leaky Integrator), RC-Glied als Analogie
- I(r,t) ... Input (1:1 vom Videobild)
- -h(t) ... Wächterneuron
- Integral (Nachbarschaft)
- w(r-r') ... Die Funktion der Nachbarschaft (zum simulieren des DOG wird die Gaußfunktion manchmal um H0 nach unten verschoben)
- z(r',t) ... Aktivierung des Neuron r' (Nachbar)
- S[] ... Sättigung zum Begrenzen der Aktivität
- Durch Nachbarschaft werden Peaks unterdrückt
- Aktivität muss sich erst aufbauen
- Gleichung Folie (2c-12)
- "Lösung" der DGL von 2c-6
- Gute Selektionseingenschaften ... besser als Maximumssuche
- Hystherese ist in der Amari Dynamik eingebaut
- Disparitätsauswahl
- WTA ... Winner takes all
- Durch die Nachbarn wieder unterstützt und der beste setzt sich durch
- Vektrofeldhistogram
- Hindernisse die weiter weg sind als D_max werden nicht berücksichtigt
- Particelfilter = Montecarlolocalisation
- Localisation
- Nur bei Karte begrenzt (kann mich halt nur auf der Karte befinden)
- Kalmanfilter
- Nur eine Gaußapproximation pro Filter möglich