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. Incluso Werner Vogels piensa que la interacción por medio de la voz será el nuevo tipo de interacción tradicional (noviembre de 2017).
DeepLens podría ayudar a los equipos a comprender a quienes no pueden hablar 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.
Autor: Benjamin Meudre
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