Estimación de Pose Humana
Rubén Rodríguez Abril
La Estimación de Pose son modelos de Deep Learning especializados en la detección de la figura y las posturas humanas
Estimación de pose
La Estimación de Pose es aquel método de Visión Artificial utilizado para detectar las articulaciones y otros puntos clave del cuerpo humano. Desde hace un par de décadas se han venido utilizando múltiples métodos estadísticos para la realización de esta tarea. Pero fue a partir del trabajo de Toshev y Szegedy del año 2014 y de su sistema DeepPose cuando se adoptaron mayoritariamente con este fin modelos basados en redes convolucionales.
El trabajo fundacional de Kunikiho Fukushima del año 1979 demostraba que la existencia de capas de convolución en una red neuronal hacía posible la detección de figuras geométricas como aristas, segmentos rectos o curvas, lo cual, ciertamente apuntaba a su posible uso para detectar patrones geométricos del cuerpo y del rostro humanos. DeepPose utilizaba una red de arquitectura similar a la de AlexNet, con la única diferencia que la última capa era de regresión: sus neuronas no señalaban la categoría/clase de la imagen, sino las coordenadas (x,y) de sus puntos clave. La función de pérdida no era softmax, sino L2, y se calculaba, para cada punto clave propuesto, respecto al punto de la verdad subyacente más cercano euclídeamente.
Modelos de estimación de pose
Los modelos de estimación de pose basados en redes convolucionales han sido refinados a lo largo de los últimos años. Se clasifican en dos grandes categorías: de abajo arriba (bottom-up) y de arriba a abajo (top-down). En el primero de los casos, la red detecta primero las articulaciones (puntos clave) y en base a ellas se crea un grafo con la estructura del cuerpo. En el segundo caso, sucede lo contrario: se procede en primer lugar a la detección del cuerpo humano en su conjunto, y posteriormente se determina su estructura interna.
Este artículo estará dedicado a examinar someramente dos de los algoritmos bottom-up más utilizados para esta tarea: OpenPose, que utiliza una red convolucional VGG19, y Simple Pose, que utiliza una arquitectura novedosa: la de los relojes de arena apilados (stocked hourglasses).
Open Pose
OpenPose basa su funcionamiento en dos instrumentos intermedios diferentes: Los mapas de fiabilidad (Part Confidence Maps), que señalan la probabilidad de que un determinado píxel pertenezca a un punto clave del cuerpo humano y los campos de afinidad (Part Affinity Fields, PAFs), que son campos vectoriales que indican la orientación del cuerpo humano. A partir de ellos, se elabora el mapa definitivo con los puntos de estimación.
Cada mapa de fiabilidad se vincula a una articulación humana determinada (codo izquierdo, hombro derecho…). Es una suerte de “mapa de calor” (“heat map”) cuya intensidad es mayor cuanto mayor sea la cercanía a la articulación. Cada campo de afinidad está asociado a un miembro o extremidad del cuerpo humano (antebrazo, muslo…). Es un campo vectorial de dos dimensiones que señala la orientación, el flujo, a través de dicha extremidad. Cada campo se construye a partir de dos mapas de características, que señalan respectivamente las coordenadas x e y de cada vector.
Arquitectura de Open Pose
La arquitectura de la red es extraordinariamente simple. La imagen inicial se hace pasar por las diez primeras capas de la arquitectura VGG-19, y tras ello atraviesa sucesivamente dos subredes convolucionales. La primera de ellas elabora los mapas de fiabilidad y la segunda los campos de afinidad (PAFs). En ambos casos se trata de mapas de características, propios de las redes convolucionales.
El elemento básico de estas subredes es una suerte de bloque convolucional residual, en el que se mezcla la información de tres capas convolucionales sucesivas.
F representa las 10 primeras capas de la red VGG-19. La salida se hace pasar a través de la red convolucional P (en azul) para obtener los mapas de fiabilidad. Hay cinco bloques de convolución seguidos de dos capas de convolución 1×1. Los mapas de características resultantes equivalen a los mapas de confianza. Estos mapas, sumados a la imagen inicial, se hacen pasar por la red para obtener los campos de afinidad S. La arquitectura de la segunda subred es exactamente igual a la primera. Al final de cada subred se aplica una función de pérdida regresora.
Cada imagen procedente de VGG-19 F se hace pasar un número repetido (t_{p}) de veces a través de la red. Los mapas de fiabilidad obtenidos se concatenan a los mapas de características de VGG-19 y se hacen pasar t_{c} veces a través de la segunda red, que produce los mapas de afinidad. Mapas de fiabilidad y PAFs son los instrumentos a partir de los cuales un nuevo algoritmo elabora la estimación de pose humana definitiva.
Simple Pose
"Relojes de arena"
El algoritmo Simple Pose se basa en un nuevo tipo de arquitectura de red denominada “stocked hourglasses” (“relojes de arena apilados”), introducida por el trabajo Newell et al. del año 2016. El principio básico sobre el que se basa esta nueva estructura es la mezcla de información semántica y geométrica a diferentes niveles, lo cual la hace no muy diferente a otras redes que hemos analizado en esta serie como U-Net, las redes piramidales de rasgos o los autocodificadores.
Cada reloj de arena es una red convolucional. En su primera parte, la imagen de entrada experimenta una reducción progresiva de resolución. En la segunda parte sucede exactamente lo contrario. La estructura de la red es completamente simétrica.
Estructura de un “reloj de arena”. Está formado por “bloques residuales” (representado a la derecha). En la primera sección del reloj, después de cada bloque hay una capa de pooling que reduce la resolución de cada lado a la mitad. Para la segunda parte, sucede lo contrario. En cada nivel existen “conexiones atajo” que conectan las dos partes del reloj de arena de un modo similar a como sucede en U-Net o en las redes piramidales.
Arquitectura de Simple Pose
Simple Pose está formada por una sucesión de bloques, cada uno de los cuales cuenta con su propio reloj de arena.
Uno de los bloques que forman Simple Pose. Entre los “relojes de arena” se disponen “módulos intermedios”. Los rectángulos negros representan convoluciones de 1×1 y el pequeño rectángulo morado un conjunto de “mapas calientes”. Como se puede ver, cada reloj de arena produce una colección de mapas calientes, pero sólo los producidos al final sirven de base para realizar la estimación de pose humana definitiva. A través de ellos se inyecta la función de pérdida en áreas intermedias de la red, en un procedimiento que los autores denominan “supervisión intermedia”.
Supervisión intermedia
Los creadores de esta arquitectura demostraron que la “supervisión intermedia” es crítica a la hora de realizar predicciones fiables sobre las articulaciones del cuerpo humano. En nuestra opinión, ésta es una variante más de todas aquellas técnicas que pretenden soslayar el problema de la desaparición del gradiente, que afecta a cualquier sistema entrenado mediante la retropropagación del gradiente de la función de pérdida. Es una solución análoga a la de los clasificadores auxiliares utilizados en GoogLeNet, que inyectan la función gradiente en partes intermedias de la misma.
Función de pérdida
La función de pérdida utilizada es L2, calculada a partir de los valores de cada píxel. Al igual que sucede en el caso de RetinaNet, se utiliza una suerte de variante focal de la función de pérdida, en cuya virtud se da más peso a los píxeles con valores positivos que a los que contienen negativos, para evitar la descomposición estadística que suele existir en favor de estos últimos, y que afectan al rendimiento de la red.
Generación de mapas calientes
Los mapas calientes de la verdad subyacente son elaborados a partir de distribuciones gaussianas centrados en cada “punto clave” (centro de la articulación). La desviación típica de las mismas no puede ser demasiado grande, porque en ese caso se produce una pérdida de precisión en la localización. Y tampoco demasiado pequeña, ya que ello contribuiría a la descompensación de la función de pérdida en favor de los valores negativos antes descritos. Bases de datos como COCO han elaborado colecciones de imágenes en las que se localizan puntos clave de hasta 17 clases diferentes.
Sobre cada mapa caliente se aplica un algoritmo no maximal (non-maximal algorithm) con el objetivo de recuperar los puntos clave. Una ventana de 3×3 se va desplazando a través de la pantalla y en cada posición, los píxeles con valores no máximos se ponen a cero. De este modo, las distribuciones gaussianas vuelven a ser transformadas en puntos, y con estos puntos se elabora la estructura general del cuerpo humano.
Conclusión
La estimación de pose humana ha adquirido una cada vez mayor importancia en el ámbito de la visión artificial, y en la actualidad es utilizada, entre otras muchas cosas, para predecir el comportamiento de los peatones (en el caso de los vehículos sin conductor), o incluso para detectar la posición de un jugador e introducirla en el entorno de un juego hiperrealista en 3 dimensiones (sistema Kinect de Microsoft).