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:

12 Días
13 Hrs
35 Min
54 Seg

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

21/31
Recursos

Aportes 1

Preguntas 3

Ordenar por:

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

Para visualizar las predicciones del modelo durante o después del \*fine-tuning\*, puedes utilizar un conjunto de datos de prueba y las herramientas de visualización de TensorFlow o `matplotlib`. Esto te permitirá ver cómo el modelo identifica y etiqueta los objetos en las imágenes. Aquí te explico cómo realizar este proceso: \### 1. \*\*Cargar el Modelo Exportado\*\* Primero, carga el modelo que has entrenado y exportado. Asegúrate de tener la ruta correcta al modelo exportado y carga el `SavedModel` con TensorFlow. ```python import tensorflow as tf \# Cargar el modelo exportado modelo\_exportado\_path = "ruta\_a\_modelo\_exportado/saved\_model" detect\_fn = tf.saved\_model.load(modelo\_exportado\_path) ``` \### 2. \*\*Preprocesar la Imagen\*\* Para visualizar la detección, selecciona una imagen de prueba y prepárala para su procesamiento. Normalmente, el modelo espera tensores en formato de `float32`. ```python import numpy as np import cv2 \# Cargar una imagen de prueba image\_path = "ruta\_a\_tu\_imagen\_de\_prueba.jpg" image\_np = cv2.imread(image\_path) image\_np = cv2.cvtColor(image\_np, cv2.COLOR\_BGR2RGB) # Convertir BGR a RGB si usas OpenCV \# Convertir la imagen a un tensor input\_tensor = tf.convert\_to\_tensor(np.expand\_dims(image\_np, 0), dtype=tf.float32) ``` \### 3. \*\*Hacer la Predicción\*\* Utiliza el modelo para hacer predicciones sobre la imagen. Esto producirá información sobre las \*bounding boxes\*, las clases y las puntuaciones de confianza. ```python detections = detect\_fn(input\_tensor) \# Extraer información de las detecciones num\_detections = int(detections.pop('num\_detections')) detections = {key: value\[0, :num\_detections].numpy() for key, value in detections.items()} detections\['num\_detections'] = num\_detections \# Convertir las clases a enteros detections\['detection\_classes'] = detections\['detection\_classes'].astype(np.int64) ``` \### 4. \*\*Visualizar las Detecciones en la Imagen\*\* Utiliza las utilidades de `matplotlib` y TensorFlow Object Detection para dibujar las \*bounding boxes\* y las etiquetas de los objetos en la imagen. ```python import matplotlib.pyplot as plt from object\_detection.utils import visualization\_utils as viz\_utils \# Visualizar detecciones en la imagen label\_map\_path = "ruta\_a\_label\_map/label\_map.pbtxt" category\_index = label\_map\_util.create\_category\_index\_from\_labelmap(label\_map\_path, use\_display\_name=True) image\_np\_with\_detections = image\_np.copy() viz\_utils.visualize\_boxes\_and\_labels\_on\_image\_array( image\_np\_with\_detections, detections\['detection\_boxes'], detections\['detection\_classes'], detections\['detection\_scores'], category\_index, use\_normalized\_coordinates=True, max\_boxes\_to\_draw=10, min\_score\_thresh=0.5, # Cambia este umbral según necesites agnostic\_mode=False ) plt.figure(figsize=(12, 8)) plt.imshow(image\_np\_with\_detections) plt.axis('off') plt.show() ``` \- En el código, `visualize\_boxes\_and\_labels\_on\_image\_array` dibuja las \*bounding boxes\* en la imagen, con las etiquetas de clases y puntuaciones de confianza. \- Puedes ajustar `min\_score\_thresh` para definir el umbral de puntuación mínima y visualizar solo las detecciones con una cierta probabilidad. \### 5. \*\*Parámetros y Ajustes Adicionales\*\* \- \*\*Umbral de Puntuación\*\* (`min\_score\_thresh`): Puedes experimentar con este valor para ajustar el nivel de confianza mínimo necesario para que un objeto se visualice. \- \*\*Cantidad de Detecciones\*\* (`max\_boxes\_to\_draw`): Controla cuántas detecciones se muestran, útil si la imagen tiene muchos objetos. \- \*\*Colores y Estilos\*\*: Personaliza los colores o estilos de las \*bounding boxes\* en `visualization\_utils` para destacar mejor los objetos. \### Ejemplo Completo Combina estos pasos en una función que toma la ruta de la imagen y la ruta del modelo y luego muestra la imagen con las detecciones: ```python def mostrar\_detecciones(modelo\_exportado\_path, image\_path, label\_map\_path): \# Cargar el modelo detect\_fn = tf.saved\_model.load(modelo\_exportado\_path) \# Cargar imagen image\_np = cv2.imread(image\_path) image\_np = cv2.cvtColor(image\_np, cv2.COLOR\_BGR2RGB) \# Procesar imagen input\_tensor = tf.convert\_to\_tensor(np.expand\_dims(image\_np, 0), dtype=tf.float32) detections = detect\_fn(input\_tensor) \# Procesar detecciones num\_detections = int(detections.pop('num\_detections')) detections = {key: value\[0, :num\_detections].numpy() for key, value in detections.items()} detections\['num\_detections'] = num\_detections detections\['detection\_classes'] = detections\['detection\_classes'].astype(np.int64) \# Visualización category\_index = label\_map\_util.create\_category\_index\_from\_labelmap(label\_map\_path, use\_display\_name=True) viz\_utils.visualize\_boxes\_and\_labels\_on\_image\_array( image\_np, detections\['detection\_boxes'], detections\['detection\_classes'], detections\['detection\_scores'], category\_index, use\_normalized\_coordinates=True, max\_boxes\_to\_draw=10, min\_score\_thresh=0.5, agnostic\_mode=False ) \# Mostrar la imagen con detecciones plt.figure(figsize=(12, 8)) plt.imshow(image\_np) plt.axis('off') plt.show() ``` Con esta función, puedes pasar cualquier imagen y modelo para ver las detecciones y evaluar visualmente cómo está funcionando el modelo después del \*fine-tuning\*.