OSE - Objekt - und Spurerkennung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 281: Zeile 281:
Bei der Verwendung einer Kamera zur Fahrspurerkennung ergibt sich immer das Problem der perspektischen Verzerrung. Grund dafür ist, dass bei der Projektion aus dem 3D-Weltkoordinatensystem in das 2D-Koordinatensystem des Bildes Information verloren gehen. Das Inverse Perspective Mapping (IPM) bietet eine Möglichkeit die verloren gegangenen Daten zu rekonstruieren und das Bild in entzerrter Vogelperspektive darzustellen.
Bei der Verwendung einer Kamera zur Fahrspurerkennung ergibt sich immer das Problem der perspektischen Verzerrung. Grund dafür ist, dass bei der Projektion aus dem 3D-Weltkoordinatensystem in das 2D-Koordinatensystem des Bildes Information verloren gehen. Das Inverse Perspective Mapping (IPM) bietet eine Möglichkeit die verloren gegangenen Daten zu rekonstruieren und das Bild in entzerrter Vogelperspektive darzustellen.


[[Datei:SDE IPM.png|center]]
[[Datei:SDE IPM.png|left]]


=Operatoren zur Kantenerkennung im Vergleich=
=Operatoren zur Kantenerkennung im Vergleich=

Version vom 15. Juni 2014, 11:32 Uhr


Einleitung

Anforderungen des Lastenheftes

Hier angegeben sind die Requirements, die das Team OSE aus dem Lastenheft ableitet. Dabei sind die beiden Punkte aus dem Lastenheft rot bzw. blau hinterlegt. Aus diesen abgeleitete Anforderungen sind in hellblau bzw. hellrot dargestellt. Gleichfarbige Anforderungen deuten daraufhin, dass diese Punkte zu einem gemeinsamen Meilenstein gehören.





























































































Projektplan

Zentralperspektive

Allgemein

Die Zentralprojektion wird genutzt, um 3 Dimensionale Objekte im 2 Dimensionalen Raum abzubilden. Dadurch werden Bilder erzeugt die der Wahrnehmung des menschlichen Auges entsprechen oder mit einer Kamera fotografiert Szenerie. Das Bild entsteht durch die Projektion von einem 3 dimensionalen Gegenstand auf eine Ebene von einem Punkt ausgehend.

Einsatz im Carolo Cup Fahrzeug

Das Carolo Cup Auto fährt auf einer 820 mm breiten Straße, die Mittellinie ist gestrichelt . Die Segmente der Linie sind 200 mm Lang und 20 mm breit sie folgen im Abstand von 200 mm aufeinander. Die Kamera filmt die Fahrt des Fahrzeug aus einer festgelegten Perspektive und die Blickrichtung der Kamera ist fest in Fahrtrichtung.(Carolo Cup Regelwerg)


Die Umrechnung zwischen Bild und Weltkoordinaten ist notwendig um die Spuren zu verifizieren. Für die Umrechnung von Bild in Weltkoordinaten wurde mit Hilfe der festen Perspektive eine Funktion bild_zu_welt.m in Matlab aufgebaut. --> function [ w_kordinaten ] = bild_zu_welt( b_kordinaten)

Diese Funktion rechnet Bildkoordinaten in Weltkoordinaten um. Die Eingabe b_kordinaten und Ausgabe w_kordinaten sind (2; n)-Matrizen. Der Nullpunkt in Weltkoordinaten besitzt im Bildkoordinatensystem die Koordinaten (376;478), die y-Achse verläuft von rechts nach links am unteren Bildrand, und die x-Achse verläuft auf der Bildspalte 376 von unten nach oben.

Die Funktion

Zu erst werden die Punkte der linken Geraden und der rechten Geraden gesetzt. Um die Abstände und zugehörigen Weltkoordinaten bestimmen zu können wurde das Fahrzeug vor einem Schachbrettmuster positioniert.


%Vier Punkte 
p_b_l1 = [165; 310];
p_b_l2 = [280 ; 217];
p_b_r1 = [585; 310];
p_b_r2 = [470 ;217];


Danach wird der Fokuspunkt ermittelt. Das ist der Punkt in dem sich alle Parallelen Vertikalen Linien schneiden. Um die Gerade des Horizonts zu bestimmen wird ein Punkt auf der Höhe des Fokuspunktes erzeugt.


% Linke Gerade (l1 - l2) mit rechter Geraden (r1-r2) scneiden --> Fokuspunkt
fokus_p = schneide(p_b_l1,p_b_l2,p_b_r1,p_b_r2);
% Zweiten Punkt auf der Höhe des Fokus erzeugen
horizont_hilfspunkt = [p_b_l1(1,1);fokus_p(2,1)];



% waagerechter Schnitt mit linker Begrenzung 
P = schneide(p_b_l1, p_b_l2, b_kordinaten, b_kordinaten-[10.0;0.0]);
% Nullpunkt der y-Achse ist die Bildmitte
y = 2*168*(b_kordinaten(1)-XS/2.0)/(P(1)-XS/2.0);


Um die Y Weltkoordinate zu brechnen wird ein Parallele zum Horizont auf der Höhe des gesuchten Punkts gezogen. Der entstandene Schnittpunkt mit der L1/L2 Gerade (linke Begrenzung) wird in P gespeichert. Es wird ein Verhältnis aus P und dem gesuchten Punkt aufgestellt und mit der Breite von 2 Sachbrettfeldern multipliziert.



% Abstände Berechnen 
% Maßstab für Höhe im Bild
M1 = [378; 311];
M2 = [378; 283];
% Abstand von der Höhe eines Schachbrettfeldes zwischen M1 und M2 in der Mitte der Straße --> Lineal auf bauen
masstab = norm(schneide_Test(horizont_hilfspunkt, M1, [XS/2; YS], [XS/2+10; YS]) - schneide_Test(horizont_hilfspunkt, M2, [XS/2; YS], [XS/2+10; YS]));
R = schneide_Test(horizont_hilfspunkt, P, [XS/2; YS], [XS/2+10; YS]); % Schnittpunkt von HP<->P auf der x-Achse
x = (R(1)-p_b_l1(1))/masstab*168;
w_kordinaten = [x,y];
end

Inverse Perspective Mapping

Bei der Verwendung einer Kamera zur Fahrspurerkennung ergibt sich immer das Problem der perspektischen Verzerrung. Grund dafür ist, dass bei der Projektion aus dem 3D-Weltkoordinatensystem in das 2D-Koordinatensystem des Bildes Information verloren gehen. Das Inverse Perspective Mapping (IPM) bietet eine Möglichkeit die verloren gegangenen Daten zu rekonstruieren und das Bild in entzerrter Vogelperspektive darzustellen.

Operatoren zur Kantenerkennung im Vergleich

Projekttagebuch

KW18:

- Kalibrierroutine vereinfacht und halbautomatisiert
- Dokumentation für einfache und schnelle Kalibrierung erstellt

KW19:

- Kommunikation mit Spurführungs-Team geklärt
- Übergabe eines Polynoms 2. Grades in Form von 3 Parametern

KW20:

- Fertigstellung des Spurpolynoms in Matlab
- Einarbeitung in die Umsetzung in C

KW22:

- Inbetriebnahme der Spurerkennung auf dem PC
- Herausarbeiten der Unterschiede der Ansätze
- Trafo in körperfestes Koordinatensystem (Schnittstellendokumentation,Matlab)

KW24:

- Polynom mit in Ausgabe im Video übernehmen
- Ausführlich Kommentierung
- Dokumentieren der Zentralperspektive im vergleich zur Koordinatentransformation    

KW25:

- Dokumentation im Mechatronik Wiki
- Vorbereitung Meilensteinpräsentation

Archiv bisheriger Arbeit

Spurerkennung

Objekterkennung mit Laserscanner

Objekterkennung mit Kamera