Estructura del repositorio
El proyecto dataset_loaders organiza su código en tres áreas principales: los cargadores, los ejemplos y las pruebas. A continuación se muestra la distribución típica del proyecto:
dataset_loaders/
├── dataset_loaders/
│ ├── __init__.py
│ ├── base.py
│ ├── coco.py
│ ├── cityscapes.py
│ ├── pascal_voc.py
│ ├── utils.py
│ └── ...
├── examples/
│ ├── demo_cityscapes.py
│ ├── demo_coco.py
│ ├── demo_pascal_voc.py
│ └── ...
├── tests/
│ ├── test_base.py
│ ├── test_coco.py
│ ├── test_cityscapes.py
│ ├── test_pascal_voc.py
│ └── ...
├── setup.py
├── README.md
└── requirements.txt
El subdirectorio dataset_loaders/ contiene la lógica central. base.py establece la interfaz común que cada cargador hereda o implementa. Los módulos coco.py, cityscapes.py y pascal_voc.py adaptan esa interfaz a los formatos de COCO, Cityscapes y Pascal VOC, respectivmaente. utils.py centraliza funciones auxiliares reutilizables. En examples/ se encuentran scripts listos para ejecutar, y tests/ agrupa las validaciones unitarias. setup.py gestiona la instalación y requirements.txt declara las dependencias de Python.
Cómo iniciar el proyecto
La forma más directa de comenzar es ejecutar un script del directorio examples/. El siguiente código ilustra el uso del cargador de Cityscapes:
import os
from dataset_loaders.cityscapes import CityscapesDataset
ruta_datos = os.path.join(os.getcwd(), 'datasets', 'cityscapes')
dataset_entrenamiento = CityscapesDataset(root_dir=ruta_datos, split='train')
for indice, muestra in enumerate(dataset_entrenamiento):
print(f'Índice {indice}: {muestra}')
if indice >= 4:
break
La importación se realiza directamente desde el módulo de Cityscapes. Se crea una instancia indicando la carpeta raíz del dataset y la partición deseada. El bucle recorre las muestras mediante enumerate, que aporta tanto el índice como el elemento, y se detiene tras mostrar cinco entradas para facilitar la depuración inicial.
Configuración de los cargadores
No existe un archivo de configuración separado; el comportamiento se controla a través de los argumentos del constructor. Los parámetros principales son:
root_dir: ubicación del dataset en el sistema de archivos.split: subconjunto a cargar, como'train','val'o'test'.
Modificando estos valores se puede alternar entre entrenamiento, validación y pruebas sin cambiar la estructura del código. Esta flexibilidad permite reutilizar los mismos ejemplos en distintos entornos y flujos de trabajo.