IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Interaction avec des applications pour développer une IA


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Interaction avec des applications pour développer une IA
    Bonjour à tous,

    Je suis étudiant en dernière année d'école d'ingénieur, j'ai suivi une formation pour faire du calcul scientifique, c'est à dire pour créer et étudier des schémas numériques afin de résoudre des systèmes d'équations pour la mécanique des solides, des fluides, l'électromagnétisme, etc... Globalement je programme depuis plusieurs années en C++, en Fortran 90 et en Python, je suis plutôt à l'aise même si je suis conscient d'être loin de tout connaître.

    Depuis quelques temps, j'aimerais beaucoup développer des IA dans des jeux de société ou des jeux vidéos. Ce qui m'intéresse c'est d'être créatif, de tester mes idées d'abord avec des algorithmes très naïfs, puis de les améliorer pour potentiellement faire des choses bien plus complexes comme j'ai pu le faire dans le domaine du calcul scientifique. Après mes premières tentatives, je me suis posé une question à laquelle je n'ai pas trouvé de réponse sur les forums, et c'est la raison pour laquelle j'ai décidé de m'inscrire sur le forum et de créer un post.

    Comment fait-on pour interagir avec une application (sur Windows 10) afin de programmer une IA qui utilise cette appli?
    Par exemple j'ai pu voir dans de nombreux streams de jeux vidéos (Hearthstone, Dofus, etc...), que des équipes de commentateurs avaient des outils qui faisaient des statistiques en direct sur les parties en cours. On entend aussi souvent parler de développeurs d'IA en deep learning qui jouent à Dota 2, Age of Empire, ou autre. Il y a aussi malheureusement les algorithmes de triche dans les FPS/TPS comme Fortnite (Aimbots et j'en passe...). Bref, tous ces programmes récupèrent les données d'une application, mais par quel moyens? Est-ce qu'il s'agît d'une lecture de la mémoire (pardonnez mon vocabulaire approximatif), c'est à dire d'une lecture des variables de l'application afin de s'en servir dans l'IA, ou bien est-ce qu'il s'agît d'analyse d'image?

    En fait, en ce qui concerne mon projet, j'ai voulu commencer par faire une IA pour jouer au mastermind, et j'avais trois options en tête :
    1) Trouver un jeu de mastermind (online ou offline), et trouver un moyen de lire la mémoire utile à une IA.
    2) Trouver un jeu de mastermind, puis faire de l'analyse d'image afin de créer mes propres variables utiles à une IA.
    3) Créer moi-même un jeu de mastermind, et donc accéder très facilement aux variables utiles à une IA.


    Naturellement, pour commencer et créer une IA rapidement j'ai opté pour la 3ème solution, mais bon elle ne me permettra de faire des IA que dans des jeux ultra basiques tels qu'un mastermind. La deuxième option me semble tellement gourmande par rapport à la première. Le traitement d'image, nécessitant potentiellement de l'OCR, doit prendre un temps fou et rend la tâche quasi impossible s'il s'agît d'un jeu où le temps est compté, mais peut-être que je me trompe, je n'ai pas essayé. La méthode la plus intéressante serait la première, mais je n'ai aucune connaissance à ce sujet. Et lorsque je cherche "lire la mémoire d'une application", j'obtiens des résultats assez flous que j'ai du mal à utiliser pour réaliser mon projet.

    Je sais qu'il existe des programmes tels que le CheatEngine ou ArtMoney qui permettent de lire la mémoire des applications, mais j'aimerais comprendre comment ça fonctionne et savoir si c'est faisable en C++ ou en Python par exemple. Si vous avez d'autres solutions auxquelles je n'ai pas pensé je suis aussi preneur, j'espère que vous saurez m'éclairer!

    Merci beaucoup!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tu semble avoir des conaissances solides, mais ne pas connaitre grand chose sur l'IA, sauf à vouloir appliquer une technologie de raisonement /déduction/etc... que tu batise IA !
    L'IA ne mérite ce label que s'il sagit bien de IA, pas un programme aussi complexe qu'il soit, qui ne réponde pas a la structure même de l'IA.

    A savoir,
    Une base de connaissance,
    Un moteur d'inférence (un algorithme de simulation des raisonnements déductifs.)
    l'énonce du probléme posé.

    Inspire toi de cette explication sommaire,dans ce sujet:
    https://sites.google.com/site/iadesc...en-deux-phases

    tu comprendra que l'IA n'est pas en soit le programme lui-même.
    Bon courage
    Jean-Pierre

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut


    Citation Envoyé par christele_r Voir le message
    A savoir,
    Une base de connaissance,
    Un moteur d'inférence (un algorithme de simulation des raisonnements déductifs.)
    l'énonce du probléme posé.
    Ce n'est qu'une manière de faire de l'intelligence artificielle, plutôt héritée des années 1980/1990. La mode est passée à autre chose (que ce soit positif ou pas…). Ce genre d'approche ne semble pas trop fonctionner pour jouer à des jeux RTS, par exemple : là, les techniques à base d'apprentissage par renforcement ont beaucoup plus de succès.

    Sinon, pour répondre à la question initiale : pour récupérer des infos d'un jeu, les deux techniques principales sont lire une partie de la mémoire du jeu (quand on a accès aux sources ou que l'environnement est prévu pour ça — voir OpenAI Gym, par exemple) et lire l'image affichée par le jeu (pas forcément en temps réel, pas forcément tous les pixels ou toutes les couleurs — pas étonnant qu'on préfère étudier des jeux plus vieux ). Pour utiliser directement des images, ça devient bien plus compliqué : souvent, c'est un réseau neuronal convolutif qui lit l'image (CNN), puis passe ce qu'il en comprend à un algorithme d'apprentissage par renforcement — le tout étant entraîné ensemble.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par dourouc05 Voir le message


    Ce n'est qu'une manière de faire de l'intelligence artificielle, plutôt héritée des années 1980/1990. La mode est passée à autre chose (que ce soit positif ou pas…). Ce genre d'approche ne semble pas trop fonctionner pour jouer à des jeux RTS, par exemple : là, les techniques à base d'apprentissage par renforcement ont beaucoup plus de succès.

    .
    Merci l'Ami de ta précision, juste que ce que tu explique ensuite conforte ce que j'écrivais sommairement, en effet je n'ai efectivement pas fait mention de l'auto-alimentation de la (ou des) base de connaissance ! mais comme dans bien des domaines, les mécanismes fondamentaux semblent s'enrichir,et donc se complexifier, mais ils n'en restent pas moins immuables.

    Merci encore et à bientôt

Discussions similaires

  1. Communiquer avec des applications Windows via une application Web J2EE
    Par Slimouch dans le forum Développement Web en Java
    Réponses: 8
    Dernier message: 17/08/2012, 14h15
  2. Réponses: 16
    Dernier message: 17/01/2012, 16h50
  3. Réponses: 2
    Dernier message: 25/05/2011, 17h07
  4. Decode avec des dates pour calculer une valeur
    Par decisio dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/01/2009, 12h50
  5. Réponses: 3
    Dernier message: 07/11/2008, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo