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

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

2 D铆as
12 Hrs
35 Min
7 Seg

Visualizaci贸n de bounding boxes en el dataset de object detection

11/31
Resources

Contributions 3

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

Aqui una alternativa para mostrar todos los bounding boxes:

Primero definamos un diccionario con todas las classes:

CLASS_LABELS = {
    1: "Cars",
    2: "Truck",
    3: "Pedestrian",
    4: "Bicyclist",
    5: "Light"
}

Luego modificamos los gt_boxes para incluir los labels de las classes:

y_val, x_val, _ = np.array(img).shape
gt_boxes = {}
for idx, row in df_train.iterrows():
    bbox = np.array(
        [
            [
                row["ymin"] / y_val,
                row["xmin"] / x_val,
                row["ymax"] / y_val,
                row["xmax"] / x_val,
            ]
        ],
        dtype=np.float32,
    )
    frame = row["frame"]
    label = row["class_id"]
    if frame in gt_boxes:
        gt_boxes[frame] = {
            "boxes": np.append(gt_boxes[frame]["boxes"], np.array(bbox), axis=0),
            "id": np.append(gt_boxes[frame]["id"], np.array([label]), axis=0)
        }
    else:
        gt_boxes[frame] = {"boxes": np.array(bbox), "id": np.array([label])}

Tambien debemos modificar el diccionario category_index:

category_index = {i: {"id": i, "name": k} for i, k in CLASS_LABELS.items()}

Por ultimo, modificamos el c贸digo que nos permite visualizar las imagenes con los boxes:

num_examples = 20
idx = 0

plt.figure(figsize=(30, 30))
for key, value in islice(gt_boxes.items(), num_examples):
    boxes = value["boxes"]
    labels = value["id"]
    im = np.array(Image.open(my_path + key))
    dummy_scores = np.ones(shape=[boxes.shape[0]], dtype=np.float32)
    plt.subplot(4, 5, idx + 1)
    plot_detections(
        im,
        boxes,
        labels,
        dummy_scores,
        category_index
    )
    idx += 1

plt.show()
Para visualizar las \*bounding boxes\* en un dataset de detecci贸n de objetos, necesitas cargar las im谩genes junto con sus anotaciones y superponer las cajas sobre las im谩genes. Aqu铆 tienes un ejemplo general de c贸mo hacerlo en Python usando `matplotlib` y `PIL`: \### Paso a paso para la visualizaci贸n 1\. \*\*Cargar las im谩genes y las anotaciones\*\*: Dependiendo del dataset, las anotaciones pueden estar en diferentes formatos (JSON para COCO, XML para PASCAL VOC, etc.). 2\. \*\*Dibujar las \*bounding boxes\* en las im谩genes\*\*: Usar `matplotlib.patches.Rectangle` para superponer las cajas en las im谩genes. \### Ejemplo de c贸digo para visualizar \*bounding boxes\* Este ejemplo asume que tienes un archivo JSON con anotaciones (como en el formato COCO) y que las im谩genes est谩n en una carpeta. ```python import json import matplotlib.pyplot as plt import matplotlib.patches as patches from PIL import Image \# Ruta del archivo de anotaciones y de las im谩genes annotations\_path = 'path/to/annotations.json' images\_path = 'path/to/images/' \# Cargar archivo de anotaciones with open(annotations\_path, 'r') as f: annotations = json.load(f) \# Diccionario para mapear IDs de im谩genes a rutas image\_id\_to\_path = {img\['id']: img\['file\_name'] for img in annotations\['images']} \# Visualizar una imagen con sus anotaciones de \*bounding boxes\* image\_id = annotations\['annotations']\[0]\['image\_id'] # ID de ejemplo image\_file = image\_id\_to\_path\[image\_id] image\_path = images\_path + image\_file \# Cargar la imagen image = Image.open(image\_path) \# Dibujar la imagen y las cajas fig, ax = plt.subplots(figsize=(12, 12)) ax.imshow(image) \# Agregar las \*bounding boxes\* for ann in annotations\['annotations']: if ann\['image\_id'] == image\_id: bbox = ann\['bbox'] # Formato \[x\_min, y\_min, ancho, alto] rect = patches.Rectangle( (bbox\[0], bbox\[1]), bbox\[2], bbox\[3], linewidth=2, edgecolor='r', facecolor='none' ) ax.add\_patch(rect) plt.show() ``` \### Explicaci贸n de las anotaciones \- \*\*COCO\*\*: Las cajas est谩n en el formato `\[x\_min, y\_min, width, height]`. \- \*\*PASCAL VOC\*\*: Generalmente usan `\[x\_min, y\_min, x\_max, y\_max]`, por lo que deber铆as adaptar el c贸digo para calcular el ancho y alto si es necesario. \### Personalizaci贸n \- \*\*Colores\*\*: Puedes cambiar el color de las cajas con `edgecolor`. \- \*\*Etiquetas\*\*: Puedes agregar texto a las cajas para mostrar la clase de cada objeto usando `ax.text`. \### Visualizaci贸n mejorada Si trabajas con im谩genes grandes o muchas cajas, considera agregar una leyenda o ajustar la transparencia (`alpha`) de las cajas para facilitar la visualizaci贸n. Este m茅todo es 煤til para verificar visualmente si las anotaciones est谩n correctamente alineadas con los objetos en las im谩genes antes de entrenar un modelo de detecci贸n de objetos.
Me arroja el error *" 'float' object is not iterable"* al usar la **funci贸n plot\_detections** y no me permite visualizar.