NAO robot + visión artificial + 4 escolares + 1.5 horas por semana = tutor de inglés

¡Hola a todos! Este artículo está dedicado a los resultados del primer año del laboratorio de visión por computadora en el Parque Tecnológico Infantil de Novosibirsk (oficialmente el Centro para el Desarrollo de la Creatividad de Niños y Jóvenes). El "Laboratorio de Visión por Computador" suena, por supuesto, fuerte, pero aun así logramos hacer algo.

imagen

Evolución de ideas


Comencemos con lo planeado. En sueños azules, vi un robot NAO (mirándote desde la imagen), leyendo en voz alta cualquier texto presentado en una "zona especial" a la manera de un lector de códigos de barras en los supermercados, un lector condicionalmente universal en voz alta para aquellos que no pueden hacerlo por alguna razón esto yo mismo. En una versión más mundana, quería hacer un robot bibliotecario de la NAO que reconozca los nombres del libro y su autor. ¿Tomé en cuenta la complejidad de la tarea y el nivel de estudiantes (y mi falta de experiencia) cuando configuré la tarea inicial? Por supuesto no. Como resultado, por supuesto, nos dimos cuenta de otra tarea, aunque cercana, sin embargo, resultó aún mejor.

Una pequeña aclaración con respuestas a preguntas obvias: ¿por qué NAO? Resultó que sobre la base de este centro había tres robots con los que nadie trabajaba. Tienen buenas cámaras, además hay un sintetizador de voz incorporado (los fabricantes incluso hablan de herramientas especiales para recordar caras / objetos y reconocer el habla en vivo, pero yo personalmente no lo usé), la API es comprensible, entiende Python. ¿Por qué se reconoce el texto? No sé, por alguna razón, el texto me parecía más cercano en ese momento (un ratón de biblioteca, qué sacar de mí) .

Comencé a trabajar con escolares a fines de octubre del año pasado. Al principio, solo había dos: un niño y una niña, décimo y undécimo grado, respectivamente. Un poco más tarde, 2 estudiantes de octavo grado se unieron a nosotros (les recuerdo que la palabra "integral" en el octavo grado no es familiar, como muchas otras cosas). Y luego resultó que no todo es tan simple. Es decir, en general, no todo es fácil.

Después de que los robots dejaron de causar un deseo agudo de tocarlos, se dominaron dentro de la interfaz gráfica (cómo conectarse, cómo controlar, cómo cambiar entre las cámaras superior e inferior, cómo tomar una foto, cómo y dónde guardarla), nos centramos en el procesamiento de imágenes.

La primera tarea fue tomar una fotografía del libro e intentar encontrar el autor y el título como estándar, descrito varias veces enstackoverflow , métodos (conversión de color, filtros, espesamientos, etc., etc.). Con algunos libros, la maniobra fue un éxito, con algunos, no. Por ejemplo, tuvimos éxito con un libro sobre hackers, a pesar de su diseño poco convencional.

imagen

imagen

Pero con una publicación aparentemente menos marginal, sufrimos numerosos fiascos (la historia, además de esto, no se guardó). En general, quedó claro que ya no podemos vivir así , no tenemos tiempo para esto y necesitamos cambiar la tarea.

imagen

Una solución obvia, pero no del todo, fue propuesta por los chicos de TUSUR que habían venido a visitar un evento y habían estado trabajando con la NAO durante varios años. Propusieron una sábana blanca como fondo blanco uniforme. OKAY.

imagen

La vida se ha vuelto más fácil, pero no muy.

imagen

Sin embargo, después de un pequeño chamanismo con filtros, aún pudimos aplicar Tesseract (más precisamente, su envoltorio Python Tesserwrap) y las cosas avanzaron: el robot habló. Primero a través de la cámara de mi amapola:




Y luego por sí mismo. Incluso hicimos basura los saludos de Año Nuevo (que de alguna manera reflejé a través de PhotoBooth y no hay una explicación racional para esto).



Sin embargo, los falsos positivos permanecieron tan "agradables" como los hongos falsos. Y luego uno de los escolares me hizo una pregunta: "¿Y qué nos impide hacer un diccionario y expresar solo lo que contiene?"

De Verdad. Pensando, formulé la idea final de nuestro proyecto con los escolares: un robot-tutor del idioma inglés. Nuestro robot todavía sabe solo inglés (en teoría, esto podría corregirse), y un tutor de robot que practica con un estudiante / estudiante de inglés tiene una cierta conexión con la realidad. Bueno, no me negaría de una vez. En eso y se detuvo.

El trabajo en equipo y su resultado.


Y luego llegó abril. O marzo. En general, las vacaciones de mayo se acercaban (con actividades canceladas en su honor), los niños seguían irrumpiendo en los Juegos Olímpicos, comenzaron a aparecer mensajes sobre algunos festivales de robótica, en general, "el invierno está cerca", pero no hay ningún proyecto.

En primer lugar, resolvimos el algoritmo: los sensores táctiles de la cabeza seleccionan el nivel del juego (correspondiente a la complejidad del diccionario), con su ayuda se puede detener el juego; el robot selecciona aleatoriamente una palabra del diccionario, la pronuncia, toma imágenes de la cámara superior, reconoce el texto, lo analiza, verifica con el diccionario, verifica con la palabra hablada y asiente con la cabeza, positiva o negativamente, dependiendo del resultado.

Tuve que darles a todos una tarea y alegrarme de que en las primeras clases, github se abrió para los estudiantes. Dos se dedicaron a exportar movimientos desde la interfaz gráfica (para no escribirnos) y editarlos, alguien estaba escribiendo un código de selección aleatorio, alguien estaba escribiendo un diccionario y tuve que correr y preguntar en caso de enchufar. Después de un tiempo, todas las secciones estaban listas por separado, y queda por conectarlas. Esta tarea también fue realizada por uno de los estudiantes (cuyas jambas tratamos durante varias horas seguidas posteriormente, pero todavía estaba bien hecho).

No diré cómo "volamos" en el festival regional de robótica debido a esta versión general cruda; mejor les digo que enviamos el proyecto a Sh.U.ST.T.R.I.K.y por el bien de esto, terminamos el proyecto (4 horas de trabajo completo, y nuestros sensores se sobrecalentaron, de modo que la visión y los movimientos volvieron a aparecer en diferentes videos). Sin embargo, el proyecto fue tomado por S.U.ST.T.R.I.K.a, como me dijo un amigo, quien estuvo presente en el anuncio de los resultados en Tomsk. ¡Hurra!





Bueno, hoy, en la exposición en el marco de los Días de la Ciencia en Novosibirsk, finalmente fue posible depurar la versión y grabar un video de todo junto (breve y mal, porque el teléfono).



Sin embargo, a algunos estudiantes de la exposición (y ese triste festival) realmente les gustó. Es cierto que, lamentablemente, muchos se avergonzaron de no haber escuchado algo y no lo entendieron en inglés.

imagen

Planes futuros


En primer lugar: acelerar esta versión (por ahora tomamos una foto de la cámara una vez por segundo), hacer tarjetas con palabras en el cartón (para que los niños no las doblen en sus manos cuando muestran el robot), quizás rehacer la implementación y poner el texto en alguna luego un marco contrastante, por ejemplo, rojo; rotar la imagen, etc.

Bueno, si continuamos con el proyecto en el próximo año académico (me gustaría), entonces quiero hacer un diccionario ruso-inglés, tal vez diccionarios de objetos, tal vez algo más. No es el hecho de que con NAO.

Código, sin la última versión, puedes ver y regañar aquí . La última versión también aparecerá allí, pero un poco más tarde, estamos trabajando en errores.

Literatura y equipamiento


- NAO robots
- macbook pro
- Tesserwrap
- OpenCV Python
- stackoverflow

All Articles