Crear sus propias “pinturas” neuronales con deepstyle y ubuntu

Las redes neuronales pueden hacer muchas cosas. Pueden interpretar las imágenes, entender nuestras voces, y traducir conversaciones. Pero ¿sabía usted que también puede pintar?6 funciones de Google Now que cambiarán La forma de buscar 6 funciones de Google Now que cambiarán La forma de buscar Puede que ya esté usando Google Now en tu dispositivo Android, pero es usted que consigue todo lo que pueda salir de ella? Conocer la existencia de estas pequeñas características puede hacer una gran diferencia.Lee mas

Un trabajo de investigación reciente (titulado “Un Neural Algoritmo de estilo artístico“) ha dado inicio a una ráfaga de discusión en línea con algunos ejemplos visuales sorprendentes. En esencia, el documento analiza una técnica para entrenar a una red neuronal profunda para separar el estilo artístico de la estructura de la imagen, y combinar el estilo de una imagen con la estructura de otro. El resultado de todo esto es que se puede entrenar una red neuronal enorme para convertir fotografías en pinturas “neuronales” que se ven como si estuvieran pintados por artistas famosos - “falsificaciones digitales,” por así decirlo.

Estos son algunos ejemplos del artículo. La primera imagen es el original. Las imágenes posteriores son los resultados generados, con la pintura a partir del cual se muestreó muestra el estilo en miniatura.

paperimages

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

Hoy en día, voy a caminar a través de cómo hacer eso, y le mostrará algunos de mis propios resultados. Se puede pensar en esto como una secuela suelta a nuestra tutorial DeepDream. Es un poco complicado, pero cualquier persona con una máquina Linux puede seguir a lo largo - sin experiencia en la codificación necesaria.Crear sus propios sueños fiebre artificial con Google de "DeepDream"Crear sus propios sueños fiebre artificial con Google de "DeepDream"¿Usted ha visto las imágenes que salen de trippy DeepDream? Quiere hacer su propia? ¡No busque más!Lee mas

Configuración del software

En primer lugar, si usted no está en un gran apuro o no tiene una máquina Linux, todavía se puede jugar con DeepStyle usando el bot DeepForger Twitter (lo envía una imagen y un estilo, y con el tiempo va a responder con los resultados que querer). Si desea procesar imágenes más rápidamente (y con más control sobre los resultados), para leer en el tutorial.

En primer lugar, asegúrese de que tiene una copia actualizada de Ubuntu (14.04 es lo que he usado). Eres debe tener al menos un par de conciertos adicionales de espacio en disco duro. Para obtener más información, echa un vistazo a nuestro tutorial sobre Ubuntu arranque dual junto con Windows. También va a necesitar los privilegios de root, así que asegúrese de hacerlo antes de continuar.Cansado de Windows 8? Cómo arranque dual de Windows & UbuntuCansado de Windows 8? Cómo arranque dual de Windows & UbuntuSi descubre que Windows 8 no es del todo de su agrado, y no tiene ruta viable para degradar, puede ser una buena idea tener un arranque dual con Linux para tener una alternativa ...Lee mas

Herramientas básicas

Derecha del palo, este es un proyecto de código abierto, por lo que vamos a querer tener Git instalada. Git es la estándar de oro para el software de control de versiones. Prácticamente todos los proyectos de código abierto vale la pena conocer se encuentra alojado en Github.

Para descargar e instalar Git, basta con abrir un terminal y escribir “sudo apt-get install git”Y de acuerdo a las demandas del instalador.

Siguiente: vamos a cree instrumentos básicos necesaria para que el software funcione.

En primer lugar, instale Lua. Este es el lenguaje que la herramienta está escrito en. Es bastante simple. Sólo tipo "sudo apt-get install lua5.2”Y siga el proceso de instalación.

En segundo lugar, vamos a conseguir Luarocks. Esta es la herramienta que hace que sea más fácil de instalar otras herramientas (no le gustan Linux?). Para éste, el tipo “sudo apt-get install luarocks”Y sigue los pasos instalaciones.

En tercer lugar, vamos a instalar Luajit. Este es un compilador justo a tiempo para Lua que hará que nuestra vida un poco más sencilla. Sólo tipo "sudo apt-get install luajit.”

Hasta aquí todo bien.

marcos

El siguiente, vamos a instalar la antorcha, una plataforma de computación y el aprendizaje de máquina científica que constituye la columna vertebral de la aplicación. Desafortunadamente, éste no se puede instalar usando apt-get (el gestor de paquetes estándar de Ubuntu).

Por suerte, tienen un instalador de una línea que utiliza un poco de magia de línea de comandos. Regresar a su terminal y escriba “rizar -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | intento“.

Cuando haya terminado, el tipo “luajit -ltorch“. Con ello se abre la interfaz de antorcha y verificar que todo se ha instalado correctamente.

Salir fuera de eso.

Ahora vamos a instalar loadcaffe - un paquete específico de la red neuronal. Instalar su única dependencia escribiendo “sudo apt-get install libprotobuf-dev-protobuf compilador“. A continuación, puede instalar el paquete en sí usando “sudo luarocks instalar loadcaffe".

Dependencias doble control

Por último, vamos a actualizar de forma preventiva algunas cosas sólo para asegurarse de que todo va bien.

Tipo "luarocks sudo imagen de instalación”Para asegurarse de que su paquete de imagen es hasta la fecha. A continuación, introduzca “luarocks instalan nn”Que hacer lo mismo para su paquete‘NN`.

Instalación profundo estilo

¡Bien! En este punto, estamos listos para instalar realmente el software en sí. Por el bien limpieza, crear una nueva carpeta en el directorio inicial ( ‘mkdir DeepStyle `). A continuación, entrar en él, usando “cd Deepstyle“. Ahora escriba “sudo git clone https://github.com/jcjohnson/neural-style.git".

El siguiente, tenemos que descargar el modelo. Hacer una taza de café o algo, esto llevará un tiempo. Volver al terminal, y tipo “sudo sh modelos / download_models.sh“. Eso va a iniciar un proceso de descarga largo, complicado. Si se produce un error debido a errores de permisos, intente darse permisos de lectura y escritura en las carpetas correspondientes, usando chmod.

Usando profundo estilo

Está bien, estamos bien para ir. Usando el software es bastante simple.

Asegúrese de que está en el directorio / estilo neuronal DeepStyle en el terminal. Ahora, vas a necesitar algunas imágenes para trabajar. Descargarlas fuera de Internet (o lo que sea), a continuación, copiarlos en el carpeta / estilo neuronal DeepStyle utilizando el explorador de archivos.

Ahora puede utilizar la línea de comandos para procesar imágenes individuales. El formato es bastante sencillo:

º neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1

(Obviamente, tendrá que reemplazar los trozos en mayúsculas con los nombres de los archivos).

Eso hará que la red neuronal comenzó. Se va a ejecutar durante aproximadamente una hora, escupiendo nuevas imágenes parcialmente convergentes cada pocos minutos hasta que termine. los -GPU -1 bandera lo para de intentar acceder a su GPU.

Después de varias horas de intentar (y bricking el sistema operativo varias veces) que era incapaz de conseguir Ubuntu y CUDA para jugar bien con mi GPU (una NVIDIA GTX 970). Si usted tiene más suerte con eso, tendrá que instalar CUDA y cudann.torch (véase el repositorio GitHub para más información). Si no es así, está bien - que todavía va a trabajar usando su CPU a su sólo va a ser un poco más lento.

Si tiene problemas para conseguir todo esto de trabajo, justo me pregunta en los comentarios, y voy a hacer todo lo posible para ayudarle.

resultados

Aquí hay algunas imágenes que hemos generado en el último par de días. Los resultados son mixtos, pero muchos de ellos son bastante impresionantes.

Zack-Paden-composite

Haga clic aquí para obtener la máxima resolución.

Este es uno de mi amigo Zack en un viaje de excursión a Yellowstone. El estilo viene de una pintura abstracta, creada por Theresa Paden. Tenía curiosidad por ver cómo el sistema haría uso de una imagen sin ningún tipo de estructura. Los resultados son bastante limpio, y definitivamente se pueden ver las similitudes de la imagen de estilo a.

JerseyCiudad-demuth-composite

Haga clic aquí para obtener la máxima resolución.

Este viene cortesía de uno de mis artistas favoritos, Charles Demuth (ver: Incienso de una Iglesia nueva, y la Figura 5 en oro). Curiosamente, Demuth es uno de inspiraciones visuales primarias para el arte de Team Fortress 2, como se puede ver la imagen de estilo.Team Fortress 2: El Juego de vapor Free-to-Play, lo debe desempeñarTeam Fortress 2: El Juego de vapor Free-to-Play, lo debe desempeñarTeam Fortress 2 es sólo un juego rápido para poner a prueba los gráficos y el rendimiento, o se trata de un juego digno de jugar en varias ocasiones?Lee mas

Di de comer que una imagen de la ciudad de Jersey que he encontrado en Wikimedia. Los resultados son ... bastante bueno. Que no se recuperó en la angulosidad del estilo de Demuth, pero desde luego recogió el aspecto suave y con textura en la paleta de colores.

flores-okeefe-composite

Haga clic aquí para obtener la máxima resolución.

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, esta es una de mis favoritas resultados. La riqueza de colores y formas de O`Keeffe vienen a través de claridad. Los bordes de las capas de pétalos de flores se convierten en los bordes de las hojas en el fondo. Las flores ellos mismos se disuelven en colores, convirtiéndose casi abstracta.

Sería un buen cuadro si un humano lo hizo. Estoy muy tentado a pasar un par de días que prestan una versión de mayor resolución de éste y lo han enmarcado.

Shannon-picasso-composite

Haga clic aquí para obtener la máxima resolución.

Aquí está mi amigo Shannon, en su disfraz de Halloween, a modo de una impresión de Picasso. Curiosamente, el dispositivo eligió pintar la porción inferior de la cara blanca (similar a la disposición de color de la pieza de Picasso). No estoy seguro de si esto era una coincidencia o no, pero los resultados son sorprendentes. También parece haber identificado correctamente el pelo de Shannon en el lado de la mano izquierda, y re-dibuja usando el color y la línea de trabajo de los cabellos en la imagen de estilo. Lo mismo ocurre con su sombrero.

Esta es una de las piezas, donde las limitaciones de la técnica empiezan a aclararse. Si Picasso eran en realidad pintando Shannon, habría tirado la estructura de su cara y sesgado los aspectos para lograr el efecto que quería. Este sistema no entiende ese tipo de conceptos de alto nivel, y es capaz de imitar sólo los aspectos superficiales del estilo, al igual que las líneas oscuras, angulares y paleta de colores.

eiffel-vangogh-composite

Haga clic aquí para obtener la máxima resolución.

Bastante sencillo: una imagen de la Torre Eiffel, y Van Gogh otro Noche estrellada. Se hace un buen trabajo haciendo que 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 de traducción de la escena del día a la noche.

No estaba segura de por qué se decidió a hacer que la punta de la torre Fiffel como una columna de fuego. Se ve bien, pero en realidad no es justificable desde los datos de entrada. Entonces me di cuenta de que la imagen del estilo tiene trece franjas amarillas largas y verticales en el mismo, en la forma de los reflejos en el agua. Eso es un grupo bastante masiva, tan poco dado datos de entrenamiento. La pobre probablemente ha aprendido que cualquier borde vertical de alto contraste debe ser una de esas reflexiones. Se puede ver rayas verticales más extrañas débilmente en las nubes.

nebulosa-vangogh-composite

Haga clic aquí para obtener la máxima resolución.

la pintura de Van Gogh mismo, pero esta vez le di algunas estrellas reales para pintar. En este caso, la porción de pilares de la nebulosa de Eagle. Me gustan los resultados - aunque, una vez más, se puede ver su obsesión con rayas amarillas. Cada porción vertical del pilar se convierte en una línea de color amarillo brillante, tambaleante. También es claramente molesto por el verde, lo que no ocurrió en los datos de entrenamiento, y hace lo posible para deshacerse de él a favor de azul y negro.

Tecnología

Algunos resultados de este son extremadamente convincente, aunque la técnica tiene limitaciones claras. Algunas imágenes tienen composición pésimo, y el sistema tiene dificultad con los artistas abstractos más como Picasso - que se hizo conocido gustaba distorsionar su tema, dispersando sus características. El algoritmo recoge sus líneas angulares y colores choque, pero sigue siendo un esclavo de los valores de los píxeles de la imagen. No tiene la comprensión que había necesidad de desviarse demasiado lejos del material de origen.

Lo que me entusiasma de todo esto es que no creo que esas limitaciones son fundamentales.

El enfoque que se usa aquí - entrenar una red en una imagen y lo utilizan para construir otro - es fundamentalmente una especie de truco. Da la red muy pocos datos para trabajar. Una versión más avanzada de esta aplicación sería utilizar una red que tiene información sobre muchos cuadros, y tal vez incluso imágenes reales, para darle un montón de contexto acerca de la imagen que está tratando de “pintura”.

Una comprensión profunda de estilo sólo puede existir en un contexto más amplio. No se puede derivarla de una sola imagen. El diseño de una arquitectura que permite el acceso al sistema a los datos más amplios podría permitir que se derivan de una comprensión más “similar a la humana” de la imagen, y cómo los artistas representan diferentes elementos del mundo real. La red podría ser capaz de producir imágenes que son más abstractos y tienen una mejor composición. Tales algoritmos dejarían de ser un juguete fresco (como éste) y se convierten en una forma de producir arte actual, original.

Que es una idea muy peculiar, en algunos aspectos.

Haciendo sus propias imágenes

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

  • -content_weight -valor ¿Cuánto hay que ponderar el plazo de reconstrucción contenido. Por defecto es 5e0.
  • --valor style_weight: ¿Cuánto peso para dar la imagen de estilo a. Por defecto es 1E2.
  • -style_scale - valor: ¿De qué tamaño de los parches de imagen debe analizar el sistema (más grande se vuelve más abstracto). El valor predeterminado es 1,0.

Una vez que obtenga todo funcionando a su satisfacción, por favor enviar sus imágenes más interesantes en los comentarios. Estoy muy interesado en ver lo que ustedes ocurrir.

Artículos Relacionados