Conjunto de scripts standalone en Python para tareas comunes de visión por computador: aumento de datos (data augmentation), división de datasets en train/val/test, y testing de modelos de clasificación de imágenes.
Proyecto académico (USCO). Cada carpeta es un mini-toolkit independiente con su
requirements.txty su README específico — diseñado para que cada script se pueda usar aislado, sin instalar dependencias innecesarias.
Codes/
├── Data Augmentation/ # Pillow + OpenCV
│ ├── Rotate.py # Rotación 90° CW, 90° CCW, 180°
│ ├── Flipping.py # Flip horizontal y/o vertical
│ ├── Perspective.py # Transformación de perspectiva
│ ├── README.md
│ └── requirements.txt
├── Data Splitting/ # scikit-learn
│ ├── splitting.py # Train/val/test split
│ ├── README.md
│ └── requirements.txt
├── Model Testing/ # TensorFlow + OpenCV + matplotlib
│ ├── Test.py # Inferencia + métricas + visualización
│ ├── README.md
│ └── requirements.txt
└── README.md
Cada subcarpeta tiene su propio entorno. Instalar solo las dependencias del módulo que se vaya a usar:
# Ejemplo: usar Data Augmentation
cd "Data Augmentation"
pip install -r requirements.txt
# Editar paths en el script (input_folder, output_folder)
python Rotate.pyTres scripts independientes para aumentar variedad de un dataset de imágenes:
| Script | Qué hace |
|---|---|
Rotate.py |
Genera 3 rotaciones (90° CW, 90° CCW, 180°) por imagen |
Flipping.py |
Genera flip horizontal, vertical, o ambos |
Perspective.py |
Aplica una transformación de perspectiva para simular ángulos de cámara distintos |
Stack: Pillow, OpenCV, NumPy.
Cada script lee de un
input_foldery escribe en unoutput_folder(se crea si no existe). Editar las paths al inicio del script antes de correr.
splitting.py — divide un dataset organizado por carpetas de clase en subconjuntos train/, val/ y test/ con proporciones configurables, usando train_test_split de scikit-learn.
Test.py — carga un modelo Keras/TensorFlow, corre inferencia sobre un set de prueba, calcula métricas y produce visualizaciones con matplotlib (matriz de confusión, ejemplos correctos/incorrectos).
- CLI args con
argparseen lugar de editar paths hardcodeadas en cada script. - Soporte para más formatos además de
.png/.jpg/.jpeg. - Albumentations como alternativa más completa a Pillow para augmentation (más transformaciones, más rápido).
- Pipeline unificado: un script que orqueste augmentation → split → training → test en un solo comando.
- Tests unitarios sobre las transformaciones (verificar que un flip horizontal no rompe metadata, que el split mantiene proporción de clases, etc.).
Proyecto académico — Universidad Surcolombiana (USCO).