Introducción a Computer Vision

1

¿Qué es la visión computarizada y cuáles son sus tipos?

Detección de objetos

2

Introducción a object detection: sliding window y bounding box

3

Generando video de sliding window

4

Introducción a object detection: backbone, non-max suppression y métricas

5

Visualización de IoU en object detection

6

Tipos de arquitecturas en detección de objetos

7

Arquitecturas relevantes en object detection

8

Utilizando un dataset de object detection

9

Carga de dataset de object detection

10

Exploración del dataset de object detection

11

Visualización de bounding boxes en el dataset de object detection

12

Aumentado de datos con Albumentation

13

Implementando Albumentation en object detection

14

Visualizando imágenes con aumentado de datos

15

Utilizando un modelo de object detection pre-entrenado

16

Probar detección de objetos con modelo pre-entrenado

17

Fine-tuning en detección de objetos

18

Fine-tuning en detección de objetos: carga de datos

19

Fine-tuning en detección de objetos: data augmentation

20

Fine-tuning en detección de objetos: entrenamiento

21

Fine-tuning en detección de objetos: visualización de objetos

Quiz: Detección de objetos

Segmentación de objetos

22

Introduciendo la segmentación de objetos

23

Tipos de segmentación y sus arquitecturas relevantes

24

¿Cómo es un dataset de segmentación?

25

Utilizando un dataset de segmentación de objetos

26

Visualización de nuestro dataset de segmentación

27

Creando red neuronal U-Net para segmentación

28

Entrenando y estudiando una red de segmentación

29

Generando predicciones con modelo de object segmentation

Quiz: Segmentación de objetos

Un paso más allá

30

El estado de la cuestión en computer vision

31

Comparte tu proyecto de detección y segmentación de objetos para conducción autónoma y certifícate

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
2 Hrs
18 Min
25 Seg

Implementando Albumentation en object detection

13/31
Recursos

Aportes 1

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Aquí tienes un ejemplo detallado de cómo implementar Albumentations en un flujo de trabajo de detección de objetos. Este código simula la preparación y aumento de datos en un conjunto de datos de detección de objetos, aplicando transformaciones y asegurando que las bounding boxes se ajusten correctamente. \### Paso a Paso para Implementar Albumentations en Detección de Objetos 1\. \*\*Definir Transformaciones de Aumento\*\*: Configura varias transformaciones de Albumentations que aplicaremos a las imágenes y a sus bounding boxes. 2\. \*\*Aplicar Transformaciones a Cada Imagen\*\*: Usa un bucle para procesar cada imagen en el conjunto de datos, aplicando las transformaciones y manteniendo las etiquetas de las cajas delimitadoras. 3\. \*\*Visualizar\*\*: Muestra las imágenes con bounding boxes para verificar el resultado. \### Ejemplo de Código ```python import albumentations as A import cv2 import matplotlib.pyplot as plt import numpy as np \# Configuración de transformaciones de Albumentations transform = A.Compose(\[ A.HorizontalFlip(p=0.5), A.VerticalFlip(p=0.5), A.RandomBrightnessContrast(p=0.2), A.Rotate(limit=30, p=0.5), A.RandomSizedBBoxSafeCrop(width=256, height=256, p=0.5), A.Resize(width=300, height=300) ], bbox\_params=A.BboxParams(format='pascal\_voc', label\_fields=\['category\_ids'])) \# Ejemplo de imagen y bounding boxes en formato Pascal VOC (x\_min, y\_min, x\_max, y\_max) image = cv2.imread('ruta/a/imagen.jpg') # Reemplaza con la ruta de tu imagen image = cv2.cvtColor(image, cv2.COLOR\_BGR2RGB) # Convertir de BGR a RGB si es necesario \# Definir bounding boxes y etiquetas de categorías bboxes = \[\[30, 40, 200, 210], \[50, 90, 150, 170]] # Bounding boxes de ejemplo category\_ids = \[1, 2] # Etiquetas de las clases correspondientes \# Aplicar las transformaciones a la imagen y bounding boxes augmented = transform(image=image, bboxes=bboxes, category\_ids=category\_ids) augmented\_image = augmented\['image'] augmented\_bboxes = augmented\['bboxes'] \# Función para visualizar la imagen con bounding boxes def visualize\_bbox(img, bboxes, category\_ids, category\_id\_to\_name): fig, ax = plt.subplots(1, 1, figsize=(8, 8)) ax.imshow(img) for bbox, cat\_id in zip(bboxes, category\_ids): x\_min, y\_min, x\_max, y\_max = bbox rect = plt.Rectangle((x\_min, y\_min), x\_max - x\_min, y\_max - y\_min, linewidth=2, edgecolor='r', facecolor='none') ax.add\_patch(rect) ax.text(x\_min, y\_min - 5, category\_id\_to\_name\[cat\_id], color='red', fontsize=12, backgroundcolor='white') plt.axis('off') plt.show() \# Diccionario para convertir IDs de categorías a nombres (opcional) category\_id\_to\_name = {1: 'Clase 1', 2: 'Clase 2'} \# Visualizar imagen aumentada con bounding boxes visualize\_bbox(augmented\_image, augmented\_bboxes, category\_ids, category\_id\_to\_name) ``` \### Explicación del Código \- \*\*Transformaciones\*\*: Las transformaciones aplicadas incluyen rotaciones, volteos, ajuste de brillo y contraste, y un recorte seguro (mantiene las bounding boxes). \- \*\*Bounding Boxes\*\*: `A.BboxParams` se configura con el formato `'pascal\_voc'` para que Albumentations interprete las cajas correctamente. Además, `label\_fields=\['category\_ids']` asegura que las etiquetas de clase se mantengan junto a las bounding boxes. \- \*\*Visualización\*\*: La función `visualize\_bbox` dibuja las bounding boxes en la imagen aumentada y, opcionalmente, muestra la clase en cada una. Esto es útil para verificar que las transformaciones mantengan la integridad de las etiquetas. \### Notas 1\. \*\*Formato de Bounding Boxes\*\*: Albumentations admite varios formatos de bounding boxes (`'pascal\_voc'`, `'coco'`, `'yolo'`). Asegúrate de usar el que corresponda a tu dataset. 2\. \*\*Uso en Lote\*\*: Este código procesa una sola imagen, pero puedes integrarlo en un bucle para aplicarlo a todo un lote o conjunto de datos. Este pipeline facilita la creación de variaciones en los datos de entrenamiento, lo que ayuda a mejorar la generalización del modelo en tareas de detección de objetos.