Blog que narra la experiencia en la construcción y uso de conceptos de la Realidad Aumentada para favorecer el desarrollo kinestésico y reconocimiento de colores con niños

Luego de mucho tiempo actualizo este blog con la esperanza de que algunos conceptos puedan ser aplicados por los niños.

Una de mis mayores pasiones en estos dos último años ha sido poder investigar y desarrollar aplicaciones con realidad aumentada, orientadas a favorecer el desarrollo de diferentes capacidades en los niños. Sin duda a lo largo de este tiempo han aparecido diversas aplicaciones que amplían las posibilidades de este nuevo concepto.

Mi mayor preocupación al inicio era poder crear estas aplicaciones y empoderarlas con la creación de contenido trabajada por los niños y niñas en base a la investigación, la cooperación y el trabajo social en nuestra comunidad. En todos los casos trabajados y que he visto  la realidad aumentada es un elemento motivador que desarrolla habilidades de búsqueda de información, trabajo en equipos, diseño de contenidos, comunicación… y un gran etc. pero los conceptos de como funciona y que hay dentro del backend de esta tecnología quedaban ocultas para los niños. Afortunadamente esto puede cambiar si usamos las posibilidades que ofrece la combinación de diferentes aplicaciones (lenguajes de programación) como Scratch, Etoys aunado a  Wedo (que en este caso lo usamos porque afortunadamente contamos con este recurso). Scratch y Etoys son software distribuidos libremente y sus posibilidades han ido mejorando.

El trabajo con los niños que estoy experimentando a los largo de estos años, es la posibilidad de poder enseñarles programación usando estos lenguajes visuales. La ventaja de estos es que reducen las dificultades propias del código y se centran en la lógica. Sea Scratch o Etoys cada uno tiene ciertas ventajas sobre el otro, pero si aprovechamos ambos las cosas se ponen mucho más interesantes. Es así que Scratch tiene aunado a su código la posibilidad de manejar sensores como los de WEDO, o recibir conexiones remotas; también existen adaptaciones que trabajan con Arduino y dan otras posibilidades. Etoys puede manejar una cámara(en su versión Windows, algo falla en las olpc pese a tener la misma versión) y tiene la posibilidad de enviar mensajes a Scratch.

Entonces la idea que surge es porque no utilizar estas aplicaciones en conjunto y crear una versión que pueda detectar color en Etoys y en base a esta detección enviarle mensajes a   Scratch. Y en Scratch que tiene comandos para WEDO poder mover los motores que trae este set, y eso es lo que estamos haciendo. Para los niños  es algo simple y hasta natural con el tiempo el  poder controlar cosas en base a la programación y entender como funcionan las cosas que usan.

Aquí el video:

Veamos las condiciones necesarias:

  • Tener instalado Etoys la última versión, por que en las anteriores la cámara no funcionaba.
  • Tener Scratch
  • Tener una cámara web (mucho de la calidad depende de tener una buena cámara)
  • Tener una manopla con un color homogéneo que sea diferente a los colores del fondo que usas

Pasos:

En esta primera oportunidad solo trabajaremos con Etoys

Abrir Etoys y comenzar un nuevo proyecto.

abrirEtoys

Ir a provisiones, catálogo de objetos.

abrirCatalogodeobjetosdeprovsiones

Pestaña multimedia y sacar al Mundo el objeto cámara.

multimediaCamara

Por lo general la cámara se activa, puedes agrandar o reducir la imagen (pero hay un máximo según la capacidad o flujo de la cámara y su rango o tamaño).

multimediaCamaraabierta

Pintar un objeto, como el famoso autito de Etoys.

pintarauto

Redirige la dirección del auto con Shift + movimiento del mouse sobre la flecha verde de dirección.

cambiadireccion

Pinta dos círculos, uno que diga atrás y otro adelante con sus respectivas flechas de manera  similar a como se hizo con el auto.

pintaCirculos

Mueve los círculos hacia la imagen.

muevecirculos

Si das click sobre el objeto cámara observarás su halo, ir a menú en la parte superior al lado de la X en el borde izquierdo. Configura la cámara en enviar al fondo, se resiste al avance; y al final del menu también esta la opción de apagar o encender la cámara (off, on).

configurarcamara

Colócate sobre el circulo, saca halo, abrir visor.

visorprogramacion

Saca al Mundo, Prueba Si No

pruebasino

Luego saca de Adelante(si colocaste ese nombre)la orden esta encima de color

encimadecolor

Luego colócate sobre el auto, saca halo, y coloca sobre el guión de Adelante, auto avanza 5, pero cambia ese valor por 10.

pruebasinoautoavanza

Selecciona con el cuenta gotas el color de tu guante, trata de que sea cerca del circulo ya que los colores varían en función de la cantidad de luz y la posición.

cuentagotas

Activa los guiones en el reloj de cada guión y todo terminado, tu primera aplicación de realidad aumentada esta listo para impresionar en casa o el colegio.

scripterminado

Lo último no olvides esconder los guiones para que se vea mejor y acercar el guante para que el carro se mueva adelante o atrás. el reto es mejor el guión para hacer otras cosas.

En posteriores post, les mostrare como interactuar con Scratch y WEDO.  Y si te gusto déjame un comentario.

Juan Cadillo

Instalación de PVRA

REQUISITOS DE INSTALACION

1. Tener instalada una cámara Web (WebCam) de por lo menos 3.0 Mpx. Usando los controladores respectivos ofrecidos por el fabricante.

2. Tener instalado la Máquina Virtual de Java (jre). Esta se encuentra en la dirección web:

http://www.box.net/shared/a1fa9mk2qb o en su defecto en la página del fabricante http://www.java.com/es/download/manual.jsp

 3. Instalar en el siguiente orden: OpenCV_1.0.exe, WinVDIG_101.exe y QuickTimeInstaller.exe. Software que se encuentran en un repositorio acondicionado en la Red. (Reiniciar si está utilizando Windows XP)

OpenCV_1.0.exe. Puede ser descargado de:

  la URL del proyecto

 http://www.box.net/shared/cndyb04x7n

O del Fabricante

 http://sourceforge.net/projects/opencvlibrary/files/opencv-win/1.0/OpenCV_1.0.exe/download

WinVDIG_101.exe. Puede ser descargado de:

http://www.box.net/shared/11dp8vghsr

O del fabricante

http://www.eden.net.nz/7/20071008/ (debe descargar la versión 1.0.1) otras versiones dan problemas con el uso de processing

QuickTimeInstaller.exe. Puede ser descargado de:

http://www.apple.com/es/quicktime/download/

enlace al software Pintura virtual

http://www.ziddu.com/downloadlink/15257488/PinturaVirtual.rar

INSTRUCCIONES DE USO

1. Copie la carpeta PinturaVirtual ofrecida en el enlace de la página WEB del proyecto y ubíquela en el disco C: (C:\PinturaVirtual\) – Esta ubicación no se puede cambiar.

2. Conecte la WebCam (de preferencia una con más de 3Megapixeles)

3. Busque en la carpeta PinturaVirtual el ejecutable llamado setup.exe e inícielo.

4. Siga las Instrucciones del Menú.

Juan Cadillo

En este parte deseo relatar la experiencia vivida en el manejo de la Realidad Aumentada con los niños y niñas:

Para ello partimos de las capacidades del Diseño Curricular Básico:

  • Y motivar a los alumnos más grandes para apoyar a los pequeños logrando con ello desarrollar identidad e identificación de los niños grandes con los problemas de sus compañeros y su pertenencia a la Escuela. Así como permitirles desarrollar sus capacidades comunicativas.

              Nuestros niños de cuarto grado colaboraron en sus horas de recreo para apoyar a sus compañeros enseñándoles y              dirigiéndolos en todo el trabajo.

  • Explorar y experimentar con materiales de expresión gráfico plástica.

 Se trabajo con un lienzo virtual sobre el que los niños realizaron dibujos y pintaron, si bien el sistema no es muy estable por dificultades técnicas los niños reconocieron colores  y realizaron trazos que les permitió afianzar la expresión plástica

  • Observar y describir las características visuales, sonoras y cinéticas (de movimiento) de elementos naturales y objetos de su entorno.
Se trabajo el reconocimiento de colores aprovechando las posibilidades de la realidad aumentada; de tal forma que los niños recibieron reforzadores de los diferentes colores. En una segunda etapa implementaremos el reconocimiento de un número mayor de colores y sus reforzadores.
Se construyó un piano virtual, en el que los niños ejecutaron melodías libres, este aspecto debe evolucionar hasta poder tocar canciones sencillas, para ello se requiere el aprendizaje de las notas musicales y su ubicación en el piano.
  • Reconocer y describir diversas producciones manuales y artísticas melodías en el entorno familiar o comunitario.
Se aprovecho la realidad aumentada para enseñar canciones sobre las formas y los colores:
  • Reconoce la lateralidad en su cuerpo experimentando con diferentes actividades.
Para ello utilizamos un juego que permite ubicar el lado izquierdo y derecho, así como la posición de arriba y abajo.
  • Identifica y utiliza conceptos de ubicación espacial básicos al realizar movimientos y desplazamientos
Se trabajo los aspectos de ubicación espacial mediante juegos, como el probador virtual y el juego de pingpong que permite a los alumnos coordinar e movimiento de sus manos con los de sus ojos y consolidar lo aprendido.
De la experiencia podemos afirmar que el uso de las aplicaciones desarrolladas en su  mayoría son para grupos pequeños; ya que la principal dificultad es el manejo de las variaciones de color producto del movimiento de las personas.
Juan Cadillo

Deseamos presentar una solución pedagógica y didáctica  factible, pero mucho de lo que se presenta suena a muy técnico y apegado a una herramienta tecnológica, por que así lo es. Sabemos que para desarrollar lateralidad o aprender colores se puede realizar  en tiempos relativamente cortos y sin sobresaltos.

La tecnología es una herramienta y no la meta en si del trabajo en las aulas; eso lo comprendimos desde el inicio más nos damos cuenta que era necesario correr el riesgo y emprender el camino, al final los resultados  nos llenan de orgullo, porque avanzamos en un campo poco explorado y los resultados están documentados. Nuestros niños respondieron y lograron los objetivos que nos habíamos planteado.

Estas son nuestras conclusiones:

  • El apoyo de los niños más grandes es importante para lograr que los niños más pequeños aprendan rápidamente las actividades propuestas.
  • Se puede usar la Realidad Aumentada para enseñar colores. (PROPUESTA PARA LA SEGUNDA ETAPA añadir voz al reconocimiento de colores).
  • Se puede usar la Realidad Aumentada para desarrollar los conceptos de Lateralidad con los niños.
  • La Realidad Aumentada permite el desarrollo de los  reflejos y coordinación ojo mano. También demanda de los niños resistencia en los miembros superiores.
  • La realidad aumentada permite el afianzamiento  de la coordinación motriz en lo niños.
  • Se puede enseñar música a través de la Realidad Aumentada.
  • Los niños y niñas pueden aprender a  dibujar y pintar a través de la Realidad Aumentada
  • La realidad aumentada permite el desarrollo de capacidades consideradas en el Diseño Curricular Básico Curricular del Perú
Juan Cadillo León

Para nosotros es de gran emoción poder compartir dentro del marco del Premio Internacional Educared 2011, las incidencias resumidas de todo el trabajo desarrollado dentro del Proyecto Pintura Virtual para la Realidad Aumentada o PVRA por sus siglas.

Todo comenzó con la  Premiación del Certamen Internacional Educared 2010, donde la  Fundación Telefónica y EDUCARED organizaron una jornada de Intercambio y Capacitación en el que  se expuso los avances en el ámbito tecnológico dirigido a la Educación. uno de estos avances fue la Realidad Aumentada; lo que motivo gran interés por conocer y aplicar los conceptos y la tecnología dentro del ámbito local.

Es así que en Enero – Febrero 2011

Nos avocamos a investigación sobre la tecnología inmersa para usar la Realidad Aumentada:

– Lenguajes de programación como  processing, Actionscript, C++

– Entornos de desarrollo para gestionar la Realidad Aumentada.

– Hardware necesario para usar la Realidad Aumentada.

-Mejorar y potenciar las estrategias, en especial usar la dinámica de gestión del conocimiento que permita el trabajo de los niños más grandes con los más pequeños.

Para Marzo del 2011

Consideramos que se tenía muchas posibilidades de poder aplicar la Realidad Aumentada en Nuestra Institución “Jesus Nazareno”, por lo que iniciamos la investigación y selección de las competencias y capacidades a desarrollar en una primera etapa por la Realidad aumentada con los niños, bajo las estrategias experimentadas en el 2010. También evaluar y seleccionar la opción tecnológica, fundamentalmente orientada a usar software libre o free para poder realizar un emprendimiento sostenible en la comunidad; ya que al ser una escuela publica carecemos de fondos para adquirir licencias de Software.

En este mes el aprendizaje del  lenguaje programación Processing, se intensificó, ya que este fue el lenguaje seleccionado por sus características de ser software libre, fácil de aprender  y tener muchas librerias  complementarias.  Las librearías que emocionaron  fueron las de la visión artificial con las cuales pudíamos ampliar   nuestro trabajo con la Realidad Aumentada, abriendo puertas más allá de los simples marcadores que se publicitan con la Realidad Aumentada.

En  Abril del 2011 

Durante la primera semana iniciamos formalmente el proceso de planificación y como resultados obtuvimos el plan de investigación que guiaría todo el trabajo. Este plan fue presentado y aprobado por la Dirección de la Institución Educativa. En él se postuló la fundamentación pedagógica y didáctica del proyecto, así como la parte técnica que por carácter de novedosa teníamos que gestionar de manera cuidadosa ya que esta podía convertirse en abrumadora por las dificultades técnicas.

La PROPUESTA CURRICULAR que nos guió fue:

Se trabajó teniendo como base el Diseño Curricular Nacional de la Educación Básico Regular, considerando las áreas de Educación Artística y Educación Física del III Ciclo fundamentalmente y atendiendo en parte de las IV Ciclo:

ARTE
• COMPETENCIA: Expresa con espontaneidad y creatividad sus vivencias, ideas, sentimientos y percepción del mundo, haciendo uso de recursos artísticos para explorar los elementos del arte vivenciándolos con placer.
 • CAPACIDADES:
o Explora y experimenta con materiales de expresión gráfico plástica; con objetos sonoros del entorno…
o Observa y describe las características visuales, sonoras y cinéticas (de movimiento) de elementos naturales y objetos de su entorno.
o Reconoce y describe diversas producciones manuales y artísticas desarrolladas en el entorno familiar o comunitario.

EDUCACION FISICA
• COMPETENCIA: Comprende su cuerpo de forma integral, lo utiliza en la ejecución de actividades físicas sencillas, valorándolas como medio de cuidar su salud.
• CAPACIDADES:
o Utiliza su cuerpo como totalidad en la realización de actividades lúdicas
• COMPETENCIA. Domina su cuerpo y utiliza sus posibilidades de movimiento para resolver tareas motrices simples, orientarse en el espacio y en el tiempo, expresarse corporalmente y manipular objetos; mostrando espontaneidad en actuar.
• CAPACIDADES:
o Reconoce la lateralidad en su cuerpo experimentando con diferentes actividades.
o Identifica y utiliza conceptos de ubicación espacial básicos al realizar movimientos y desplazamientos

Para los niños más grandes que apoyan a los más pequeños:

  • COMPETENCIA: Construcción de la identidad y de la convivencia democrática

CAPACIDADES

  • Evalúa sus estados emocionales y  actúa asertivamente en una situación de conflicto, proponiendo alternativas de solución.
  • Participa en la planificación y ejecución de

 

  • COMPETENCIAS: Expresa sus necesidades, intereses, sentimientos y experiencias, adecuando su discurso a los distintos interlocutores, es receptivo y muestra una actitud de escucha respetuosa con atención y espíritu critico a los mensajes, en las diversas situaciones comunicativas en las que participa.

CAPACIDADES

  • El discurso oral: pautas para otorgar coherencia a las ideas
  • Pautas para exponer y fundamentar ideas y conclusiones.
  • Cualidades de la voz: entonación y pronunciación.

Proyectos

Respecto a la parte técnica se propuso desarrollar el proyecto mediante ciclos evolutivos en dos Etapas, En la primera etapa se  consideran 3 ciclos evolutivos para tener un producto entregable probado al 06 de junio del 2011 y una Evaluación esto coincide con el último día de la entrega de Trabajos del Premio Internacional Educared. Luego una segunda etapa al 10 de diciembre del 2011 con 2 o 3 ciclos dependientes de los resultados de la Primera Etapa,  donde la Institución Educativa muestra el resultado del trabajo a las Autoridades Municipales del Distrito de Independencia – Huaraz.

 La propuesto en ciclos de desarrollo busca hacer visibles lo más pronto posible los resultados logrados y no esperar hasta el final, de la misma forma por cada ciclo se tiene un entregable; en caso de no terminar el tercer ciclo de desarrollo de la propuesta se tiene por lo menos uno o dos de los ciclos terminados base de la propuesta.

PRIMER CICLO: Apoyar el reconocimiento de Color mediante la Realidad Aumentada:

SEGUNDO CICLO: Desarrollar un lienzo virtual  o un sistema de dibujo kinestésico. Apoyar la expresión artística

TERCER CICLO: Lograr mediante la Realidad Aumentada el desarrollo de los reflejos y la lateralidad.

En la tercera semana de este mes se:

– Inició el desarrollo del subsistema de reconocimiento de color.

– Se tomó  como base  el libro “Learning Processing A Beginner’s Guide to Programming Images, Animation, and Interaction” de Daniel Shiffman quién propone un algoritmo de selección de color y su seguimiento del mismo en el video para el software Processing.

– Se detecta que un sistema de detección de color es insuficiente para una propuesta pedagógica con niños, no se puede hacer mucho con seguir un color a largo de la pantalla.

– Se evidencia que la cámara web Microsoft LifeCam VX-5500, no es muy buena para detectar color, ya que no presenta colores verdaderos.

En la cuarta semana:

– Se llega a la conclusión que el modelo RGB no permite una detección de objetos por color ya que un solo color puede tener múltiples presentaciones o gamas.

– Se propone en base a la investigación en Internet cambiar el modelo de color usado por un computador RGB a un modelo CieLab que es más certero a la hora de encontrar un color

– Se construye un algoritmo de transformación del modelo RGB a CIELAB para Processing en base a la propuesta de Jacques y Desmis(http://www.rawness.es/cielab/?lang=es) quiénes han desarrollado código de transformación del modelo en el lenguaje PHP. El código propuesto tiene licencia CC0 v1.0( Http://creativecommons.org/publicdomain/zero/1.0/) y se logra adaptarlo a Processing.

– La profesora asociada a la propuesta presentada inicia la enseñanza de los colores primarios y secundarios y nos apoyamos en la realidad aumenta para enseñar una canción sobre los colores.

– Se adapta el modelo y se tiene la primera versión de la propuesta. Se desarrolla un video con objetos de colores para el rojo, amarillo y azul; también para el verde, negro y blanco.

– Se prueba el modelo con alumnos del cuarto grado. Los resultados no son muy alentadores el sistema no identifica correctamente los colores debido a que la cámara no presenta color verdadero por lo que se juega con los tonos de color, pero para una propuesta con niños más pequeños no es una opción viable con esta cámara.

Durante el mes Mayo del  2011 

Trabajamos muy duró y logramos en la primera semana:

– Adaptar al proyecto que estamos desarrollando las librerias de openCV para java; pero la cámara web Microsoft LifeCam VX-5500 es incompatible con OpenCV, por lo que se cambia a una cámara web Genius Eye 110 Instan Video.

– El sistema funciona pero siguen los problemas con el color verdadero.

– Se  hacen otras pruebas, y se decide adquirir una cámara Web de mejores prestaciones, la opción es la Longitech WebCam Pro 9000. (Esta cámara no está en stock por lo se tiene que esperar a la próxima semana).

– Como se tiene un producto en el Primer Ciclo, y se espera que el rendimiento sea mejor con la cámara solicitada se inicia el SEGUNDO CICLO de nuestro trabajo.

Paralelamente se ha estado desarrollando un lienzo virtual para pintar sobre él.

– Con el segundo ciclo se prioriza  la investigación sobre las librerías de OpenCV para processing (OPENCV Processing and Java Library cuya dirección url es: http://ubaa.net/shared/processing/opencv/.), para ello en primer lugar se trató de detectar bloques de objetos con la función blobs()  de OpenCV pero no fue muy efectivo ya que se detectaban mucho bloques (regiones agrupadas) y el pincel corría de un lugar a otro imposibilitando dibujos uniformes; por lo se vio por conveniente cambiar a un reconocimiento de color, aprovechando lo aprendido en el subsistema de reconocimiento de color.

La segunda semana, se inicio con el logro  de detección del movimiento en regiones puntuales usando OpenCV y se propone elaborar un menú que permita cambiar de color el pincel de pintado y tener la posibilidad de  localizar los menús que funcionarán sin necesidad de presionar el mouse o alguna tecla.

– Se tiene éxito al final de la semana en lograr pintar haciendo seguimiento de color y cambiar pinceles, pero la tasa de fallas es muy elevada debido fundamentalmente a la cámara usada.

– Se hacen las primeras pruebas con los niños, el nivel de dificultad para pintar es alto y se sigue esperando la nueva cámara.

La tercera semana es muy alentadora pues la  nueva cámara está por fin en nuestras manos, se prueba con los niños,  el PRIMER CICLO QUEDA COMPLETO, los niños usan la Realidad Aumentada para reconocer el color, el nivel de fallos desciende de un 50% a un 10%. Y la jornada de Interacción de los niños del Cuarto Grado con los del Segundo es Satisfactoria, se logra que los niños usen la aplicación desarrollada.

– El  Subsistema de dibujo kinestésico está listo para su uso; las primeras pruebas en un ambiente poco controlado no son muy alentadoras. Los niños tienen a moverse de su sitio creando variaciones en el reflejo de la luz, el aula varía el tono de color de los objetos que detecta la cámara según la posición del día  y la entrada de la luz.

– Se ha investigado más, en youtube.com se han observado varios videos que hacen pintado sobre un lienzo y usan gafas de realidad virtual o en su defecto redes neuronales o algún filtro de predicción de movimiento. El desarrollo de estas tecnologías es costosa en tiempo pero posible por lo que se evaluará su desarrollo en la SEGUNDA ETAPA.

– Se ha optimizado en todo lo posible el sistema y lo que queda es probarlo en un ambiente más controlado. Ya que en las pruebas realizadas en un ambiente con una sola entrada de luz es sistema es satisfactorio de un 80 a 90%. Versus el 50% que se logró en el aula. Se decide dejar para la primera semana de junio la prueba de este ciclo y planificar el ambiente para su desarrollo con los niños.

Se ha iniciado el TERCER CICLO con el Subsistema de reflejos y lateralidad.

– Las ideas que se tiene es desarrollar un sistema que permita mejorar la lateralidad: arriba, abajo, izquierda y derecha.

– Se toma como base el juego realizado por Andy Best (http://andybest.net/2009/02/processing-opencv-tutorial-2-bubbles/). Él juego consiste en un grupo de bolas  o pompas de jabón que van cayendo y al ser tocadas desaparecen. El comparte parte de su código. Lo relevante es que permite obtener  una visión más clara de la detección de movimiento y dar nuevas  luces a la propuesta que estamos desarrollando. A nosotros nos interesa poder mover la pompa de jabón de un lugar a otro es decir desarrollar los conceptos de arriba, abajo, izquierda y derecha.

– El desarrollo de la idea está completa. Las pruebas de uso con los niños del CUARTO GRADO es exitosa, los niños del CUARTO GRADO apoyan el desarrollo del juego con los niños del SEGUNDO GRADO, siendo la experiencia satisfactoria.

– Paralelamente se viene desarrollando el juego de PingPong. Este se basa en la detección de color y sacar un promedio del mismo en la pantalla. El proceso al inicio lo deseamos realizar usando la detección de movimiento, pero se hacía muy lento puesto que se tenía que tocar la paleta por los extremos para moverla hacia arriba y abajo; luego de un revisión se tomó contacto con el trabajo de Nikolaus Gradwohl, (http://www.local-guru.net/blog/2008/10/10/touchless-multitouch-in-processing) que  realiza un trabajo sobre un multitouch display,  y logra en base a un promedio de color de dos objetos muy marcados  presentado a la cámara web hacer seguimiento de los mismos. También presenta un algoritmo que nos orienta a cómo sacar el promedio de color de toda la pantalla, la adaptación de su idea permite construir un bloque de código que a continuación presentamos:

class Point

int x;

int y;

Point( int x, int y )

this.x = x;

this.y = y;

//comparando el color del punto buscado versus el punto de la figura

boolean Match( int c1, int c2 )

int limit = 10 ;

int sr = c1 >> 16 & 0xFF;

int sg = c1 >> 8 & 0xFF;

int sb = c1 & 0xFF;

int cr = c2 >> 16 & 0xFF; //extrer color

int cg = c2 >> 8 & 0xFF;

int cb = c2 & 0xFF;

return cr > sr – limit && cr < sr + limit &&

cg > sg – limit && cg < sg + limit &&

cb > sb – limit && cb < sb + limit;

////saca el promedio de los puntos de un color

Point avg( ArrayList l )

int  posicionY = 0;

if (l.size() == 0)

return new Point( 0, 0 );

int x = 0;

int y = 0;

boolean cont = true;

for( Iterator i = l.iterator(); i.hasNext(); )

Point p = (Point)i.next();

x += p.x;

y += p.y;

if (cont)

posicionY = p.y;

cont = false;

if (( posicionY – y / l.size())< 20)

return new Point( x  / l.size(), y / l.size() + 50);

else

return new Point( x  / l.size(), y / l.size());

//

– La adaptación que se realizó permite trabajar con OpenCV y maniobrar la paleta en la dirección deseada, logrando construir un juego de pingpong usando realidad aumentada.

– El último día laborable de la semana se logra probar el juego con los niños de CUARTO GRADO y luego con los del SEGUNDO grado, siendo los resultados satisfactorios.

La cuarta semana también tiene frutos considerables:

– Durante la Cuarta semana se desarrolla un probador de ropa virtual, la idea se basa en varios video presentados en YouTube que permiten el cambio de ropa; este tipo de videos son los más promocionados en la publicidad de la realidad aumentada luego de los videos que muestra marcadores con videos o imágenes.

– Dentro de la propuesta inicial se tenía el objetivo de mejorar las habilidades kinestésicas y tomando la idea nos pareció que se podría construir un sistema similar para mejorar la coordinación de los niños. La idea no era muy difícil de realizar ya que se tenía la experiencia de detección de movimiento.

– Las primeras muestras del sistema se probaron el lunes en un ambiente poco controlado con los niños del CUARTO GRADO y se mostró algunas falencias respecto a la graduación del movimiento y la cantidad de luz del aula.

– Estas falencias se subsanaron y se logró probar nuevamente el sistema con los niños del CUARTO GRADO quiénes mejoraron su uso y estaban listos para demostrarlo  el día miércoles a los niños del SEGUNDO GRADO y apoyar su uso con ellos. La jornada fue nuevamente  satisfactoria.

– Como última etapa queda desarrollar la expresión artística, con el trabajo de pintura en el lienzo. Pero surge la idea de poder desarrollar también un piano virtual que sería una adaptación del probador virtual pero en vez de mover o cambiar la ropa se debe tocar una nota musical.

– Lo más complicado de la propuesta es detectar las notas musicales y sus respectivos acordes. Para el día viernes ya se tenía la primera propuesta probable que  dejó muy grata impresión en los niños quienes demostraron  la factibilidad de la propuesta.

Durante la primera semana de Junio 2011

Durante todo el proceso registramos las incidencias y esta semana  trabajamos en la sistematización de la propuesta, subir los videos del trabajo  a youtube.com, terminar la memoria descriptiva y levantar el software necesario para que prueben nuestra solución desarrollada; también nos avocamos a terminar otras propuestas que teníamos pendientes, pero con tanto ajetreo  nos olvidamos de grabar las pruebas sobre el sistema de pintura virtual que anda un poco mejor. Solo queda cruzar los dedos y esperar que el tiempo que nos reste el lunes poder grabar el funcionamiento de este y enlazarlo al blog.

Termino el registro del diario agradeciendo a la profesor Edith Molina que me acompañó y apoyó en la parte pedagógica de la propuesta.

Huaraz, 04 de junio, del 2011

Juan Cadillo León

Para consolidar el desarrollo, se buscó  reforzar el aspecto kinestésico, lo que permitiera que los niños refuercen sus reflejos y lateralidad mediante la aplicación de juegos; a ello apunto el desarrollo del módulo de ping pong, el módulo de Lateralidadque reforzará el reconocimiento de DERECHA, IZQUIERDA, ARRIBA Y ABAJO. Se implementó un probador de ropa que permite coordinar todo lo aprendido. Y finalmente me anime a desarrollar un piano virtual que sería una adaptación del probador virtual pero en vez de mover o cambiar la ropa se debe tocar una nota musical.

El módulo de ping pong se basa en el reconocimiento y seguimiento de color COLOR TRAKING, que permite mover las barras de los jugadores según un color definido por click (PRIMER JUGADOR ) y anticlik (SEGUNDO JUGADOR). Una pelota se mueve de izquierda a derecha y viceversa donde el jugador tiene que impedir que la bola pase hacia el final de su campo, para ello tiene una barra que se desplaza verticalmente. El juego requiere de coordinación, equilibrio y fuerza en el brazo para mantenerlo levantado.

Para indicar que se está dando el movimiento de las barras y su dirección se ha colocado unos círculos pequeños de diferentes colores que le indican al jugador el sentido que tiene su movimiento.

Fig. Ping Pong – con seguimiento de color (color traking) probado por los

niños del 4º

A continuación se muestra el segmento de código para la implementación de la paleta de juego:

class paleta { //gestor de movimiento, según color

Point e1, e2;

paleta(){ //declaración de la clase

e1 = new Point( 0, 0 );

e2 = new Point( 0, 0 );

}

void mover(){

//nueva región de interés

if (s1)

{

//e1.x = constrain(e1.x, 40, width – 40);

e1.y =  constrain(e1.y, 0, height); //región limite

mouseYnuevoI = e1.y;

ellipseMode(CENTER);

ellipse( e1.x, e1.y, 30, 30 );

}

if (s2)

{

e2.y =  constrain(e2.y, 0, height); //región limite

mouseYnuevoD = e2.y;

fill( 0, 255, 255, 128 );

ellipseMode(CENTER);

ellipse( e2.x, e2.y, 30, 30 );

}

}

El módulo de Lateralidad permite distinguir la dirección del movimiento; si es a la izquierda, a la derecha arriba o hacia abajo.

 

Fig. Juego de Lateralidad: Izquierda, Derecha, Arriba y Abajo

Presentamos una declaración de variables usado:

//Programa que mueve la burbuja en cualquiera de las cuatro direcciones

import hypermedia.video.*;          //  Importando OpenCV library

OpenCV opencv;                      //  Creando un Nuevo objeto OpenCV object

PImage movementImg;                 //  Creando un PImage para detector movimiento

PImage bubblePNG;                   //  Crea un PImage para la burbuja a mover

PFont font;                         //  Crea un objeto font

Bubble bolita;

El módulo  probador virtual permite que el alumno demuestre sus destrezas de coordinación y ubicación para poder  elegir un polo que se le acomode al cuerpo, para ello utiliza el sistema de menú con detección de movimiento.

A continuación presentamos una imagen ilustrativa y el código correspondiente a la clase que permite el cambio de color, tamaño y ubicación de la ropa.

Fig. Probador Virtual – con menú interactivo

class Ropa

{

int rX, rY, ropaWidth, ropaHeight;

int MaxropaWidth, MaxropaHeight;

int elcolor;

Ropa ( int rpX, int rpY, int rW, int rH, int posicion)

{

rX = rpX;

rY = rpY;

ropaWidth = rW;

MaxropaWidth = rW;

ropaHeight = rH;

MaxropaHeight = rH;

elcolor = posicion;

}

}

Y el Piano virtual, es cual todavía nos falta perfeccionar.

Presentación de los Resultados:

Video 1: Institución Educativa  “Jesús Nazareno”

Video 2. Institución Educativa “Jesús Nazareno”

Video3. Institución Educativa  “Jesús Nazareno”

Video 4. Institución Educativa

Juan Cadillo

Este es el subsistema  que demando mayor  trabajado. Partimos de la capacidad de poder detectar movimiento para lo cual usamos las librerías para JAVA de OpenCV ubicadas en OPENCV Processing and Java Library cuya dirección url es: http://ubaa.net/shared/processing/opencv/.

Para ello dividí el trabajo en:

  1. Poder detectar el movimiento en regiones puntuales, lo que sirvió para localizar los menús que funcionarán sin necesidad de presionar el mouse o alguna tecla.

 Menú de selección de color activado por detección de movimiento

Fig. Menú de selección de color activado por detección de movimiento

Se trabaja básicamente sobre una diferencia de pixeles de un imagen capturada frente a otra imagen capturada posteriormente; si la diferencia es marcada en la región entonces se ha detectado movimiento; lo que corresponde a la selección de un color para el pincel que debe pintar en nuestro caso.

También se prevé que se tenga que borrar el lienzo donde se pinta lo que se hace con el menú borrar.

 

Fig. Menú de borrado de lienzo – activado por detección de movimiento

El código que presentamos a continuación permite poner una imagen en escala de blanco y negro y hace uso de las librerías de openCV:

  // luego de encontrado el color aplicamos filtros para detectar movimiento

  opencv.absDiff();                           //  Crear una diferencia de imagen

  opencv.convert(OpenCV.GRAY);                //  Convertir a una escala de grises

  opencv.blur(OpenCV.BLUR, 3);                //  Remover- ruido

   opencv.threshold(20); // Thresholds to convert to black and white; se puede //seleccionar en función de la luz del ambiente.

  1. Poder pintar sobre el lienzo (pantalla), para ello en primer lugar se trató de detectar bloques de objetos con la función blobs()  de OpenCV pero no fue muy efectivo ya que se detectaban mucho bloques (regiones agrupadas) y el pincel corría de un lugar a otro imposibilitando dibujos uniformes; por lo se vio por conveniente cambiar a un reconocimiento de color, aprovechando lo aprendido en el subsistema de reconocimiento de color. La idea guía fue presentar una imagen de un solo color, sacar el promedio de color dentro de la imagen capturada por el video y en base a este promedio guiar al pincel; en inglés a esta técnica se le denomina “color Tracking”. El inconveniente de este método es la cantidad de otras imágenes que puedan tener un color similar al que estamos siguiendo; esto hace que el pincel salte de un lugar a otro en algunas ocasiones. O en algunos casos la pérdida del color de seguimiento debido a la variación de luz que hace que un objeto se vea de un color distinto al del seguimiento. Una solución al caso planteado es combinar el reconocimiento de bloques y el reconocimiento de color; para ellos se tendría que implementar una red neuronal o algún tipo de filtro como el de Kalman;  pero cuya programación es más costosa.

Fig. Pincel activo – seguimiento de color (color traking)

A continuación se presenta el código que permite implementar el color tracking en el subsistema:

////sacar el promedio de los puntos de un color

Point avg( ArrayList l ) {

int  posicionY = 0;

if (l.size() == 0) {

return new Point( 0, 0 );

}

int x = 0;

int y = 0;

boolean cont = true;

for( Iterator i = l.iterator(); i.hasNext(); ) {

Point p = (Point)i.next();

x += p.x;

y += p.y;

if (cont)

{

posicionY = p.y;

cont = false;

}

}

if (( posicionY – y / l.size())< 20)

{

return new Point( x  / l.size(), y / l.size() + 50);

} else

{

return new Point( x  / l.size(), y / l.size());

}

}

Video 1. Institución Educativa “Jesús Nazareno”

Para poder dibujar es necesario seleccionar un color haciendo click sobre él; los niños del cuarto grado se concentraron mucho en esta actividad para apoyar a los niños pequeños.

Juan Cadillo