vorlesung: angewandte sensorik · ab tams fachbereich informatik kapitel: verarbeitung von...

36
AB TAMS Fachbereich Informatik Vorlesung: Angewandte Sensorik Vorlesung: Angewandte Sensorik Prof. J. Zhang [email protected] Universit¨ at Hamburg Fachbereich Informatik AB Technische Aspekte Multimodaler Systeme 09. Dezember 2003 Prof. J. Zhang [email protected] 09. Dezember 2003

Upload: others

Post on 05-Sep-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

AB TAMS

Fachbereich Informatik Vorlesung: Angewandte Sensorik

Vorlesung: Angewandte Sensorik

Prof. J. Zhang

[email protected]

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