Resumen del proyecto
Coloca una breve descripción de tu proyecto (pueden
ser un par de líneas). Si realizaste cambios con respecto a la entrega
anterior, menciónalos.
El proyecto se sigue trabajando en Python, tal y
como se había mencionado en el avance pasado, la librería mas importante en
esto es OpenCV, y otras dos que son también de vital importancia son Pygame,
para los juegos y Pybrain, esta ultima para darle la parte “adaptativa” al
sistema. El cambio que se realizó es que serán dos juegos, uno parecido al de
tomar pelotas, para acumular puntos y otro para que un personaje “camine” con
nuestra mano.
Otra modificación que cabe destacar es que
posiblemente se cambie la Webcam por un sensor Kinect, para un mejor manejo de
la interfaz y la codificación.
Avance con respecto a la planeación. Comenta, con
una extensión de entre media y una cuartilla, cómo haz avanzado en tu proyecto.
Puedes incluir el Gantt actualizado. En tus comentarios, contesta las
siguientes preguntas:
¿Qué se ha hecho?
Se ha programado ya el primer avance, lo principal del sistema, así como una
investigación de lo que e necesitará para poder realizar lo juegos en este
lenguaje. También se investigó la interfaz gráfica, como los menús, las imágenes
del fondo en ellos y las imágenes para los botones, pero aún falta plasmar esto
en el programa, en este avance no se ve tanto de interfaz, se observa más la
codificación referente a lo que viene siendo un sistema adaptativo, según los temas
vistos en clase.
¿Qué falta? Falta
hacer los juegos que llevara nuestro programa, llevando con esto la forma de
como se van a conectar éstos con la mano que detectará nuestra red neuronal, además
a pesar de que ya se investigó como se puede dar una interfaz al sistema, falta
plasmarlo y ver si funciona lo que se ha investigado.
¿Qué problemas se han presentado y cómo los has
resuelto / piensas resolverlos? Uno de
los principales problemas fue empezar a codificar ya que la relación que
teníamos con el lenguaje era mínima, dado que en cursos anteriores se había
estado trabajando con C++, sin embargo esto se revolvió investigando por parte
de los miembros del equipo, por separado y juntos. Algún problema que también
se ha presentado pero no de tanta relevancia fue que, como no teníamos un gran conocimiento
del lenguaje, no sabíamos exactamente que lirerías utilizar, eso lo resolvimos
investigado, y viendo tutoriales en internet.
Diagrama de Grantt [ver]
Lista actualizada de recursos y herramientas. Expande
la lista que tienes con información que te haya sido útil. Si has investigado
técnicas inteligentes (ej. redes neuronales, agentes, métodos para NLP, etc.),
describe esto concisamente.
Herramientas:
ü
Python 2.7. Usando el lenguaje Python: Es un Lenguaje de
programación interpretado cuya filosofía hace hincapié en una sintaxis muy
limpia y que favorezca un código legible.
ü
Librerías como :
o OpenCV: Biblioteca libre de visión artificial. Es multiplataforma,
existiendo versiones para GNU/Linux, Mac OS X y Windows. Contiene más de 500 funciones que abarcan una gran gama
de áreas en el proceso de visión, como reconocimiento de objetos (reconocimiento
facial), calibración de cámaras, visión estereo y
visión robótica.

Recursos:
Inteligencia Artificial, más concreto, Redes
Neuronales Artificiales.
Redes neuronales artificiales: son un paradigma de aprendizaje y procesamiento
automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas en una red que colabora para producir un estímulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales.
Primera versión del sistema.
Coloca fragmentos de código correspondientes a los
módulos más importantes de tu proyecto.
Lo primero que se hizo en el código, para lo adaptativo fue capturar desde la cámara
cv2.VideoCapture(1)
A continuación se procedió a cambiar los colores, a colores “binarios” es decir blanco y negro por medio del comando:
cv.Threshold(imagen, imagen, umbral, color, cv.CV_THRESH_BINARY)
Como en nuestro proyecto, lo más importante es encontrar la mano, ya que ésa es la que guía
al juego, se creo un umbral. Éste funciona de la siguiente manera: Primero, se
llama encender la cámara con el código visto anteriormente, luego se abre la cámara,
y al momento en que se presiona la tecla ESC e guarda la última imagen que vio.
De esta manera el programa cambia lo que sea negro a 0 y lo que esté con blanco
a 1, con este método podemos distinguir una mano humana.
Nuestro código quedó así:
gray = cv2.cvtColor(f,cv2.COLOR_BGR2GRAY) ret,thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU) gray = cv2.Threshold(image,image, threshold,colour,cv.CV_THRESH_BINARY)