Cree sus propias “pinturas neurales” con DeepStyle y Ubuntu
Las redes neuronales pueden hacer muchas cosas. Pueden interpretar las imágenes, entender nuestras voces 6 Características de Google Now que cambiarán la forma en que las buscan 6 Funciones de Google Now que cambiarán la forma de las búsquedas Es posible que ya esté utilizando Google Now en su dispositivo Android, pero ¿está obteniendo todo lo que puede? ¿eso? Conocer estas pequeñas características puede hacer una gran diferencia. Lea más y traduzca las conversaciones Cómo funciona el traductor de Star Trek de Skype Cómo funciona el traductor de Star Trek de Skype La nueva función de traducción de Skype ofrece algo soñado desde Star Trek: una forma sencilla de comunicarse entre idiomas. Lee mas . Pero ¿sabías que también pueden pintar??
Un trabajo de investigación reciente (titulado “Un algoritmo neural de estilo artístico“) ha iniciado una serie de debates en línea con algunos ejemplos visuales sorprendentes. Esencialmente, el documento analiza una técnica para entrenar una red neuronal profunda Microsoft vs Google: ¿Quién lidera la carrera de inteligencia artificial? Microsoft vs Google: ¿Quién lidera la carrera de la inteligencia artificial? Los investigadores de inteligencia artificial están haciendo progresos tangibles, y las personas están empezando a hablar seriamente sobre la IA nuevamente. Los dos titanes que lideran la carrera de inteligencia artificial son Google y Microsoft. Lea Más para separar el estilo artístico de la estructura de la imagen y combine el estilo de una imagen con la estructura de la otra. El resultado de todo esto es que puede entrenar una gran red neuronal para convertir fotografías en “pinturas neurales” Parece que fueron pintados por artistas famosos. - “falsificaciones digitales,” por así decirlo.
Aquí hay algunos ejemplos del artículo. La primera imagen es la original. Las imágenes posteriores son los resultados generados, con la pintura desde la cual se muestrearon los estilos en miniatura..
Los investigadores originales no han publicado su código, lamentablemente. Sin embargo, algunos programadores intrépidos han replicado sus resultados en los últimos días y su código está disponible, código abierto en Internet. Todo lo que necesitas para ejecutarlo es una máquina Linux y un poco de paciencia..
Hoy, te mostraré cómo hacerlo y te mostraré algunos de mis propios resultados. Puedes pensar en esto como una secuela suelta de nuestro tutorial DeepDream. Crea tus propios sueños de fiebre artificial con "DeepDream" de Google. Crea tus propios sueños de fiebre artificial con "DeepDream" de Google. ¿Has visto las imágenes trippy de DeepDream? ¿Quieres hacer el tuyo? ¡No busque más! Lee mas . Es un poco complicado, pero cualquier persona con una máquina Linux puede seguir adelante, no se necesita experiencia en codificación..
¡Convirtí una pintura de luz de Picasso en una pintura de estilo Picasso con #DeepStyle! pic.twitter.com/cjkEoIhVcF
- James Blaha (@jamesblaha) 5 de septiembre de 2015
Configuración del software
En primer lugar, si no tiene mucha prisa o no tiene una máquina con Linux, aún puede jugar con DeepStyle usando el bot de DeepForger Twitter (envíe una imagen y un estilo, y finalmente responderá con los resultados que obtenga. querer). Si desea procesar más imágenes rápidamente (y con más control sobre los resultados), siga leyendo para ver el tutorial..
En primer lugar, asegúrese de tener una copia actualizada de Ubuntu (14.04 es lo que usé). Debes tener al menos algunos conciertos adicionales de espacio en el disco duro. Para obtener más información, consulte nuestro tutorial sobre el arranque dual de Ubuntu junto con Windows ¿Cansado de Windows 8? ¿Cómo arranque dual de Windows y Ubuntu cansado de Windows 8? Cómo realizar un arranque dual de Windows y Ubuntu Si descubre que Windows 8 no es una taza de té, y no tiene un camino viable para bajar de nivel, puede ser una buena idea iniciar el arranque dual con Linux para tener una alternativa ... Leer más. También necesitarás privilegios de root, así que asegúrate de hacerlo antes de continuar.
Herramientas básicas
A la derecha del bate, este es un proyecto de código abierto, así que vamos a querer tener Git instalado. Git es el estándar de oro para el software de control de versiones. Qué es Git y por qué debería usar el control de versiones. Si es un desarrollador. Qué es Git y por qué debería usar el control de versiones. Si es un desarrollador como desarrollador web, la mayoría de las veces. tendemos a trabajar en sitios de desarrollo local, luego simplemente cargamos todo cuando hayamos terminado. Esto está bien cuando solo eres tú y los cambios son pequeños, ... Leer más. Casi todos los proyectos de código abierto que vale la pena conocer están alojados en Github.
Para descargar e instalar Git, simplemente abre un terminal y escribe “sudo apt-get install git
” y acepta las exigencias del instalador..
Siguiente: vamos a configurar algunas herramientas básicas Necesario para que el software funcione.
Primero, instala Lua. Este es el lenguaje en el que está escrita la herramienta. Es bastante simple. Sólo tipo “sudo apt-get install lua5.2
” y sigue el proceso de instalación.
Segundo, vamos a conseguir a Luarocks. Esta es la herramienta que facilita la instalación de otras herramientas (¿no te encanta Linux?). Para este, escriba “sudo apt-get install luarocks
” y sigue los pasos de instalación..
En tercer lugar, vamos a instalar Luajit. Este es un compilador justo a tiempo para Lua que hará nuestras vidas un poco más simples. Sólo tipo “sudo apt-get install luajit
.”
Hasta ahora tan bueno.
Soy un robot que crea falsificaciones a partir de tus fotos al estilo de pintores famosos. Haga clic para obtener instrucciones a continuación! pic.twitter.com/3MpThDNwRE
- The Deep Forger (@DeepForger) 5 de septiembre de 2015
Marcos
A continuación, instalaremos Torch, un marco científico de computación y aprendizaje automático que constituye la columna vertebral de la aplicación. Desafortunadamente, este no se puede instalar usando apt-get (el administrador de paquetes estándar de Ubuntu).
Afortunadamente, tienen un instalador de una línea que usa algo de magia de línea de comandos. Regresa a tu terminal y entra. “curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | golpetazo
“.
Cuando hayas terminado, escribe “luajit -ltorch
“. Esto abrirá la interfaz de la antorcha y verificará que todo se haya instalado correctamente..
Salir de eso.
Ahora vamos a instalar loadcaffe - Un paquete específico de red neuronal. Instale su única dependencia escribiendo “sudo apt-get install libprotobuf-dev protobuf-compiler
“. A continuación, puede instalar el paquete en sí usando “sudo luarocks instalar loadcaffe "
.
@Johnicholas Tu desglose de falsificaciones, estilo avec por la Escuela de Rembrandt van Rijn. #DigitalArt #StyleNet pic.twitter.com/pf0sZxWkaT
- The Deep Forger (@DeepForger) 7 de septiembre de 2015
Doble Dependencia de Cheques
Finalmente, vamos a actualizar de forma preventiva algunas cosas solo para asegurarnos de que todo salga bien..
Tipo “sudo luarocks instalar imagen
” para asegurarse de que su paquete de imágenes está actualizado. A continuación, introduzca “luarocks instalar nn
” que hará lo mismo para su paquete 'nn'.
Instalación de Deep Style
¡Bien! En este punto, estamos listos para instalar el software en sí. Por motivos de limpieza, cree una nueva carpeta en su directorio de inicio ('mkdir DeepStyle'). Luego, ingréselo, usando “cd Deepstyle
“. Ahora escribe “sudo git clone https://github.com/jcjohnson/neural-style.git ".
A continuación, tenemos que descargar el modelo. Haga una taza de café o algo, esto tomará un tiempo. De vuelta a la terminal, y escriba “sudo sh modelos / download_models.sh
“. Eso iniciará un proceso de descarga largo y elaborado. Si falla debido a errores de permiso, intente darse permisos de lectura y escritura en las carpetas relevantes, usando chmod.
@ 44thats44oars encargó este #ProceduralArt #NeuralArt. pic.twitter.com/tbMH7gsvc8
- The Deep Forger (@DeepForger) 6 de septiembre de 2015
Usando estilo profundo
Está bien, estamos bien para ir Usar el software es bastante simple.
Asegúrate de estar en el Directorio de estilo neuronal / estilo profundo en la terminal Ahora, necesitarás algunas imágenes para trabajar. Descárguelos de Internet (o lo que sea), luego cópielos en el DeepStyle / carpeta de estilo neural usando el buscador de archivos.
Ahora puedes usar la línea de comandos para procesar imágenes individuales. El formato es bastante sencillo:
th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1
(Obviamente, deberás reemplazar los trozos en TODAS LAS CAPS con los nombres de tus archivos).
Eso hará que comience la red neuronal. Se ejecutará durante aproximadamente una hora, escupiendo nuevas imágenes parcialmente convergentes cada pocos minutos hasta que termine. los -gpu -1
la bandera impide que intente acceder a su GPU.
Después de varias horas de intentar (y poner el sistema operativo varias veces) no pude conseguir que Ubuntu y CUDA funcionaran bien con mi GPU (una NVIDIA GTX 970). Si tiene más suerte con eso, querrá instalar CUDA y cudann.torch (consulte el repositorio de github para obtener más información). Si no, está bien, seguirá funcionando usando tu CPU; será un poco más lento.
Si tiene algún problema para hacer que todo esto funcione, solo pregúnteme en los comentarios y haré todo lo posible para ayudarlo..
Resultados
Aquí hay algunas imágenes que he generado en los últimos días. Los resultados son mixtos, pero muchos de ellos son bastante impresionantes..
Haga clic aquí para la resolución completa.
Este es de mi amigo Zack en un viaje de senderismo a Yellowstone. El estilo proviene de una pintura abstracta, creada por Theresa Paden. Tenía curiosidad por ver cómo funcionaría el sistema utilizando una imagen sin ninguna estructura. Los resultados son bastante nítidos, y definitivamente puedes ver las similitudes con la imagen de estilo.
Haga clic aquí para la resolución completa.
Este viene cortesía de uno de mis artistas favoritos, Charles Demuth (ver: Incienso de una nueva iglesia, y la Figura 5 en oro). Curiosamente, Demuth es una de las principales inspiraciones visuales para el arte de Team Fortress 2 Team Fortress 2: El juego de Steam gratuito para jugar que debes jugar en Team Fortress 2: The Free-to-Play Steam Game que debes jugar es Team Fortress 2 ¿Solo un juego rápido para probar gráficos y rendimiento, o es un juego que vale la pena jugar repetidamente? Leer más, como se puede ver en la imagen de estilo..
Le di una imagen de Jersey City que encontré en Wikimedia. Los resultados son ... bastante buenos. No captó la angularidad del estilo de Demuth, pero ciertamente captó el aspecto suave y texturado y la paleta de colores..
Haga clic aquí para la resolución completa.
Este es un intento de generar un O'Keeffe sintético, utilizando una imagen bastante mundana de algunas flores que encontré. Los resultados son, francamente, espectaculares. Estéticamente, este es uno de mis resultados favoritos. La riqueza de los colores y formas de O'Keeffe se manifiesta claramente. Los bordes en capas de los pétalos de flores se convierten en los bordes de las hojas en el fondo. Las propias flores se disuelven en colores, volviéndose casi abstractas..
Sería una buena pintura si un humano lo hiciera. Estoy muy tentado de pasar un par de días renderizando una versión de mayor resolución de esta y tenerla enmarcada.
Haga clic aquí para la resolución completa.
Aquí está mi amiga Shannon con su disfraz de Halloween, a través de una impresión de Picasso. Curiosamente, el dispositivo eligió pintar la parte inferior de su cara de blanco (similar al diseño de color de la pieza de Picasso). No estoy seguro de si esto fue una coincidencia o no, pero los resultados son sorprendentes. También parece haber identificado correctamente el cabello de Shannon en el lado izquierdo, y lo volvió a dibujar usando el color y la línea del cabello en la imagen de estilo. Ídem por su sombrero.
Esta es una de las piezas donde las limitaciones de la técnica comienzan a aclararse. Si Picasso en realidad estuviera pintando a Shannon, habría tirado la estructura de su cara y había distorsionado las características para lograr el efecto que quería. Este sistema no comprende ese tipo de conceptos de alto nivel, y es capaz de imitar solo aspectos superficiales del estilo, como la oscuridad, las líneas angulares y la paleta de colores..
Haga clic aquí para la resolución completa.
Bastante sencillo: una imagen de la Torre Eiffel y la de Van Gogh. otro Noche estrellada. Hace un buen trabajo representando la nube en un estilo de Van Gogh-ey, a pesar de la ausencia de nubes en la imagen original. También hace un buen trabajo traduciendo la escena del día a la noche..
No estaba seguro de por qué decidió hacer la punta de la torre Fiffel como una columna de fuego. Se ve bien, pero no es realmente justificable a partir de los datos de entrada. Entonces me di cuenta de que la imagen de estilo tiene trece tiras amarillas verticales largas, en forma de reflejos en el agua. Es un grupo bastante masivo, dado que hay muy pocos datos de entrenamiento. El pobre probablemente aprendió que cualquier borde vertical de alto contraste debe ser uno de esos reflejos. Puedes ver más rayas verticales extrañas débilmente en las nubes.
Haga clic aquí para la resolución completa.
La misma pintura de Van Gogh, pero esta vez le di algunas estrellas reales para pintar. En este caso, la porción de pilares de la nebulosa Águila. Me gustan los resultados, aunque, una vez más, puedes ver su obsesión con las franjas amarillas. Cada porción vertical del pilar se convierte en una línea amarilla brillante y tambaleante. También está claramente molesto por el verde, que no apareció en los datos de entrenamiento, y hace todo lo posible por deshacerse de él en favor del azul y el negro..
Tecnología
Algunos resultados de esto son extremadamente convincentes, aunque la técnica tiene claras limitaciones. Algunas imágenes tienen una composición pésima, y el sistema tiene dificultades con artistas más abstractos como Picasso, a quien a su famoso le gustaba distorsionar su tema, dispersando sus características. El algoritmo recoge sus líneas angulares y los colores en conflicto, pero sigue siendo un esclavo de los valores de píxeles de la imagen. No tiene la comprensión necesaria para desviarse demasiado del material de origen..
Lo que me emociona de todo esto es que no creo que esas limitaciones sean fundamentales..
El enfoque que se utiliza aquí (capacitar una red en una imagen y usarla para construir otra) es fundamentalmente una especie de pirateo. Le da a la red muy pocos datos para trabajar. Una versión más avanzada de esta aplicación usaría una red que contiene información sobre muchas pinturas, y quizás incluso imágenes reales, para darle un montón de contexto sobre la imagen que está intentando “pintar.”
Una comprensión profunda del estilo solo puede existir en un contexto más amplio. No se puede derivar de una sola imagen. Diseñar una arquitectura que le dé al sistema acceso a datos más amplios podría permitirle derivar más “como un humano” comprensión de la imagen, y cómo los artistas representan diferentes elementos del mundo real. Tal red podría producir imágenes que sean más abstractas y tengan una mejor composición. Tales algoritmos dejarían de ser un juguete genial (como este) y se convertirían en una forma de producir arte real y original..
Que es un pensamiento muy peculiar, de alguna manera..
Haciendo tus propias imágenes
Si obtiene un resultado decepcionante, puede jugar un poco con las opciones un poco para intentar obtener resultados más convincentes. La lista completa está en el Github. Los importantes son
- -content_weight -value Cuánto pesa el término de reconstrucción de contenido. El valor predeterminado es 5e0.
- -style_weight -value: Cuánto peso dar al estilo de imagen. El valor predeterminado es 1e2..
- -style_scale - valor: ¿Qué tamaño de parches de imagen debe analizar el sistema (Más grande se vuelve más abstracto). El valor predeterminado es 1.0.
Una vez que consiga que todo funcione a su entera satisfacción, publique sus imágenes más interesantes en los comentarios. Estoy realmente interesado en ver lo que ustedes idean.
Créditos de la imagen: pintor del cerebro humano a través de Shutterstock
Obtenga más información sobre: Inteligencia artificial, Arte digital, Geeky Science, Entorno de escritorio Linux, Ciencia ficción.