Entwicklung Mechatronischer Systeme - Versuch 02

Inhalt: Inbetriebnahem und Kalibrierung einer kamerabasierten Objekterkennung

HTW Dresden
Fakultät Maschinenbau
Professur Kraftfahrzeugmechatronik

Contents

Einleitung

Für den Einsatz kamerabasierter Systeme ist die sichere Bestimmung der Objektentfernung eine wesentliche Voraussetzung. Im Fall bekannter Objekte (z.B. Verkehrszeichen) kann aus den bekannten Abmessungen mit einer einfachen Mehrpunktkalibrierung eine Abstandsermittlung erfolgen. Im Versuch wird diese Methodik vorgestellt. Für die Erkennung der relevanten Objekte werden sogenannte Objekt-Detektoren eingesetzt. Mittlerweile sind hierfür nur noch verschidene maschinelle Lernverfahren im Einsatz. Diese nutzen entweder ein trainiertes Netz oder müssen erst selbst angelernt werden. Für einen ACF-Detektor werden im zweiten Versuchsteil die notwendigen Trainingsdaten erstellt. Damit ist eine eigene Version des Detektors nutzbar. Die folgenden Schritte sind für die Auswertung durchzuführen:

  1. Aufnahme der Kalibrierdaten (Gruppenarbeit)
  2. Ermittlung der Kalibrierfunktion (Einzelarbeit)
  3. Vorbereitung zum Training des Algorithmus' (Einzelarbeit)
  4. Test der Enfernungsbestimmung (Einzelarbeit)
  5. Auswertung (Gruppenarbeit)

1. Aufnahme der Kalibrierdaten (Gruppenarbeit)

Zur Kalibrierung ist die Aufnahme von Bildern in einer bekannten Entferung notwendig. Es sollen Messungen bei dist = (30, 25, 20, 15, 10) m durchgeführt werden (Sollwerte). Für eine Grobpositionierung sind Markierungen an der Leitplanke angebracht, die in Höhe des Fahrers beim Blick aus dem Seitenfenster sichtbar sein müssen. Die exakte Entfernung zur Kamera (Bezugspunkt) wird mittels Bandmaß gemessen (siehe Abb. 1). Die Werte sind in der Variable calib_dist im Mess-Skript SignDetect_01_Measure.m zu speichern. Geben sie jeweils vor dem Start der Messung dist den Sollwert an. Damit werden die abgespeicherten Bilder automatisch richtig benannt.

Abbildung 1: Versuchsaufbau und Abstandsmessung

2. Ermittlung der Kalibrierfunktion (Einzelarbeit)

Im Skript SignDetect_02_Calib.m sind die bei der Messung ermittelten Werte in die Variable calib_dist einzutragen. Weiterhin sind mit einer geeigneten APP (z.B. dem Matlab ImageViewer) die zugehörigen Werte für die Höhen der beiden Verkehrszeichen (in Pixeln) zu ermitteln. Diese sind in den Variablen calib_px_stopp und calib_px_yield in der Reihenfolge der Abstandsmessungen einzutragen. Bitte entscheiden sie selbst, ob sie auf einen vollen Pixel runden oder sie mit den angezeigten Sub-Pixel-Werten arbeiten möchten. Diskutieren sie dies bei der Fehlerbetrachtung in der Auswertung.

Abbildung 2: Ermittlung der Höhen der Verkehrszeichen für eine Entfernung

Das Skript berechnet mit den Werten die Kalibrierfunktionen und die Werte für eine Ein-Punkt-Kalibrierung. Mit der Vaiable pos_sel wird der Vergleichswert ausgewählt. Die Kalibrierdaten werden automatisch in der Datei calib.mat für die weitere Auswertung gespeichert.

Abbildung 3: Messwerte und Kalibrierfunktionen

3. Vorbereitung zum Training des Algorithmus' (Einzelarbeit)

Für die Erkennung des Vorfahrtschildes soll ein selbst trainierter ACF-Algorithmus eingesetzt werden. Hierzu ist es notwendig, referenzierte Trainingsbilder bereitzustellen. Für diese Aufgabe wird die entsprechende APP in Matlab engesetzt.

Abbildung 4: Image-Labeler in Matlab

Es wird pro Studierendem ein Ordner mit 15 Bildern auf einem USB-Stick bereitgestellt. Diese sind entsprechend mit dem Label 'YieldSign' in Form eines Rechtecks zu referenzieren. Bitte achten sie dabei auf eine möglichst exakte Anpassung der Box an das Verkehrszeichen. Speichern sie am Beginn das Projekt unter dem Namen 'LabelingProject' auf dem Stick ab. Exportieren sie am Ende die Daten in eine Datei mit dem Namen 'YieldSigns.mat'. Aus den zusammengefügten Werten erstellt der Versuchsleiter einen ACF-Detektor und stellt ihn für die Auswertung bereit.

4. Test der Enfernungsbestimmung (Einzelarbeit)

Im Skript SignDetect_03_Test.m sind 4 Detektoren für eine automatisierte Auswertung über alle Messungen vorhanden. Aus dem Abschnitt Zuweisung Detektoren ist die Zuordnung ersichtlich. Bitte ersetzen sie einen der Detektoren durch den selbst trainierten ACF-Detektor. Beachten sie dabei die Unterschiede in der Auswertung der beiden unterschiedlichen Detektorvarianten (YOLO und ACF). Für die voreingestellten ACF-Detektoren wurde nur die beste Erkennung genutzt. Dies muss nicht zwingend das gesuchte Verkehrszeichen sien. Wenn stattdessen der Schwellwert genutzt wird, kann es neben der Erkennung des gesuchten Verkehrszeichens auch noch zu zahlreichen Fehldetektionen kommen. Testen sie diese Varianten und diskutieren sie es in der Auswertung.

Abbildung 5: Auswertung eines Bildes mit Angabe der Detektionen

5. Auswertung (Gruppenarbeit)

Mit den aufgenommenen Daten und Dokumentationsmedien (Bilder/Videos) ist eine Auswertung in Form eines Matlab-Skriptes mit automatischer Dokumentation mittels der Funktion publish() zu erstellen. Dabei sollen insbesondere die unterschiedlichen Kalibrierwerte und die daraus erfolgten Abweichungen bei der Abstandsermittlung bewertet werden. Weiterhin ist ein Vergleich der verschiedenen Algorithmen durchzuführen. Dazu ist auch die Berechnungsdauer einzubeziehen. Die nachfolgenden Grafiken zeigen mögliche Varianten. Bitte vergessen sie nicht, dass zu einer akzeptablen Auswertung auch eine passende textliche Beschreibung gehört!

Abbildung 6: Ermittelte Abstände der einzelnen Detektoren

Abbildung 7: Berechnungsdauer der einzelnen Detektoren