abril 4, 2020 10:00 am

Jesús

Hasta este punto hemos estudiado diversos algoritmos utilizados para describir o, más bien, condensar el contenido de una imagen en una representación vectorial. 

Ya que la información contenida en una fotografía digital es variopinta, tanto en naturaleza como en forma, descubrimos que ciertos descriptores trabajan exclusivamente sobre el color, mientras que otros se centran más en la forma, e incluso se da el caso de procedimientos ideados para cuantificar la textura en una imagen.

Ahora bien, ¿qué tienen estos algoritmos en común? Entre otros aspectos, el hecho de que son globales.

¿Qué significa que sean globales? En términos sencillos, que producen un único feature vector por imagen. De manera más concreta, consideran todo el contenido de la misma, hasta el último píxel, dentro de sus cálculos.

Si bien esta cualidad no es negativa en sí misma, resulta insuficiente en determinadas circunstancias donde requerimos información más precisa para interpretar un objeto, o cuando las condiciones de la imagen no son las mejores (por ejemplo, hay mucho ruido de fondo o múltiples objetos en la foto). 

En estos casos, acudimos a descriptores locales.

¿Cuándo Usar un Descriptor Global?

A pesar de no ser un axioma, por regla general los descriptores globales vienen bien cuando la calidad de la foto es superior. En otras palabras, si una imagen presenta las siguientes características, la probabilidad de que un image descriptor capture apropiadamente su esencia incrementa considerablemente:

  • El objeto de interés ocupa la mayor parte de la foto.
  • No hay exceso de ruido.
  • No hay más de un objeto en la foto.

Supongamos que deseamos implementar un clasificador de barcos y nuestro conjunto de datos se compone de imágenes como la de abajo:

En este caso, uno o varios descriptores de imágenes harían muy bien su trabajo, ya que la mayor parte del plano de la foto se encuentra ocupado por el objeto de interés, es decir, el barco. Así mismo, la calidad de la imagen es buena, con una cantidad mínima de detalles foráneos a la nave, que aún así añaden un contexto útil para nuestro clasificador (concretamente, el agua).

Un descriptor HOG o incluso uno basado en momentos de Hu podría funcionar sin inconvenientes.

¿Cuándo Usar un Descriptor Local?

Antes de responder este interrogante, primero aclaremos qué es un descriptor local.

Como su nombre lo indica, un descriptor local se enfoca, a diferencia de su contraparte global, en regiones “interesantes” de una imagen. Nota que usé regiones, en plural. Por consiguiente, el resultado serán múltiples feature vectors, en vez de uno solo.

Imaginemos que esta vez queremos engendrar un programa para extraer texto de imágenes como esta:

Si atacamos este problema con un descriptor global, ¿crees que nos va a ir bien? 

Yo diría que no, por las siguientes razones:

  • Sólo nos importa el texto, pero éste constituye una fracción de la imagen.
  • Hay múltiples objetos diferentes que no añaden contexto útil, sino que, al contrario, producen ruido.
  • Las condiciones de esta imagen no son generalizables a todas las posibles imágenes que contengan texto.

Como un descriptor global no discrimina, sino que consume la imagen en su totalidad, el vector resultante tendría información innecesaria para nuestra labor, correspondiente a aspectos como la paleta de colores, la figura de la taza, la ubicación del pasaporte, las arrugas del mantel, etcétera.

Lo que necesitamos describir son sólo las letras que componen el texto. En otras palabras, necesitamos un descriptor local.

Regiones Clave

La pregunta del millón es “dónde mirar”. O sea, ¿cómo sabe un descriptor local qué regiones describir? 

Es aquí donde introducimos el concepto de región clave

Una región es clave cuando provee información valiosa sobre el objeto o porción de la fotografía a la que pertenece. De manera más directa, una región clave es un grupo de píxeles que muestran en gran medida unicidad (qué tan fácil podemos saber de dónde salió la región) y repetibilidad (¿podemos seguir identificando la región si cambia la perspectiva, iluminación u otras propiedades de la imagen?). 

En la foto anterior, los extremos de las letras son puntos clave; un punto cualquiera en la pared del fondo, no. Los primeros identifican características distintivas del objeto de interés, mientras que el segundo no.

El primer parche no puede ser una región clave porque no sabemos exactamente de dónde salió. Tiene un nivel de detalle muy pobre que nos impide identificar su procedencia. Por otro lado, la segunda porción ha sido claramente extraída de la esquina superior izquierda del cartel. Esto lo sabemos gracias a que vemos las letras T y R, parte del marco blanco del cuadro, así como el fondo negro corrugado del mismo. A mayor detalle, más fácil caracterizar una región.

¿Cómo Determina un Descriptor Local las Regiones Clave?

Como todo en la visión computarizada, mediante algoritmos. Estos se conocen como extractores de puntos clave (en inglés: keypoint extractors). Durante las próximas semanas los conoceremos a fondo.

¡Hasta pronto!

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.