La clasificación de imágenes es una rama de la inteligencia artificial con numerosas aplicaciones, para la que se utilizan redes neuronales capaces de detectar patrones en las imágenes. Sin embargo, cada día surgen nuevas arquitecturas y elementos que hay que conocer para entrenar los modelos con éxito.
Con el objetivo de estandarizar el entrenamiento de redes neuronales en pocas líneas de código, surge AISee, una librería de Python de código abierto construida sobre PyTorch y timm. Está diseñada para facilitar el uso de redes neuronales pre-entrenadas del estado del arte en tareas de visión artificial, cubriendo algunas técnicas imprescindibles como el data augmentation o el fine-tuning.
En este post, repasamos las características de AISee, exploraremos su interfaz y pondremos un ejemplo de cómo funciona. Puedes ponerlo en práctica en el repositorio de AISee en GitHub.
Características de la librería AISee
Entre las características claves de la librería AISee, el primer proyecto open source del IIC, destacan una interfaz sencilla para entrenar y predecir, su soporte para tareas de clasificación de imágenes multiclase y multietiqueta, y cómo facilita la carga de datos, las transformaciones de imágenes, el image-augmentation y los bucles de entrenamiento e inferencia.
- Interfaz sencilla para entrenar y predecir utilizando modelos de la biblioteca timm.
- Carga fácil de imágenes desde una carpeta, un DataFrame de pandas o una sola ruta de imagen.
- Entrena redes neuronales de última generación desde pesos pre-entrenados o desde cero en muy pocas líneas de código.
- Soporta tareas de clasificación de imágenes multiclase y multietiqueta.
- Se encarga de la gestión de la carga de datos, transformaciones de imágenes y bucles de entrenamiento e inferencia.
¿Cómo funciona AISee?
El primer paso para utilizar la librería de visión artificial AISee es instalarla fácilmente utilizando pip, de la siguiente manera:
pip install aisee
A continuación, vemos un ejemplo de cómo entrenar rápidamente un modelo usando AISee. Solo tenemos que inicializar un modelo VisionClassifier y crear un entrenador. ¡Tan fácil como parece! ¡Y sólo con 5 líneas de código!
Vamos a desglosar en partes pequeñas este snippet de código:
En esta primera línea simplemente importamos los módulos que utilizaremos para entrenar nuestro modelo de visión artificial:
- El módulo VisionClassifier es el que nos permitirá cargar redes preentrenadas del estado del arte presentes en timm, que es la librería con mayor cantidad de modelos actuales de visión artificial y que hace poco pasó a integrarse en el ecosistema de huggingface.
- El módulo Trainer es el que nos ayudará a hacer un fine-tuning o entrenamiento específico para nuestros datos usando la información del modelo preentrenado con miles de imágenes previamente.
Vamos a ver las características de cada uno de estos módulos:
Con el módulo VissionClassifier, como dijimos anteriormente, podemos cargar uno de los cientos de modelos del estado del arte de visión artificial presentes en timm. Si quieres aprender un poco más de timm, sus modelos y utilidades, puedes dirigirte directamente al repositorio del proyecto en GitHub.
VissionClassifier tiene dos parámetros fundamentales: el nombre del modelo o “model_name” y “num_classes”, que es el número de clases que tiene tu problema de clasificación.
El módulo Trainer es el que nos ayudará a entrenar el modelo con los datos específicos de nuestro problema. Este módulo condensa todo el código de bucles de entrenamiento, data augmentation y demás elementos que permitirán que nuestro modelo aprenda a clasificar de manera correcta las imágenes que tenemos.
Para utilizar este módulo, solo hay que decirle qué modelo base vamos a utilizar (el que cargamos con VissionClassifier), dónde podemos encontrar los datos de entrenamiento por medio del parámetro “data” y, finalmente, dónde queremos que queden guardados los pesos actualizados de nuestra red neuronal, por medio del parámetro “output_dir”.
¡Finalmente, llega la magia! Solo con una instrucción le decimos a AISee que entrene nuestro modelo y él mismo se encargará del resto. Y de la misma manera, podremos hacer inferencia sobre nuevos datos.
En conclusión, AISee es una poderosa librería de Python para tareas de visión artificial que ofrece una interfaz fácil de usar para entrenar y predecir utilizando redes neuronales del estado del arte. Con su soporte para tareas de clasificación de imágenes multiclase y multietiqueta y su capacidad para encargarse de la carga de datos, las transformaciones de imágenes y los bucles de entrenamiento e inferencia, se convierte en una herramienta imprescindible para cualquier persona interesada en el mundo de la visión artificial.