deeplens-asl

Inspiración

El futuro no se encuentra en el teclado ni en el mouse. Todos están de acuerdo en que la futura interacción con los equipos se realizará, principalmente, mediante comandos de voz. Siri, Cortana, Google Home y, por supuesto, Alexa (y Alexa for Business) son todos ejemplos de un posible futuro. Inclusive Werner Vogels piensa que la interacción mediante voz será el nuevo tipo de interacción tradicional (noviembre de 2017).

Sin embargo, si bien casi todas las personas pueden hablar con un equipo, lo que evita la necesidad de ser alfabetizado (obligatorio para poder utilizar un teclado), algunos miembros de la sociedad continúan siendo desplazados: aquellos que no hablan. Ya sea porque son sordomudos o porque no conocen el idioma (por ej., extranjeros o inmigrantes), estas personas no pueden interactuar con sistemas de diálogo.

DeepLens podría ayudar a que fueran comprendidos gracias al lenguaje de señas de Estados Unidos (o algunas variantes). El procesamiento de flujos de videos y un modelo de aprendizaje profundo pueden utilizar DeepLens como una interfaz nueva que permita traducir el ASL a inglés escrito u oral en tiempo real para hacer posible la interacción con los equipos.

Qué hace

Nuestra participación en el concurso AWS DeepLens Challenge demuestra que es posible si se conoce el alfabeto ASL. Elegimos este alfabeto porque está conformado, principalmente, por posiciones estáticas de las manos. Nuestro modelo es casero, está basado en el modelo de visión de SageMaker y se entrenó particularmente en un conjunto de datos específico que creamos durante el concurso. Quitamos las letras "j" y "z" porque implicaban movimiento, y agregamos señas especiales. A ustedes les toca encontrarlas.

Cómo se desarrolló

El conjunto de datos se creó con una función de Lambda específica que se ejecuta en DeepLens (ver "Subproyecto Snapshot" a continuación para obtener más información).
Hemos tomado diferentes fotografías con diferentes personas para cada letra del alfabeto (excepto "j" y "z") y para las señas especiales.
El entrenamiento se realizó con Amazon SageMaker, mediante transferencia de aprendizaje en una red SqueezeNet de 18 capas. Converge en 4 Epochs en un resultado satisfactorio.

Cómo utilizarlo:

Implementación: el modelo se encuentra ubicado en la carpeta de modelos y el gestor de funciones de Lambda se encuentra en la carpeta de Lambda. Para poder usarlo, tan solo se deben seguir los mismos pasos que se describen en la documentación de AWS, desde el paso 4.
Una vez implementado en DeepLens, deberá abrir Project Stream para ver los resultados de la inferencia e intentar crear oraciones.

Interfaz: la letra real detectada se muestra en la esquina superior izquierda (letra y porcentaje de confianza). Si no hay nada para mostrar, significa que no se reconoció ninguna letra con un porcentaje de confianza mayor al 40 %.
En la parte inferior de la imagen, se puede observar el mensaje tal como se lo escribió. Cada letra aparece si la misma letra se reconoce durante una cantidad de tiempo suficiente.
Para hacer un espacio en blanco: deje que transcurran unos segundos sin que se reconozca nada. Si desea restablecer el mensaje: espere más tiempo.

Atención:

  • Los resultados son mejores si el fondo es blanquecino y si no existen otros elementos dentro del campo de visión de DeepLens.
  • Intente reproducir las señas solo en el campo (sin rostro, cuerpo, etc.).
  • Hay una breve demora entre su movimiento y los resultados de la cámara.

Subproyecto Snapshot:
este proyecto consiste en utilizar DeepLens para generar el conjunto de datos. La cámara responde cuando el usuario hace clic en un botón para tomar una instantánea y clasifica la imagen de inmediato.
Utiliza un front-end alojado en S3. La autenticación se realiza con Cognito y la comunicación con el DeepLens mediante temas de IoT. Cuando las imágenes llegan a S3, se optimizan automáticamente para trabajos de entrenamiento de SageMaker.

Desarrollado con

python
amazon-web-services

Probar