IA Pilote Chrome Dino

IA Pilote Chrome Dino

Intelligence Artificielle capable de piloter le dinosaure de Chrome de manière totalement autonome en évitant les obstacles en temps réel via un réseau de neurones.

Contributeurs

Boris TAKOU KENNE

Compétences

Machine Learning

Python

Scikit-Learn

Pygame

Neural Networks

Publié

20 Janvier 2026

Liens importants

LinkedIn GitHub

Étapes du projet

1

Feature Engineering

Terminé

Identification des variables critiques : distance de l'obstacle, hauteur, vitesse du jeu.

2

Data Collection

Terminé

Capture de plus de 4 000 lignes de données en jouant manuellement pour l'entraînement.

3

Training

Terminé

Mise en place d'un réseau de neurones (MLPClassifier) via Scikit-Learn.

4

Test & Analysis

Terminé

Analyse des performances initiales (66% de précision sur les sauts).

5

Retraining & Optimization

Terminé

Application de techniques de rééquilibrage (Oversampling) pour atteindre 87% de précision.

6

Inference

Terminé

Déploiement du modèle .pkl dans la boucle Pygame pour une décision en temps réel (< 1ms).

Architecture de la Boucle d'Inférence

Architecture de la Boucle d'Inférence
Input État du jeu brut (Distance, Hauteur, Vitesse).
Processing MLP Classifier (Réseau de neurones multicouches).
Performance Latence < 1ms par prédiction.
Objectif Autonomie totale du dinosaure avec une précision de 98% sur les obstacles complexes.

Avant Oversampling (Précision 66%)

90%
Run
10%
Jump
60%
FN (Crash)
40%
Jump OK

Le modèle "préfère" courir car c'est l'action majoritaire.

Après Oversampling (Précision 87%)

89%
Run
11%
Jump
15%
FN
85%
Jump OK

La diagonale est équilibrée : le modèle a "appris" l'importance du saut.

Stratégie de Data Quality : Optimisation par Oversampling

Description du défi technique

Lors des premières itérations, le modèle souffrait d'un déséquilibre des classes majeur : les phases de course représentaient plus de 95 % du dataset. En conséquence, l'IA avait développé une stratégie "paresseuse", préférant ne jamais sauter pour maximiser statistiquement sa précision globale, au détriment de sa survie (60 % de collisions non évitées).

Analyse de la Matrice de Confusion

Version Initiale (Précision 66 %) :

On observe un taux de Faux Négatifs (FN) critique. Le modèle prédit la "Course" alors qu'un obstacle est présent, car il n'a pas assez appris l'importance vitale de l'action de saut.

Version Optimisée (Précision 87 %) :

En appliquant une technique d'Oversampling, j'ai rééquilibré le poids de la classe minoritaire ("Jump").

Résultat : La diagonale de la matrice est désormais équilibrée. Le taux de réussite des sauts est passé de 40 % à 85 %, prouvant que le modèle a "appris" à prioriser l'évitement des obstacles, même s'ils sont rares dans le flux de données global.

Feature Importance : Évolution de la prise de décision

Le cerveau de l'IA ne traite pas l'information de la même manière selon l'intensité du jeu. Ce Radar Chart illustre comment le modèle adapte ses priorités pour survivre à haute vitesse.

Feature Importance Radar Chart

"L'IA accorde 40% d'importance supplémentaire à la vitesse passé les 1000 points. Au début de la partie, le modèle se concentre presque exclusivement sur la distance de l'obstacle. Cependant, à mesure que le jeu accélère, le MLP (Multi-Layer Perceptron) déplace son attention vers la vitesse du jeu : le timing du saut devient plus critique que la simple présence de l'objet."

Démonstration de l'Inférence en Temps Réel

Démonstration de l'Inférence en Temps Réel

Ce média capture l'état réel du système. On y observe le laser de distance (input sensoriel) alimentant le MLPClassifier, tandis que la jauge de confiance (output) oscille en fonction de l'imminence du danger. Ce pipeline garantit une prise de décision en moins d'une milliseconde, permettant au dinosaure de réagir avec une précision chirurgicale, même à haute vitesse.