FIS Navigation mit CarPC - Teil 2


FIS Bordcomputer


Teil 1: Idee und Grundlagen
Teil 2: Durchführung, Erkenntnisse und Tool Programmierung
Teil 3: Fertigstellung und Anbindung an die CarPC Software


Durchführung, Erkenntnisse und Tool Programmierung


Als das theoretische Konzept zur systematischen Erfassung der Piktogramme bestand, ging es an die Umsetzung.

Der erste Ansatz für die Analyse des Bildes war, das aufgenommene Bild freizustellen und die Größe des Ausschnitts auf 64x64 Pixel zu reduzieren. Anschließend werden die 64x64 Pixel mittels eines Farbvergleichs im CIE1976 Farbraumsystem auf aktive Pixel hin untersucht. Vor Start der Analyse müssen noch die Farben eines aktiven und eines inaktiven Pixels ausgewählt werden um den Vergleich durchzuführen. Diese können direkt aus der Quellaufnahme selektiert werden.
Die Ergebnisse der Methode waren aber eher durchwachsen mit einer hohen Fehlerrate bei der Erkennung, was vor allem daran liegt, dass beim schrumpfen des Bildes auf die gewünschte Größe Ungenauigkeiten aufgrund von Auflösung, Winkel und Pixelabgrenzung des Bildes auftreten.

Im zweiten Ansatz wurde daher die Methode überarbeitet. Die Größe der Quellaufnahme blieb bestehen. Statt das Bild zu schrumpfen wurden die Breite und die Höhe des Bildes jeweils durch 64 geteilt. So entstanden einzelne Teilbereiche, welcher im Optimalfall einen aktiven Pixel des Tachodisplays darstellen. Die Bereiche wurden dann einzeln mit den Vergleichsfarben untersucht. Wenn der Bereich mehr dem aktiven Farbpixel gleicht ist er insgesamt aktiv, andernfalls inaktiv. Der eintretende Effekt war eine grundsätzlich bessere Erkennung, welche in den Randbereichen aber eine Glättung (und damit Ungenauigkeit) der Strukturen bewirkte. Die Ergebnisse hatten einen recht hohen Nachbearbeitungsaufwand.

Zur Verdeutlichung zunächst ein Bild der (rein funktionalen) Applikation:

FIS Test

Der dritte und letztlich erfolgreichste Ansatz war, jeden einzelnen Pixel des Quellbildes mit den Vergleichsfarben abzugleichen und auf dieser Grundlage ein Schwarz/Weiß Bild der aktiven und inaktiven Pixel zu erstellen. Im Anschluss wurde das Schwarz/Weiß Bild auf die Größe von 64x64 Pixeln geschrumpft. Um das endgültige Bild zu erhalten wurden die Alpha-Werte jedes Pixels überprüft. Ab einem bestimmten Schwellenwert ist der Pixel als aktiv anzusehen, andernfalls inaktiv. Das Ergebnis war eine zu 95% korrekte Erkennung der Piktogramme.

Fehler ließen sich mit dem manuellen Check korrigieren. Dabei wurde das Quellbild mit dem erkannten Piktogramm überlagert. Wenn das Bild per Tastendruck mit einem Bildbearbeitungsprogramm geöffnet, geändert und gespeichert wurde hat das Programm dies automatisch erkannt und die Anzeige aktualisiert. Mit dem Wechsel zum nächsten Bild wurde die Korrektur je nach Auswahl entweder bestätigt oder verworfen.

FIS Manual Check
Das Bild zeigt einen Fehler der automatischen Erkennung, welcher dann manuell behoben werden konnte.

Mit der fertigen Datenbasis an Piktogrammen habe ich anschließend begonnen erste Testgrafiken auf dem Display anzuzeigen. Piktogramme können dabei grundsätzlich auf zwei weisen gezeichnet werden. Entweder additiv, d.h. bisher aktive Pixel bleiben aktiv und die neuen Piktogramme aktivieren zusätzliche Pixel (Das macht insbesondere beim Erstellen der Navigationspfeile Sinn), oder sie ändern in ihrem Zeichenbereich alle zuvor gezeichneten Pixel.
Nach einigen Tests zeigte sich, dass ein Piktogramm 6x7 Pixel groß ist.

FIS Piktogramm

Wenn die aktiven Pixel in diesem Piktogramm weniger breit als 6 Pixel und oder weniger hoch als 7 Pixel sind galt es herauszufinden an welcher Position innerhalb des 6x7 Feldes die "linke obere Ecke" des Piktogramms beginnt. Ich habe daher alle Piktogramme manuell mit den entsprechenden Informationen angereichert.
Ein fertiges Testbild seht ihr auf dem folgenden Foto:

FIS Testbild

Schnell stellte sich heraus, dass ein WYSIWYG-Editor von Vorteil wäre. Daraufhin habe ich ein Programm geschrieben, welches die verfügbaren Piktogramme in einer Listendarstellung anzeigt und diese per Drag&Drop auf eine Zeichenfläche malen kann. Das folgende Bild zeigt die Oberfläche des Programmes.

FIS Editor

Nach und nach habe ich den Funktionsumfang erweitert, sodass das Programm zurzeit folgende Funktionen kann:
  • Darstellung der Piktogrammdatenbank
  • Drag&Drop der Piktogramme auf die Zeichenfläche
  • Kategorisieren der Piktogramme und Vergabe von Namen
  • Einblenden einer Vorlagengrafik
  • Nachträgliches verschieben von einem oder mehreren Piktogrammen
  • Spiegeln einer gesamten Anzeige (dazu wurden allen Piktogrammen ihre jeweiligen horizontalen Spiegelbilder zugeordnet. Beim Spiegeln werden diese dann ausgetauscht sowie alle Positionen entsprechend angepasst)
  • Spiegeln einzelner oder mehrere Piktogramme
  • Einfärbung aller unterschiedlicher Piktogramme einer Anzeige um Überlagerungen besser sichtbar zu machen


Hier gehts weiter mit Teil 3: Fertigstellung und Anbindung an die CarPC Software...