• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

The Machine Learners

Descubriendo la IA

  • Inicio
  • Libros ML
  • Contacto
  • Sobre Nosotros

Introducción a la detección de objetos

En un post anterior hablamos de cómo implementar un clasificador de imágenes utilizando una CNN. Esto está muy bien, pero seguro que te parece aún más útil poder decir dentro de una imagen dónde se encuentra un determinado objeto. Problamente hayas jugado a buscar a ¿Dónde esta Wally? de pequeño.

Pues eso es justo lo que te voy a enseñar. Este el primero de una serie de artículos donde explicaré qué es la detección de objetos e implementaré diferentes algoritmos que han sido estado del arte en este campo a lo largo del tiempo.

Índice

  • 1 ¿Qué es la detección de objetos?
  • 2 ¿Qué es un bounding box?
  • 3 Conceptos importantes en la detección de objetos
    • 3.1 Intersect over Union
    • 3.2 Non-max suppression
  • 4 Conclusiones

¿Qué es la detección de objetos?

Anteriormente hemos mencionado qué es la clasificación de objetos. que consiste simplemente en decir si un objeto determinado se encuentra en una imagen. Pero si lo que quieres además de saber si el objeto está en la imagen o no, es ¿dónde está?, en ese caso hablamos de detección de objetos.

Al igual que en la clasificación, la detección es un problema de aprendizaje supervisado, por lo que necesitamos una etiqueta que predecir y con la que poder comparar las predicciones del modelo. Para esto, además del tipo de objeto que se encuentra en la imagen, se proporciona la ubicación del objeto en una cajita conocida como bounding box. En este tipo de problemas cuando hablemos de la etiqueta que nos proporcionan para entrenar, hablaremos del Ground Truth.

¿Qué es un bounding box?

Un bounding box, cuya traducción es algo así como caja delimitadora, hace precisamente eso, delimita los límites del objeto dentro de una imagen. En muchas ocasiones verás bounding box escrito de la siguiente forma: bbox.

El valor de un bbox suele estar conformado por 4 valores. Se suele utilizar el siguiente formato:

(x_min, y_min, x_max, y_max)

Conceptos importantes en la detección de objetos

Ahora que ya conocemos uno de los conceptos en los que nos basaremos para entrenar los modelos que veremos en siguientes posts, tenemos que saber como comparar la predicción con el bbox que nos proporcionan.

Intersect over Union

Brevemente, Interesect Over Union es una métrica para evaluar la precisión con la que un modelo predice la posición en un determinado conjunto de datos. Trata de medir como de superpuesto está el bbox predecido con el bbox a predecir.

De esta forma, se coge el área de la intersección entre los bbox y se divide por el área de la unión.

IoU = \frac{Intersección}{Unión}

Un IoU de 1 nos proporciona una superposición perfecta, mientras que un IoU de 0, quiere decir que las predicciones ni siquiera se tocan.

Non-max suppression

Como veremos en artículos posteriores, los algoritmos de detección no producen un único bounding box, sino que producen muchos, así que si hay varios que están apuntando a la misma imagen, ¿cómo decides cuál es el mejor?

Como vemos en la imagen, en este caso nuestro algoritmo ha generado múltiples bounding boxes, así que para solo quedarnos con uno, cogeríamos aquella predicción que tuviera mayor probabilidad, es decir, nos quedaríamos con aquella caja que más confianza tuviera.

Conclusiones

En este artículo hemos visto los conceptos fundamentales con los que trataremos en próximos posts.

Reader Interactions

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Primary Sidebar

Suscríbete

Síguenos en Medium.

Entradas Recientes

  • Estructuras de Datos en Python
  • Variables en Python: Todo lo que necesitas saber
  • Mejor editor de código para Python
  • Instala Anaconda para tus proyectos de Data Science
  • Qué es Python – El lenguaje de la ciencia de datos

Copyright © 2022 The Machine Learners