Vorlesung: Angewandte Sensorik · AB TAMS Fachbereich Informatik Kapitel: Verarbeitung von...
Transcript of Vorlesung: Angewandte Sensorik · AB TAMS Fachbereich Informatik Kapitel: Verarbeitung von...
AB TAMS
Fachbereich Informatik Vorlesung: Angewandte Sensorik
Vorlesung: Angewandte Sensorik
Prof. J. Zhang
Universitat Hamburg
Fachbereich Informatik
AB Technische Aspekte Multimodaler Systeme
09. Dezember 2003
Prof. J. Zhang
[email protected]. Dezember 2003
AB TAMS
Fachbereich Informatik Vorlesung: Angewandte Sensorik
Inhaltsverzeichnis4. Verarbeitung von Abstandsmessungen . . . . . . . . . . . . . . .271
Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
Filtern von Scandaten . . . . . . . . . . . . . . . . . . . . . . . .275
Merkmalsextraktion . . . . . . . . . . . . . . . . . . . . . . . . .290
Scan-Matching . . . . . . . . . . . . . . . . . . . . . . . . . . .301
Prof. J. Zhang
[email protected]. Dezember 2003
AB TAMSFachbereich Informatik Kapitel: Verarbeitung von Abstandsmessungen
Verarbeitung von Abstandsmessungen
Fur Messungen mit Lasermesssystemen gibt es Verfahren zur
l Extraktion von Liniensegmenten,
l Extraktion von Ecken,
l Klassifikation von Scanpunkten,
l Filterung von Scans:
F Glatten,
F Datenreduktion.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 271
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Scan
Scan (1)
Definition:
Ein Scan ist eine Menge von Messwerten
{
mi = (αi, ri)T |i = 0 . . . n − 1
}
,
welche in Polarkoordinaten (αi, ri)T angegeben sind.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 272
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Scan
Scan (2)
Ein Scanpunkt mi = (αi, ri)T kann fur eine gegebene Aufnahmeposition
l = (x, y, θ)T in absolute Koordinaten umgerechnet werden.
[
xi
yi
]
=
[
x
y
]
+
[
cos θ − sin θ
sin θ cos θ
] [
ri cos αi
ri sin αi
]
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 273
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Scan
Scan (3)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 274
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Filtern von Scandaten
l Problem von Scandaten: große Datenmenge, ungewunschteScanpunkte.
l Daher oftmals vorab Filterung von Scandaten.
l gangige Filter:
F Medianfilter
F Reduktionsfilter
F Winkelreduktionsfilter
F Linienfilter
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 275
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Medianfilter (1)
l Der Medianfilter erkennt Ausreißer und ersetzt diese durch einegeeignete Messung.
l Um jeden Scanpunkt wird ein Fenster gelegt, das die Messungen vorund nach dem Punkt enthalt.
l Der Scanpunkt wird ersetzt durch einen Punkt, der denselbenAufnahmewinkel, aber den Median der Entfernungsmessungen desbetrachteten Fensters als Entfernung hat.
l MEDIAN-NUM-POINTS bestimmt die Fenstergroße.
l Ein großer Wert bedeutet eine starke Glattung.
l Nachteil des Medianfilters: Ecken werden abgerundet.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 276
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Medianfilter (2)
Algorithmus: MedianfilterEingabe: Scan s
Ausgabe: Scan s′
for i := 0 to numpoints(s)-1 dop := n-th-scanpoint(s,i)for j := 0 to MEDIAN-NUM-POINTS-1 do
k := (i + j - MEDIAN-NUM-POINTS/2) mod numpoints(s)pk := n-th-scanpoint(s,k)d(j) := distance-value(pk)
endfordmedian := median(d)n-th-scanpoint(s′,i) := (angle-value(p),dmedian)
endfor
return s′
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 277
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Medianfilter (3)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 278
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Reduktionsfilter (1)
l Der Reduktionsfilter fasst Punktwolken zu einem Punkt zusammen.
l Eine Punktwolke wird durch einen Radius r angegeben.
l Der erste Punkt (Ausgangspunkt) eines Scans gehort zu einer Wolke.
l Alle folgenden Punkte mit Abstand d < 2 · r werden zur Wolkehinzugefugt.
l Beim ersten Punkt mit großerem Abstand wird eine neue Wolkeangefangen.
l Jede Wolke wird durch den Schwerpunkt der ihr zugeordneten Punkteersetzt.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 279
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Reduktionsfilter (2)
Algorithmus: ReduktionsfilterEingabe: Scan s, Radius r
Ausgabe: Scan s′
j := 0p0 := n-th-scanpoint(s,0)psum := p0
n := 0for i := 1 to numpoints(s)-1 do
p := n-th-scanpoint(s,i)if distance(p0,p) < 2r then
psum := psum + p
n := n + 1else
n-th-scanpoint(s′,j) := psum/nj := j + 1P0 := p
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 280
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
psum := p0
n := 1endif
endforn-th-scanpoint(s′,j) := psum/nj := j + 1numpoints(s′) := j
return s′
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 281
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Reduktionsfilter (3)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 282
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Reduktionsfilter (4)
l Der Algorithmus des Reduktionsfilters hat eine Zeitkomplexitat vonO(n), wenn n die Anzahl der Punkte ist.
l Vorteile des Reduktionsfilters:
F Reduzierung der Anzahl der Scanpunkte ohne Verlust wesentlicherInformationen.
F Dies fuhrt zu kurzeren Laufzeiten bei der Nachbearbeitung eines Scans.
F Es ergibt sich eine bessere Gleichverteilung der Punkte.
l Nachteile des Reduktionsfilters:
F Extraktion von Merkmalen nicht mehr so einfach.
F Moglicherweise zu wenig Punkte fur Merkmal.
F Daher besser: Merkmalsextraktion vor Reduktionsfilter.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 283
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Winkelreduktionsfilter (1)
l Der Winkelreduktionsfehler ist dem Reduktionsfilter sehr ahnlich.
l Scanpunkte mit ahnlichem Aufnahmewinkel werden gruppiert unddurch den Punkt ersetzt, dessen Entfernung gleich dem Median derEntfernungswerte ist.
l Die Funktion median − dist(q, n) liefert im folgenden Algorithmusdiesen Punkt.
l Die Zeitkomplexitat ist O(n), wenn n die Anzahl der Scanpunkte ist.
l Der Winkelreduktionsfilter wird eingesetzt um Scans mit hoherWinkelauflosung gleichmaßig zu reduzieren.
l Dies wird z.B. bei der Verschmelzung mehrerer Scans zu einem Scaneingesetzt.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 284
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Winkelreduktionsfilter (2)
Algorithmus: WinkelreduktionsfilterEingabe: Scan s, Winkel α
Ausgabe: Scan s′
j := 0q(0) := n-th-scanpoint(s,0)n := 1for i := 1 to numpoints(s)-1 do
p := n-th-scanpoint(s,i)if abs(angle-value(p) - angle-value(q(0))) < α then
q(n) := p
n := n + 1else
n-th-scanpoint(s′,j) := median-dist(q,n)j := j + 1q(0) := p
n := 1
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 285
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
endifendforn-th-scanpoint(s′,j) := median-dist(q,n)j := j + 1numpoints(s′) := j
return s′
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 286
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Winkelreduktionsfilter (3)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 287
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Linienfilter (1)
l Der Linienfilter nutzt das spater vorgestellte Verfahren zurLinienextraktion.
l Die Scanpunkte, die keinem Liniensegment zugeordnet wurden,werden entfernt.
l Die Zeitkomplexitat ist gleich der Komplexitat der Linienextraktion(O(n log n) im mittleren Fall).
l Der Filter wird angewendet, wenn anschließend angewandteAlgorithmen polygonale Umgebungen erfordern.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 288
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Filtern von Scandaten
Linienfilter (2)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 289
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Merkmalsextraktion
l Keine Verarbeitung von kompletten Scans sondernMerkmalsextraktion.
l Haufige Merkmale: Linien, Ecken
l MAX-DISTANCE im folgenden Algorithmus ist der maximal zulassigeAbstand zweier aufeinander folgender Punkte fur die Gruppierung.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 290
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Linien (1)
Algorithmus: LinienextraktionEingabe: Scan s
Ausgabe: Menge von Linien l
l := emptystart := 0for i:=1 to numpoints(s)-1 do
p1 := n-th-scanpoint(s,i-1)p2 := n-th-scanpoint(s,i)if distance(p1,p2) > MAX-DISTANCE then
l := l ∪ split(s,start,i-1)start := i
endifendforl := l ∪ split(s,start,numpoints(s)-1)return l
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 291
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Linien (2)
Algorithmus: split(s,start,end)Eingabe: Gruppe von Scanpunkten, festgelegt durch s, start und end
Ausgabe: Menge von Linien l
l := emptyline := make-line(s,start,end)if numpoints(line) ≥ MIN-POINTS-ON-LINE then
if σ(line) < MAX-SIGMA thenl := l ∪ {line}
elsepstart := n-th-scanpoint(s,start)pend := n-th-scanpoint(s,end)isplit := start
d := 0for i := start+1 to end-1 do
p := n-th-scanpoint(s,i)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 292
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
if distance-to-line(p,pstart,pend) > d thenisplit:= i
d := distance-to-line(p,pstart,pend)endif
endforl := l ∪ split(s,start,isplit)l := l ∪ split(s,isplit,end)
endifendif
return l
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 293
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Linien (3)
l Die split-Funktion ist rekursiv.
l Zuerst wird eine Ausgleichsgerade durch die Punkte gelegt.
l Ist die Abweichung σ(line) zu groß wird die Punktmenge aufgeteiltund fur die neuen Mengen die Funktion split aufgerufen.
l Der Punkt an dem aufgeteilt wird, ist der Punkt mit dem großtenAbstand zur Geraden durch start und end.
l MIN-POINTS-ON-LINE und MAX-SIGMA bestimmen die Anzahl undQualitat der Linien.
l Die Linienextraktion ist ein typischer divide and conquer Algorithmus.
l Zeitkomplexitat ahnlich Quicksort: O(n2) im schlechtesten, O(n log n)im mittleren Fall (n: Anzahl der Scanpunkte).
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 294
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Linien (4)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 295
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Linien (5)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 296
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Ecken (1)
l Ahnlich wie Linienalgoritmus.
l Aufeinander folgende Linien werden miteinander geschnitten.
l Nur Ersetzen der split-Funktion notwendig.
l Gleiche Zeitkomplexitat.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 297
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Ecken (2)
Algorithmus: split(s,start,end)Eingabe: Gruppe von Scanpunkten, festgelegt durch s, start und end
Ausgabe: Menge von Ecken e
e := emptyif (end -start) ≥ 2 · MIN-POINTS-CORNER then
pstart := n-th-scanpoint(s,start)pend := n-th-scanpoint(s,end)isplit := start
d := 0for i := start+1 to end-1 do
p := n-th-scanpoint(s,i)if distance-to-line(p,pstart,pend) > d then
isplit := i
d := distance-to-line(p,pstart,pend)endif
endfor
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 298
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
if (isplit - start) ≥ MIN-POINTS-CORNER and(end - isplit) ≥ MIN-POINTS-CORNER then
line1 := make-line(s,isplit - MIN-CORNER-POINTS,isplit)line2 := make-line(s,isplit, isplit + MIN-CORNER-POINTS)if σ(line1) < MAX-SIGMA and σ(line2) < MAX-SIGMA then
e := e ∪ {make-corner(line1,line2)}endif endif
e := e ∪ split(s,start,isplit)e := e ∪ split(s,isplit,end)
endif
return e
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 299
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Merkmalsextraktion
Ecken (3)
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 300
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Scan-Matching
Scan-Matching
l In der mobilen Robotik werden Laserscans haufig eingesetzt, um diePosition des Roboters in einer Karte zu finden.
l Dazu wird der Scan mit Hilfe der Linienextraktion in eine Menge vonLinien umgewandelt.
l Die gemessene Anordnung der Linien wird in einer Karte durchUberdeckung gesucht.
l Dieses Verfahren wird Scan-Matching genannt.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 301
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Scan-Matching
Verfahren von Cox (1)
l Einer der ersten Vorschlage zum Uberdecken von Scandaten undeinem a priori Linienmodell stammt von Cox (1990, 1991).
l Hierbei wird jedem Scanpunkt eine Linie des a priori Modellszugeordnet.
l Aus der Zuordnung lasst sich die Rotation und Translation gegenuberdem Linienmodell bestimmen.
l Das Verfahren benotigt eine ungefahre Anfangsschatzung derAufnahmeposition z.B. anhand der Odometriedaten.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 302
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Scan-Matching
Verfahren von Cox (2)
1. Setze (x, y, θ)T = (sx, sy, sθ)T , wobei (sx, sy, sθ)
T die initialePositionsschatzung der Scanaufnahme anhand der Odometrie ist.
2. Verschiebe und drehe Scan auf Position (x, y, θ)T .
3. Bestimme fur jeden Scanpunkt die Modellinie, die dem Punkt am nachstenliegt. Diese Modellinie wird im folgenden Ziellinie genannt.
4. Berechne die Transformation b = (δx, δy, δθ)T , welche die Summe derAbstandsquadrate zwischen Scanpunkten und jeweiliger Ziellinie minimiert.
5. Setze (x, y, θ)T = (x, y, θ)T + (δx, δy, δθ)T .
6. Wiederhole Schritte 2-5 bis das Verfahren konvergiert. Das Ergebnis derUberdeckung ist (x, y, θ)T .
7. Berechne die Fehlerkovarianzmatrix∑
match.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 303
09. Dezember 2003
AB TAMSFachbereich Informatik
Kapitel: Verarbeitung von Abstandsmessungen
Abschnitt: Scan-Matching
Literatur
[1] Gutmann, J.-S.: Robuste Navigation autonomer mobiler Systeme.Doktorarbeit, Universitat Freiburg, 2000. Kapitel 3, Seite 21-58.http://www.informatik.uni-freiburg.de/∼gutmann/papers/thesis-steffen.ps.gz.
Prof. J. Zhang
Vorlesung: Angewandte SensorikSeite 304
09. Dezember 2003