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. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
17 Hrs
59 Min
19 Seg

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

19/31
Recursos

Aportes 3

Preguntas 0

Ordenar por:

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

Les comparto los prefixes_to_train:

prefixes_to_train = [
  'WeightSharedConvolutionalBoxPredictor/WeightSharedConvolutionalBoxHead',
  'WeightSharedConvolutionalBoxPredictor/WeightSharedConvolutionalClassHead'                 
]
ya estamos listos para el aprendizaje del aprendizaje 🤓
Para realizar \*fine-tuning\* en un modelo de detección de objetos, es útil aplicar \*data augmentation\* para mejorar la robustez del modelo y evitar el sobreajuste, especialmente si cuentas con un conjunto de datos relativamente pequeño. Las técnicas de \*data augmentation\* transforman las imágenes para simular diferentes condiciones de variabilidad, ayudando al modelo a generalizar mejor. Aquí tienes una guía para realizar \*data augmentation\* en imágenes para la detección de objetos: \### 1. \*\*Técnicas de \*Data Augmentation\*\*\* Algunas técnicas comunes de \*data augmentation\* en detección de objetos son: \- \*\*Rotación\*\*: Gira la imagen y ajusta las coordenadas de las cajas delimitadoras (\*bounding boxes\*). \- \*\*Traslación\*\*: Desplaza la imagen en el eje `x` o `y`, modificando también las cajas. \- \*\*Escalado (Zoom)\*\*: Aplica un zoom a la imagen, ampliando o reduciendo las cajas según corresponda. \- \*\*Corte (\*Crop\*)\*\*: Recorta partes de la imagen manteniendo el objeto de interés. \- \*\*Espejado (\*Flip\*) Horizontal/Vertical\*\*: Refleja la imagen y ajusta las coordenadas de las cajas. Para realizar \*data augmentation\* en un proyecto de detección de objetos, puedes usar librerías como \*\*TensorFlow\*\* o \*\*Albumentations\*\*, que tienen funciones específicas para la manipulación de imágenes con \*bounding boxes\*. \### 2. \*\*Ejemplo en TensorFlow\*\* Usando TensorFlow, puedes realizar \*data augmentation\* en imágenes junto con sus respectivas cajas delimitadoras. ```python import tensorflow as tf import numpy as np \# Supón que tienes una imagen de entrada y sus bounding boxes def augment\_image(image, boxes): \# Convertir las bounding boxes a \[ymin, xmin, ymax, xmax] (formato de TensorFlow) boxes = tf.convert\_to\_tensor(boxes, dtype=tf.float32) boxes = tf.expand\_dims(boxes, axis=0) \# Aplicar traslación y rotación a la imagen y ajustar las bounding boxes image, boxes = tf.image.random\_flip\_left\_right(image, boxes) image, boxes = tf.image.random\_contrast(image, 0.8, 1.2), boxes image, boxes = tf.image.random\_brightness(image, max\_delta=0.1), boxes \# Aplanar las bounding boxes boxes = tf.squeeze(boxes, axis=0) return image, boxes.numpy() \# Ejemplo de uso image = tf.random.normal(\[256, 256, 3]) # Imagen de ejemplo boxes = \[\[0.1, 0.2, 0.5, 0.7]] # Ejemplo de bounding box augmented\_image, augmented\_boxes = augment\_image(image, boxes) ``` \### 3. \*\*Ejemplo en Albumentations\*\* \*\*Albumentations\*\* es una librería eficiente para la manipulación de imágenes en detección de objetos y visión por computadora. Aquí un ejemplo: ```python import albumentations as A from albumentations.pytorch import ToTensorV2 \# Transformación de data augmentation transform = A.Compose(\[ A.HorizontalFlip(p=0.5), A.RandomBrightnessContrast(p=0.2), A.RandomRotate90(p=0.5), A.Resize(256, 256), ], bbox\_params=A.BboxParams(format='pascal\_voc', label\_fields=\['class\_labels'])) \# Ejemplo de aplicación image = np.random.randint(0, 255, (256, 256, 3), dtype=np.uint8) bboxes = \[\[10, 15, 100, 150]] # Bounding box en formato Pascal VOC class\_labels = \[1] # Etiquetas de clase \# Aplicar la transformación transformed = transform(image=image, bboxes=bboxes, class\_labels=class\_labels) augmented\_image = transformed\['image'] augmented\_bboxes = transformed\['bboxes'] ``` \### 4. \*\*Incorporación al Pipeline de Entrenamiento\*\* Si estás haciendo \*fine-tuning\*, integra este tipo de \*data augmentation\* dentro del pipeline de entrada de datos para que el modelo reciba datos aumentados en cada época. En TensorFlow, por ejemplo, puedes hacerlo con `tf.data.Dataset.map()` para aplicar las transformaciones a cada imagen antes de entrenar. \### 5. \*\*Consejos Generales\*\* \- Aplica aumentos de datos según el contexto: Si los objetos no suelen verse rotados en 90 grados, evita esa transformación. \- Revisa visualmente las transformaciones para asegurarte de que las \*bounding boxes\* están correctamente alineadas con los objetos tras la transformación. Estas técnicas de \*data augmentation\* ayudarán a mejorar el rendimiento del modelo y su capacidad para generalizar en datos nuevos.