• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

5 – Detección de objetos con YOLO

Lección 5 del curso Detección de Objetos con Deep Learning.

En la lección anterior vimos una explicación detallada del funcionamiento de los modelos YOLO para detección de objetos, así que ya estamos listos para poner en práctica todo lo aprendido hasta el momento.

Entonces, en esta lección veremos cómo afinar, validar y realizar la detección de objetos usando un modelo YOLO. En particular, veremos cómo usar este tipo de modelos para implementar un detector de objetos capaz de identificar espacios de parqueo vacíos y ocupados.

Así que comencemos viendo en detalle el set de datos que usaremos en este proyecto:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, el set de datos contiene un poco más de 2.000 imágenes de entrenamiento, cerca de 800 de validación y un poco más de 700 de prueba. Aunque es un set de datos relativamente pequeño, como veremos al final resultará adecuado para construir un detector de objetos con un desempeño bastante bueno.

Además, vimos en detalle el procesamiento que este modelo YOLO realiza sobre las imágenes, incluyendo la fase de lettering que permite reajustar el tamaño de las imágenes de entrada al modelo (durante las fases de entrenamiento e inferencia) garantizando tamaños de 640×640 pixeles sin cambiar su relación de aspecto.

Así que con esto ya estamos listos para realizar la afinación del modelo. Veamos cómo llevar a cabo esta fase:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

En esencia, para el caso particular de estos modelos YOLO, podemos implementar tres estrategias de afinación (cada una con ciertas ventajas y desventajas):

  • Podemos afinar la totalidad de los parámetros del modelo, o
  • Podemos congelar el backbone y afinar el neck y el head, o
  • Podemos congelar tanto el backbone como el neck y afinar únicamente el head

Cada una de estas estrategias implica un compromiso entre la cantidad de datos y de iteraciones de entrenamiento requeridas, así como un incremento o disminución en el desempeño del modelo obtenido.

En últimas lo que sugiero es implementar las tres estrategias de afinación y escoger aquel modelo que arroje el mejor desempeño con el set de validación.

De hecho, tras validar los tres modelos encontramos que la segunda estrategia (congelar el backbone y afinar el neck y el head) es el mejor compromiso entre el desempeño obtenido (precision y recall promedio del 96% y mAP50-95 del 77%). Así que el modelo entrenado con esta estrategia es el que seleccionaremos en este caso.

Entonces nos resta únicamente calcular el desempeño de este modelo con el set de prueba y realizar la detección de objetos:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, el detector de objetos que acabamos de implementar tiene un excelente desempeño:

  • Un precision del 96% tanto para objetos tipo «espacio de parqueo vacío» como para objetos tipo «espacio de parqueo ocupado»
  • Y también un recall del 96% para ambos tipos de objetos a detectar

Y es importante tener en cuenta que este desempeño es con el set de prueba, así que podemos asumir que el modelo alcanzará este desempeño cuando le presentemos imágenes totalmente nuevas (siempre y cuando tengan características similares a las usadas durante la afinación).

Además, vimos lo sencillo que resulta detectar objetos con el modelo afinado, usando el método «predict()», que permite obtener tanto el confidence score como la localización de cada objeto dentro de la imagen.

Así que teniendo claro cómo afinar este tipo de modelos YOLO, en la próxima lección nos enfocaremos en otra familia de modelos de detección de objetos muy usados en la actualidad: los modelos basados en Redes Transformer. Y en particular, veremos una explicación detallada del modelo DETR (Detection Transformer) para detección de objetos.

Todas las lecciones del curso Detección de Objetos con Deep Learning

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }