1stMARIO KART KI
RUNDE 4/4
×12
0:00.035
BAUTAGEBUCH · TEIL 2

Welt 2 und 3: Die KI sieht und fährt

Sechs Level von der Capture-Karte bis zur ersten KI-Runde: Bild, Stoppuhr, Aufnahme, 19 Minuten Trainingsfahrt, Training und der Moment, in dem das Netz zum ersten Mal selbst lenkt.

WELT 2 · LEVEL 2-1

Die Karte kommt an

Die Capture-Karte ist ein USB-Stick für wenig Geld: HDMI vom Dock rein, HDMI zum Fernseher wieder raus, USB zum Mac. Für den Mac ist sie eine Webcam namens „USB Video“. Innen sitzt ein MS2109-Chip, der Klassiker in dieser Preisklasse. OpenCV, die Bildbibliothek des Python-Programms, öffnet sie wie jede Kamera.

Fallstrick: Das Bild ist schwarz

Der erste Test lieferte 30 Bilder pro Sekunde, alle schwarz. Verdacht: HDR, falsches Kabel, Switch im Standby. Tatsächlich hatte die GUI die Karte bereits offen, und ein zweites Testprogramm griff parallel zu. Die Karte bedient nur einen Abnehmer, der zweite bekommt Schwarz. Seitdem gilt: nur ein Programm an der Karte.

Fallstrick: Die Webcam schiebt sich dazwischen

Mit einer zweiten USB-Kamera am Mac wechselten die Gerätenummern zwischen zwei Aufrufen: Einmal war Nummer 0 die Capture-Karte, kurz darauf die Webcam. macOS nummeriert Kameras nicht stabil. Die GUI ordnet die Namen jetzt über ffmpeg zu, das dieselbe Reihenfolge sieht wie OpenCV, und die Webcam bleibt abgezogen, solange gefahren wird.

Ergebnis

Allein am Mac liefert die Karte 720p mit echten 60 Bildern pro Sekunde, und sogar 1080p mit 60. Das ist mehr, als die Produktbeschreibung verspricht. Standard ist 720p60: kleinster Abstand zwischen zwei Bildern (17 ms), und die KI rechnet ohnehin mit 160×90 Pixeln weiter.

GUI mit Capture-Tab: links die Live-Vorschau des Switch-Startmenüs, rechts Status, Knöpfe und Log
Das erste Bild in der GUI: der Capture-Tab mit Live-Vorschau des Switch-Menüs, Status (720p, 60 fps) und den Knöpfen für Latenzmessung und Aufnahme.
WELT 2 · LEVEL 2-2

Stoppuhr: 144 Millisekunden

Wie lange dauert es vom Befehl am Mac, bis sich im Bild der Karte etwas bewegt? Die Messung ist simpel: Die Switch steht im Startmenü, die GUI drückt acht Mal Steuerkreuz links oder rechts, der Cursor springt zwischen den Spielen, und eine Stoppuhr läuft, bis sich das Bild ändert.

Fallstrick: Acht Versuche, acht Mal „keine Bildänderung“

Der Cursor sprang sichtbar, die Messung sah nichts. Die Erkennung hatte die Helligkeitsänderung über das ganze Bild gemittelt und eine feste Schwelle verlangt. Ein Cursor ändert nur einen kleinen Ausschnitt, im Mittel über 14 400 Pixel geht das unter. Jetzt zählt der Anteil deutlich geänderter Pixel: Ein Cursorsprung ändert zwei bis zehn Prozent, ausgelöst wird ab 0,3 Prozent.

TeilstreckeZeitWoher
Mac → ESP32 → Funkpaket35 msWelt 1, Level 1-6
Funk, Switch, Bildausgabe, Capture-Karte, USB, Dekodierung≈ 110 msDifferenz
Ende zu Ende144 ms (Median, 128 bis 145 ms, 8 von 8)GUI, F5

Die Werte streuen nur um ein Bild der Karte, die Messung ist also sauber. Was das für die KI heißt: Sie reagiert immer auf ein Bild, das 144 ms alt ist. Bei 15 Entscheidungen pro Sekunde sind das gut zwei Entscheidungen Verzug. Menschen haben am Fernseher übrigens ähnliche Verzögerungen und fahren trotzdem.

WELT 3 · LEVEL 2-3

Aufnehmen, ohne zu stottern

Die Aufnahme speichert 30-mal pro Sekunde ein auf 160×90 Pixel verkleinertes Bild als JPEG, zusammen mit der Aktion, die in diesem Moment an den Controller ging: Lenkung als Zahl zwischen −1 und 1, Gas, Bremse, Drift, Item. Das Gamepad hängt dabei am Mac, damit die Lenkwerte analog sind. Eine Minute Fahrt sind etwa 14 Megabyte.

Fallstrick: Alle zehn Sekunden ein Ruckler, einmal von der Strecke gefallen

Die erste Fassung sammelte 600 Bilder und schrieb sie dann komprimiert auf die Platte, 26 Megabyte Rohdaten im selben Thread, der auch die GUI zeichnet und den Controller bedient. Eine halbe Sekunde Stillstand, und in dieser halben Sekunde ging kein Befehl an den ESP32. Der Watchdog der Firmware tut dann genau das, wofür er gebaut ist: alle Tasten loslassen. Kein Gas, keine Lenkung, Shy Guy im Abgrund. Die Aufnahme selbst verriet es: Lücken von 530 bis 600 ms, exakt alle 10,8 Sekunden. Jetzt wird jedes Bild sofort als JPEG kodiert (unter 3 ms) und ein Hintergrund-Thread schreibt die Dateien. Die zweite Aufnahme hatte keine einzige Lücke über 100 ms.

Kleinigkeit mit Wirkung

In den ersten Daten war nie ein Drift zu sehen, obwohl ständig gedriftet wurde. Der Fahrer benutzt ZR und R gleichwertig, aufgezeichnet wurde nur R. Die Aufnahme fasst jetzt R/ZR zu „Drift“ und L/ZL zu „Item“ zusammen; die KI selbst sendet später R und L.

WELT 3 · LEVEL 2-4

19 Minuten Mario-Kart-Stadion

Vor dem Sammeln wurden die Spielregeln festgelegt, abgeglichen mit Nintendos Einsteigerseiten und Community-Guides: eine Strecke (Mario-Kart-Stadion), ein Fahrzeug (Shy Guy auf dem Motorrad), 150 ccm, Zeitfahren ohne Geist, Lenkhilfe aus. Auto-Gas bleibt aus, weil der Fahrer A ohnehin fast immer hält; die KI drückt A in der ersten Stufe einfach dauerhaft und lernt nur Lenken und Drift. Items kommen später als festes Regelwerk, nicht als Training.

Elf Aufnahmen von je zwei Minuten, zusammen 21,5 Minuten. Jede enthält auch Ladebild, Intro-Kamerafahrt, Countdown und Zielbildschirm. Die Trainingspipeline schneidet das automatisch weg: Fahrt beginnt 1,5 Sekunden nach dem ersten Gasgeben und endet beim letzten Loslassen. Übrig bleiben 19,5 Minuten Fahrt, 30 bis 40 Prozent davon im Drift.

Raster aus 18 Bildern in 160×90 Pixeln: Menü, Start, Kurven, Drifts mit Funken, Antischwerkraft-Passage
So sieht die KI die Welt: 160×90 Pixel, hier 18 Bilder aus einer Aufnahme. Strecke, Fahrzeug, Minimap und Drift-Funken sind erkennbar, mehr braucht es nicht.
Für Einsteiger: Warum so kleine Bilder?

Ein neuronales Netz lernt aus Beispielen, und jedes Pixel ist eine Zahl, die es verarbeiten muss. 160×90 Pixel sind 14 400 Zahlen pro Farbkanal, das rechnet ein Mac in einer Millisekunde. Zum Fahren reicht das: Wo ist die Strecke, wo der Rand, in welche Richtung geht die Kurve. Die Emulator-Projekte aus dem Ausblick haben mit ähnlich kleinen Bildern gearbeitet.

WELT 4 · LEVEL 2-5

Training: acht Sekunden pro Epoche

Das Netz heißt KartNet und ist dem PilotNet von NVIDIA nachempfunden, das ein echtes Auto allein aus Kamerabildern lenkte: fünf Faltungsschichten, zwei dichte Schichten, rund 600 000 Parameter. Es bekommt vier aufeinanderfolgende Bilder (15 pro Sekunde, also gut eine Viertelsekunde) und sagt zwei Dinge voraus: die Lenkung und ob gedriftet wird. Als Lernziel dient die Aktion, die der Fahrer 130 ms nach dem Bild ausgeführt hat, denn so lange braucht ein Mensch, um auf das zu reagieren, was er sieht.

Trainiert wird mit PyTorch auf der Grafikeinheit des MacBooks. Eine Epoche, also ein Durchlauf durch alle 17 500 Beispiele, dauert acht Sekunden, ein Modell ist nach 25 Epochen in vier Minuten fertig. Gespiegelte Bilder mit negierter Lenkung und leicht veränderte Helligkeit verdoppeln die Daten künstlich.

Fallstrick: Das Netz lenkt wie ein Fahranfänger

Die erste Version sagte die Lenkung als Zahl voraus. Richtung in Kurven zu 88 Prozent richtig, aber mit halber Kraft: 0,44 statt 0,87. Der Grund ist Statistik. 69 Prozent aller Bilder zeigen Geradeausfahrt, und ein unsicheres Netz tippt auf den Durchschnitt, also fast null. Die Lösung: Lenkung als fünf Klassen (voll links, halb links, geradeaus, halb rechts, voll rechts), seltene Klassen stärker gewichtet. Richtung jetzt 93 Prozent, Stärke 0,55. Immer noch zaghaft, aber die Regelschleife im Spiel korrigiert 15-mal pro Sekunde nach.

WasNetzZum Vergleich
Drift richtig erkannt92 %70 % bei „nie driften“
Lenkrichtung in Kurven93 %50 % beim Raten
Lenkstärke in Kurven0,550,87 beim Fahrer
Rechenzeit pro Entscheidung2 ms67 ms stehen zur Verfügung

Gemessen auf einer Aufnahme, die das Netz im Training nie gesehen hat. Eine Überraschung: Die dreifache Datenmenge (19 statt 6 Minuten) hat die Zahlen kaum verbessert. Die Grenze liegt nicht in den Daten, sondern im Prinzip des reinen Nachahmens. Dazu gleich mehr.

Für Einsteiger: Was lernt das Netz eigentlich?

Nichts über Mario Kart. Es lernt eine Zuordnung: „Wenn die letzten vier Bilder so aussehen, hat der Mensch so gelenkt.“ Millionen kleiner Stellschrauben werden so lange verstellt, bis die Vorhersage zu den Aufnahmen passt. Dass dabei etwas wie „Kurve erkennen“ entsteht, ist ein Nebeneffekt, kein Plan.

WELT 4 · LEVEL 2-6

Die KI fährt

Der dritte Tab der GUI heißt KI. F7, und das Netz übernimmt: A dauerhaft, Lenkung und Drift aus den Bildern der Karte, 15 Entscheidungen pro Sekunde. Greift der Mensch am Gamepad ein, fährt er sofort selbst; lässt er los, übernimmt die KI wieder. Ohne frisches Bild für eine halbe Sekunde lässt sie alles los.

Die erste Runde: 45 Sekunden Mario-Kart-Stadion, einmal herum, und der Mensch musste nur dreimal kurz zupacken, zusammen eine Sekunde. Nach 19 Minuten Zuschauen. Das war der Moment, für den der ganze Tag gearbeitet hat.

Shadow-Modus

Dann die Idee aus den Emulator-Projekten: Die KI fährt, der Mensch greift nur ein, wenn sie Mist baut, und genau diese Eingriffe werden aufgezeichnet und dreifach gewichtet nachtrainiert. Jede Aufnahme enthält jetzt die KI-Fahrt als Kontext und die menschlichen Eingriffe als Lernziel. Drei Runden, 16 Eingriffe, sieben Sekunden. Vier Minuten Training. Neues Modell laden, F7.

Das zweite Modell fuhr 48 Sekunden am Stück ohne Eingriff, mehr als eine Runde. Dann drückte es sich in der Antischwerkraft-Passage an die blaue Bande und lenkte weiter hinein statt weg. Vier Sekunden voll rechts, bis es frei war.

Zwölf Bilder der Aufnahme: Shy Guy klebt an der blauen Bande, Beschriftung zeigt KI-Lenkung nach links und menschliche Korrektur voll rechts
Der Moment aus der Aufnahme: Bei 57,9 s lenkt die KI (−0,4) noch weiter in die Bande, ab 58,4 s hält der Mensch (M) voll rechts (+1,0). Genau solche Szenen fehlten im Training.
Für Einsteiger: Warum eskaliert das?

Solange die KI auf der Spur ist, sieht sie Bilder wie in den 19 Minuten Training. Klebt sie einmal an der Bande, sieht sie etwas, das der Fahrer nie produziert hat, weil er nie an der Bande klebt. Dann rät sie, und das Raten ist zufällig. Deshalb sind die Eingriffe im Shadow-Modus so wertvoll: Die vier Sekunden an der Bande sind die einzigen Beispiele für „wie komme ich hier weg“. Mit jeder Runde werden es mehr. MariFlow und NeuralKart sind genau auf diesem Weg zu vollständigen Runden gekommen.

Die Schleife dreht sich

Also noch zwei Korrekturrunden, jeweils drei Runden mit der KI am Steuer und dem Menschen als Sicherheitsnetz, dazwischen vier Minuten Training. Die Zahl der Eingriffe pro drei Runden: 16, dann 15, dann 3. Und dann, um 21:29 Uhr, mit 929 Korrektur-Beispielen im Datensatz: F7, Hände weg, drei komplette Runden Mario-Kart-Stadion, null Eingriffe. Mit Drifts in den richtigen Kurven, Antischwerkraft-Passage inklusive.

Runde 2 der Fahrt ohne Eingriff, aus den Augen der KI: 160×90 Pixel, 30 Bilder pro Sekunde, hochskaliert. Unten der Lenkbalken (grün ist das Netz), rechts leuchtet „DRIFT“, wenn R gedrückt ist. Die ganze Fahrt mit allen drei Runden gibt es hier als Video (2 Minuten).
Zwölf Bilder aus der autonomen Fahrt: Start, Kurven mit Drift-Funken, Antischwerkraft-Passage, Zielgerade; jedes Bild mit KI-Lenkwert beschriftet
Drei Runden ohne Hand am Gamepad, alle zehn Sekunden ein Bild. „s“ ist die Lenkung, die das Netz gerade sendet, „DRIFT“ heißt, R ist gedrückt. Der Mensch hat nur bis zum „LOS!“ gefahren.

Sicherheitsnetz: die Festfahr-Erkennung

Zum Abschluss des Tages bekam die KI noch ein Sicherheitsnetz. Sie misst, wie stark sich das Bild zwischen zwei Entscheidungen ändert. Beim Fahren sind das im Mittel 20 Graustufen pro Pixel, in der saubersten Drei-Runden-Fahrt nie länger als eine Zehntelsekunde unter 2. Steht das Bild zwei Sekunden lang, nimmt sie 0,8 Sekunden Gas weg, drückt B, lenkt gegen und fährt weiter.

Fallstrick: An der Bande steht das Bild nicht

Die Idee war, genau den Bandenmoment von oben abzufangen. Die Aufnahme zeigt aber: Während das Kart an der Bande entlangschrammt, ändert sich das Bild mit 12 Graustufen, die Kamera wackelt, die Umgebung zieht vorbei. Die Erkennung greift nur beim echten Stillstand, etwa frontal vor einer Wand. Das Entlangschleifen haben die Korrekturfahrten gelöst, nicht die Erkennung. Für später steht die Minimap unten rechts auf der Liste: Der Spieler-Marker verrät, ob es wirklich vorangeht.

Stand am Ende von Tag 1

Die KI fährt Zeitfahren auf Mario-Kart-Stadion allein, aber noch nicht jeden Lauf sauber: Direkt vor der perfekten Fahrt brauchte derselbe Stand sieben kurze Eingriffe. Nächste Schritte: mehr Rettungen sammeln, eine Festfahr-Erkennung, dann Items und weitere Strecken. Siehe Ausblick.