Proyecto Atenea

Atenea

Atenea Diosa de la sabiduría, guerra y oficios, nos va a ayudar a crear un proyecto que para muchos roza la ciencia-ficción. (lo de ayudar es relativo, igual la cafeína hace más)

La idea final es que una inteligencia artificial juegue contra una máquina de vídeo juegos, dicho así queda muy «chulo» pero es solo humo.

Así que vamos a ir creando objetivos específicos a partir del objetivo general.

 

T

 

Vamos a dividir las partes del proyecto en tareas más o menos sencillas

La premisa del proyecto es utilizar exclusivamente software Libre en la medida de lo posible. (Linux, OpenCV,etc…)

Tarea 1

Instalar una MAME. MaMe es un emulador que nos permite correr juegos (ROMS) de máquinas recreativas (puede hacer muchas más cosas, pero a grandes rasgos es lo que necesitamos)

Los juegos necesitan ser descargados  ROMs, hay mucha información por internet y no vamos a mejorar nada de lo que ya está hecho ( hay cientos de páginas e incluso una distribución de RaspberryPI que ya la incorpora)

Tarea 2

Capturar la imagen de la pantalla. La manera más ideal que se nos ha ocurrido es capturar y analizar la imagen tal cual sale por el HDMI, para ello usaremos una capturadora que cogerá la imagen del juego y la llevará al ordenador que tendrá la futura Atenea

Tarea 3

Esta parte es más por aclarar los lenguajes de programación y el entorno que vamos a utilizar, es para aprender las ventajas de uno y otro sistema.  (Python vs Opencv) (todo sobre software libre si alguien usa Windows los algoritmos serán los mismos, pero no los entornos de programación, ánimo)

Tarea 4

Instalación de Opencv, aquí  nos tomaremos un tiempo ya que hay muchos plugins que nos pueden ayudar, aunque será un resumen.

Tarea 5

Empezamos con otra parte muy entretenida, los algoritmos de localización de objetos, habrá que ver tiempos de reacción, regiones de interés y un largo etc de posibilidades para que nuestra futura Atena tenga tiempos de respuesta aceptables, dependerá mucho de la máquina sobre la que la ejecutemos.

Tarea 6

Usando programación tradicional , intentar conseguir que la máquina juegue, habrá que hacer una interfaz capaz de conseguir que Atenea mueva los controles y dispare. Será divertido.

Tarea 7

En éste momento y respecto a lo que a mi concierne, ando muy perdido en temas de IA (salvo algún entrenamiento para detección de imágenes, y mucha literatura, no he montado nunca una IA desde cero)
Será la parte más larga seguramente pero también una de las más interesante.

Tarea 8

¿Seremos capaces de programar a Atenea como una IA?

 

TAREA 1 Instalar máquina recreativa.

La máquina recreativa la vamos a instalar en el siguiente equipo.

Dual Core del 2008 con 3 GB ram 2GHz (algo por debajo de los requisitos, veremos en el futuro)

El proceso de instalación

https://docs.mamedev.org/initialsetup/index.html

Para ir a tiro hecho como root instalamos.

# apt install mame

El mame solo lo que nos permite, es emular las máquinas, pero nos faltan las ROMs

Se pueden buscar por internet es incluso hay packs de 70 GB con los que tendríamos una larga lista de juegos, en nuestro caso por motivos educativos hemos cogido el Galaga de Namco de 1981, un juego apasionante

 

Para ello nos deberíamos crear una carpeta donde guardar las ROMs e indicarle al programa donde buscarla.

Y una vez instalado, arrancar «mame» y ponernos a jugar.

 

 

Tarea 2: Instalación de una capturadora de vídeo HDMI.

Para que al sistema de visión artificial le llegue la información, teníamos varias opciones.

La primera era trabajar directamente con la memoria de vídeo que fuese el «opencv» desde el código quien leyese la memoria de vídeo. ( Lo probamos pero se nos hacía muy pesado y poco exportable, más allá del mismo ordenador)

Hemos optado por una capturadora de vídeo HDMI (de la que utilizan los gamers para grabarse sus partidas)

Con Linux teníamos nuestras reservas.

Hay varios modelos, pero éste nos resulto bastante interesante por tener audio y salida auxiliar (por ahora no usaremos todo, pero por el mismo  precio)
Lo ha detectado como una cámara más y se ha podido utilizar con OBS, Cheese.

El modo más fácil para probarla
#ffplay /dev/video2

Y éste es el resultado , ver en una ventana el vídeo capturado.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

4 + 11 =

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.