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

Codificando Bits

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

2 – Detección de objetos con Redes Convolucionales

Lección 2 del curso PyTorch Nivel Intermedio.

En la lección anterior vimos cómo usar PyTorch para implementar un clasificador de imágenes basado en Redes Convolucionales.

En esta segunda lección del curso veremos cómo usar PyTorch y las Redes Convolucionales para desarrollar un modelo detector de objetos en imágenes, una aplicación muy común en la visión por computador.

Comencemos viendo en detalle el set de datos que usaremos en esta práctica y la manera de realizar su pre-procesamiento:

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.

Así que el objetivo de esta práctica es desarrollar una Red Convolucional capaz de:

  • Predecir las coordenadas del «bounding box» correspondiente a la región de la imagen donde se encuentra el objeto de interés
  • Predecir la categoría del objeto presente en dicho «bounding box» (avión, rostro, motocicleta) así como la probabilidad asociada

Lo anterior quiere decir que desarrollaremos un modelo en PyTorch capaz de realizar una tarea de regresión (para predecir las coordenadas del «bounding box») junto con una tarea de clasificación (para predecir la categoría del objeto detectado y su probabilidad asociada).

Para lograr lo anterior debemos pre-procesar de forma adecuada tanto las imágenes como las etiquetas: en el caso de las imágenes debemos ajustar su alto y ancho para que todas tengan un tamaño fijo, mientras que en el caso del «bounding box» debemos normalizar dichas coordenadas para que estén en el rango de 0 a 1.

Con lo anterior, vimos cómo crear el Dataset de PyTorch que permitirá extraer las imágenes junto con los «bounding boxes» y las categorías correspondientes. Así que con esto, ya estamos listos para crear, entrenar, validar y poner a prueba nuestro modelo. Veamos cómo hacer esto en PyTorch:

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 el modelo que implementamos en PyTorch tiene estos elementos:

  • Un bloque central de procesamiento que consiste en una Red Convolucional encargada de extraer la información relevante de cada imagen.
  • Dos cabeceras (o pequeñas Redes Neuronales) de salida: una de regresión, encargada de predecir los «bounding boxes» y otra de clasificación, encargada de predecir la categoría del objeto detectado y su probabilidad asociada

Lo anterior implica que durante el entrenamiento y validación es necesario usar dos funciones de pérdida (una para regresión y una para clasificación) y que luego deben ser que combinadas para calcular una única pérdida con la cual el algoritmo de entrenamiento ajusta progresivamente los parámetros del modelo.

Y una vez entrenado y validado este modelo, vimos cómo generar predicciones obteniendo resultados bastante buenos (más aún teniendo en cuenta que el set de datos usado durante el entrenamiento era relativamente pequeño).

Así que con esto ya hemos visto cómo podemos usar PyTorch para implementar un detector de objetos, una aplicación muy común en la visión por computador.

En la siguiente lección comenzaremos a enfocarnos en un segundo tipo de modelos de Deep Learning muy usado en el procesamiento de secuencias: las Redes LSTM. Y específicamente veremos cómo usar PyTorch para realizar la clasificación (o análisis) de sentimientos usando Redes LSTM.

Todas las lecciones del curso PyTorch Nivel Intermedio

© 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 }