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:

18 Días
16 Hrs
19 Min
15 Seg

Generando predicciones con modelo de object segmentation

29/31
Recursos

Aportes 3

Preguntas 2

Ordenar por:

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

Si probamos imágenes parecidas pero de otro entorno, se aprecia el sobreajuste del modelo:

Te comparto mis apuntes personales de TODA esta sección:

Apuntes de Object Segmentation

Te recomiendo ampliamente que le heches un ojo puesto que segui el curso programando en local sin usar Colab. Esto me permitio tener un mucho mayor entendimiento del curso y especificamente adaptar el código de Colab a una estructura de archivos mucho más “práctica” para un ambiente profesional. Adicionalmente te comparto mis resultados finales:

Entrenamiento del modelo:

TensorBoard

Resultados de imágenes:

Finalmente, en el código de GitHub puedes encontrar el modelo ya entrenado y listo para hacer inferencias nuevas, te comparto el código de ejemplo:

import os

os.environ["TF_CPP_MIN_LOG_LEVEL"] = '3'

from keras.models import load_model
from core.utils import predict_test_samples, plot_images, load_data


if __name__ == '__main__':

    test_sample = load_data(["test/0016E5_08159.png"], ["test/0016E5_08159_L.png"])
    model = load_model("core/models/best_model.h5")
    predicted_masks, test_images, ground_truth_masks = predict_test_samples(test_sample, model)
    plot_images(test_images[0], predicted_masks[0], ground_truth_masks[0])

Y el modelo en formato h5: best_model

Para generar predicciones con un modelo de segmentación de objetos, como una red U-Net o Mask R-CNN, puedes seguir estos pasos generales en Python, usando un dataset de imágenes y el modelo previamente entrenado. \### 1. Cargar la Imagen Primero, lee la imagen que deseas segmentar: ```python import cv2 import numpy as np \# Cargar la imagen de prueba img = cv2.imread('path/to/your/image.jpg') \# Redimensionar la imagen si es necesario img = cv2.resize(img, (IMG\_HEIGHT, IMG\_WIDTH)) ``` \### 2. Preprocesar la Imagen Dependiendo del modelo, es posible que necesites normalizar la imagen o aplicar una transformación específica: ```python \# Normalizar la imagen img\_normalized = img / 255.0 # Normaliza los valores al rango \[0, 1] \# Expande las dimensiones para que coincidan con la entrada del modelo img\_input = np.expand\_dims(img\_normalized, axis=0) ``` \### 3. Generar la Predicción Usa el modelo de segmentación para realizar la predicción en la imagen. En el caso de una red U-Net, el resultado suele ser una máscara binaria o multiclase que segmenta los objetos en la imagen. ```python \# Generar predicciones predicted\_mask = model.predict(img\_input) \# Saca la máscara predicha en un rango de \[0, 1] predicted\_mask = (predicted\_mask\[0, :, :, 0] > 0.5).astype(np.uint8) # Umbral de 0.5 para la segmentación binaria ``` \### 4. Visualizar la Predicción Para visualizar la máscara superpuesta en la imagen original, puedes usar `matplotlib` o cualquier otra biblioteca de visualización: ```python import matplotlib.pyplot as plt \# Mostrar imagen original y máscara fig, ax = plt.subplots(1, 2, figsize=(12, 6)) ax\[0].imshow(cv2.cvtColor(img, cv2.COLOR\_BGR2RGB)) ax\[0].set\_title('Imagen Original') \# Colorear la máscara predicha ax\[1].imshow(predicted\_mask, cmap='gray') ax\[1].set\_title('Máscara Predicha') plt.show() ``` \### 5. Guardar o Analizar la Predicción Guarda la máscara o realiza análisis adicionales según tus necesidades: ```python \# Guardar la máscara predicha como imagen cv2.imwrite('predicted\_mask.png', predicted\_mask \* 255) # Multiplica por 255 para obtener una imagen binaria ``` Este flujo te permite generar y visualizar predicciones con un modelo de segmentación de objetos. Si estás trabajando con segmentación multicategoría, puedes ajustar los pasos para cada categoría usando un mapa de colores o máscaras específicas por clase.