| « GPU Power | Vehicle Movement Tracking » |
Obstacle Detection
Für einen autonomen Roboter ist es unbedingt notwendig, eine echtzeitfähige Hinderniserkennung zu nutzen. Die Aufgabe ist also aus einem Bild, oder aus einer Sequenz von Bildern für jeden Bildpunkt eine Tiefe abschätzen zu können. Es gibt zahllose Ansätze und Paper, die diese Aufgabe versuchen zu erfüllen. Eine große Anzahl an Papern bedeutet allerdings nicht, wie man hoffen könnte, dass es zahllose Algorithmen gibt, die diese Aufgabe zufriedenstellend erfüllen können. Das Gegenteil ist der Fall. Je mehr wissenschaftliche Paper es zu einer Problemstellung gibt, desto eher versagen alle darin vorgestellten Algorithmen in der Realität. Warum? Angenommen jemand findet eine ganz hervorragende Lösung für eine Problemstellung, welche sehr akkurate Ergebnisse in Echtzeit ermittelt. Dann gäbe es keinen Forschungsbedarf mehr für diese Aufgabenstellung. Dann gäbe es aber auch keine neuen Paper mehr zu dieser Aufgabe.
Das Schlimme an der Vielzahl der Paper ist: Ein Author eines Papers würde nie einen Algorithmus vorstellen um hinterher im Ergebnisteil seines Papers zu schreiben, dass der Algorithmus totale Grütze ist, eine gigantische Rechenzeit benötigt und die Ergebnisse nur unter Laborbedingungen brauchbar sind.
In der Informatik lernt man, dass manche Problemstellungen einfach so schwierig sind, dass man keine brauchbare Lösung finden kann, wenn man die Aufgabenstellung nicht spezialisiert. Es ist in der Regel einfacher einen Algorithmus für ein spezielles Problem zu schreiben, als einen Algorithmus für ein Allgemeines. So bin ich nach dem Studium einiger Paper und der Implementierung eines der vielversprechensten Paper (welches grandios versagt hat!) dazu gekommen, mir eine eigene Lösung auszudenken. Wenn man nicht alles selber macht....
Zunächst gilt, dass das Fahrzeug den Boden vor sich sieht. Jetzt kann man davon ausgehen, dass alles, was sich direkt vor dem Fahrzeug befindet kein Hindernis ist, da das Fahrzeug ja grundsätzlich nicht vor ein Hindernis vorfahren soll. Also liegt es nahe, dass alles, was ausgehend vom Fahrzeug so aussieht, wie das, was sich direkt vor einem befindet, Boden und somit kein Hindernis ist. Welche Informationen kann man verwenden um die Ähnlichkeit zweier Elemente im Bild zu vergleichen? Die Auswahl der Informationen wird Feature genannt. Verwendet werden folgende Features:
- Änderung einzelner Farbkanäle (
,
,
)
- Änderung von Farbton, Farbsättigung und Farbhelligkeit (
,
,
)
- Änderung der Texturenergien (
mit
Helligkeitsinformationen und
Laws Texturmasken,
)
Die eingeführten Funktionen und Abkürzungen bedeuten folgendes:
Rotkanal,
Grünkanal,
Blaukanal
Farbton (Hue),
Sättigung,
Helligkeit (Value)
Helligkeitsinformationen,
Laws Texturmasken (Dies sind kleine Masken, mit denen man ein Bild falten kann, um entsprechende Merkmale des Bildes feststellen zu können.
ist die Umgebung um die Polarkoordinaten
Texturenergie
Das hier verwendete Koordinatensystem ist ein Polarkoordinatensystem. Es werden letztlich Strahlen vom Bodenursprung ( Kartesisch) in einem Kreisförmigen Bogen verfolgt. Sollten sich auf dem Strahlenweg obige Constraints zu stark ändern, so hat man ein Hindernis gefunden. Die Länge des Strahls entspricht dabei der approximierten Entfernung. Die Strahlgeraden ergeben sich dabei durch
Und hier wie gewohnt das zugehörige Video...