paint-brush
Cómo y por qué creé AI Shazam for Art para preservar el arte africanopor@eko
225 lecturas

Cómo y por qué creé AI Shazam for Art para preservar el arte africano

por Adetolani Eko7m2025/02/03
Read on Terminal Reader

Demasiado Largo; Para Leer

Este es un artículo sobre cómo construí una plataforma que utiliza inteligencia artificial para identificar al artista que hizo una pintura.
featured image - Cómo y por qué creé AI Shazam for Art para preservar el arte africano
Adetolani Eko HackerNoon profile picture
0-item


“Ah, entonces es como Shazam, pero para el arte”, me preguntó un amigo después de que pasé los últimos dos minutos explicándole mi último proyecto.


Era una plataforma que podía ayudar a los entusiastas del arte a identificar qué artista había hecho una pintura y ella lo había explicado en 5 palabras: 'Como Shazam, pero para el arte'.


Este artículo trata sobre por qué comencé el proyecto y también cómo construí la primera versión.


¿Por qué?

He amado el arte toda mi vida.


He pasado años investigando movimientos artísticos, creando y exhibiendo mis propias obras de arte y, en general, frecuentando artistas y galerías. Con el tiempo, desarrollé la capacidad de adivinar (con altos niveles de precisión) qué artista hizo una pintura, especialmente si era un artista africano.


En el renacimiento de la IA de 2022, me inspiré y pensé que sería divertido ver si podía entrenar a las computadoras para lograr lo mismo, así que comencé un pequeño proyecto personal.


Mientras trabajaba en ello, me di cuenta rápidamente de que había problemas mayores: problemas relacionados con la documentación, el reconocimiento y la difusión del conocimiento sobre el arte africano. Por ejemplo, hay antiguos maestros africanos cuyas pinturas son difíciles de encontrar en Internet. Hay que recurrir a libros de arte antiguos o a colecciones personales para encontrarlas. Me empezó a preocupar que, a medida que el mundo se vaya volviendo completamente digital, muchas de estas obras se pierdan en la historia.


Experimentar este desafío me hizo decidir hacer público el proyecto y extenderlo a la preservación y el intercambio digital del conocimiento sobre el arte y los artistas africanos.


Se centró en el arte africano porque sabía que nadie más lo haría, pero había que hacerlo, así que tuvo que empezar conmigo.


Cómo funciona

Usar la plataforma es sencillo.


Sube una foto de un cuadro o elige una de las imágenes de muestra disponibles.


Página principal



La plataforma procesa la imagen, identifica a los artistas cuyos estilos de arte son más similares a la obra de arte cargada, crea un puntaje de confianza para cada artista basado en qué tan similar es la foto cargada a su estilo de arte y selecciona al artista con el puntaje de confianza más alto.

La información sobre el artista se muestra en el formato siguiente.



Página de resultados de búsqueda de imágenes



El puntaje de confianza se publica para mostrarle cómo se llegó a esa predicción y para permitirle decidir cómo desea utilizar el resultado proporcionado.

También hay una sección de comentarios (pulgar hacia arriba o hacia abajo) para que puedas contribuir al proyecto y ayudar a mejorar el modelo.

Esta es una explicación simplificada de cómo funciona la plataforma. A continuación, se incluye más información (con la menor cantidad de jerga técnica posible) sobre cómo se creó.


La tecnología / Preparación de datos

Recopilación y procesamiento de datos

Este no era mi primer proyecto de aprendizaje automático, así que sabía que la clave estaba en los datos de entrenamiento. Tuve que encontrar y preparar suficientes datos de alta calidad para el modelo a fin de obtener buenos resultados. Eso resultó ser más difícil de lo que pensaba.


Comencé a recopilar y clasificar datos de capacitación, pero rápidamente me di cuenta de que llevaría mucho tiempo, así que contraté a mi hermana y a dos pasantes para que trabajaran en esto conmigo durante algunos meses (les pagaron por su trabajo).


El siguiente paso fue limpiar y estandarizar los datos.


  • Eliminar duplicados y normalizar los datos
  • Asegurarse de que los datos estén correctamente etiquetados
  • Asegurarse de que cada artista tuviera aproximadamente la misma cantidad de datos de entrenamiento para evitar sesgos en el modelo debido al desequilibrio de clases.
  • Asegurarse de que los datos de entrenamiento de cada artista incluyan suficiente variación de sus diferentes estilos y medios de pintura para evitar un ajuste excesivo a un determinado estilo o medio de un artista.
  • Asegurarse de que las fotos de entrenamiento tuvieran pinturas en diferentes contextos. Fotos de pinturas en diferentes entornos, fotos de pinturas al revés, versiones en blanco y negro de las pinturas, etc. Esta diversidad ayudaría al modelo a desempeñarse bien en la mayoría de las situaciones.


Fue mucho trabajo, pero hacerlo bien haría que el modelo funcionara bien.


Una vez completado el proceso de preparación de datos, dividí los datos en datos de entrenamiento y datos de prueba (control) para facilitar su uso y verificar la precisión.


Mi hermana, obviamente de la generación Z, brinda una actualización sobre el estado de los artistas sobre los que habíamos recopilado datos y también algunos desafíos para encontrar datos sobre otros artistas.



Construcción/entrenamiento de los modelos

Al pensar en los modelos, tenía dos opciones.


Desarrolle un modelo de base de código abierto o confíe en un modelo propietario basado en la nube, por ejemplo, AutoML de GCP.


Intenté ambos enfoques, pero como inicialmente se suponía que el proyecto sería una prueba de concepto, la gestión de costos fue el factor más importante a considerar.


Finalmente, decidí utilizar el modelo de código abierto EfficientNet. Es gratuito, es bueno para identificar características en los datos, no requiere mucho procesamiento para ejecutarse, ofrece flexibilidad en la implementación y lo había utilizado en el pasado.



Escalado del modelo EfficientNet Crédito: paperswithcode.com


Encontré una implementación de EfficientNet en Tensorflow y la utilicé como eje central del modelo. Tenía compatibilidad con Keras, por lo que también ayudó a gestionar la complejidad.


Fue lo suficientemente eficiente como para que pudiera entrenar versiones de prueba en una MacBook M1 Pro con 16 GB de RAM (aunque tuve que lidiar con que mi computadora portátil a veces se congelaba).


En segundo plano, el modelo procesa las fotografías para identificar características clave como pinceladas, esquemas de colores, composición, etc., y condensa la información para conservar las partes importantes. Utiliza esta información para identificar similitudes entre las fotografías de pinturas recién proporcionadas y sus datos de entrenamiento.


Experimenté con varios valores de época y paradas tempranas para ver qué funcionaba mejor y finalmente encontré métricas interesantes.


Métricas de rendimiento iniciales para la versión 1 del modelo


Seguí agregando más artistas y experimentando con diferentes valores hasta obtener algo lo suficientemente preciso para lanzarlo.


La implementación final involucró dos modelos: uno para el reconocimiento del estilo de pintura y otro para el reconocimiento del medio de pintura.

Recibí ayuda para refinar aún más los modelos y finalmente implementarlos con envoltorios de API.


Diseño y desarrollo de la aplicación

Una vez ordenados los modelos, fue fácil crear el resto de la plataforma. La implementación final quedó así:


Diagrama de arquitectura de la solución final



Plataforma Backend/API : construí el backend/API con Laravel para manejar la lógica y el enrutamiento de las solicitudes a los modelos reales de manera eficiente. Esta capa maneja todo el procesamiento de imágenes, el almacenamiento, la validación, la información del artista y el triaje de solicitudes, es decir, el control de las solicitudes enviadas a los modelos.


Frontend : el frontend se creó con React. Realmente no me gusta escribir código frontend, así que recibí ayuda para crear esta parte. Básicamente, controla la visualización de la información y las solicitudes de los usuarios enviadas al backend.


Servidor/Alojamiento: alojé toda la aplicación en Heroku (incluidos los modelos). Elegí Heroku porque me permitía obtener muchos servicios y soporte listos para usar a un costo manejable. Después de meses de trabajo para recopilar datos, entrenar los modelos y construir la plataforma central, no quería trabajar más, ¡solo quería ponerlo en marcha!


Notas finales

Ética

Entrené los modelos únicamente con datos disponibles públicamente.


A medida que desarrollé el proyecto, también consulté a varios artistas para ver si tenían algún problema con el proyecto y no recibí ninguna respuesta negativa. Sin embargo, si algún artista que he incluido en el proyecto quiere ser excluido, háganmelo saber. Lo haré de inmediato.


Planes futuros

Veo muchos casos de uso para esto en educación, descubrimiento de arte, turismo y comercio. También hay un par de funciones en las que he estado pensando: un directorio de artistas, juegos de arte basados en la web, recomendaciones de artistas y mucho más.


Mi plan es seguir mejorando el proyecto y aprender qué quieren ver a continuación los artistas, las partes interesadas de la industria y los entusiastas del arte.


Estoy muy feliz de haber comenzado este proyecto. Por un lado, me dio una oportunidad única de combinar dos cosas que me apasionan (arte + tecnología), por otro lado, me desafió y me obligó a pensar de manera creativa sobre varios problemas. También siento que estoy contribuyendo activamente al crecimiento y la preservación del arte africano, y eso es genial.


Enlace del proyecto (beta) : https://beta.whomadethisartwork.com/


Nota *: La versión beta está restringida a 100 artistas africanos y hay planes de incluir más pronto.*


Demostración :




Si disfrutaste leyendo este artículo es porque usé una técnica de escritura llamada "la pendiente resbaladiza" para que fuera divertido de leer. Es una técnica que utilizan muchos grandes autores y redactores. Esta técnica y muchas más se enseñan en un curso llamado CopyThat , y es el único curso de escritura que necesitarás. La mejor parte es que solo lleva 10 días completarlo. 10 días para ser un escritor realmente bueno. Visita CopyThat ahora para comenzar tu viaje para convertirte en un gran escritor.