Cree sus propias pinturas neuronales con DeepStyle y Ubuntu

  • Edmund Richardson
  • 0
  • 1857
  • 154
Anuncio

Las redes neuronales pueden hacer muchas cosas. Pueden interpretar imágenes, entender nuestras voces 6 Funciones de Google Now que cambiarán la forma en que busca 6 Funciones de Google Now que cambiarán la forma en que busca Puede 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 marcar una gran diferencia. y traduzca 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 fácil de comunicarse entre idiomas. . ¿Pero sabías que también pueden pintar??

Un trabajo de investigación reciente (titulado “Un algoritmo neuronal de estilo artístico“) inició una serie de debates en línea con algunos ejemplos visuales sorprendentes. Esencialmente, el documento discute 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 inteligencia artificial? Los investigadores de inteligencia artificial están haciendo progresos tangibles, y las personas están comenzando a hablar en serio nuevamente sobre la IA. Los dos titanes que lideran la carrera de inteligencia artificial son Google y Microsoft. para separar el estilo artístico de la estructura de la imagen y combinar el estilo de una imagen con la estructura de otra. El resultado de todo esto es que puedes entrenar una gran red neuronal para convertir fotografías en “pinturas neurales” que 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 de la cual se muestreó el estilo en miniatura.

Los investigadores originales no han publicado su código, desafortunadamente. Sin embargo, algunos programadores intrépidos han replicado sus resultados en los últimos días, y su código está disponible, de código abierto en Internet. Todo lo que necesitas para ejecutarlo es una máquina Linux y un poco de paciencia..

Hoy, voy a guiarlo a través de cómo hacerlo y mostrarle algunos de mis propios resultados. Puedes pensar en esto como una secuela 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 triples que salen de DeepDream? ¿Quieres hacer el tuyo? ¡No busque más! . Es un poco complicado, pero cualquier persona con una máquina Linux puede seguirlo, no se necesita experiencia en codificación.

¡Convertí una pintura ligera de Picasso en una pintura de estilo Picasso con #DeepStyle! pic.twitter.com/cjkEoIhVcF

- James Blaha (@jamesblaha) 5 de septiembre de 2015

Configurar el software

En primer lugar, si no tiene mucha prisa o no tiene una máquina Linux, aún puede jugar con DeepStyle utilizando el bot de Twitter DeepForger (envíele una imagen y un estilo, y eventualmente responderá con los resultados que desear). 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é). Debería tener al menos algunos conciertos adicionales de espacio en el disco duro. Para obtener más información, consulte nuestro tutorial sobre Ubuntu de arranque dual junto con Windows ¿Cansado de Windows 8? ¿Cómo arranque dual Windows y Ubuntu cansado de Windows 8? Cómo iniciar dual Windows y Ubuntu Si descubres que Windows 8 no es tu taza de té, y no tienes una ruta factible para degradar, puede ser una buena idea iniciar dual con Linux para tener una alternativa ... También necesitarás privilegios de root, así que asegúrate de hacerlo antes de continuar.

Herramientas básicas

De buenas a primeras, este es un proyecto de código abierto, por lo 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é debe usar el control de versiones si es un desarrollador? ¿Qué es Git y por qué debe usar el control de versiones si es un desarrollador? Como desarrolladores web, muchas veces tendemos a trabajar en sitios de desarrollo local y luego cargamos todo cuando terminamos. Esto está bien cuando solo eres tú y los cambios son pequeños ... Casi todos los proyectos de código abierto que vale la pena conocer están alojados en Github.

Para descargar e instalar Git, solo abra una terminal y escriba “sudo apt-get install git” y aceptar las demandas 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.

En segundo lugar, vamos a buscar a Luarocks. Esta es la herramienta que facilita la instalación de otras herramientas (¿no te gusta Linux?). Para este, escriba “sudo apt-get install luarocks” y sigue los pasos de instalación.

Tercero, 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 bot que crea falsificaciones 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 de computación científica 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. Regrese a su terminal y entre “curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | golpetazo“.

Cuando termines, escribe “luajit -ltorch“. Esto abrirá la interfaz de la antorcha y verificará que todo esté instalado correctamente.

Salir de eso.

Ahora vamos a instalar carga de cafe - un paquete específico de red neuronal. Instale su única dependencia escribiendo “sudo apt-get install libprotobuf-dev compilador protobuf“. Luego puede instalar el paquete usando “sudo luarocks instalar loadcaffe ".

@Johnicholas Su desglose de falsificación, al estilo de la Escuela de Rembrandt van Rijn. #DigitalArt #StyleNet pic.twitter.com/pf0sZxWkaT

- The Deep Forger (@DeepForger) 7 de septiembre de 2015

Dependencias de verificación doble

Finalmente, vamos a actualizar preventivamente algunas cosas solo para asegurarnos de que todo salga bien.

Tipo “imagen de instalación de sudo luarocks” para asegurarse de que su paquete de imágenes esté actualizado. A continuación, ingrese “luarocks instalar nn” que hará lo mismo para su paquete 'nn'.

Instalación de estilo profundo

¡Bien! En este punto, estamos listos para instalar el software en sí. Por razones de limpieza, cree una nueva carpeta en su directorio de inicio ('mkdir DeepStyle'). Luego, ingrésalo, usando “cd Deepstyle“. Ahora escribe “sudo git clone https://github.com/jcjohnson/neural-style.git ".

A continuación, tenemos que descargar el modelo. Prepare una taza de café o algo, esto llevará un tiempo. Vuelva a la terminal y escriba “sudo sh models / download_models.sh“. Eso comenzará un proceso de descarga largo y elaborado. Si falla debido a errores de permisos, intente otorgarse permisos de lectura y escritura en las carpetas relevantes, utilizando chmod.

@ 44thats44oars encargó este #ProceduralArt #NeuralArt. pic.twitter.com/tbMH7gsvc8

- The Deep Forger (@DeepForger) 6 de septiembre de 2015

Usando estilo profundo

Bien, estamos listos para irnos. Usar el software es bastante simple.

Asegúrate de estar en el Directorio de estilo profundo / neural en la terminal Ahora, necesitarás algunas imágenes para trabajar. Descárguelos de Internet (o lo que sea), luego cópielos en el Carpeta DeepStyle / estilo neural usando el buscador de archivos.

Ahora puede usar la línea de comando 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á reemplazar los fragmentos en TODAS LAS MAYÚSCULAS con los nombres de sus archivos).

Eso hará que se inicie la red neuronal. Se ejecutará durante aproximadamente una hora, escupiendo nuevas imágenes parcialmente convergentes cada pocos minutos hasta que termine. los -gpu -1 el indicador evita que intente acceder a su GPU.

Después de varias horas de intentarlo (y bloquear el sistema operativo varias veces) no pude hacer que Ubuntu y CUDA jugaran 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 con tu CPU; solo será un poco más lento.

Si tiene algún problema para que todo esto funcione, 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 ver 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 usando una imagen sin ninguna estructura. Los resultados son bastante claros, y definitivamente puedes ver las similitudes con la imagen de estilo..

Haga clic aquí para ver la resolución completa.

Este viene por cortesía de uno de mis artistas favoritos, Charles Demuth (ver: Incienso de una nueva iglesia, y 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 que debes jugar Team Fortress 2: El juego de Steam gratis que debes jugar es Team Fortress 2 solo un juego rápido para probar gráficos y rendimiento, o ¿vale la pena jugarlo repetidamente? , como puedes 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 texturizado y la paleta de colores..

Haga clic aquí para ver la resolución completa.

Este es un intento de generar un O'Keeffe sintético, usando 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 las flores se convierten en los bordes de las hojas en el fondo. Las flores se disuelven en colores y se vuelven 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 este y tenerlo enmarcado.

Haga clic aquí para ver la resolución completa.

Aquí está mi amiga Shannon en 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 volver a dibujarlo usando el color y la línea del cabello en la imagen de estilo. Lo mismo para su sombrero.

Esta es una de las piezas donde las limitaciones de la técnica comienzan a aclararse. Si Picasso estuviera realmente pintando a Shannon, habría desechado la estructura de su rostro y sesgado los rasgos para lograr el efecto que deseaba. Este sistema no comprende ese tipo de conceptos de alto nivel, y es capaz de imitar solo aspectos superficiales del estilo, como las líneas oscuras, angulares y la paleta de colores..

Haga clic aquí para ver la resolución completa.

Bastante sencillo: una imagen de la Torre Eiffel y de Van Gogh otro Noche estrellada. Hace un buen trabajo renderizando la nube en un estilo Van Gogh-ey, a pesar de la ausencia de nubes en la imagen original. También hace un buen trabajo al traducir la escena del día a la noche.

No estaba seguro de por qué decidió convertir la punta de la torre Eiffel en una columna de fuego. Parece genial, pero no es realmente justificable a partir de los datos de entrada. Luego me di cuenta de que la imagen de estilo tiene trece tiras amarillas verticales largas en forma de reflejos en el agua. Ese es un grupo bastante masivo, dado tan pocos datos de entrenamiento. El pobre probablemente ha aprendido 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 ver la resolución completa.

La misma pintura de Van Gogh, pero esta vez le di algunas estrellas para pintar. En este caso, la parte de los pilares de la nebulosa del Águila. Me gustan los resultados, aunque, una vez más, puedes ver su obsesión con las rayas 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 ocurrió en los datos de entrenamiento, y hace todo lo posible para deshacerse de él en favor del azul y el negro..

Tecnología

Algunos resultados de esto son extremadamente convincentes, aunque la técnica tiene limitaciones claras. Algunas imágenes tienen una composición pésima, y ​​el sistema tiene dificultades con artistas más abstractos como Picasso, a quien le gustaba distorsionar su tema, dispersando sus características. El algoritmo recoge sus líneas angulares y colores contradictorios, pero sigue siendo esclavo de los valores de píxeles de la imagen. No tiene la comprensión que necesitarías para desviarte demasiado del material fuente.

Lo que me emociona de todo esto es que no creo que esas limitaciones sean fundamentales..

El enfoque que se usa aquí, entrenar una red en una imagen y usarla para construir otra, es fundamentalmente un truco. 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 tiene información sobre muchas pinturas, y tal vez incluso imágenes reales, para darle mucho contexto sobre la imagen que está tratando de “pintar.”

Un profundo conocimiento del estilo solo puede existir en un contexto más amplio. No se puede derivar de una sola imagen. Diseñar una arquitectura que brinde al sistema acceso a datos más amplios podría permitirle derivar “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.

Hacer tus propias imágenes

Si obtiene un resultado decepcionante, puede jugar un poco con las opciones para tratar de obtener resultados más convincentes. La lista completa está en Github. Los importantes son

  • -content_weight -value Cuánto ponderar el término de reconstrucción de contenido. El valor predeterminado es 5e0.
  • -style_weight -value: Cuánto peso darle a la imagen de estilo. 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 tenga todo funcionando a su entera satisfacción, publique sus imágenes más interesantes en los comentarios. Estoy realmente interesado en ver qué piensan ustedes.

Créditos de imagen: pintor del cerebro humano a través de Shutterstock




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.