Mit der Xiaomi Yi Action Camera auf dem Fahrrad Bilder für Mapillary aufnehmen

Rubrik: 
Tags: 

Seit einiger Zeit nehme ich Fotosequenzen für das Projekt Mapillary auf. Die Aufnahmen mache ich nahezu ausschließlich beim Fahrradfahren. Anfangs habe ich dafür mein altes Smartphone vom Typ Samsung Ace 2 in einer einfachen Lenkerhaltung verwendet.

Aufbau mit Samsung Ace 2

Dieser Aufbau liefert auf gut asphaltierten Straßen und Wegen gute Ergebnisse, ist aber auf grobem Asphalt und ungeteerten Wegen wegen der dabei auftretenden Erschütterungen und Vibrationen nahezu unbrauchbar.

Auf der Suche nach einer Alternative bin ich auf die YI Action Camera gestoßen. Diese Kamera lag mit einem Preis von unter 100€ in meinem Budget, hat für diesen Preis eine hohe Auflösung von bis zu 16 MP und wurde im Netz allgemein gut bewertet. Sie hat ein Stativgewinde und kann daher mit der gesamten Palette des GoPro-Zubehörs benutzt werden. Ich habe mir zunächst eine Lenker- und eine Helmhalterung gekauft. Das originale GoPro-Zubehör hätte wahrscheinlich so viel wie die YI gekostet, aber zum Glück gibt es günstige Nachbauten aus China von erstaunlicher Qualität.

YI Action Camera mit Lenkerhalterung

Die Qualität der ersten Aufnahmen mit der YI waren allerdings enttäuschend: blasse Farben und vor allem Unschärfe im Fernbereich (Beispiel). Letzteres ist praktisch ein KO-Kriterium, sollen die Mapillary-Bilder doch als Grundlage für OpenStreetMap-Mapping dienen. Wenn Verkehrsschilder und andere Beschriftungen nicht zu erkennen sind, sind die Bilder zumindest für mich praktisch nutzlos. Ich habe die Kamera daher zurückgegeben

Die Recherche im Netz und der Kontakt mit einem anderen Mapillary-Contributor, der offensichtlich mit der YI ordentliche Bilder erstellte, hat dann ergeben, dass die Unschärfe ein bekanntes Problem ist. Offenbar wird die Kamera in der Produktion so eingestellt, dass Selfie-Bilder scharf werden. Mit einer Suche nach "Xiaomi Yi Focus" findet man aber Anleitungen, wie man die Schärfeneinstellung verändern kann. Dazu wird das Gehäuse geöffnet, der Kleber entfernt, mit dem die Linse in der Produktion nach der Fokusierung fixiert wurde, die Linse wie gewünscht fokusiert und wieder fixiert. Da mit dieser Prozedur natürlich die Garantie erlischt, habe ich das Thema erst mal auf Eis gelegt, aber als die YI einige Wochen später für 70€ zu haben war, dann doch zugegriffen.

Da die Bilder in der Ferne auch bei dieser Kamera unscharf waren, habe ich die Fokusierungsprozedur in Angriff genommen. Das Gehäuse zu öffnen war etwas schwierig, aber es gelang. Nützlich hat sich dabei ein skalpellartiges Messer erwiesen. Das Entfernen des Klebers war auch ziemlich schwierig, aber es gelang. Leider habe ich wohl beim Öffnen des Gehäuses oder beim Entfernen des Klebers das Flachkabel zwischen Hauptplatine und WLAN-Schalter zerstört. Da die Kamera ausschließlich mit einer App über WLAN gesteuert werden kann und das WLAN zum Zeitpunkt des Eingriffs ausgeschaltet war, schien dies erst mal das Aus für die Kamera zu bedeuten.

Zum Glück bin ich aber im Netz auf Hinweise auf Software-Hacks für die YI gestossen. Die Firmware der YI basiert wohl auf Linux und es ist möglich, auf der Speicherkarte abgelegte Skripte auszuführen. Hier findet man eine Sammlung von Skripten und Programmen für die unterschiedlichsten Zwecke, insbesondere YI Plus, ein Programm, mit dem man beim Start der YI alle über die App zugänglichen Einstellungen vornehmen kann. Das Programm wird über eine json-Datei gesteuert. Hier ist der Inhalt der Datei, mit der ich das automatische Aktivieren des WLAN nach dem Einschalten der YI aktiviert und das Passwort gesetzt habe:

{
   "record":
      {"modes":
         [
            {
               "name":"start_wifi_while_booted",
               "messages":[
                  {"msg_id":2,"type":"start_wifi_while_booted","param":"on"},
                  {"msg_id":2,"type":"wifi_password","param":"1234567890"}
               ]
            }
         ]
      },
   "capture":
      {"modes":
         [
            {
               "name":"start_wifi_while_booted",
               "messages":[
                  {"msg_id":2,"type":"start_wifi_while_booted","param":"on"},
                  {"msg_id":2,"type":"wifi_password","param":"1234567890"}
               ]
            }
         ]
      }
}

Nachdem die Kamera über das WLAN gesteuert werden konnte, habe ich die Schärfe so eingestellt, dass Schriften auf Schildern im Mittelbereich, d.h. in etwa 20 bis 50 Metern Entfernung gut lesbar waren. Bei den ersten Versuchen stellte ich Flecken auf den Bildern fest. Die Vermutung, dass es sich um Staub auf dem Sensor handelte, lag nahe. Zum Glück hatte ich die Linse nicht wieder mit Kleber fixiert. Man kommt nämlich ganz einfach an den Sensor heran, indem man das Objektiv einfach herausschraubt.

Ein weiterer Hack, der Xiaomi Yi Configurator (XYC), ermöglicht es, auch Einstellungen zu verändern, die nicht über die App zugänglich sind. Der XYC ist auf dieser Seite beschrieben und kann auch von dort herunter geladen werden. Ich habe folgende Einstellungen vorgenommen:

ISO: 200
Auto-Whitebalance: no
Reduce noise-reduction: yes

Mit diesen Modifikationen macht die Kamera Bildsequenzen in einer vergleichbaren Qualität wie ein Smartphone mittlere Preisklasse, jeweils bezogen auf Mapillary-typische Bedingungen. Die Kamera ist in der Lenkerhaltung weitaus resistenter gegen Stöße und Vibrationen als das Smartphone. Auch auf rauem Asphalt und ungeteerten Wegen sind nahezu alle Aufnahmen ausreichend scharf, um auf Mapillary veröffentlicht zu werden (gemäss meinen bescheidenen Qualitätsansprüchen). Hier ein paar Beispiele:

  • Stadt, guter Straßenbelag, einzelne Unebenheiten und Schwellen: klick
  • Stadt, Straßenbelag mit vielen Unebenheiten: klick
  • geteerter Feldweg, grober Asphalt: klick. Auf vergleichbaren Wegen sind mit dem Smartphone mindestens 50% der Bilder unbrauchbar.
  • grober Schotterweg, Lenkerhalterung: klick
  • ungeteerter Feldweg, Helmhalterung: klick

Der Vollständigkeit halber:

  • Anfänglich hatte ich Probleme mit der WLAN-Verbindung vom Android-Smartphone zur Kamera. Die App hat die Kamera nicht erkannt, obwohl das Android die WLAN-Verbindung aufgebaut hat. Wenn ich die Internetverbindung über das Mobilfunknetz deaktiviere und die Verbindung in der App erst herstelle, wenn Android die WLAN-Verbindung aufgebaut hat, tritt dieses Problem nicht mehr auf.
  • Die Bildsequenzen nehme ich im Timelapse-Modus mit einem Intervall von 2 Sekunden auf. Die Kamera ist auf diesen Modus voreingestellt, so dass ich unterwegs nur noch den Aufnahmeknopf drücken muss, um die Aufnahme einer Sequenz zu starten oder zu stoppen.
  • Ich habe die LEDs deaktiviert und die Tonlautstärke auf mittel gestellt. Die unterschiedlichen Tonfolgen beim Ein- und Auschalten reichen aus, um den Betriebszustand der Kamera zu erkennen. Bei jeder Aufnahme wird ein Signalton erzeugt. Auf diese Weise kann ich kontrollieren, ob die Aufnahme noch läuft.
  • Die GPS-Position zeichne ich mit einem Garmin Etrex 30 auf und füge sie den Fotos nachträglich unter JOSM mit dem Photo Geotagging Plugin hinzu. Die Position korrigiere ich bei Bedarf mit dem PhotoAdjust Plugin.
  • Ich nutze JOSM auch, um schlechte Aufnahmen auszusortieren.
  • Zum Hochladen verwende ich die Mapillary Python Tools, speziell das Skript upload_video_with_preprocessing.py.