En visión por computadora no trabajamos solo con algoritmos, sino también con un ecosistema de herramientas que hace posible cargar imágenes, transformarlas, visualizarlas, entrenar modelos y desplegar soluciones. Elegir bien las librerías adecuadas simplifica enormemente el desarrollo.
Python se convirtió en uno de los lenguajes más usados en este campo justamente porque dispone de un conjunto muy sólido de bibliotecas. Algunas están orientadas al procesamiento clásico de imágenes, otras al cálculo numérico, otras al aprendizaje profundo y otras a la visualización o gestión de datasets.
En este tema vamos a organizar esas herramientas y entender para qué sirve cada una. La idea no es memorizar una lista, sino comprender cómo se complementan dentro de un flujo real de trabajo.
Podemos dividir las librerías más importantes en varias categorías:
Esta clasificación ayuda a entender que, en la práctica, rara vez una sola librería resuelve todo. Lo habitual es combinar varias según la etapa del proyecto.
NumPy es probablemente la librería más básica e importante del ecosistema científico en Python. En visión por computadora tiene un papel central porque las imágenes suelen representarse como arreglos multidimensionales.
Con NumPy podemos:
Muchas otras librerías se apoyan directamente en NumPy. Por eso entender bien los arreglos, dimensiones y tipos numéricos es una habilidad fundamental.
OpenCV es una de las bibliotecas más influyentes y utilizadas en visión por computadora. Su nombre proviene de Open Source Computer Vision Library.
OpenCV ofrece herramientas para:
Es una biblioteca extremadamente práctica, rápida y madura. Por eso ocupa un lugar central en la parte clásica del curso y también en muchos proyectos productivos.
Aunque hoy el Deep Learning tiene mucho protagonismo, OpenCV sigue siendo clave por varias razones:
En muchos sistemas reales, el preprocesamiento se hace con OpenCV, el modelo se ejecuta con PyTorch y la visualización final vuelve a pasar por OpenCV o herramientas similares.
Pillow es la evolución moderna de la antigua biblioteca PIL. Está más orientada al manejo general de imágenes que a la visión por computadora estricta, pero sigue siendo muy útil.
Se utiliza con frecuencia para:
En proyectos de Deep Learning es habitual encontrarla en el pipeline de carga de datos, especialmente en combinación con torchvision.
Matplotlib no es una librería específica de visión por computadora, pero es fundamental para visualizar resultados. Permite mostrar imágenes, histogramas, gráficos y comparaciones entre transformaciones.
Su valor principal está en:
Muchas veces es la herramienta más cómoda para depurar pipelines y entender qué está ocurriendo internamente.
scikit-image es una biblioteca orientada al procesamiento de imágenes y análisis científico. Comparte parte del terreno de OpenCV, pero con un estilo muy integrado al ecosistema científico de Python.
Es útil para:
En entornos académicos y experimentales aparece con bastante frecuencia, especialmente cuando interesa claridad y consistencia con NumPy y SciPy.
SciPy complementa a NumPy con herramientas matemáticas más avanzadas: optimización, señales, interpolación, álgebra, estadística y más. En visión por computadora puede aparecer en tareas específicas como filtrado, transformaciones o análisis numérico.
Aunque no siempre se use de forma visible en cada proyecto, forma parte del ecosistema base sobre el que se apoyan muchas herramientas científicas en Python.
PyTorch es una de las bibliotecas más importantes para Deep Learning y tendrá un papel central en la segunda mitad del curso. Permite trabajar con tensores, definir modelos, calcular gradientes automáticamente y entrenar redes neuronales.
En visión por computadora se usa para:
Su fortaleza está en combinar flexibilidad, potencia y un ecosistema muy activo.
torchvision es una biblioteca complementaria de PyTorch especialmente orientada a tareas de visión por computadora. Proporciona herramientas que simplifican muchísimo el trabajo práctico.
Entre sus funcionalidades más útiles están:
En otras palabras, si PyTorch es el motor general de Deep Learning, torchvision es una capa especializada para visión.
Cuando se trabaja con entrenamiento de modelos de visión, una necesidad frecuente es aplicar aumentos de datos: rotaciones, recortes, cambios de brillo, ruido, flips y otras transformaciones aleatorias.
Albumentations es una biblioteca muy usada para este propósito porque:
Más adelante, cuando veamos data augmentation, este tipo de herramienta cobrará especial importancia.
Pandas no procesa imágenes directamente, pero es muy útil para trabajar con etiquetas, rutas, particiones de datasets, metadatos y resultados experimentales.
Por ejemplo, puede usarse para:
En proyectos reales, los datos visuales casi siempre vienen acompañados de información estructurada, y ahí Pandas se vuelve muy valioso.
Una cuestión práctica muy importante es que distintas bibliotecas usan estructuras internas similares, pero no idénticas:
Por eso, en un pipeline real, es normal pasar por varias conversiones:
Entender estas transiciones ayuda a evitar errores de tipo, de forma o de orden de canales.
Además de procesar imágenes, un proyecto de visión necesita organizar datos. Dependiendo del problema, esto puede implicar:
Aunque la anotación en sí muchas veces se hace con herramientas externas, desde Python solemos necesitar cargar y convertir esos formatos. Aquí aparecen utilidades propias del proyecto, scripts con JSON, CSV o formatos tipo COCO y Pascal VOC.
Cuando un modelo ya está entrenado, el problema cambia: ahora importa cómo ejecutar inferencia de forma eficiente. En esta etapa pueden aparecer herramientas como:
Aunque veremos deployment más adelante, conviene ir entendiendo que las librerías también se eligen según la fase del proyecto: investigación, entrenamiento, validación o producción.
En etapas iniciales de exploración y enseñanza, suelen ser muy útiles herramientas como:
No son bibliotecas de visión por computadora estrictamente hablando, pero forman parte del entorno real en el que se construyen, prueban y explican soluciones visuales.
Un flujo práctico de trabajo con imágenes podría usar estas herramientas de la siguiente manera:
Este esquema muestra que el trabajo real rara vez depende de una sola librería aislada.
No siempre necesitamos la misma herramienta. Para elegir conviene considerar:
Por ejemplo, para leer y transformar imágenes rápidamente, OpenCV puede ser ideal. Para entrenamiento de redes, PyTorch es la herramienta central. Para explorar resultados, Matplotlib suele ser suficiente.
Al empezar, es común usar demasiadas librerías a la vez sin una razón clara. Esto puede generar conversiones innecesarias, confusión con formatos o errores difíciles de rastrear.
En general conviene adoptar un criterio pragmático:
La simplicidad del pipeline suele mejorar tanto la claridad del código como la reproducibilidad.
Un stack razonable para comenzar este curso podría ser:
Con este conjunto ya es posible construir desde ejemplos introductorios hasta proyectos bastante serios.
En la primera parte práctica del curso, OpenCV y NumPy tendrán mucho protagonismo. Más adelante, cuando pasemos a clasificación, CNN y modelos preentrenados, crecerá la importancia de PyTorch y torchvision.
Esto significa que el curso seguirá una progresión coherente:
Las librerías acompañan esa progresión técnica.
| Librería | Rol principal | Uso típico |
|---|---|---|
| NumPy | Base numérica | Arreglos, slicing, operaciones vectorizadas. |
| OpenCV | Procesamiento clásico y video | Carga, filtros, transformaciones, cámaras. |
| Pillow | Manejo general de imágenes | Abrir, convertir y guardar imágenes. |
| Matplotlib | Visualización | Mostrar imágenes, histogramas y curvas. |
| scikit-image | Procesamiento científico | Segmentación, medición y análisis de regiones. |
| PyTorch | Deep Learning | Entrenamiento e inferencia de modelos. |
| torchvision | Visión en PyTorch | Datasets, transformaciones y modelos preentrenados. |
| Pandas | Datos tabulares | Etiquetas, CSV, métricas y análisis. |
Conocer las librerías fundamentales de visión por computadora permite entender mejor cómo se construye un flujo real de trabajo. Cada herramienta tiene su especialidad, y la clave está en combinarlas de forma coherente según el problema a resolver.
En la siguiente etapa del curso vamos a centrarnos en una de las bibliotecas más importantes de todas: OpenCV. El próximo tema será una introducción específica a esta herramienta, que nos acompañará durante buena parte de la práctica inicial.