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

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
22 Hrs
40 Min
6 Seg

Fine-tuning en detección de objetos

17/31
Recursos

Aportes 2

Preguntas 1

Ordenar por:

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

¿Qué es el fine-tuning?
Es una técnica, que consiste en tomar un modelo ya pre-entrenado y ajustarlo para una actividad específica.
Esto quiere decir, que en vez de entrenar el modelo desde cero, se tomará un modelo que ha sido entrenado con una gran cantidad de datos. Lo único es ajustar su arquitectura y sus pesos, esto para poder dejarlo al 100 con la actividad a realizar.

El \*fine-tuning\* en detección de objetos es el proceso de ajustar un modelo preentrenado para adaptarlo a un nuevo conjunto de datos específico. En el caso de la API de TensorFlow para detección de objetos, esto implica entrenar un modelo ya preentrenado (como SSD o Faster R-CNN) en tu propio conjunto de datos, para que pueda aprender a detectar objetos específicos de tu dominio. \### Pasos para realizar el Fine-Tuning en Detección de Objetos: 1\. \*\*Preparar el entorno\*\*: Asegúrate de tener todas las dependencias necesarias instaladas: ```bash pip install tf-slim tensorflow-object-detection-api ``` 2\. \*\*Configurar el conjunto de datos\*\*: El primer paso es tener tu conjunto de datos preparado en el formato adecuado para TensorFlow. El formato típico es el formato de anotaciones \*TFRecord\*. Para hacerlo, tendrás que convertir tus anotaciones (generalmente en formato `XML`, `CSV` o `JSON`) a este formato. \- Usa la herramienta de la API de `object\_detection` para convertir tu conjunto de datos en el formato `TFRecord`. \- Ejemplo de conversión: ```python from object\_detection.dataset\_tools import create\_pascal\_tf\_record create\_pascal\_tf\_record.convert\_dataset(...) ``` 3\. \*\*Descargar el modelo preentrenado\*\*: Descarga un modelo preentrenado adecuado del \[TensorFlow Model Zoo]\(https://github.com/tensorflow/models/blob/master/research/object\_detection/g3doc/tf2\_detection\_zoo.md). Ejemplo para descargar un modelo `SSD` con MobileNet: ```python MODEL\_NAME = 'ssd\_mobilenet\_v2\_fpnlite\_320x320\_coco17\_tpu-8' PATH\_TO\_CKPT = 'ssd\_mobilenet\_v2\_fpnlite\_320x320\_coco17\_tpu-8/saved\_model' ``` 4\. \*\*Configurar el archivo de pipeline\*\*: El archivo `pipeline.config` contiene todos los hiperparámetros de entrenamiento, como el optimizador, el modelo, las rutas a los datos y más. Puedes encontrar un archivo `pipeline.config` para el modelo preentrenado descargado. Luego, deberás ajustarlo para que se adapte a tu propio conjunto de datos. Algunos cambios comunes que deberás realizar en el archivo `pipeline.config`: \- Cambiar la ruta de los datos de entrenamiento y evaluación (las rutas a tus archivos `TFRecord`). \- Establecer el número de clases en `num\_classes`. \- Configurar las rutas para los archivos de los archivos de mapa de etiquetas. \- Cambiar el optimizador (si es necesario). Ejemplo de configuración en el archivo `pipeline.config`: ```plaintext num\_classes: 3 # Número de clases de tu conjunto de datos fine\_tune\_checkpoint: "PATH\_TO\_CKPT/model.ckpt" train\_input\_path: "train.tfrecord" eval\_input\_path: "eval.tfrecord" label\_map\_path: "PATH\_TO\_LABEL\_MAP.pbtxt" ``` 5\. \*\*Entrenamiento del modelo\*\*: Una vez configurado el archivo `pipeline.config`, puedes comenzar el entrenamiento. Usa el siguiente comando para entrenar el modelo: ```bash python3 models/research/object\_detection/model\_main\_tf2.py \\ \--pipeline\_config\_path=PATH\_TO\_YOUR\_PIPELINE\_CONFIG \\ \--model\_dir=PATH\_TO\_SAVE\_MODEL \\ \--alsologtostderr ``` \*\*Argumentos\*\*: \- `--pipeline\_config\_path`: Ruta al archivo `pipeline.config`. \- `--model\_dir`: Directorio donde se guardarán los resultados del modelo (p. ej., pesos entrenados). \- `--alsologtostderr`: Para mostrar los logs en la consola. Si prefieres usar Colab, puedes hacer todo el proceso dentro de una celda de código. 6\. \*\*Evaluación del modelo\*\*: Después de que el modelo haya entrenado por algunas iteraciones, puedes evaluar su desempeño en el conjunto de datos de evaluación. Para hacerlo, usa el siguiente comando: ```bash python3 models/research/object\_detection/model\_main\_tf2.py \\ \--pipeline\_config\_path=PATH\_TO\_YOUR\_PIPELINE\_CONFIG \\ \--model\_dir=PATH\_TO\_SAVE\_MODEL \\ \--checkpoint\_dir=PATH\_TO\_SAVE\_MODEL \\ \--eval\_training\_data=True \\ \--alsologtostderr ``` Esto evaluará el modelo en el conjunto de datos de evaluación y mostrará las métricas de precisión (mAP). 7\. \*\*Exportar el modelo entrenado\*\*: Una vez que el modelo haya sido entrenado y evaluado, puedes exportar el modelo entrenado para hacer predicciones en imágenes. Usa el siguiente comando para exportar el modelo: ```bash python3 models/research/object\_detection/exporter\_main\_v2.py \\ \--pipeline\_config\_path=PATH\_TO\_YOUR\_PIPELINE\_CONFIG \\ \--trained\_checkpoint\_dir=PATH\_TO\_SAVE\_MODEL \\ \--output\_directory=PATH\_TO\_EXPORT\_MODEL ``` Esto generará un modelo que se puede usar para hacer predicciones. 8\. \*\*Hacer predicciones con el modelo fine-tuneado\*\*: Después de exportar el modelo, puedes cargarlo y hacer predicciones de la siguiente manera: ```python \# Cargar el modelo exportado detect\_fn = tf.saved\_model.load('PATH\_TO\_EXPORTED\_MODEL') \# Realizar una predicción image\_np = np.array(...) # Cargar una imagen input\_tensor = tf.convert\_to\_tensor(image\_np) input\_tensor = input\_tensor\[tf.newaxis,...] output\_dict = detect\_fn(input\_tensor) \# Procesar las detecciones boxes = output\_dict\['detection\_boxes'] classes = output\_dict\['detection\_classes'] scores = output\_dict\['detection\_scores'] ``` \### Resumen del flujo de Fine-Tuning: 1\. \*\*Preparar el conjunto de datos\*\*: Convertir tus anotaciones a formato `TFRecord`. 2\. \*\*Configurar el archivo `pipeline.config`\*\*: Ajustar las rutas y parámetros del entrenamiento. 3\. \*\*Entrenar el modelo\*\*: Ejecutar el entrenamiento usando el comando adecuado. 4\. \*\*Evaluar el modelo\*\*: Verificar el desempeño en el conjunto de datos de validación. 5\. \*\*Exportar el modelo\*\*: Guardar el modelo entrenado para hacer predicciones. 6\. \*\*Realizar predicciones\*\*: Usar el modelo fine-tuneado para detectar objetos en imágenes nuevas. Recuerda que el fine-tuning puede requerir un número considerable de iteraciones y ajustes, especialmente si el modelo preentrenado es muy diferente del tipo de datos en tu conjunto de entrenamiento.