El OP menciona que están buscando una perspectiva técnica sobre cómo Prisma convierte imágenes normales en diferentes tipos de formas de arte vectorial. Una corrección aquí: Prisma no convierte estrictamente el arte en una forma de arte vectorial, la vectorización es una ilusión de la optimización utilizada. Continuo:
Al ver que ninguna de las otras respuestas proporciona una explicación intuitiva original, me encantaría. Así que aquí va …
Comencemos por el procesamiento de imágenes muy básico. La mayoría de nosotros familiarizados con las imágenes digitales sabemos que una imagen (JPG, PNG, lo que tiene) es solo una disposición de píxeles, cada píxel tiene diferentes valores para diferentes canales (R, G, B). Digamos que una imagen Full HD tendría 1920 × 1080 píxeles, es decir, alrededor de 2 millones de píxeles dispuestos en una cuadrícula, cada uno con intensidades que especifican qué tan rojo, verde o azul es ese píxel en particular. Para obtener blanco, básicamente maximizamos los tres (rojo, verde y azul), y para obtener negro, los ponemos a cero. La mayoría de los colores que vemos a nuestro alrededor se pueden representar con un alto grado de precisión con las combinaciones actuales de rojos, verdes y azules.
Ahora considere los filtros de imagen, similares a los que encontraría en Instagram. ¿Qué son estos filtros? Bueno, son pequeñas operaciones matemáticas que se aplican en estos píxeles para obtener nuevos píxeles, que forman la nueva imagen. Por ejemplo, en nuestra imagen [matemática] I [/ matemática] para cualquier píxel [matemática] I (x, y) [/ matemática], podemos reemplazar ese píxel con [matemática] \ frac {I (x-1, y ) + I (x, y) + I (x + 1, y)} {3} [/ matemática]. Si probaste esto en tu computadora, verías que esto borrará la imagen horizontalmente. Ese es un tipo de filtro, y las ecuaciones matemáticas más complicadas conducirán a todos los filtros que ves en Instagram.
[Imagen cortesía de Recreating Instagram’s Retro Filter Effects]
Así es como funcionan los filtros. La aplicación de un filtro en cada ubicación de la imagen se realiza mediante una operación llamada convolución (puede leer los conceptos básicos de convoluciones en cualquier libro de procesamiento de señales). Estos filtros son los mismos en Instagram, Photoshop o cualquier otra aplicación que requiera procesamiento de imágenes. Pero no es así como Prisma realiza ninguno de sus procesos principales. En un artículo reciente muy interesante de Alemania, los autores descubrieron una forma de combinar varios aspectos diferentes de la visión por computadora para crear un algoritmo que pueda imitar el estilo artístico.
Antes de entrar en cómo hacen eso, primero tendremos que entender lo que queremos decir con el término estilo artístico . Si le pidieran que definiera el estilo artístico en las pinturas, ¿cómo lo haría? Primero miraría los colores en la pintura, luego los trazos de pincel utilizados, pasando finalmente a ideas abstractas más grandes como la representación de la geometría y los objetos, ¿verdad? Las mismas ideas se utilizan en este documento. En un área ligeramente diferente de la visión por computadora, una investigación reciente descubrió que existen algoritmos, conocidos como redes neuronales convolucionales, que con muchas imágenes disponibles, pueden identificar estos patrones jerárquicos en las imágenes (para una introducción rápida sobre cómo funcionan las redes profundas, puedes ver esto, perdón por el enchufe descarado). Ahora, si puede identificar y cuantificar posteriormente el estilo artístico , puede comparar matemáticamente los estilos artísticos de dos imágenes. Si puede comparar los estilos artísticos de dos imágenes, entonces, con algunas matemáticas inteligentes, puede generar una imagen que tendrá un estilo artístico similar al objetivo.
En pocas palabras, así es como funcionan estos ‘filtros’ de Prisma. Usted toma una imagen de referencia, dice [matemáticas] I_1 [/ matemáticas], y su imagen de destino, dice [matemáticas] I_2 [/ matemáticas]. Lo que quiere hacer ahora es crear una imagen final [math] I_3 [/ math], que sea intermedia tanto para [math] I_1 [/ math] en términos de contenido de estilo como [math] I_2 [/ math] en términos de contenido de píxeles. Lo que eso significa es que el estilo artístico de la imagen final debe ser similar al estilo de la primera imagen, mientras que el contenido (personas, edificios, objetos, lo que esté presente en la imagen de destino) debe ser similar a la segunda imagen. Después de imponer estas restricciones, intentamos generar la imagen final.
[Imagen de arxiv # 1508.06576v2]
Tenga en cuenta que, a diferencia de los filtros tradicionales donde vamos a cada píxel y aplicamos una operación matemática simple, este proceso de generación es mucho, mucho más complicado (y es por eso que Prisma necesitaba una conexión a Internet para funcionar antes, lo subcontrató a la nube), y requiere dispositivos computacionales especiales conocidos como GPU para ejecutarse de manera eficiente. Estos filtros comienzan con una imagen aleatoria cerca de la imagen de destino [matemática] I_2 [/ matemática], y ajustan de forma iterativa los valores de píxeles para toda la imagen de una vez hasta que obtengamos un equilibrio decente entre los valores de estilo y contenido en la final imagen.
Para extraer el contenido de estilo, la aplicación utiliza redes neuronales convolucionales (CNN), que están de moda en inteligencia artificial. Para los más inclinados a la técnica, leer el documento original debería ser pan comido una vez que se conocen estos conceptos básicos, la novedad en el documento es principalmente la combinación de ideas de diferentes dominios.