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

Utilizando un modelo de object detection pre-entrenado

15/31
Recursos

Aportes 4

Preguntas 1

Ordenar por:

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

Tuve varios problemas con esta línea: `from object_detection.builders import model_builder` Arrojaba diferentes errores respecto a keras. Lo que me funcionó fue instalar keras manualmente usando las siguientes instrucciones: `!pip install tensorflow==2.15.0` y `!pip install keras==2.15.0` Ambas líneas deben colocarse una de debajo de otra después de la instalación de "object\_detection" y es que su setup instala las últimas versiones de tf y keras lo cual causa los conflictos. Por cierto, también utilicé la versión 4.8.0.76 de opencv-python-headless y moví los "import" iniciales después de la línea que instala keras. Y es que instalar tf y keras reinicia la sesión.

Tuve el siguiente error al importar el model_builder:

ImportError: numpy.core.multiarray failed to import

Para solucionarlo desinstale los siguientes paquetes:

!pip uninstall numpy opencv-python tensorflow matplotlib pyinstaller

Y los volví a instalar así:

!pip install opencv-python tensorflow matplotlib pyinstaller

Pd. Estoy usando colab y este no me permite instalar las versiones especificas que propone el profesor.

Para utilizar un modelo de \*\*Object Detection pre-entrenado\*\* en TensorFlow (o en cualquier framework compatible con TensorFlow, como `tf2`), puedes seguir estos pasos: \### Paso 1: Instalar las dependencias necesarias Asegúrate de tener instaladas las bibliotecas requeridas, incluyendo TensorFlow y el módulo de detección de objetos. ```bash pip install tensorflow tensorflow-hub tensorflow-object-detection-api ``` \### Paso 2: Descargar el modelo pre-entrenado Puedes descargar un modelo pre-entrenado desde el \[TensorFlow Model Zoo]\(https://github.com/tensorflow/models/blob/master/research/object\_detection/g3doc/detection\_model\_zoo.md). Aquí hay un ejemplo de cómo cargar un modelo pre-entrenado de detección de objetos: ```python import tensorflow as tf import tensorflow\_hub as hub from object\_detection.utils import label\_map\_util from object\_detection.utils import visualization\_utils as vis\_util \# Cargar el modelo preentrenado MODEL\_NAME = 'ssd\_inception\_v2\_coco\_2017\_11\_17' # Puedes elegir otros modelos de Object Detection \# Cargar el modelo pre-entrenado desde TensorFlow Hub PATH\_TO\_MODEL = f'./models/{MODEL\_NAME}/saved\_model' \# Cargar el modelo model = tf.saved\_model.load(PATH\_TO\_MODEL) \# Cargar la etiqueta del mapeo (labels) PATH\_TO\_LABELS = 'models/research/object\_detection/data/mscoco\_label\_map.pbtxt' category\_index = label\_map\_util.create\_category\_index\_from\_labelmap(PATH\_TO\_LABELS, use\_display\_name=True) ``` \### Paso 3: Cargar y preprocesar una imagen A continuación, carga una imagen y prepárala para pasarla al modelo. ```python import numpy as np import matplotlib.pyplot as plt import cv2 \# Función para cargar imagen def load\_image\_into\_numpy\_array(image\_path): image = np.array(cv2.imread(image\_path)) return image \# Cargar una imagen de ejemplo image\_path = 'path\_to\_your\_image.jpg' image\_np = load\_image\_into\_numpy\_array(image\_path) image\_np\_expanded = np.expand\_dims(image\_np, axis=0) # Añadir la dimensión de batch ``` \### Paso 4: Realizar la detección Ahora puedes pasar la imagen preprocesada a tu modelo para hacer la detección. ```python \# Realizar la detección de objetos input\_tensor = tf.convert\_to\_tensor(image\_np\_expanded, dtype=tf.float32) model\_fn = model.signatures\['serving\_default'] output\_dict = model\_fn(input\_tensor) \# Los resultados son dictados en el formato: \# 'detection\_boxes', 'detection\_classes', 'detection\_scores', 'num\_detections' boxes = output\_dict\['detection\_boxes'].numpy() classes = output\_dict\['detection\_classes'].numpy().astype(np.int32) scores = output\_dict\['detection\_scores'].numpy() num = int(output\_dict\['num\_detections'].numpy()) \# Visualizar los resultados vis\_util.visualize\_boxes\_and\_labels\_on\_image\_array( image\_np, boxes\[0], classes\[0], scores\[0], category\_index, instance\_masks=None, use\_normalized\_coordinates=True, line\_thickness=8) \# Mostrar la imagen con las detecciones plt.imshow(image\_np) plt.show() ``` \### Explicación: 1\. \*\*Modelo Pre-entrenado\*\*: Cargamos un modelo de detección de objetos pre-entrenado desde un directorio guardado, especificando su ruta. 2\. \*\*Preprocesamiento\*\*: Las imágenes deben ser cargadas y ajustadas para ser aceptadas por el modelo. Se convierten a matrices numpy y se expanden para agregar la dimensión del batch. 3\. \*\*Inferencia\*\*: Pasamos la imagen al modelo para obtener las predicciones de los objetos detectados, que incluyen las coordenadas de las cajas delimitadoras, las clases y las puntuaciones de confianza. 4\. \*\*Visualización\*\*: Finalmente, utilizamos las utilidades de visualización para dibujar las cajas delimitadoras y las etiquetas sobre la imagen.
Si hay alguien que quiere usar este cuaderno en entorno local, en Windows, hice un repositorio que explica la instalación de los paquetes necesarios. Espero sea útil. <https://github.com/mardelmariam/nvidia_cuda_tensorflow/>