febrero 11, 2020 10:00 am

Jesús

La visión computarizada, como su nombre bien indica, es un campo centrado en el estudio y automatización de tareas de percepción visual. 

Suena lógico y hasta obvio, ¿no? 

A pesar de la especificidad de esta subárea de la inteligencia artificial, el volumen de problemas derivados de dicho enfoque es bastante extenso. Lo que al final del día consiste en identificar elementos en una fotografía, se compone de un sinnúmero de subprocesos, piezas móviles, tareas y etapas concretas que han de trabajar en perfecta armonía para que una determinada escena visual guarde coherencia.

De esta forma, las múltiples fases de la visión ameritan un estudio propio. Por ejemplo, una forma de entender el contenido de una fotografía es clasificándolo. Si queremos ir más allá, podemos, una vez categorizado un determinado objeto, ubicarlo en el sistema de coordenadas propio de la imagen. Posteriormente, con base a este conocimiento, podemos alterarla, mejorarla, sintetizarla o transformarla en una entrada para un sistema más grande, o de una naturaleza mixta, como aquellos encargados de generar descripciones textuales de lo que acontece en una foto digital.

Una de las aplicaciones más útiles, aunque sustancialmente más difíciles de la visión artificial es, por consiguiente, la detección de objetos, la cual constituye el foco del presente artículo.

Clasificación vs. Detección

Estos términos, aunque usados indiscriminadamente en el contexto de computer vision, contrario al carácter sinonímico que se les confiere, apuntan a dos tareas distintas.

Por un lado, la clasificación lo que busca es etiquetar el contenido de una imagen, nada más. ¿Hay un gato en esta foto? ¿Qué animal es este? ¿A qué clima pertenece este paraje? ¿De qué raza es este perro?

Por su parte, la detección va un paso más allá. No se limita a decir qué hay en la foto, sino dónde se encuentra el objeto de interés. 

La diferencia quedará más clara con un ejemplo.

En la imagen de arriba, un clasificador debidamente entrenado nos proporcionará una predicción positiva para la clase lápiz, posiblemente con un grado de confianza más que decente. Lo que no nos dará es una ubicación exacta del instrumento.

El detector también nos hará saber de la presencia de un lápiz. En adición a esta información, nos entregará la ubicación del mismo (cuadrante superior izquierdo de la foto), mediante algún mecanismo sintáctico de localización, como las coordenadas del rectángulo mínimo que encierra la región correspondiente al lápiz.

Una Breve Definición de “Objeto”

Un objeto para nuestros propósitos es cualquier elemento representable visualmente, cuya forma o características físicas no presentan un amplio rango de variabilidad. Por consiguiente, un objeto ha de ser semi-rígido.

¿Dónde Se Usa la Detección de Objetos?

En infinidad de aplicaciones de la visión artificial, la verdad. Quizás la demostración de detección de objetos más común y a la mano es el reconocimiento facial que viene integrado en la mayoría de los smartphones contemporáneos.

Cada vez que tomamos una foto de una persona, bien sea un selfie o un retrato normal, nuestra cámara utiliza un algoritmo de detección facial para asegurarse de que las caras en la imagen no se distorsionen ni se desenfoquen.

Variaciones de este mismo algoritmo es lo que soporta el etiquetado en plataformas sociales como Facebook e Instagram.

También se utiliza en la conducción autónoma para identificar obstáculos y elementos de interés en el entorno, como peatones, señales de tránsito u otros vehículos.

¿Por Qué es un Problema Difícil?

Como mencionamos anteriormente, la detección de objetos es un superconjunto de la clasificación de objetos. En términos más sencillos, es una tarea más específica, que incluye un componente de clasificación. Por tal motivo, sufre de las mismas dificultades que esta última, entre las que destacan:

  • Oclusión.
  • Desenfoque.
  • Variaciones en el color.
  • Variaciones en la iluminación.
  • Variaciones en ángulos.
  • Variaciones intraclase (por ejemplo, las gran variabilidad en las características de perros de distintas razas).

Estos son los puntos más importantes a tener en cuenta sobre la detección de objetos. Como sucede con la mayoría de los subcampos dentro de computer vision, es un área en constante evolución, donde a diario se expanden las fronteras de lo posible, razón imperiosa para mantenernos constantemente informados sobre los avances en el sector.

¿Cuál es tu aplicación favorita de detección de objetos? Compártela en los comentarios.

¡Hasta la próxima!

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.