Por Miguel Camacho Linkedin

CTO at Smartvel Founder & CEO at Atalaya Technologies y director académico del Big Data International Campus

Miguel Camacho
Miguel Camacho

Por Miguel Camacho Linkedin

CTO at Smartvel Founder & CEO at Atalaya Technologies y director académico del Big Data International Campus

Pose con Deep Learning

La Inteligencia Artificial es una ciencia muy multidisciplinar. Uno puede bucear en las -a veces- oscuras matemáticas de una red neuronal o calcular miles de probabilidades para construir un modelo. De las muchas opciones que tiene el usuario de inteligencia artificial hay una que sobresale: La de los Algoritmos pre-entrenados.

La inteligencia artificial se caracteriza por la capacidad para adaptarse a un problema y resolverlo basado en datos históricos. Pero para cocinar un algoritmo necesitamos muy diferentes ingredientes: Datos, tiempo y energía. Y un buen Hardware para procesarlo. Y los algoritmos basados en datos no estructurados, como imágenes o texto libre necesitan una increíble cantidad de datos. Queda fuera del alcance de un individuo recopilar tal cantidad de datos, con nuestros recursos y en casa no podemos entrenar una gran red neuronal en tiempo y forma. Por eso son tan útiles los algoritmos pre-entrenados.

Los algoritmos pre-entrenados son potentes herramientas creadas por grandes jugadores del mundo de la IA que puedes usar para resolver problemas similares. Son gratuitos y simples de usar, pensados para sacar valor de ellos con facilidad. No tienes que entrenarlo con cantidades ingentes de datos ni decidir la arquitectura a usar, eso ya está hecho.

Los algoritmos pre-entrenados tienen vocación genérica para que cada usuario pueda adaptarlos a sus necesidades, pero la mayoría pueden funcionar en cuanto salen de la caja. Podríamos decir que son plug-and-play.

Hay una familia de algoritmos pre-entrenados increíblemente útiles para un gran número de aplicaciones relacionadas con nuestra posición corporal: La Estimación de la Pose. La Estimación de la Pose es un conjunto de técnicas de visión por ordenador para detectar figuras humanas en imágenes y videos y mostrar sus articulaciones clave. El resultado final es una representación de nuestras articulaciones y puntos clave para detectar nuestra posición

TensorFlow

Source: TensorFlow examples

La Estimación de la Pose es un conjunto de técnicas de visión por ordenador para detectar figuras humanas en imágenes y videos y mostrar sus articulaciones clave.

APRENDE MÁS CON EL MÁSTER EN MACHINE LEARNING

Construir un algoritmo así es costoso: Necesitas un número ingente de imágenes etiquetadas por un experto humano, un gran conocimiento de varias disciplinas de IA, un hardware muy potente y paciencia. Por suerte nosotros no tenemos que construirlo, solamente adaptarlo mínimamente si es necesario y usarlo. Muchas de las soluciones que se están generando basadas en estos algoritmos son extremadamente potentes y simples

Cómo funciona Detección de la Pose a alto nivel

Cómo funciona el algoritmo por dentro es un tema apasionante que dejo para otra ocasión. Aquí vamos a discutir cómo funciona desde el punto de vista de un usuario. Podríamos considerarlo una caja negra a efectos prácticos.

Esa caja negra que es nuestro algoritmo recibe imágenes RGB. Pueden ser fotografías, pueden ser imágenes en movimiento, de diversas calidades y formatos. Lo importante es que haya al menos una persona en la imagen.

Cuando la entrada es una imagen de una -o varias- personas, los algoritmos de detección de la pose devuelven un mapa de calor de las articulaciones del cuerpo. Es decir, te dice dónde es probable que estén tus articulaciones en una imagen. Cada articulación tiene asociada una confianza. Si la foto es clara, con buena visibilidad del cuerpo y se ve bien la articulación, la confianza es grande. Si por el contrario la articulación se ve mal -por ejemplo, porque esté oculta tras otra parte del cuerpo- la confianza será pequeña.

fotografías, pueden ser imágenes en movimiento

Source: Norimichi Ukita, et al

La estimación de la pose no es una tecnología nueva. Aún recuerdo viendo el “Cómo se hizo” de los extras de la película del Señor de los Anillos a Andy Serkis con un traje especial con marcadores. Las imágenes de esos marcadores se convertirían en una referencia para digitalizar por encima al personaje de Gollum. También recuerdo hace unos 10 años cuando salió Kinetic para xBox, una cámara que leía la posición y te permitía jugar moviéndote delante de la cámara. La gran novedad de nuestros tiempos es que podemos usar esta tecnología sin cámaras ni trajes especiales gracias a la potencia de las redes neuronales. Cualquiera con una webcam puede hacer estimación de la pose ahora. La inteligencia artificial ha democratizado su uso y desarrollo

Aun así, hay que tener varias consideraciones en cuenta para adaptar estos algoritmos a tu aplicación. Entre otras:

  • ¿Cuántas personas quiero detectar?
  • ¿Qué tipo de entrada tengo? ¿Cuántas cámaras graban la misma escena?
  • ¿Quiero aplicarlo a una imagen estática o a un video?
  • ¿Quiero un modelo en 2D o en 3D?
  • ¿Qué modelo corporal necesito? ¿Uno con 13 articulaciones o con 33?

Una vez que sabemos lo que queremos hacer solo necesitamos configurar el algoritmo y usarlo.

Ejemplos de uso de Estimación de la Pose

Es imposible enumerar todos los usos de esta tecnología, pero contaré algunos de los que más me gustan a mí o más curiosos me parecen.

  • En el ámbito deportivo es muy útil para detectar los movimientos de deportistas realizando alguna acción. Podemos hacer desde una aplicación que te enseñe a lanzar tiros libres hasta una que te indique cómo mejorar tu pedaleo en ciclismo.
  • En el ámbito sanitario hay aplicaciones que pueden medir distonías musculares para estudiar la eficacia de un tratamiento. O aplicaciones que nos ayuden a realizar correctamente nuestros ejercicios de fisioterapia.
  • En el ámbito de la seguridad, podemos estudiar las poses de las personas para saber si están predispuestas a la violencia en grandes concentraciones. Las cámaras de un estadio deportivo podrían analizar la pose de la gente y mandar seguridad si detecta actividad sospechosa.
  • En el ámbito del entretenimiento podemos diseñar juegos que se controlan con nuestra propia posición corporal.

Y podemos seguir hasta donde nuestra imaginación llegue. Combinando ámbitos, como una aplicación entre el ámbito deportivo y sanitario que caracterice los movimientos de los jugadores de boccia con parálisis cerebral. Entre el entretenimiento y la salud podemos imaginar una aplicación que te corrija y ayude en tus sesiones de yoga.

O podemos ponernos imaginativos y crear una aplicación que controle la domótica de nuestra casa o nuestro ordenador con nuestros gestos como hemos visto en el cine en películas como Minority Report o Iron Man. Hay que tener en cuenta que la estimación de la pose acepta muchos modelos corporales y algunos pueden leer las posiciones de nuestros dedos o incluso las expresiones faciales.

¿Cómo obtengo un modelo de estimación de la pose? ¿Dónde puedo ver ejemplos? Puedes empezar por aquí: https://github.com/tensorflow/tfjs-models/tree/master/posenet/demos

APRENDE MÁS CON EL MÁSTER EN MACHINE LEARNING

Comparte este post