Entrades classificades amb: Visió Artificial

Aplicació d’Intel·ligència Artificial en el reconeixement de la Llengua de signes catalana

Leer en castellano
Read It in English

En aquesta entrada s’explica breument la recerca realitzada per estudiar mecanismes per al reconeixement de la llengua de signes a partir d’imatges.

Aquest projecte es va plantejar degut a que des del CCI es vol potenciar la utilització de la intel·ligència artificial per aconseguir beneficis en àmbits relacionats amb la salut. En una societat on cada dia s’aposta més per la integració de les persones amb discapacitat i on la tecnologia cada dia és més present, es considera que cal cercar formes d’aprofitar-la per aquest fi.

En aquest projecte a més d’estudiar les possibilitats en l’àrea del reconeixement de la llengua de signes, es va realitzar una eina per facilitar l’aprenentatge i la millora en l’ús de la llengua de signes catalana (LSC). Aquesta eina permet fer una demostració d’una de les possibles aplicacions que podria tenir aquest algoritme. Addicionalment podria tenir moltes altres aplicacions, com per exemple un traductor per mòbils amb càmera que permetés la comunicació amb persones no familiaritzades amb la LSC.

Un dels punts claus en un sistema de reconeixement d’imatge és el sistema de captura d’aquestes. La tecnologia escollida és el dispositiu Kinect desenvolupat per Microsoft mitjançant el qual es capturen els signes duts a terme per l’usuari. El procés de captura es duu a terme utilitzant la càmera de profunditat que inclou Kinect. A més de capturar la profunditat, gràcies a la càmera d’infrarojos permet una major independència de la il·luminació disponible tant en la captura d’imatges d’entrenament com en la fase d’explotació.

Quan Kinect retorna la imatge de profunditat, imatge on es representa la profunditat amb diferents colors, aquesta es binaritza. Aquest procés consisteix en que si el valor d’un píxel supera el llindar el píxel serà d’un color (blanc o negre) i si no el supera serà de l’altre color. D’aquesta manera es pot separar les mans del fons.

Posteriorment la imatge binaritzada ha de passar un sistema de preselecció que s’encarrega de descartar les lletres que no coincideixin en orientació i nombre de vèrtexs amb la imatge d’entrada.

Després de la preselecció s’inicia l’algoritme d’agrupament Knn sobre les lletres preseleccionades, aquest algoritme utilitza dos paràmetres que són l’àrea de la mà segmentada en quatre porcions i el perímetre de la mà. L’algoritme Knn determina la lletra que ha realitzat l’usuari, comparant el valor dels dos marcadors de la mostra realitzada per l’usuari amb les mostres d’entrenament que té l’aplicació.

A la següent imatge es representa de forma resumida aquest procés.

L’algoritme de clustering Knn consta de dues parts. Prèviament a la fase d’explotació del algoritme es necessari realitzar una fase d’entrenament en la que es defineixen els clústers que corresponen a cadascuna de les lletres.

Per generar aquests clústers es proporciona a l’algoritme un conjunt d’imatges de mostra  etiquetades amb la lletra a que es corresponen. Les mostres d’entrenament són imatges dels signes realitzades per un grup de persones de diferents edats, sexes i races. En base a l’àrea segmentada de la mà i el perímetre d’aquesta es situen les mostres en l’espai formant els diferents clústers.

En la fase d’explotació inicialment es calcula el valor dels marcadors de la mostra a reconèixer per poder situar la nova mostra dins l’espai de mostres d’entrenament.

A continuació es calcula la distància euclidiana de la mostra a reconèixer amb totes les mostres d’entrenament utilitzant els valors dels marcadors dividits entre la seva variança per tal d’igualar el seu pes. Es necessari dividir els marcadors entre la variança per evitar que els de major variabilitat tinguin un pes major a l’algoritme.

Seguidament cal obtenir el conjunt de les K mostres d’entrenament amb major similitud i determinar quina lletra té un major nombre d’ocurrències. La lletra predominant és el resultat del reconeixement. Es a dir s’obté les mostres que estan més properes en l’espai a la imatge que es vol reconèixer, suposant que aquestes pertanyen a la mateixa lletra.

Per últim el procés de Knn es repeteix 25 vegades per signe, a partir de 50 imatges del signe realitzat, agafades no consecutivament per reduir l’efecte de possibles errors de captura. A aquestes 25 imatges es comprova que com a mínim hi hagi una lletra que hagi estat seleccionada pel Knn més cops que el valor definit pel marge d’acceptació, en cas contrari s’informa que el reconeixement ha fallat. El valor òptim del marge d’acceptació s’ha considerat de quinze, mitjançant proves empíriques amb diferents persones utilitzant l’aplicació.

Llegir en català
Read It in English

En esta entrada se explica brevemente la investigación realizada para estudiar mecanismos para el reconocimiento de la lengua de signos a partir de imágenes.

Este proyecto se planteó debido a que desde el CCI se quiere potenciar la utilización de la inteligencia artificial para conseguir beneficios en ámbitos relacionados con la salud. En una sociedad donde cada día se apuesta más por la integración de las personas con discapacidad y donde la tecnología cada día es más presente, se considera que hay que buscar formas de aprovecharla por este fin.

En este proyecto además de estudiar las posibilidades en el área del reconocimiento de la lengua de signos, se realizó una herramienta para facilitar el aprendizaje y la mejora en el uso de la lengua de signos catalana (LSC). Esta herramienta permite hacer una demostración de una de las posibles aplicaciones que podría tener este algoritmo. Adicionalmente podría tener otras muchas aplicaciones, como por ejemplo un traductor para móviles con cámara que permitiera la comunicación con personas no familiarizadas con la LSC.

Uno de los puntos claves en un sistema de reconocimiento de imagen es el sistema de captura de estas. La tecnología escogida es el dispositivo Kinect desarrollado por Microsoft mediante el cual se capturan los signos llevados a cabo por el usuario. El proceso de captura se realiza utilizando la cámara de profundidad que incluye Kinect. Además de capturar la profundidad, gracias a la cámara de infrarrojos permite una mayor independencia de la iluminación disponible tanto en la captura de imágenes de entrenamiento como en la fase de explotación.

Cuando Kinect devuelve la imagen de profundidad, imagen donde se representa la profundidad con diferentes colores, esta se binariza. Este proceso consiste en que si el valor de un píxel supera el umbral definido el píxel será de un color (blanco o negro) y si no lo supera será del otro color. De este modo se puede separar las manos del fondo.

Posteriormente la imagen binarizada tiene que pasar un sistema de preselección que se encarga de descartar las letras que no coincidan en orientación y número de vértices con la imagen de entrada.

Después de la preselección, se inicia el algoritmo de agrupamiento Knn sobre las letras preseleccionadas, este algoritmo utiliza dos parámetros que son el área de la mano segmentada en cuatro porciones y el perímetro de la mano. El algoritmo Knn determina la letra que ha realizado el usuario, comparando el valor de los dos marcadores de la muestra realizada por el usuario con las muestras de entrenamiento que tiene la aplicación.

En la siguiente imagen se representa de forma resumida este proceso.

El algoritmo de clustering Knn consta de dos partes. Previamente a la fase de explotación del algoritmo es necesario realizar una fase de entrenamiento en la que se definen los clústeres que corresponden a cada una de las letras.

Para generar estos clústeres se proporciona al algoritmo un conjunto de imágenes de muestra etiquetadas con la letra a que se corresponden. Las muestras de entrenamiento son imágenes de los signos realizadas por un grupo de personas de diferentes edades, sexos y razas. En base al valor del área segmentada de la mano y el perímetro de esta se sitúan las muestras en el espacio formando los diferentes clústeres.

En la fase de explotación inicialmente se calcula el valor de los marcadores de la muestra a reconocer para poder situar la nueva muestra dentro del espacio de muestras de entrenamiento.

A continuación se calcula la distancia euclídea de la muestra a reconocer con todas las muestras de entrenamiento utilizando los valores de los marcadores divididos entre su varianza para igualar su peso. Es necesario dividir los marcadores entre la varianza para evitar que los de mayor variabilidad tengan un peso mayor en el algoritmo.

Seguidamente hay que obtener el conjunto de las K muestras de entrenamiento con mayor similitud y determinar qué letra tiene un mayor número de ocurrencias. La letra predominante es el resultado del reconocimiento. Es decir se obtiene las muestras que están más cercanas en el espacio a la imagen que se quiere reconocer, suponiendo que estas pertenecen a la misma letra.

Por último el proceso de Knn se repite 25 veces por signo, a partir de 50 imágenes del signo realizado, cogidas no consecutivamente para reducir el efecto de posibles errores de captura. En estas 25 imágenes se comprueba que como mínimo haya una letra que haya sido seleccionada por el Knn más veces que el valor definido por el margen de aceptación, en caso contrario se informa que el reconocimiento ha fallado. El valor óptimo del margen de aceptación se ha considerado de quince, mediante pruebas empíricas con diferentes personas utilizando la aplicación.

This post is only available in Catalan and Spanish:
Llegir en català (Read it in Catalan)
Leer en castellano (Read it in Spanish)