Segmentación Panóptica

Rubén Rodríguez Abril

La técnica de Segmentación Panóptica localiza y distingue los diferentes objetos o instancias al mismo tiempo que reconoce las estructuras y texturas del fondo. En este artículo describiremos esta técnica y analizaremos la red UPSNet que la implementa.

Técnicas de segmentación

Se denominan técnicas de segmentación a aquellas disciplinas de Visión Artificial que tienen por objeto la clasificación adecuada de los píxeles de una imagen, y la división de ésta en parcelas denominadas segmentos, que pertenecen a objetos o clases de objetos. En nuestra opinión, tal vez el término zonificación hubiera sido más correcto, toda vez que un segmento es un conjunto unidimensional, y no bidimensional, de puntos.

A lo largo de esta serie hemos analizado dos variantes diferentes de este tipo de tareas: la Segmentación Semántica y la Segmentación de Instancia. En la primera los píxeles son atribuidos a una categoría concreta, como “nube”, “arroyo” o “vehículo”. En la segunda, la red elabora máscaras binarias que determinan la pertenencia de un cierto píxel a un objeto determinado.

Segmentación Panóptica

En este artículo describiremos los fundamentos de un tercer tipo de segmentación, la Segmentación Panóptica, que combina elementos de los dos anteriores.

En un mismo procedimiento, un píxel es asignado a una categoría e instancia (objeto) concretos. A cada píxel se le atribuye un número l_{i} que determina la categoría a la que pertenece. Dentro de las categorías se distingue aquellas que representan material (stuff) y las que representan cosas (things), es decir, objetos ciertos y determinados. En la primera se incluiría el “cielo”. En la segunda, las categorías “edificios” o “árboles”. Sólo estas últimas pueden poseer varias instancias (objetos individuales), a cada una de las cuales se asignaría un segundo número, z_{i}. En la Segmentación de Instancia, es posible que un píxel pertenezca a dos objetos (instancias) determinadas. En la Segmentación Panóptica, por el contrario, dicho solapamiento no es posible.

Detecciones

Como ya se ha señalado, las diferentes parcelas o zonas en las que el algoritmo divide la imagen se denominan segmentos. Si un segmento predicho por la red tiene un índice de Jacquard (de solapamiento) con otro de la verdad subyacente superior al 0,5 se dice que ha habido un verdadero positivo (true positive, TP). Cuando una instancia de la verdad subyacente no ha sido detectada por la red, el fenómeno se describe con la expresión falso negativo (false negative, FN). Si se ha producido la predicción de un segmento inexistente en la verdad subyacente, se habla de un falso positivo (false positivo, FP).

Metricas de la red

La eficiencia de la red es parametrizada por una variable denominada calidad panóptica (panoptic quality, PQ), introducida por el trabajo Kirillov et al., del año 2018. Es el resultado de la multiplicación de otras dos variables: la calidad de segmentación (segmentation quality, SQ), que es equivalente al índice de Jacquard medio de los verdaderos positivos, y la calidad de reconocimiento (recognition quality, RQ), que oscila entre 0 y 1, y penaliza la presencia de falsos negativos y falsos positivos. La fórmula ofrecida por los autores es la siguiente:

PQ = \frac{∑IoU_{(p,g)}}{|TP|}×\frac{|TP|}{|TP|+\frac{1}{2}|FP|+\frac{1}{2}|FN|}

donde IoU_{(p,g)} es el Índice de Jacquard de los verdaderos positivos, TP señala la cantidad de verdaderos positivos, y FP y FN la cantidad de falsos positivos y falsos negativos, respectivamente.

Arquitectura de UPSNet

El sistema de segmentación panóptica original propuesto por Kirillov et al. utilizaba dos redes separadas para las tareas de segmentación semántica (UPSNet) y de instancia (Mask R-CNN), cuyos resultados eran posteriormente combinados. Fue el equipo de Yuwen Xiong el primero que creó una red capaz de llevar a cabo estas tareas de un modo unificado, UPSNet (Unified Panoptic Segmentation Network), presentada en el trabajo Xiong et al. del año 2017.

La nueva red consiste en un armazón (backbone) coronado por tres cabezas diferentes: semántica, de instancia y panóptica. Ésta última es la que ofrece el resultado final a partir de la información proporcionada por las otras dos.

Armazón

El armazón está conformado por una red residual (ResNet) y una pirámide de rasgos (FPN), cuya estructura ya fue descrita en el artículo dedicado a RetinaNet. La información geométrica de menor nivel tiende a predominar en los niveles inferiores de la pirámide, mientras que la información geométrica global así como la información semántica se acumula en los niveles superiores. El nivel más bajo, P1, tiene una resolución dos veces inferior (por cada lado) a la de la imagen. Y cada nivel de la pirámide (P2, P3, P4…) tiene una resolución 4 veces inferior (la mitad en cada lado) a la de su nivel inmediatamente inferior.

Cabeza de Instancia

La información es extraída de la pirámide a diferentes niveles, y con ella se alimentan las cabezas semántica y de instancia. La cabeza de instancia tiene exactamente el mismo diseño que en Mask R-CNN, y dispone por lo tanto tres salidas: regresora (que señala las coordenadas de las ventanas), clasificadora (que identifica la clase de los objetos detectados) y máscaras binarias.

Cabeza semántica

La cabeza semántica tiene por objeto la realización de un mapa de segmentación. Su entrada son los niveles segundo a quinto (P2, P3, P4, P5), de la pirámide. Todos ellos se hacen pasar independientemente a través de varias convoluciones deformables con kernel 3×3. 

En las convoluciones deformables, el kernel no solo contiene los coeficientes por los que se multiplican las entradas, sino también parámetros acerca de cómo seleccionar los píxeles del mapa. En cada casilla del kernel se indica con el primer número el desplazamiento del píxel en el eje horizontal, y con el segundo el desplazamiento en vertical, todo respecto a la posición que tuviera en una convolución ordinaria.

Tras ello son sometidos a un incremento de resolución con el objetivo de que todos los mapas tengan una escala similar a la de P2 (es decir, ¼ del original). Una última convolución de 1×1 tiene como salida una capa con k mapas correspondientes a cada una de las clases. Los valores de las neuronas esta capa reciben el nombre de logits semánticos (semantic logits), y sobre ellos se aplica la función softmax para obtener el mapa de segmentación semántico definitivo.

Al igual que en U-Net y en otros sistemas, la función de pérdida de la cabeza semántica es la entropía cruzada, que se aplica en dos niveles, la primera sobre todo el mapa y la segunda sobre las regiones de interés. Estas últimas son definidas por las ventanas de la verdad subyacente. Aquellos píxeles que se encuentren dentro de las mismas son potenciados, es decir, reciben mayor penalización, en el cálculo de la función de pérdida.

Cabeza panóptica

La cabeza panóptica es la encargada de realizar el mapa final. Recibe como entrada los datos de las otras dos cabezas. Y ofrece como salida un tensor con mapas de características de H×W dimensiones (en nuestro ejemplo 256×512 píxeles), con el cual se realiza el mapa de segmentación panóptica. El número de mapas es igual a N_{m} + N_{ins} + 1, donde N_{m} es la cantidad de clases que representan material (stuff) -es decir que no tienen instancia, como el cielo- mientras que N_{ins} es el número de instancias (objetos) diferentes. Cada mapa corresponde a una materia o instancia diferente, y sus valores señalan la probabilidad logarítmica (sumada a una constante y medida en logits) que un píxel pertenezca a dicha materia o instancia. Hay un último mapa dedicado a las instancias pertenecientes a clases desconocidas.

Su arquitectura es relativamente sencilla, pues consiste simplemente en la realización de una serie de operaciones matemáticas sobre dichos mapas de entrada. No es una red convolucional.

Obtención de los mapas

Para construir el tensor, hemos de seguir los pasos siguientes que alimenta la cabeza semántica se han de realizar los siguientes pasos:

– De Mask R-CNN proceden n máscaras binarias diferentes correspondientes a n instancias, cada una de las cuales (Y_{i}) es etiquetada con un número de instancia i. Estas máscaras, que originariamente son cuadradas (28×28), son redimensionados, mediante interpolación lineal, a las coordenadas de su ventana (B_{i}. Tras ello, se les agrega padding cero hasta conseguir una imagen de 256×512 píxeles.

– De la cabeza semántica se extraen aquellos mapas de características de la última capa (X^{j}_{cosas}), correspondientes a las clases que representan cosas, antes de que se les aplique la función softmax. A cada clase le corresponde un mapa, que representan la probabilidad logarítmica (sumada a una constante) de que los píxeles pertenezcan a dicha clase. Para cada instancia recortamos una región de interés (X_{i}) con las coordenadas de la ventana B_{i} (proporcionadas por Mask R-CNN), mientras que el resto del mapa se pone a cero. Esta región se recorta sobre el mapa correspondiente a la clase a la que pertenece la instancia. De nuevo, se obtiene una imagen de 256×512 píxeles para cada instancia.

– Para cada objeto, las dos imágenes anteriores (Y_{i} y X_{i}) se suman. Como ya se ha señalado, la primera procede del mapa binario de Mask R-CNN y la segunda del mapa de segmentación recortado. El resultado es un mapa que señala la probabilidad logarítmica, medida en logits y sumada a una constante, de que los píxeles pertenezcan a la instancia. Todos estos mapas (que son N_{ins} en total) se incorporan al tensor.

– También se incorporan al tensor los N_{m} mapas de características (al completo) correspondientes a los materiales, antes de que se les aplique la función softmax.

– El último mapa señala qué partes de la imagen pertenecen a un objeto no identificado (es decir, sin instancia). Esto sucede cuando la red de segmentación semántica atribuye un píxel a una clase de objeto, pero Mask R-CNN no lo incluye en la ventana de ninguna instancia. Para cada pixel, tomamos el valor de aquel mapa X_{cosas} y aquella instancia recortada X_{i} con mayores puntuaciones. La diferencia entre ambas puntuaciones nos indica la probabilidad logarítmica de que dicho pixel, perteneciendo a dicha clase, no pertenezca a ninguna instancia.

Conclusión

Con este artículo damos finalizada nuestra exposición de las tareas de segmentación de imágenes, consistentes en la atribución de los píxeles de una misma a un objeto o a una clase determinada. En el siguiente artículo nos adentraremos en una técnica completamente diferente: La detección de puntos claves, que es la base de las técnicas de falsificación de imágnes y videos, conocidas con el nombre genérico de “Deep Fake”.

Lecturas Recomendadas

–  Kirillov et al (2018). Panoptic segmentation.

– Xiong et al. (2019). UPSNet: A Unified Panoptic Segmentation Network.

La Máquina Oráculo utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies