hio's Experimente

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • hio's Experimente

      So, ich mach mir auch mal nen eigenen Thread auf. Hier soll es vor allem um Experimente einfach zum Spass oder auch fuer den offiziellen Kanal gehen. Also eben erste Tests fuer neue Features die eventuell mal den Weg ans Tageslicht finden. Vieles hat im Moment den Zusammenhang mit den Overlays und einer Broadcast-KI die ich wann immer die Lust dazu da ist programmiere. Feedback ist zu allem gerne gesehen.

      Und letztlich haben die Experimente auch immer was mit den Forenrennen zu tun, also lohnt sich der Thread vlt auch fuer jemanden, der an dem technischen Aspekt dahinter kein Interesse hat.

      Alle Videos werden auf meinem Kanal gehostet:
      youtube.com/channel/UCi1-KRKyIIVjEx3CfQ_CZlg
    • Als erstes Mal die momentanen Projekte:

      Zum einen das bereits gepostete Schema, die Abstaende in den Rennen grafisch und im Zeitraffer darzustellen. Mal die Beispiele vom Donnerstag in Grid 1 und Grid 2 der GTR:





      Und da das zweite Grid leider nicht gestreamt wurde, noch von einer von mir gecodeten KI als Regisseur aufgenommen:



      Da diese KI vollkommen eigenstaendig ein Rennen zeigen kann (man kann den PC halt waehrenddessen nicht verwenden...), wird das hoffentlich auch mal eine Moeglichkeit um Grid 2 auch live zeigen zu koennen. Ein paar technische Feinheiten muessen dafuer aber noch geklaert werden.
      Hier wuerde mich auch intressieren, ob jemanden etwas an dem Umschalten der Fahrer stoert? Nicht alles werde ich einfach umsetzen koennen, aber das ein oder andere kann man der KI sicher noch beibringen ;)
      Die Highlights in der Videobeschreibung war mal ein erster Test. In die Richtung will ich auch noch ein wenig ausprobieren, dass man vlt sogar irgendwann Highlightvideos automatisch produzieren kann (Langzeitziel). Die dort gezeigten sind etwa 50% der von der KI genannten. Da war leider noch viel Ausschuss dabei, sodass man da noch arbeiten muss. Einige sind auch nicht dort genannt.
    • Wie entscheidet die KI denn wen sie zeigt? Ich sehe Umschalten bei kleinen Abständen, bei Verlassen der Strecke und teilweise Remplern.
      Es wird aber recht oft auf geringe Abstände geschaltet, obwohl sich da über Runden nicht wirklich was tut... kann natürlich auch an der Strecke liegen, da man absolut nicht vorbei kommt und auf ner anderen Strecke viel besser funktionieren.

      Edit: Aso, an sich sieht das ganz gut aus. Sind halt son paar Hitches drin die es während der Entwicklung halt gibt :P
    • Kleine Abstaende ist so der Hauptgrund zu wechseln (das mit dem Strecke verlassen und auch Remplern ist da nur ein Nebeneffekt, das wird nicht beruecksichtigt). Die KI weiss ja ned ob sich da bald was tut, deshalb geht sie mal drauf. Sie mag etwas mehr die vorderen Fahrer, also P1 statt eben P10 oder so, will aber im Verlauf des Rennens moeglichst alle Fahrer zeigen. D.h. wenn ein Fahrer weniger Airtime hatte, wird er mit groesserer Wahrscheinlichkeit in Zukunft gezeigt. Am Rennende wird die Zieleinfahrt der Fahrer auf dem Podium gezeigt. Und das ist im Prinzip auch schon alles.

      Es wird aus dem oben genannten ein Wert berechnet und dann auf den Fahrer mit dem hoechsten Wert geschaltet falls die Differenz zum derzeitigen gross genug ist. Je groesser die Wertdifferenz zwischen dem anderen Fahrer und dem im Fokus, desto frueher wird umgeschalten. Irgendwann wird aber immer umgeschalten. Das Prinzip ist also denkbar einfach, der Rest liegt im Feintuning der Berechnung des Wertes.

      @Saufi11 ja, aber manchmal will man das nicht drin haben. In dem Fall, da dann der Fokus zu sehr auf das lesen der Positionen geht beim Zuschauen. Ohne Zahlen ist es etwas entspannter, aber ich denke du hast trotzdem Recht, dass das rein gehoert. Im Prinzip sollte auch die Zeitanzeige irgendwo in eine Ecke damit man weiss wann das Rennen zu Ende ist. Kommt vlt auch noch rein, aber nimmt auch etwas flow raus...
    • Da ich grade unter der Woche keinen PC bei der Arbeit sehe und ununterbrochen im Freien auf Daechern unterwegs bin ist die Motivation am WE irgendwie groesser auch mal vor dem PC zu hocken und etwas zu programmieren.

      Der erste Ansatz der Highlights ist mal quick and dirty geschrieben und das Resultat war zum einen komisch und zum anderen auch ziemlich gut. Die Lobby hatte am Freitag leider ein paar Hickups, sodass Fahrer an sehr unterschiedlichen Positionen im Replay angezeigt wurden und teilweise auch zwei Fahrer in den UDP-Daten an der selben Position. Das hatte ich so noch nicht, aber die KI findet das leider zu intressant, dass da zwei nicht Rad an Rad sondern Rad auf Rad fighten. Die Szenen (6 Stueck) musste ich von Hand rausnehmen, der Rest ist hier im Video:



      Die Reihenfolge ist wie die KI das bewertet hat. Ich hab es mal auf 10 limitiert. Abfluege, Dreher (die von @Pfalzdriver sind obligatorisch :lol: ), schwere Unfaelle etc. sind nicht mit drin was ich gut finde. Ich hoffe mal, das ist auch bei anderen Rennen so.

      Leider musste ich aus dem Log noch die Zeiten wo ich schneiden muss von Hand kopieren und dann eben schneiden. Hat etwa ne halbe Stunde gedauert. Das muss jetzt erstmal automatisiert werden, dann wird das besser. Ins Design ist noch nichts eingeflossen. Das kommt dann, wenn die Automatisierung steht, dann weiss man was da moeglich waere.
      Feedback wie immer sehr gerne! Die KI kann sehr gut mit Kritik umgehen ;)
    • Oh mann, jetzt mach ich hier Triple-Posts...

      Das automatische erstellen von Clips funktioniert wunderbar. Dazu nutze ich das modul moviepy, was nicht ganz einfach zu installieren war, aber dafuer einfach zu coden. Das Programm braucht etwa 30 Sekunden um 20 Clips aus dem 1h Video eines Rennens rauszuschneiden. Da frag ich mich grad warum da mein Schnittprogramm so lange braucht...

      Resultat mal im Fall des letzten Indycar-Rennens (hab meinem Programm gesagt, ich wills chronologisch haben):


      Wer Lust hat darf gerne auch heute Abend im Testrennen, oder morgen im richtigen mitfahren! Gaeste sind auch immer gerne gesehen ;)
    • Schöne Videos Hannes. :thumbsup:
      Beim 2. Video wäre mir jetzt aufgefallen, dass immer nur ein Highlight aufgenommen wird sofern zur selben Zeit mehrere Sachen passieren. Zumindest kommt mir das so vor.
      Bsp.: Ganz am Anfang wird der Zweikampf zwischen Biltis und Felix glaub ich gezeigt. Ich gehe zeitgleich an Domschka vorbei und hol mir damit die Führung. Das wird aber gar nicht gezeigt.

      Wie gesagt nur eine Vermutung. Denn ein Führungswechsel ist für mich immer ein Highlight. Aber ich weiß ja nicht welche Kriterien die KI verwendet um die Szenen auszuwählen. Evtl. kann man da ja was machen.

      Ansonsten großes Lob für den ganzen Aufwand den du da reinsteckst. Richtig gut. :thumbsup: :thumbsup: :thumbsup:
    • Ja, das ist auch das was ich @Mosl im internen Streamingbereich geschrieben hab. Die KI streamt das Rennen als waere es live. D.h. es werden nahezu alle Zweikaempfe gezeigt, nur wenn zwei gleichzeitig passieren eben nicht. Die KI weiss auch nicht wie ein Zweikampf ausgeht, also kann es immer sein, dass die Fahrer einfach nur hintereinander her fahren. Die Szenen in den Highlights werden natuerlich mit diesem Wissen gewaehlt, aber bei der Aufnahme noch nicht.

      Und Fuehrungswechsel sind wichtig, aber bei der GTR zum Beispiel nahezu irrelevant fuer den Rennausgang, dadurch, dass @ProjectPD immer dran bleibt wenn er ueberholt wird und quasi nie davon faehrt wenn er in Fuehrung liegt. Zumindest in Sonoma war das so. Da ich grade weg war hab ich auch das mal durchlaufen lassen. Resultat bei einem 15min Highlightvideo sind 13 Minuten PD gegen Heiko und die restlichen 2 sind 50/50 in Zweikaempfe anderer Fahrer und Zweikaempfe von PD bei der Aufholjagd aufgeteilt. Wenn man da den Kampf 1-2 noch weiter erhoeht wird das leider nichts. Der ist im uebrigen schon jetzt hoeher bewertet wie andere Zweikaempfe, was auch die Zahlen (etwas) erklaert ;)

      Die KI wechselt eben nicht mitten im Zweikampf, also wenn Fahrer SEHR nahe beieinander sind. Gerade in der Anfangsphase eines Rennens kann da was durchrutschen. Ich will dir auch nicht zu viel verraten, da du im Fall der Indycars da in der Aufwaermrunde sogar die KI haettest zwingen koennen euren Zweikampf zu zeigen. Zumindest wenn man weiss wie sie tickt ;) Aber danke fuer das Feedback!
    • Ach ok dann hab ich glaub ich nichz ganz verstanden wies funktioniert. Dachte fie Ki kann anhand des Replays die besten Szenen bestimmen. Stattdessen passiert das praktisch live und aus allen gezeigten Szenen werden dann die besten ausgewählt. Richtig?
      Dann macht das natürlich Sinn.

      Mir gings ja jetzt auch nicht speziell um diese Szene. Sollte ja nut ein Beispiel sein.
      Und die Spitze noch höher zu bewerten halte ich dann auch für ne schlechte Idee.
    • hioRacing schrieb:

      Und Fuehrungswechsel sind wichtig, aber bei der GTR zum Beispiel nahezu irrelevant fuer den Rennausgang, dadurch, dass @ProjectPD immer dran bleibt wenn er ueberholt wird und quasi nie davon faehrt wenn er in Fuehrung liegt. Zumindest in Sonoma war das so.

      Ist ja nicht so, als würde ich es nicht versuchen :lol:

      Kann mir vorstellen, dass solche Situationen in der laufenden Saison häufiger vorkommen. Der Z4 ist auf den Geraden einfach zu langsam und wird verhältnismäßig einfach überholt. Aufgrund des sehr guten mechanischen Grips und der veralteten Aerodynamik ist er aber wie dafür gemacht sich an die Heckstoßstange des vorausfahrenden Fahrzeugs zu hängen. Beeinträchtigungen aufgrund der Dirty Air sind beim Z4 eher gering. Man hat aber den Windschatten-Vorteil auf den Geraden.
    • Jaja PD... Diesmal hast du dafuer nen Dreher eingebaut um ne schoene Aufholjagd zu starten. Die Highlights sind aber zumindest abwechslungsreicher. Prinzip ist wieder das gleiche wie beim letzten mal. Die Highlights sollten 10min gehen als Vorgabe fuer die KI. Das ist das Resultat:



      Dass es am Anfang der Clips leider immer noch einen anderen Fahrer zeigt ist ein Resultat meiner Tests. Ich hoffe das bekomme ich noch besser hin, aber ich will eben die Vorgabe behalten, dass die Erstellung der Highlights nicht mehr wie maximal ne Minute nach Rennende dauert um das spaeter im Stream nutzen zu koennen. Als Hintergrund: Die Videos haben Keyframes und danach die relative Veraenderung zu diesen Frames. Das spart massiv Speicher, da nicht jeder Frame ein eigenes Bild ist. Daher ist es aber quasi kaum moeglich das Video an einer beliebigen Stelle zu schneiden ohne es erneut zu codieren, was Zeit braucht (bei 10min Video in der Qualitaet grob 10min). Mit codieren werden neue Keyframes erzeugt. Ohne eben nicht. Die Suche danach wollte ich ueber ne Bibliothek machen, aber da muss ich mich mal in Ruhe einlesen, denn so wie ich mir das gedacht hatte geht es offensichtlich nicht.

      Und um auf das Thema oben zuruck zu kommen: Da ich die KI fuer eine komplett-Uebertragung geschrieben habe und diese Highlights eben nur an den Stellen geschnitten werden, an denen die KI den gezeigten Fahrer wechselt, ist das alles andere als perfekt. Geht der Zweikampf ueber 2 Runden ohne dass die Fahrer mal ein paar Meter auseinander sind, dann bleibt die KI drauf und die Szene ist nacher dann eben 2-3 Minuten lang. Da muss ich glaube ich in weniger intensiven Momenten die KI auf den anderen Fahrer des Zweikampfs schalten lassen um so fuer die Highlights einen Cut zu machen. Aber wenn man das im Stream nutzt macht ja eh ein Mensch die Kamerafuehrung, dann ist das Problem nicht mehr da oder eben viel groesser, aber vor allem anders. Das kann/muss also warten.

      PS: Falls jemand das Replay von Grid 2 hat und gern hochladen wuerde, dann mach ich auch die Highlights dafuer. Wuerde mich freuen!